目录
编译时可重新定义参数值。如果是分层次命名的参数,可以在该设计层次内或外的任何地方重新定义参数。
1、语法
defparam 参数名1 = 常量表达式,参数名2 = 常量表达式,......;
【如果是分层次命名的参数】
defparam 例化模块名.参数名1 = 常量表达式,例化模块名.参数名2 = 常量表达式, ……;
2、在程序中的位置
module-<HERE>-endmodule
3、可综合行的问题
一般情况下是不可综合的。
4、提示
不建议使用defparam语句,特别是在testbench中。在模块的实例引用时,可用"#"号后跟参数的语法来重新定义参数。
在该例中,用#( 2499 )修改了上例中的参数mcnt,当有多个参数时,用逗号隔开,如#( 1, 2 ,3 )传递了3个参数值。
【可参考:Verilog中defparam及#的用法】。