完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 eehome 于 2013-1-5 10:01 编辑 在代码编写完毕后,需要借助于测试平 台来验证所设计的模块是否满足要求。ISE提供了两种测试平台的建立方法,一种是使用HDL Bencher的图形 化波形编辑功能编写,另一种就是利用HDL语言。由于后者使用简单、功能强大,所以本节主要介绍基于Verolog语言的测试平台建立方法。 1.测试波形法 在ISE中创建testbench波形,可通过HDL Bencher修改, 再将其和仿真器连接起来,再验证设计功能是否正确。首先在工程管理区将Sources for设置为Behavioral Simulation, 然后在任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,然后选中“Test Bench WaveForm”类型,输入文件名为“test_bench”,点击Next进入下一页。这时,工程中所有Verilog Module的名称 都会显示出来,设计人员需要选择要进行测试的模块。由于本工程只有一个模块,所以只列出了test,如图4-30所示。 图4-30 选择待测模块对话框 用鼠标选中test,点击“Next”后进入下一页,直接点击“Finish”按键。此时HDL Bencher程序自 动启动,等待用户输入所需的时序要求,如图4-31所示。 图4-31 时序初始化窗口 时钟高电平时间和时钟低电平时间一起定义了设计操作必须达到的时钟周期,输入建 立时间定义了输入在什么时候必须有效,输出有效延时定义了有效时钟延时到达后多久必须输出有效数据。默认的初始化时间设置如下: · 时钟高电平时间(Clock High Time):100ns · 时钟低电平时间(Clock Low Time):100ns · 输入建立时间(Input Setup):15ns · 输出有效时间(Output Valid):15ns · 偏移时间(Offset):100ns 单击“OK”按钮,接受默认的时间设定。测试矢量波形显示如图4-32所示。 图4-32 测试矢量波形 接下来,初始化输入(注:灰色的部分不允许用户修改),修改的方法为:选中信 号,在其波形上单击,从该点击所在周期开始,在往后所有的时间单元内该信号电平反相。点击din信号前面的“+”号,在din[7]的第2个时钟周期内单击,使其变高;在din[6]的第3个时钟周期内单击,使其变高;同样的方法修改din[5]~din[0]信号,使其如图4-33所示。 图4-33 初始化输入 然后将testbench文件存盘,则ISE会自动将其加入到仿真的分层结构中,在代码管理 区会列出刚生成的测试文件test_bench.tbw,如图4-34所示。 图4-34 测试文件列表 选中test_bench.tbw文件,然后双击过程管理区的“Simulate Behavioral Model”,即可完成功能仿真。同样,可在“Simulate Behavioral Model”选项上单击右键,设置仿真时间等。例4-3的仿真结果如图4-35所示。从中,可以看出,dout信号等于din信号加1,功能正确。 图4-35 功能仿真结果 2.测试代码法 下面介绍基于Verilog语言建立测试平台的方法。首先在工程管理区将“Sources for”设置为Behavioral Simulation, 在任意位置单击鼠标右键,并在弹出的菜单中选择“New Source”命令,然后选中“Verilog Test Fixture”类型,输入文件名为“test_test”,再点击“Next”进入下一页。这时,工程中所有Verilog Module的名称 都会显示出来,设计人员需要选择要进行测试的模块。 用鼠标选中test,点击“Next”后进入下一页,直接点击“Finish”按键,ISE会在源代码编辑区自动显示测试模块的代码: `timescale 1ns / 1ps module test_test_v; // Inputs reg clk; reg [7:0] din; // Outputs wire [7:0] dout; // Instantiate the Unit Under Test (UUT) test uut ( .clk(clk), .din(din), .dout(dout) ); initial begin // Initialize Inputs clk = 0; din = 0; // Wait 100 ns for global reset to finish #100; // Add stimulus here end endmodule 由此可见,ISE自动生成了测试平台的完整架构,包括所需信号、端口声明以及模块调用的完成。所需的工作就是在initial…end模块中的“// Add stimulus here”后面添加测试向量生成代码。添加的测试代码如下: forever begin #5; clk = !clk; if(clk == 1) din = din + 1; else din = din; end 完成测试平台后。在工程管理区将“Sources for”选项设置为Behavioral Simulation, 这时在过程管理区会显示与仿真有关的进程,如图4-36所示。 图4-36 选择待测模块对话框 选中图4-36中Xilinx ISE Simulator下的Simulate Behavioral Model项,点击鼠标右键,选择弹出菜单的Properties项,会弹出如图4-37所示的属性设置对话框,最后一行的Simulation Run Time就 是仿真时间的设置,可将其修改为任意时长,本例采用默认值。 |
|
相关推荐
|
|
819 浏览 0 评论
5690 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2738 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
3077 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
32814 浏览 11 评论
73386 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 01:17 , Processed in 0.666773 second(s), Total 70, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号