module/interface中的parameter override用法

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优先级最高

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值