- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在QuartusII仿真中输入激励波形数据.doc
QuartusII中目前越来越多的通信系统采用FPGA进行硬件设计,而FPGA设计中非常重要而频繁进行的一环是仿真。仿真能将硬件设计中的逻辑和时序问题及早暴露出来,以便工程师改进设计或调整方案。仿真是硬件设计流程中较为耗时和烦琐的一环。主要原因有:仿真的激励波形必须由设计者自行创建,测试波形必须人工输入;仿真的结果正确与否必须由设计者自行判断,很难自动化;时序仿真前必须对整个设计做耗时的全编译;仿真过程是计算机软件模拟芯片对测试输入的逻辑处理,通常计算时间消耗很大。在这4个步骤中,第2步依赖于设计者的经验和特定设计逻辑的复杂程度,第3、4步则由计算机完成,基本上是个定数,只有第一步还具有提高效率的空间。我们在进行实际的FPGA设计处理信号时,针对第1步有大量仿真数据输入的需求,在研究Quartus II激励波形文件的格式后,编程设计了一种将输入数据转化为激励波形的方法。QuartusII中仿真流程现在Altera公司的器件均可由Quartus II进行设计。Quartus II除了能完成语法检查、综合、布局布线、生成配置文件和时序分析的设计全流程,还自带仿真功能(Quartus II Simulator)。Quartus II中时序仿真的流程图如图1所示。vwf文件全称是矢量波形文件(Vector Waveform File),是Quartus II中仿真输入、计算、输出数据的载体。一般设计者建立波形文件时,需要自行建立复位、时钟信号以及控制和输入数据、输出数据信号等。其中工作量最大的就是输入数据的波形录入。比如要仿真仅1KB的串行输入数据量,则手工输入信号的波形要画8000个周期,不仅费时费力而且容易出错。如果能找到一种简易的将输入数据转化为激励波形的方法,则可以极大提高仿真速度,减少手工操作时间,因此需要研究vwf文件的格式。 vwf文件格式分析既然vwf文件是仿真数据的载体,那么必需首先弄清楚该文件存放数据的格式,再针对这种格式做一定的变换得到所需要的波形。以时钟信号clk为例,vwf文件以如下方式存储和表示该信号。● 说明部分SIGNAL(“clk”){_TYPE = NINE_LEVEL_BIT;SIGNAL_TYPE = SINGLE_BIT;WIDTH = 1;LSB_INDEX = -1;DIRECTION = INPUT;PARENT = “”;} ● 数据部分 TRANSITION_LIST(“clk”){?NODE? {??? REPEAT = 1;??? NODE??? {???? REPEAT = 3000;???? LEVEL 0 FOR 50.0;???? LEVEL 1 FOR 50.0;???? }?? }} 在第2部分数据说明中,LEVEL 0表示低电平,LEVEL 1表示高电平,FOR后面跟着是持续时间,REPEAT表示重复次数。手工描画的波形在存储时均被转化为此形式表示,这种形式也会被一一对应地表现为波形。其实这就是一种文本方式描述数据的格式,一些其他波形文件格式(例如.tbl文件)也是与此相似的。 串行数据转化为vwf文件的方法在用软硬件接收和处理通信线路上某种协议的数据时,通常都会取得一定量的典型数据做试验使用,这些典型数据就会被用作仿真的输入数据。多数通信线路传输串行数据流,硬件系统接收的输入信号是串行的。将试验数据逐比特地转化为激励波形就是建立测试激励的主要工作。由上一部分对vwf文件格式分析可知,数据流会被映射成电平的持续时间,而持续时间是时钟周期的整数倍。数据流可以看作是0、1比特流的单向延伸,确定了0、1流即可将对应的持续时间计算出来,从而给出波形的文本描述。因此只要能将试验数据的0、1流识别出来,再以vwf文件格式为基准生成对应文本,就能将输入数据自动地转化为激励波形。数据文件到串行激励波形的编程实现识别数据的0、1游程算法(C或C++)如下。// rl即为所识别的0、1比特游程,fpin是输入数据文件的指针,datin是无符号字符datin=fgetc(fpin);tmp=datin0x80;rl=0;n =0;while(!feof(fpin)) {? for(i=n;i8;i++){?? if (((datini)0x80) == tmp)????? rl++;?? else{?? n=i;? break;?}}while ((i==8) (!feof(fpin))) {? datin=fgetc(fpin);?? for(i=0;i8;i++){??? if (((datini)0x80) == tmp)???? rl++;??? else{???
文档评论(0)