Modelsim中改变模块参数
引用一个模块的时候,上层模块可以改变下层模块中parameter的值,方法一般有两种:
1、用defparam重新定义。
形式:defparam inst_name.para = value;
例如:
module sub(…);
parameter param1 = 1;
…
endmodule
module top(…);
defparam sub_inst.param1 = 2;///////
sub sub_inst(…);
endmodule
2、实例化时重新传递。
实例化时把参数传递过去,有多个参数时有逗号隔开。例如:
…
sub #(2) sub_inst(…);
…
有多个参数时,用逗号隔开。例如:#(1,2,3,…)
注意事项:
1、上述两种方法都是可综合的;
2、传递参数时可使用表达式,但是使用表达式时,要确保FPGA中有可用的逻辑
单元与该表达式对应。例如,假若当前乘法器是8位的,不要在表达式中使
用位数超过8位的乘法。笔者曾经在表达式中使用过多位的乘法,最后被优
化掉了,原因猜测是乘法器位数超了。事实上,出现乘法或除法的运算时,
建议使用左移或右移的运算。
posted on 2011-03-23 11:30 freshair_cn 阅读(705) 评论(0) 编辑 收藏 举报