標題: Verilog基本語法—模塊 [打印本頁]

作者: zxopenljx    時間: 2020-12-21 22:16
標題: Verilog基本語法—模塊
模塊特點
Verilog HDL程序是由模塊構成的。每個模塊的內容都是嵌在module和endmodule兩個語句之間。每個模塊實現(xiàn)特定的功能。模塊可以進行層次嵌套。

每個模塊要進行端口定義,并說明輸入輸出口,然后對模塊的功能進行行為邏輯描述。

Verilog HDL程序的書寫格式自由,一行可以寫幾個語句,一個語句也可以分寫多行。

除了endmodule語句外,每個語句和數(shù)據(jù)定義的最后必須有分號。

可以用/…../和//…….對Verilog HDL程序的任何部分作注釋。一個好的,有使
用價值的源程序都應當加上必要的注釋,以增強程序的可讀性和可維護性。

模塊的結構
module <模塊名> (<端口列表>)
<I/O說明>
<內部信號聲明>
<功能定義>
endmodule
1
2
3
4
5
模塊的端口定義:
模塊的端口聲明了模塊的輸入輸出口。格式:

module 模塊名(口1,口2,口3,口4,......)
1
模塊的內容:
I/O說明
輸入口(input 端口名1,端口名2,……端口名n)

輸出口(output 端口名1,端口名2,……端口名n)

I/O\說明也可以卸載端口聲明語句中: module module_name(input port1,input port2,…output port1,output port2…)

內部信號說明
在模塊內用到的和與端口有關的wire和reg變量的聲明,比如:reg[width-1:0] R1,R2…; wire[width-1:0] W1,W2…

 功能定義
模塊中最重要的部分是邏輯功能定義部分。有三種方法可在模塊中產生邏輯:

用“assign”聲明語句
“assign”,后面再加一個方程式即可

assign a = b & c;//兩個輸入的與門
1
“assign”語句是描述組合邏輯最常用的方法之一

用實例元件
and and_inst( q, a, b );
1
采用實例元件的方法象在電路圖輸入方式下,調入庫元件一樣。鍵入元件的名字和相連的引腳即可,
表示在設計中用到一個跟與門(and)一樣的名為and_inst的與門,其輸入端為a, b,輸出為q。要求
每個實例元件的名字必須是唯一的,以避免與其他調用與門(and) 的實例混淆。

用“always”塊
always @(posedge clk or posedge clr)
begin
if(clr) q <= 0;
else if(en) q <= d;
end
//帶有異步清除端的D觸發(fā)器
1
2
3
4
5
6
“always”塊既可用于描述組合邏輯也可
描述時序邏輯.“always”模塊內,邏輯是按照指定的順序執(zhí)行的,兩個或更多的“always”模塊也是同時執(zhí)行的,但是模塊內部的語
句是順序執(zhí)行的






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1