modelsim仿真教程.pptVIP

  1. 1、本文档共55页,可阅读全部内容。
  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文档。上传文档
查看更多
modelsim仿真教程

测试双向端口实例 module bidir_infer (DATA, READ_WRITE); input READ_WRITE ; inout [1:0] DATA ; reg [1:0] LATCH_OUT ; always @ (READ_WRITE or DATA) begin if (READ_WRITE == 1) LATCH_OUT = DATA; end assign DATA = (READ_WRITE == 1) ? 2’bZ : LATCH_OUT; endmodule module test_bidir_ver; reg read_writet; reg [1:0] data_in; wire [1:0] datat, data_out; bidir_infer uut (datat, read_writet); assign datat = (read_writet == 1) ? data_in : 2’bz; assign data_out = (read_writet == 0) ? datat : 2’bz; initial begin read_writet = 1; data_in = 11; #50 read_writet = 0; end endmodule 时间精度 格式:`timescale reference_time/precision reference_time:单位时间,根据用户模块的输入输出时钟周期来决定; precision:单位时间精确度,即参考时钟可达的最大精度; 示例:`timescale 1ns/100ps 单位时间为1ns,可精确到0.xx位;比如1.23/3.75; 延时单位 格式:#times [ns/us/ms/min] 示例:#2ns; #40; 说明:延时2ns; 延时40个单位时间; 在TB文件中,通过延时#,可以设置各个信号的赋值情况; initial begin reset = 0; #100; reset = 1; end t0 t100 时钟激励 在TB中,时钟激励源的生成有好几种方式; 比如生成50M时钟,周期为20ns,则可以用如下方式: `timescale 1ns/100ps parameter CLK_PERIOD = 20; always #(CLK_PERIOD / 2) clk_50m = ~clk50m; 或者: forever #(CLK_PERIOD / 2) clk_50m = ~clk50m; 信号生成 1:单个控制信号可以采用延时语句来生成; 比如: initial begin rst_n = 1’b0; ld = 1’b0; en = 1’b0; #20; rst_n = 1’b1; ld = 1’b1; #20; ld = 1’b0; en = 1’b1; end 2多个信号 当有多个信号需要生成时,可根据各种事情来生成; 3数据流 数据流除了可以采用条件生成外,还可以通过$readmemh/readmemb语句生成;或者把数据包以*.mif/*.coe格式存放到ROM中来调用; initial $readmemh ( “*.mif“ , rom ) $monitor/$display modelsim 可以通过一些系统函数来打印输出相关的信号;为仿真提供监测与比较; ……… $timeformat(-9,1,ns,12); $display( Time clk rst_n ld en d q); $monitor(“%t %b %b %b %b %b %b“,$time,clk,rst_n,ld,en,d,q); …… 上面的语句是监视DFF各端口信号变化并打印; 宏定义 在TB 文件中,可以以宏定义语句来设置各种不同的仿真任务; `define TBASE_100M `ifdef TBASE_100M ……..//仿真任务1,执行100M的仿真任务 `else ........//仿真任务2,默认10M的仿真任务 `endif 上面语句中,通过TBASE_100M宏来仿真100M/10M时两种情况; synopsys translate_off / synopsys translate_on 在模块中,可

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档