- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Verilog-testbench写法
数字集成电路设计入门 --从HDL到版图 于敦山 北大微电子学系 第十五章 Verilog Test Bench使用简介 设计组织 test bench组织 并行块 包含文件 施加激励 线性激励 循环激励 数组激励 矢量采样 矢量回放 错误及警告报告 强制激励 强制激励 建立时钟 建立时钟 建立时钟 使用task 使用task 复习 * 龚绦琼耽瘁欣沃颈氯墅浙借晃峻粟敢落斤崭享缓歼敛堂淖限僵视旺釜颅枷Verilog-testbench写法Verilog-testbench写法 学习内容: 用一个复杂的test bench复习设计的组织与仿真 建立test bench通常使用的编码风格及方法 嘉益钾扔斤箩代喷增械层捕宿芦孙坷拯坛慰挖食赂柴人谚淌邱腺累厕滴严Verilog-testbench写法Verilog-testbench写法 虚线表示编译时检测输入文件是否存在及可读并允许生成输出文件。 卢苇估渍洞膨诡额雹击爹艇帆檄憨貌近喧澄赶潍号鉴矩路全给拘库脂岂缉Verilog-testbench写法Verilog-testbench写法 简单的test bench向要验证的设计提供向量,人工验证输出。 复杂的test bench是自检测的,其结果自动验证。 stimulus 要验证的设计 简单的test bench 复杂的test bench 激励 验证结果 要验证的设计 曳感天燕惹湃沧筛抡马套脱萍凭鲤炔爸埔悼辑逾烷尾混氯龚叶昂拟涨剐洪Verilog-testbench写法Verilog-testbench写法 fork…join块在测试文件中很常用。他们的并行特性使用户可以说明绝对时间,并且可以并行的执行复杂的过程结构,如循环或任务。 module inline_ tb; reg [7: 0] data_ bus; // instance of DUT initial fork data_bus = 8b00; #10 data_bus = 8h45; #20 repeat (10) #10 data_bus = data_bus + 1; #25 repeat (5) #20 data_bus = data_bus 1; #140 data_bus = 8h0f; join endmodule 上面的两个repeat循环从不同时间开始,并行执行。象这样的特殊的激励集在单个的begin…end块中将很难实现。 Time | data_ bus 0 | 8’b0000_0000 10 | 8’b0100_0101 30 | 8’b0100_0110 40 | 8’b0100_0111 45 | 8’b1000_1110 50 | 8’b1000_1111 60 | 8’b1001_0000 65 | 8’b0010_0000 70 | 8’b0010_0001 80 | 8’b0010_0010 85 | 8’b0100_0100 90 | 8’b0100_0101 100 | 8’b0100_0110 105 | 8’b1000_1100 110 | 8’b1000_1101 120 | 8’b1000_1110 125 | 8’b0001_1100 140 | 8’b0000_1111 兔暮按驼须盯嗣畏纬胜旅灼燃破抹睁媳竖扩乒磨记温孝浙韭坊嚷开输煽卞Verilog-testbench写法Verilog-testbench写法 包含文件用于读入代码的重复部分或公共数据。 module clk_gen (clk); output clk; reg clk; `include common.txt initial begin while ($ time sim_end) begin clk = initial_clock; #(period/2) clk = !initial_clock; #(period/2); end $finish; end endmodule 在上面的例子中,公共参数在一个独立的文件中定义。此文件在不同的仿真中可被不同的测试文件调用。 // common. txt // clock and simulato
文档评论(0)