仿真测试激励文件编写方法:从基础到应用.pdfVIP

  • 0
  • 0
  • 约2.57千字
  • 约 3页
  • 2026-01-30 发布于北京
  • 举报

仿真测试激励文件编写方法:从基础到应用.pdf

(激励)文件的编写

当我们写好了一个功能模块,需要知道这个模块的功能是否符合我们的设计

要求,有两种方法可以验证。方法一:直接用硬件来验证,比如我们写了一个流

水灯程序,那么绑定好管脚,编译到开发板上,观察板上的灯是否与我

们的设计相符。该方法不大适用稍复杂的功能模块,因为当出现了问题,我们无

法观察到信号的变化,不利于我们分析解决问题。方法二:通过仿真来验证,观察

输出的波形是否与设计预期相符。还是以流水灯的例子来说,我们看到该模块有

两个输入端口(时钟和复位),个输出端口()。仿真是不需要

依赖硬件的,所以输入端口必须给一个仿真激励信号,这样被仿真的模块才能运

转起来。时钟端口需要一个高低电平的振荡信号;复位信号是低电平

复位,所以给复位信号一个初始电平,等待一段时间(),在置为

即可。再通过模块例化,将时钟和复位信号输出给被仿真的模块(),这样

模块的输入端口均被赋上了合适的信号,再通过仿真软件()即可观

察输出信号()的波形,如果该波形与我们设计预期不符,那么就分析

解决问题,直到满足设计预期。仿真时是可以观察到模块所有信号,非

常利于我们发现问题。所以,一定要养成一个先仿真的好习惯,而不是直接上硬

件调试。只有当我们仿真后,发现逻辑功能没问题,这时候再上板调试,这样一

定会事半功倍,正所谓磨刀不误砍柴工嘛!

的手动仿真在项目开发中是比较常用的,此时需要手动编写

testbench文件。对于初学者来说,可能觉得编写testbench文件比较,但

其实并没有那么复杂,我们只需要按照testbench的结构,编写基本的激

励文件还是比较容易的。当编写完testbench文件后,如果以后需要仿真其它模

块的话,只需要在此基础上稍作修改即可。

编写testbench文件的主要目的是为了对使用硬件描述语言(VerilogHDL

或者VHDL)设计的电路进行,测试设计电路的功能、部分性能是否与

预期的目标相符。基本的testbench结构如下:

1.仿真的单位和精度

激励文件的开头要仿真的单位和仿真的精度,的关键字为

timescale,方法如下:

`timescale1ns/1ns

需要注意的是,timescale仿真单位和精度时,不需要以分号结尾。“/”之

前的1ns表示仿真的单位是1ns,“/”的1ns表示仿真的精度是1ns。当

代码中出现“#10”时,代表的意思是延时10ns,由于仿真的精度为1ns,所以

最低的延时精度只能到1ns,如果想要延时10.001ns,则需要更改仿真的精度

(1ns=1000ps),代码如下:

`timescale1ns/1ps

#10.001rst_n=0;

2.定义模块名

仿真的单位和精度完成后,接下来定义模块名,定义模块名的关键字为

module,代码如下:

moduleled_tb;

模块名名方式一般在被测模块名后面加上“_tb”,或者在被测模块名前面

加上“tb_”,表示为哪个模块激励测试文件,通常激励文件不需要定义输

入和输出端口。信号或变量定义代码中定义的常量有时需要频繁的修改,为了方

便修改,可以把常量定义成参数的形式,定义参数的关键字为parameter,代码

如下:

parameterCNT=20;

3.信号或变量

Verilog代码中,常用信号或变量的关键字为reg和wire,在initial语句

或者always语句中使用的变量定义成reg类型,在assign语句或者用于连接被

例化模块名的信号定义成wire类型,方法如下:

4.使用initial或always语句产生激励波形

产生时钟激励的代码如下:

上述代码

文档评论(0)

1亿VIP精品文档

相关文档