FPGA软件验证技术(下)ppt课件.ppt

FPGA软件验证技术(下)ppt课件.ppt

ID:59476141

大小:535.50 KB

页数:23页

时间:2020-09-14

FPGA软件验证技术(下)ppt课件.ppt_第1页
FPGA软件验证技术(下)ppt课件.ppt_第2页
FPGA软件验证技术(下)ppt课件.ppt_第3页
FPGA软件验证技术(下)ppt课件.ppt_第4页
FPGA软件验证技术(下)ppt课件.ppt_第5页
资源描述:

《FPGA软件验证技术(下)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、——Testbench的编写方法什么是Testbench测试平台(Testbench)指一段仿真代码,用来为设计产生特定的输入序列,也用来观测设计输出的响应。测试平台是系统的控制中心,验证的任务就是确定产生什么样的输入模式,以及获得期望的设计输出。在不改变所设计的硬件系统的前提下采用模块化的方法进行编码验证。把设计描述和功能验证描述分开。测试平台从来都不需要硬件实现tesbench基本框架测试平台是一个封闭的空间testbench基本框架testbench的目标验证HDL代码功能的正确性;1)待验证的模块加载到模拟验证环境;2)产生验证所需的激励。3)对输入激励码,构造出其对应的正确

2、输出结果。4)提供一种机制,自动判断Design的正确性。如何编写testbench1)TestBench是个无输入输出的HDL顶层模块。2)其内部需要实例化DUT模块。3)需要定义被测模块内的连接线4)为被测顶层模块提供符合规范的输入激励。可写为激励模块或直接在Testbench中添加。5)观察设计输出和内部信号并与理想结果相比较。6)不需要只使用可综合的语句。可以使用系统任务语句实现。testbench书写结构(1)`timescale1ns/1psmoduletestbench();参数说明寄存器、线网类型变量的定义、说明;DUT实例化语句时钟信号定义、赋初值;定义置/复位信号

3、的变化情形;用一个或多个initial语句块产生DUT的模拟激励向量用task等定义DUT外部时序接口endmoduleTestbench书写结构(2)`timescale1ns/100psmoduleTestBench();参数说明;寄存器、线网类型变量的定义、说明;DUT实例语句;时钟信号定义、赋初值;定义置/复位信号的变化情形;`include“产生输入激励码的HDL代码段”;endmodule常用信号的产生方式1)时钟信号的产生方式使用always语句产生。forever语句产生。2)复位信号产生在initial语句中赋值的方法产生。时钟信号1)使用always循环语句产生不

4、断变化的时钟信号parameterPERIOD=10;regclk;initialclk=0;always#(PERIOD/2)Clk=~Clk;时钟信号2)使用forever语句实现initialbegin#20clk=1;foreverbegin#(PERIOD*0.5)clk=0;#(PERIOD*0.5)clk=1;endend通过修改延时时间可以改变时钟信号的占空比复位信号复位信号在验证中只考虑开始仿真时复位一次,根据不同的复位考虑复位时间的长短。复位信号直接在initial块中赋值即可。regrstb;initialbeginrstb=1’b0;#1000rstb=1’b

5、1;end施加激励的方式行激励强制激励使用循环添加激励预设输入激励码向量方式使用task语句系统任务和系统函数行激励在initial语句中按顺序添加绝对延时激励reg[7:0]ts_data;Initialbegints_data=8’b0;#100Ts_data=8’h47;#100Ts_data=8’h1f;end优点:添加方便,简洁,易于理解;缺点:难于管理,不容易过程化。强制激励添加强制赋值的方式,添加激励源。1)使用assign和deassign语句initialbegin#10assigntop.dut.fsm1.state_reg=`init_state;#20deas

6、signtop.dut.fsm1.state_reg;end2)使用force和release语句initialbegin#10forcetop.dut.counter.scan_reg.q=0;#20releasetop.dut.counter.scan_reg.q;end使用循环语句在initial语句块中用循环结构描述具有一定变化规则的输入激励信号initialbeginfor(i=0;i<=255;i=i+1)@(negedgeclk)stimulus=i;#20$finish;end优点:1)每次循环迭代你可赋值一个新的激励向量信号间的时序关系是有规律的2)Testbenc

7、h非常紧凑,易于管理预设输入激励码向量方式将所需的输入激励码表示为一定形式的向量表;输入激励码向量预存于文件中;使用时从文件中按一定的时序节拍读入文件中的输入激励码向量VerilogHDL提供的支持:$readmemb(“File_Name”,Test_Vector);从文件中读取二进制输入激励码向量$readmemh(“File_Name”,Test_Vector);从文件中读取十六进制输入激励码向量initialbegin$readmemh("ethe

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

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

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