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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Verilog HDL中模块参数传递的方法

發布時間:2023/12/2 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Verilog HDL中模块参数传递的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、參數傳遞
  • 二、參數傳遞方法
    • 1.方法一
    • 2.方法二
    • 3.方法三
  • 總結


前言

“parameter”是Verilog HDL中的一個關鍵字,代表著參數型常量,即用parameter來定義一個標識符代表一個常量,這樣可以提高程序的可讀性與可維護性。

例如:
parameter max_time = 10; //定義參數max_time為常量10

參數型常量在Verilog HDL中通常用來定義時間延遲和數據位寬。


一、參數傳遞

一方面,對于一個Verilog HDL模塊而言,在實際中可能時間常量需要設置一個相對較大的值,這樣才能符合設計預期,但是如果我們在仿真中依舊采用這樣一個較大的值會導致仿真時間過長,耽誤開發速度,因此可以仿真平臺中(Testbench)利用參數傳遞改變底層模塊中所設置的時間參數。
另一方面,如果我們在另一個模塊中例化我們已經有的模塊,但是又希望更改其中的一些參數值,這時利用參數傳遞就能很便捷地、靈活地通過頂層對底層的參數值進行更改。

二、參數傳遞方法

1.方法一

方法一是通過在例化過程中使用#(A)進行參數的傳遞。

例如:

module T( //模塊一,底層。a,b,c);......parameter Width = 6, mem_num = 3;...... endmodulemodule Y( //模塊二,頂層。d,e,f);......T #(5,7) T_inst0( //這樣的話Width=5,mem_num =7;.a(),.b(),.c());...... endmodule

2.方法二

方法二是頂層在在例化時,在例化模塊名前使用#(.(參數1),.(參數2))

例如:

module T( //模塊一,底層。a,b,c);......parameter Width = 6, mem_num = 3;...... endmodulemodule Y( //模塊二,頂層。d,e,f);......T #(.Width(5) ,.mem_num(7)) T_inst0( //這樣的話Width=5,mem_num =7;.a(),.b(),.c());...... endmodule

3.方法三

當在多個層次的模塊中改變參數,就可以用”defparam“關鍵字。

例如:

module T( //模塊一,底層。a,b,c);......parameter Width = 6, mem_num = 3;...... endmodulemodule Y( //模塊二,頂層。d,e,f);......T T_inst0( .a(),.b(),.c());defparam T_inst0.Width = 5;defparam T_inst0.mem_num = 7;//這樣的話Width=5,mem_num =7;...... endmodule

總結

以上就是在Verilog HDL程序設計中,相對都層次模塊中的參數進行改變時可以用到的參數傳遞方法。

總結

以上是生活随笔為你收集整理的Verilog HDL中模块参数传递的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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