verilog的语法之一.pptVIP

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 模块的测试 被测模块 激励和控制信号 输出响应和验证 * * 模块的测试 测试模块常见的形式: module t; reg …; //被测模块输入/输出变量类型定义 wire…; //被测模块输入/输出变量类型定义 initial begin …; …; …; end … …//产生测试信号 always #delay begin …; end … …//产生测试信号 Testedmd m(.in1(ina), .in2(inb), .out1(outa), .out2(outb) ); //被测模块的实例引用 initial begin ….; ….; …. end //记录输出和响应 endmodule * * 模块的测试 测试模块中常用的过程块: initial always 所有的过程块都在0时刻同时启动;它们是并行的,在模块中不分前后。 initial块 只执行一次。 always块 只要符合触发条件可以循环执行。 * * 模块的测试 如何描述激励信号: module t; reg a, b, sel; wire out; //引用多路器实例 mux2_m (out, a, b, sel); //加入激励信号 initial begin a=0; b=1; sel=0; #10 b=0; #10 b=1; sel=1; #10 a=1; #10 $stop; end * * 模块的测试 如何观察被测模块的响应: 在initial 块中,用系统任务$time 和 $monitor $time 返回当前的仿真时刻 $monitor 只要在其变量列表中有某一个或某几个变 量值发生变化,便在仿真单位时间结束时显示其变 量列表中所有变量的值。 例: initial begin $monitor ($time, , “out=%b a=%b sel=%b”, out,a,b,sel); end * * 模块的测试 如何把被测模块的输出变化记录到数据库文件中? (文件格式为VCD,大多数的波形显示工具都能读取该格式) 可用以下七个系统任务: $dumpfile(“file.dump”); //打开记录数据变化的数据文件 $dumpvars(); //选择需要记录的变量 $dumpflush; //把记录在数据文件中的资料转送到硬盘保存 $dumpoff; //停止记录数据变化 $dumpon; //重新开始记录数据变化 $dumplimit(file_size); //规定数据文件的大小(字节) $dumpall; //记录所有指定信号的变化值到数据文件中 * * 模块的测试 如何把被测模块的响应变化记录到数据库文件中? 举例说明: $dumpvars; //记录各层次模块中所有信号的变化 $dumpvars(1,top); //只记录模块top中所有信号的变化 $dumpvars(2,top.u1); //记录top模块中实例u1和它以下一层子模块所有信号的变化 $dumpvars(0,top.u2,top.u1.u13.q); //记录top模块中实例u2和它本层所有信号的变化,还有top.u1.u13.q 信号的变化。 $dumpvars(3,top.u2,top.u1); //记录top模块中u2和u1所有信号的变化(包括其两层以下子模块的信号变化)。 * * 模块的测试 如何把被测模块的响应变化记录到数据库文件中? 举例说明: 下面的 Verilog 代码段可以代替测试文件中的系统任务$monitor initial begin $dumpfile(“vlog.dump”); $dumpvars(0,top); end * * 仿真与测试 仿真的要素:测试对象DUT(Device Under Test) 测试的激励(测试矢量) 测试结果的报告 支持的工具: 工作站环境: Verilog XL, NC_Verilog (Cadence) P

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档