关于testbench在FPGA编程中的技巧

1、时间标尺:格式:`     ti   mescale 仿真时间单位/时间精度,举例:`  TI mescale 1ns/100ps,仿真时间单位位1ns,但是仿真时间精度可以达到100ps。

大家应该注意到有个#符号,该符号的意思是指延迟相应的时间单位。该时间单位由  TI mescale决定.一般在     te   stbench的开头定义时间单位和仿真精度,比如`  TI mescale 1ns/1ps,前面一个是代表时间单位,后面一个代表仿真时间精度。以上面的例子而言,一个     时钟   周期是20个单位,也就是20ns。而仿真时间精度的概 念就是,你能看到1.001ns时对应的信号值,而假如  TI mescale 1ns/1ns,1.001ns时候的值就无法看到。

2、定义信号类型:原来模块中的输入信号,定义成reg 类型,原来模块中的输出信号,定义为wire类型,但这里有个问题,如果在testbench中本身有一个模块需要,如用来产生时钟,送给要仿真的模块,那怎么定义信号类型呢?

其实还是一样的定义,输入信号定义为reg类型,输出定义为wire类型,但是这个模块的输出送给仿真模块作输入,这个输入就是wire类型了,如下图所示的clk_d1和clk_d2这两个信号就只能定义为wire类型。

 关于testbench在FPGA编程中的技巧_设计制作_可编程逻辑

3.文件的输入     测试   数据

有时候,需要大量的数据输入,直接赋值的话比较繁琐,可以先生成数据,再将数据读入到     寄存器   中,需要时取出即可。用 $readmemb系统任务从文本文件中读取二进制向量,$readmemh 用于读取十六进制文件。例如:reg [7:0] mem[0:255] // 一个8bit位宽,长度256的寄存器组initial $readmemh ( "E:/readhex/mem.dat", mem ) // 将.dat文件读入寄存器组mem中initial $readmemh ( "E:/readhex/mem.dat", mem, 128, 1 ) // 参数为寄存器加载数据的地址开始和结束。

4. 仿真结果写入文件

用函数 $fwrite ($fdisplay),函数功能,将数据写入到txt文件中(与fs     can   f正好相反)。$fwrite和$fdisplay的区别,$fwrite写下一个数不会自动转行,可以加\n来转行,$fdisplay则会自动转行。这里只介绍$fwrite了,$fdisplay和$fwrite基本一样的写法。

20
0
0
11

相关资讯

  1. 1、挑战阿汤哥?为了看《碟中谍6》也是拼了,观众攀岩2000英尺1620
  2. 2、她婚后出轨与情夫合骗丈夫财产,气死婆婆,29岁被杀身亡2016
  3. 3、《解码游戏》韩庚饰演“拼命程序员”能文能武能卖萌223
  4. 4、许绍洋张晓龙持枪激情对射逆雄暴力现场直播1986
  5. 5、《少年的你》冲刺奥斯卡!包揽金像8大奖后,千玺周冬雨成国际咖385
  6. 6、《窃听风云3》发情海翻波特辑周迅再陷三角恋4534
  7. 7、为了8000万和星爷决裂,讽刺星爷不懂电影,如今下场“凄惨”345
  8. 8、马蓉“被打”伤势照片曝光,王宝强律师晒照暗示案情发展?910
  9. 9、关之琳曾回应第一段婚姻,只因为了逃避它,网友:可怜的女人!4952
  10. 10、《嘻嘻闯江湖》制片方巨资引进好莱坞创作团队33
全部评论(0)
我也有话说
0
收藏
点赞
顶部