概述
parameter参数覆盖方法
1、可以在module实例化时,使用#()进行参数覆盖
2、在实例化时使用defparam hierarchical path names
3、可以通过vcs 命令行形式覆盖,使用-pvalue+hierarchical_path=value
4、可以通过配置文件使用instance 或cell 规则的方式。
示例:
config cfg;
design rtlLib.top;
default liblist rtlLib;
localparam LP = 19;
instance top.B1 use #(.P(LP)); // assign 19 to top.B1.P
instance top.B2 use #(.P(3)); // assign 3 to top.B2.P
instance top.B3 use #(.P()); // assign its default value to top.B3.P
cell bot use #(.P(10)); // assign 10 to rest of instances of bot
endconfig : cfg
module top;
bot B1(); // instance parameter value being override
// inside configuration
bot B2();
bot B3();
bot B4();
bot B5();
bot B6();
defparam top.B4.P = 20; // defparam specified parameter value being override inside configuration
endmodule
module bot;
parameter P = 9;
initial $display("%m",P);
endmodule
执行结果:
1、vcs -full64 -sverilog *.sv -R
2、vcs -full64 -sverilog *.sv -pvalue+top.B1.P=99 -R
注:-pvalue优先级最高
最后
以上就是无情诺言为你收集整理的module/interface中的parameter override用法parameter参数覆盖方法的全部内容,希望文章能够帮你解决module/interface中的parameter override用法parameter参数覆盖方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复