我是靠谱客的博主 无情诺言,最近开发中收集的这篇文章主要介绍module/interface中的parameter override用法parameter参数覆盖方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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参数覆盖方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部