與門(and)和或門(or):
與門、或門都有乙個標量輸出端和多個標量輸入端。門的埠列表中的第乙個埠必是輸出埠,其後為輸入埠。當任意乙個輸入埠的值發生變化時,輸出端的值立即重新計算。
verilog中可以使用的屬於與/或門類的術語包括:
and nand or nor xor xnor
例:與門/或門的例項引用
wire out,in1,in2;
and a1(out,in1,in2); //基本門的例項引用
nand na1_3inp(out,in1,in2,in3); //輸入端超過兩個,三輸入與非門
and (out,in1,in2); //合法的門例項引用,不給例項命名
緩衝器/非門
與and/or門相反,buf/not門具有乙個標量輸入和多個標量輸出。埠列表中的最後乙個終端連線至輸入埠,其他終端連線至輸出埠。對於多個輸出端的buf/not門,所有輸出端的值都是相同的。
verilog提供了兩種基本的門: buf not
在verilog中可以例項引用這些門,注意:buf和not門可以具有多個輸出埠,但只能具有乙個輸入埠,這個輸入埠必須是例項埠列表的最後乙個。例:
buf b1(out1,in); //基本門的例項引用
not n1(out1,in);
buf b1_2out(out1,out2,in); //輸出端多於兩個
not (out1,in); //例項引用門時,不給例項命名
帶控制端的緩衝器/非門(bufif/notif)
bufif1 bufif0 notif1 notif0
這四類門只有在控制訊號有效的情況下才能傳遞資料;如果控制訊號無效,則輸出為高阻抗z。
bufif1 b0(out,in,ctrl);
在控制訊號有效的情況下,這些門才能傳遞訊號。在某些情況下,例如當乙個訊號由多個驅動源驅動時,這樣設計驅動源:讓它們的控制訊號的有效時間相互錯開,從而避免一條訊號線同時被兩個源驅動,這時就需要用帶控制端的緩衝器/非門來搭建電路。
門延遲
verilog中允許使用者通過門延遲來說明邏輯電路中的延遲,此外使用者還可以指定端到端的延遲。
在verilog門級原語中,有三種從輸入到輸出的延遲。
1 上公升延遲:在門的輸入發生變化的情況下,門的輸出從0,x,z變化到1所需的時間成為上公升延遲。
2 下降延遲:下降延遲是指門的輸出從1,x,z變化到0所需的時間。
3 關斷延遲:門的輸出從0,1,x變化為高阻z所需的時間。
另外,如果值變化到不確定值x,則所需的時間可以看成是以上三種延遲值中最小的那個。
verilog中有三種不同的方法來說明門的延遲。如果使用者只確定了乙個延遲值,那麼所有型別的延遲都是用這個延遲值,如果使用者指定了兩個延遲值,則他們分別代表上公升延遲和下降延遲,兩者中小者為關斷延遲,如果使用者指定了三個延遲值,則他們分別代表上公升延遲、下降延遲和關斷延遲。如果為制定延遲值,那麼預設延遲值為0.
延遲宣告的例子
and #(3,4,5) b1 (out,in,control); //上公升延遲為3,下降延遲為4,關斷延遲為5
最小/典型/最大延遲
verilog中,使用者除可以指定上面所述的三種型別的延遲以外,對每種型別的延遲還可以指定其最小值、最大值和典型值。
數位電路設計之verilog的門級描述
使用verilog的數位電路設計,一般會有電晶體級的描述 門級描述 rtl 行為描述。我們接觸得比較多的就是後面兩種,前兩種更少涉及。現在就說一下門級描述吧!門級描述就是使用各種邏輯門對組合邏輯進行描述。舉個栗子 與或非門 這裡的and,or等都是verilog的原語,原語有點像c語言的函式。mod...
行為級 RTL級 門級
行為級 行為級是rtl級的上一層。最符合人類思維的描述方式。主要用於快速驗證演算法的正確性,不關注電路的具體結構,不一定可以綜合成實際電路結構。注重演算法。以直接賦值的形式進行,只關注結果。常採用大量運算,延遲等無法綜合的語句。其目的不在於綜合,而在於演算法。rtl級 使用暫存器這一級別的描述方式來...
Verilog基本語法 原語篇(Gate門)
verilog中已有一些建立好的邏輯門和開關的模型。在所涉及的模組中,可通過例項引用這些門與開關模型,從而對模組進行結構化的描述。and output,input,nand output,input,or output,input,nor output,input,xor output,input,...