实例解读testbench编写方法

实例解读testbench编写方法

ID:16292061

大小:141.18 KB

页数:5页

时间:2018-08-09

实例解读testbench编写方法_第1页
实例解读testbench编写方法_第2页
实例解读testbench编写方法_第3页
实例解读testbench编写方法_第4页
实例解读testbench编写方法_第5页
资源描述:

《实例解读testbench编写方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实例解读Testbench编写方法前言:在进行quartusII设计时,不少人刚开始觉得仿真极其不方便,还需要编写测试文件,浪费时间精力。不过小编想告诉大家,其实testbench编写很容易学,不外乎waitfor语句的堆叠就可以了,至于高深的用法,对一般程序都涉及不到,没必要弄得那么复杂。下面看看实例吧,将详细说明testbench的编写:我们可以通过Quartus自动生成一个Testbench的模板,选择Processing->Start->StartTestBenchTemplateWriter,等待完成后打开刚才生成的Testbench,默认是保

2、存在simulationmodelsim文件夹下的.vt格式文件。 打开vt文件后可以看到Quartus已经为我们完成了一些基本工作,包括端口部分的代码和接口变量的声明,我们要做的就是在这个做好的模具里添加我们需要的测试代码。一个最基本的Testbench包含三个部分,信号定义、模块接口和功能代码。‘timescale1ns/1ps表示仿真的单位时间为1ns,精度为1ps。想要进行仿真首先要规定时间单位,而且最好在Testbench里面统一规定时间单位,而不要在工程代码里定义,因为不同的模块如果时间单位不同可能会为仿真带来一些问题,而timescale

3、本身对综合也就是实际电路没有影响。其实Testbench本身可以看做一个模块或者设备(本例中的模块名为add_vlg_tst),和你自己编写的模块进行通信。通过Testbench模块向待测模块输出信号作为激励,同时接收从待测模块输出的信号来查看结果。因此,在待测模块中的reg型信号在Testbench中就变成了wire,待测模块中的wire型信号在Testbench中则对应为reg型。那么inout怎么办呢,inout型信号也要设成wire,同时要用一个reg型信号作为输出寄存器,同时设置一个三态门,由一个使能信号控制,如:assign inout_si

4、g=out_en?out_reg:1’bz;处理完接口和声明之后,需要自己设置一些激励信号,激励信号的内容就是肯能会输入到待测模块中的波形。下面我们就来写一个简单的测试程序。实例:60进制计数器源代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitycnt60isport(clk,reset:instd_logic;p:outstd_logic_vector(3downto0);q:outstd_

5、logic_vector(3downto0));endcnt60;architecturearchofcnt60issignalcp:std_logic;signalm:std_logic_vector(3downto0);signaln:std_logic_vector(3downto0);beginp_1:process(reset,clk)beginif(reset='1')thenm<="0000";elseif(clk'eventandclk='1')thenif(m="1001")thenm<="0000";elsem<=m+"0001";e

6、ndif;endif;endif;endprocessp_1;cp<=m(3)andm(0);p_2:process(clk,reset)beginif(reset='1')thenn<="0000";elseif(clk'eventandclk='1')thenif(cp='1')thenif(n="0101")thenn<="0000";elsen<=n+"0001";endif;endif;endif;endif;endprocessp_2;p<=m(3)&m(2)&m(1)&m(0);q<=n(3)&n(2)&n(1)&n(0);endarch;

7、Testbench编写:LIBRARYieee;USEieee.std_logic_1164.all;ENTITYcnt60_vhd_tstISENDcnt60_vhd_tst;ARCHITECTUREcnt60_archOFcnt60_vhd_tstIS--constants--signalsSIGNALclk:STD_LOGIC;SIGNALp:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALq:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALreset:STD_LOGIC;COMPONENTcnt60PORT(c

8、lk:INSTD_LOGIC;p:OUTSTD_LOGIC_VECTOR(3DO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。