Verilog测试台固定1ns/1ps时标,如何便捷表示5秒大延迟?
Verilog测试台5秒延迟的易读写法
基于你当前的1ns/1ps时间标度,1秒等于1e9纳秒(时间标度的基本单位是ns),所以5秒对应的延迟数值就是5e9,直接写延迟语句即可:
#5e9;
如果想让代码更直观易读,避免直接写大数字,推荐用宏定义或者参数封装时间单位,既不修改时间标度,又能让延迟含义一目了然:
方法1:使用宏定义
在测试台开头定义秒的常量,后续直接调用:
`define SECOND 1e9 // 1秒 = 1e9纳秒,匹配当前时间标度 // 延迟5秒 #(5 * `SECOND);
方法2:使用parameter参数
如果是在模块内部,用parameter定义常量的作用域更清晰:
module testbench; parameter real SECOND = 1e9; // 定义1秒对应的ns数 initial begin // 延迟5秒 #(5 * SECOND); end endmodule
这两种方式都不会改动时间标度,完全不影响时钟的生成和运行,同时让其他阅读代码的人不用再手动换算单位,可读性大幅提升。
内容的提问来源于stack exchange,提问作者Surya Narayana
相关产品推荐
相关产品推荐

