发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名

[经验] 【梦翼师兄今日分享】 测试文件的简易结构

2019-12-20 09:13:29  3171 FPGA
分享
1
立即学习>>梦翼师兄FPGA培训(纯视频),手把手带你入门FPGA

测试文件结构

为什么简易的测试代码可以通用呢?这要从测试文件的结构说起。首先我们将测试代码再给大家列出来一次,方便解说
/****************************************************         
*   Engineer        :   梦翼师兄
*   QQ               :   761664056
*****************************************************/
01  `timescale 1ns/1ps //时间单位和精度定义
02  module tb;
03
04  //系统输入
05  reg clk;   //系统时钟输入
06  reg rst_n; //系统复位
07  //系统输出
08  wire [3:0]pio_LED;//LED驱动输出
09  
10  initial
11      begin
12          clk=0;
13          rst_n=0;
14          #1000.1 rst_n=1;
15      end
16      
17      always #10 clk=~clk;//50MHz时钟
18      
19  led_learn led_learn(
20          .clk(clk),       //系统时钟输入
21          .rst_n(rst_n),   //系统复位
22          .pio_led(pio_led)//LED驱动输出
23        );
24  endmodule
代码05-08行,相当于是“导线定义”,被测试模块所有的输入都要定义为 “reg”类型,被测试模块所有的输出都要定义为“wire”类型。
代码10-15行,测试激励编写模块。通过该模块我们可以给准备输入到被测试模块的“导线”赋值。
代码17行,通过always 块,可以实现clk信号自取反操作的无限循环,产生无限个数的时钟,方便仿真
代码19-23行,我们术语叫做“模块实例化”,实际上,大家可以等效理解为是“导线连接”,即将对应的导线连接到我们的待测试电路对应端口。
由此可见,待测试内部逻辑的变化对我们测试模块的编写是没有任何影响的,对于测试文件来说,我们关心的只是待测试模块的端口,仅此而已。大家以后开发过程中用到的测试文件实际上就是以此测试文件为基础,进行简单的修改就可以使用,相信大家一定会有一种似曾相识的感觉。

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
关闭

站长推荐 上一条 /6 下一条

快速回复 返回顶部 返回列表