- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FPGA软件验证技术(下)
——Testbench的编写方法 什么是Testbench 测试平台(Testbench)指一段仿真代码,用来为设计 产生特定的输入序列,也用来观测设计输出的响应。 测试平台是系统的控制中心,验证的任务就是确定产 生什么样的输入模式,以及获得期望的设计输出。 在不改变所设计的硬件系统的前提下采用模块化的方 法进行编码验证。把设计描述和功能验证描述分开。 测试平台从来都不需要硬件实现 tesbench基本框架 测试平台是一个封闭的空间 testbench基本框架 testbench的目标 验证HDL代码功能的正确性; 1)待验证的模块加载到模拟验证环境; 2)产生验证所需的激励。 3)对输入激励码,构造出其对应的正确输出结果。 4)提供一种机制,自动判断Design的正确性。 如何编写testbench 1)TestBench是个无输入输出的HDL顶层模块。 2)其内部需要实例化DUT模块。 3)需要定义被测模块内的连接线 4)为被测顶层模块提供符合规范的输入激励。可写为激励模块或直接在Testbench中添加。 5)观察设计输出和内部信号并与理想结果相比较。 6)不需要只使用可综合的语句。可以使用系统任务语句实现。 testbench书写结构(1) `timescale 1ns / 1ps module testbench(); 参数说明 寄存器、线网类型变量的定义、说明; DUT 实例化语句 时钟信号定义、赋初值; 定义置/复位信号的变化情形; 用一个或多个initial语句块产生DUT的模拟激励向量用task等定义DUT外部时序接口 endmodule Testbench书写结构(2) `timescale 1ns / 100ps module TestBench() ; 参数说明; 寄存器、线网类型变量的定义、说明; DUT 实例语句; 时钟信号定义、赋初值; 定义置/复位信号的变化情形; `include “产生输入激励码的HDL代码段” ; endmodule 常用信号的产生方式 1)时钟信号的产生方式 使用always语句产生。 forever语句产生。 2)复位信号产生 在initial语句中赋值的方法产生。 时钟信号 1)使用always循环语句产生不断变化的时钟信号 parameter PERIOD=10; reg clk; initial clk=0; always #(PERIOD/2)Clk=~Clk; 时钟信号 2)使用forever语句实现 initial begin #20 clk = 1; forever begin #(PERIOD*0.5) clk = 0; # (PERIOD*0.5) clk = 1; end end 通过修改延时时间可以改变时钟信号的占空比 复位信号 复位信号在验证中只考虑开始仿真时复位一次,根据不同的复位考虑复位时间的长短。 复位信号直接在initial块中赋值即可。 reg rstb; initial begin rstb=1’b0; #1000 rstb=1’b1; end 施加激励的方式 行激励 强制激励 使用循环添加激励 预设输入激励码向量方式 使用task语句 系统任务和系统函数 行激励 在initial语句中按顺序添加绝对延时激励 reg[7:0] ts_data; Initial begin ts_data=8’b0; #100 Ts_data=8’h47; #100 Ts_data=8’h1f; end 优点: 添加方便,简洁,易于理解; 缺点: 难于管理,不容易过程化。 强制激励 添加强制赋值的方式,添加激励源。 1)使用assign和deassign语句 initial begin #10 assign top.dut.fsm1.state_reg = `init_state; #20 deassign top.dut.fsm1.state_reg; end 2)使用force和release语句 initial begin #10 force top.dut.counter.scan_reg.q = 0; #20 release top.dut.counter.scan_reg.q; end 使用循环语句 在initial语句块中用循环结构描述具有一定变化规则的输入激励信号 initial begin for (i = 0;i = 255;i=i + 1) @(negedge clk) stimulus = i; #20 $finish; end 优点: 1)
您可能关注的文档
- 数字信号处理第五章DF.ppt
- 4测试基础-静态测试.ppt
- 471分析人类活动对生态环境的影响.ppt
- 4第四章土的应力.ppt
- 4电流的测量课件.ppt
- 4操作分析-刘洪伟.ppt
- 4第四章轴测图.ppt
- 数字图像处理课件武大经典7.ppt
- 4第四章轴测图练习题.ppt
- 数字图像处理课件(冈萨雷斯)N06VC数字图像处理编程入门.ppt
- 计算机一级(计算机基础及MS Office应用)模拟试卷31.pdf
- 计算机一级考试计算题题库.pdf
- 计算机一级(计算机基础及MS Office应用)模拟试卷103.pdf
- 计算机一级(计算机基础及 MS Office 应用)模拟试卷233.pdf
- 计算机一级(计算机基础及 MS Office 应用)模拟试卷312.pdf
- 计算机一级(计算机基础及MS Office应用)模拟试卷22.pdf
- 【优秀】高二(68)班《快乐过暑假 ,安全不放假》主题班会(21张PPT)课件.pptx
- 【统编版】高中数学2025春季开学第一课《走进数学世界》精美课件(20张PPT)课件.pptx
- 2025年辽宁省辽阳市单招职业适应性测试题库(a卷).docx
- 2025年辽宁省盘锦市单招职业倾向性测试题库及一套参考答案.docx
最近下载
- 2025党校入党积极分子预备党员培训考试题库(含答案).docx VIP
- 2023-2024年数学竞赛AIME I II真题含答案(共4套).pdf
- 2025年湖北省高考数学模拟试卷(附答案解析).pdf VIP
- 骶神经调节术护理ppt.pptx
- 智能仓储与配送 课件 1.1 储配设施设备认知.pptx
- 建筑门窗检验规程.pdf VIP
- 2025统编版道德与法治小学一年级下册第一单元《我有新面貌》教学反思(附教材目录).docx VIP
- DCS题库附答案..docx
- 2024年广东省广州市高考英语二模试卷.docx VIP
- 2023年11月23日第八届全国十佳公诉人竞赛刑事检察策论真题及答案解析.doc VIP
文档评论(0)