1 / 14

第 四 章 模組與輸出入阜 (Modules and Ports)

第 四 章 模組與輸出入阜 (Modules and Ports). 4.1 模組 (Modules). 模組名稱 阜列表、阜的型態宣告 ( 如果有的話 ) 、參數(選擇性的). 接線 wire 、暫存器 reg 以及 其他變數的宣告. 資料處理的敘述. always 及 initial 區塊所有的行 為模式敘述都定義在這些區塊. 低階層次模組的別名取用. 任務及函數. endmodule statement. 圖 4-1 Verilog 模組的組成元件.

nat
Download Presentation

第 四 章 模組與輸出入阜 (Modules and Ports)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 四 章 模組與輸出入阜 (Modules and Ports)

  2. 4.1 模組(Modules) 模組名稱 阜列表、阜的型態宣告(如果有的話)、參數(選擇性的) 接線wire、暫存器reg以及 其他變數的宣告 資料處理的敘述 always及initial區塊所有的行 為模式敘述都定義在這些區塊 低階層次模組的別名取用 任務及函數 endmodule statement 圖4-1 Verilog 模組的組成元件 一個模組定義的開頭,一定是關鍵字module,接下來是模組的名稱、輸出入埠的列表、輸出入埠的型態宣告,接著可能是選擇性使用的參數列表(parameter)。 圖4-1其他的五個部份包括: 變數的宣告、資料處理的敘述、取用低階層次模組的別名 、行為模式方塊,與任務或是函數。

  3. Sbar (set) n1 Q Rbar (reset) Qbar n1 圖 4-2 SR閂 下圖4-2為SR閂(SR latch)來說明圖4-1的各個部份。 SR閂有S與R兩個輸入埠,和Q與Qbar兩個輸出埠,SR閂與模擬 如下範例。

  4. 範例4-1 SR閂的各個部份 //模組名稱為SR_latch module SR_latch(Q,Qbar,Sbar,Rbar); //埠的宣告 output Q,Qbar; input Sbar,Rbar; //取用低階層次模組的別名 //注意訊號線連接方式 nand n1(Q,Sbar,Qbar); nand n2(Qbar,Rbar,Q); //關鍵字endmodule endmodule //模組名稱與輸出入埠的列表 //觸發模組

  5. module Top; //宣告wire reg與其他變數 wire q,qbar; reg set,reset; //取用低階層次模組別名 SR_latch m1(q,qbar,et,eset); //行為處理模式initial initial begin $monitor($time,”set=%b,reset=%b,q=%b\n”,set,reset,q); set = 0 ; reset = 0 ; #5 reset = 1; #5 reset = 0; #5 set = 1; end //關鍵字endmodule endmodule

  6. 4.2 輸出入埠(Ports) Top full adder (4-bit) fulladd4 a sum b c_out c_in 圖4-3 Top與全加器模組別名的輸出與輸入埠 module fulladd4(sum,c_out, a,b,c_in) ; //有輸出入埠列表的模組 odule Top; //沒有輸出入埠的列表的模組,通常用在模擬區塊 輸出入埠提供一個模組與外界溝通的介面,好比一個晶片的 輸出、輸入腳一樣。圖4-3所顯示是一個在Top模組中定義一 個取用四位元加法器模組的別名。

  7. 4.2.2 埠的宣告(Port Declaration) 埠的宣告有下列幾種類別:

  8. 4-2 4-bit 加法器的輸出埠宣告如範例4-3中所示: 範例4-3 埠的宣告 module fulladd4(sum,c_out,a,b,c_in); //開始宣告埠 output [3:0] sum; output c_cout; input [3:0]a,b; input c_in; //結束埠的宣告 … <module internals> … endmodule

  9. 4.2.3 輸出入埠的連接規定(Port Connection Rules) 圖4-4 輸出入埠的相連規定

  10. 引用範例4-3 fulladd4模組的別名,如下所示: 範例4-6 非法的輸出入埠連結 module top; //宣告連接用的變數 reg [3:0] a,b ; reg c_in ; reg [3:0] sum ; wire c_out; //引用模組fulladd4 並取別名為 fa0 fulladd4 fa0(SUM,C_OUT,A,B,C_IN); //這是一個非法的連結,因為模組fulladd4的輸出埠連接 //到一個型態為reg的 SUM 變數上。 . . <stimulus> . . endmodule

  11. 4.2.4 輸出入埠與外部訊號連接的方法(Connecting Ports to External Signals) 範例4-7引用範例4-3定義的fulladd4模組的別名。 範例4-7依照輸出入阜的列表順序連接 module top; //宣告用來連接的變數 reg [3:0] A,B; reg C_IN; Wire [3:0] SUM; Wire C_OUT; //引用模組fulladd4 並取別名為 fa_ordered/訊號依照輸 //出入阜的列表宣告的順序連接 fulladd4 fa_ordered (SUM,C_OUT,A,B,C_IN); … <stimulus> …

  12. endmodule module fulladd4(sum,c_out,a,b,c_in); output [3:0] sum; output c_cout; input [3:0] a,b; input c_in; … <module internals> … endmodule

  13. 4.3 Hierarchical Names

  14. 4.4 總結(Summary) 模組定義包含以下各個部份,其中關鍵字module與endmodule 和模組名稱是一定要的,其餘的部份包含有: • 輸出入埠的列表 • 埠的宣告 • 變數與訊號的宣告 • 資料處理敘述 • 行為模式區塊 • 低階層次模組的引用 • 任務或是函數

More Related