Verilog基礎 門級建模

2021-05-23 18:36:07 字數 1688 閱讀 1159

與門(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,...