日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

defparam的语法

發布時間:2024/9/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 defparam的语法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當一個模塊引用另外一個模塊時,高層模塊可以改變低層模塊用parameter定義的參數值,改變低層模塊的參數值可采用以下兩種方式:

  1)defparam 重定義參數

  語法:defparam path_name = value ;

  低層模塊的參數可以通過層次路徑名重新定義,如下例:

module top ( .....)
input....;
output....;
defparam U1 . Para1 = 10 ;
M1 U1 (..........);
endmodule
module M1(....);
parameter para1 = 5 ;
input...;
output...;
......
endmodule

  在上例中,模塊M1參數 para1 的缺省值為5,而模塊top實例了M1后將參數的值改為10。

  2) 實例化時傳遞參數

  在這種方法中,實例化時把參數傳遞進去,如下例所示:

module top ( .....)
input....;
output....;
M1 #( 10 ) U1 (..........);
endmodule

  在該例中,用#( 10 )修改了上例中的參數para1,當有多個參數時,用逗號隔開,如#( 10 , 5 ,

  3 )傳遞了3個參數值。

  模塊參數的方法使得模塊的重用性更強,當需要在同一個設計中多次實例化同樣的模塊,只是參數值不同時,就可以采用模塊參數的方式,而不必只因為參數不同產生了多個文件。

?

引用:

利用defparam定義參數聲明語句!
defparam 例化模塊名.參數名1 = 常數表達式,
例化模塊名.參數名2 = 常數表達式, ……;
格式
defparam語句在編譯時可重新定義參數值.
可綜合性問題:一般情況下是不可綜合的.
提示:不要使用defparam語句!在模塊的實例引用時可用"#"號后跟參數的語法來重新定義參數.

[例]
module mod ( out, ina, inb);

parameter cycle = 8, real_constant = 2.039,
file = "/user1/jmdong/design/mem_file.dat";

endmodule
module test;

mod mk(out,ina,inb); // 對模塊mod的實例引用
defparam mk.cycle = 6, mk.file = "../my_mem.dat"; // 參數的傳遞

endmodule

5 模塊實例引用時參數的傳遞——方法之二:利用特殊符號"#"
[例]
module mod ( out, ina, inb);

parameter cycle = 8, real_constant = 2.039,
file = "/user1/jmdong/design/mem_file.dat";

endmodule
module test;

mod # (5, 3.20, "../my_mem.dat") mk(out,ina,inb); // 對模塊mod的實例引用

endmodule
被引用模塊
參數的傳遞
必須與被引用模塊中的參數一一對應!
建議用此方法!
被引用模塊名 # (參數1,參數2,…)例化模塊名(端口列表);

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的defparam的语法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。