日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          Verilog門(mén)電平模型化

          作者: 時(shí)間:2017-06-06 來(lái)源:網(wǎng)絡(luò) 收藏

          下面講述 Verilog HDL為的能力,包括可以使用的內(nèi)置基本門(mén)和如何使用它們來(lái)進(jìn)行。

          1 內(nèi)置基本門(mén)

             Verilog HDL中提供下列內(nèi)置基本門(mén):
             1) 多輸入門(mén):

          and, nand,or, nor,xor,xnor

             2) 多輸出門(mén):

          buf, not

             3) 三態(tài)門(mén):

          bufif0, bufif1, notif0,notif1

             4) 上拉、下拉電阻:

          pullup, pulldown

             5) MOS開(kāi)關(guān):

          cmos, nmos, pmos, rcmos, rnmos, rpmos

             6) 雙向開(kāi)關(guān):

          tran,tranif0, tranif1, rtran, rtranif0, rtranif1

             門(mén)級(jí)邏輯設(shè)計(jì)描述中可使用具體的門(mén)實(shí)例語(yǔ)句。下面是簡(jiǎn)單的門(mén)實(shí)例語(yǔ)句的格式。

          gate_type[instance_name] (term1, term2, . . . ,termN);

          注意,instance_name是可選的;gate_type為前面列出的某種門(mén)類型。各term用于表示與門(mén)的輸入/輸出端口相連的線網(wǎng)或寄存器。

             同一門(mén)類型的多個(gè)實(shí)例能夠在一個(gè)結(jié)構(gòu)形式中定義。語(yǔ)法如下:

          gate_type
          [instance_name1] (term11, term12, . . .,term1N),
          [instance_name2] (term21, term22, . . .,term2N),
          . . .
          [instance_nameM] (termM1, termM2, . . .,termMN);

          2 多輸入門(mén)

             內(nèi)置的多輸入門(mén)如下:

          and nand nor or xor xnor

             這些邏輯門(mén)只有單個(gè)輸出,1個(gè)或多個(gè)輸入。多輸入門(mén)實(shí)例語(yǔ)句的語(yǔ)法如下:

          multiple_input_gate_type
          [instance_name] (OutputA, Input1, Input2, . . .,InputN);

          第一個(gè)端口是輸出,其它端口是輸入。

             下面是幾個(gè)具體實(shí)例。

          and A1(Out1, In1, In2);

          and RBX (Sty, Rib, Bro, Qit, Fix);

          xor (Bar, Bud[0],Bud[1], Bud[2]),
          (Car, Cut[0], Cut[1]),
          (Sar, Sut[2], Sut[1], Sut[0], Sut[3]);

             第一個(gè)門(mén)實(shí)例語(yǔ)句是單元名為A1、輸出為Out1、并帶有兩個(gè)輸入In1和In2的兩輸入與門(mén)。第二個(gè)門(mén)實(shí)例語(yǔ)句是四輸入與門(mén),單元名為RBX,輸出為Sty,4個(gè)輸入為Rib、Bro、Qit和Fix。第三個(gè)門(mén)實(shí)例語(yǔ)句是異或門(mén)的具體實(shí)例,沒(méi)有單元名。它的輸出是Bar,三個(gè)輸入分別為Bud[0]、Bud[1]和Bud[2]。同時(shí),這一個(gè)實(shí)例語(yǔ)句中還有兩個(gè)相同類型的單元。

          3 多輸出門(mén)

             多輸出門(mén)有:

          buf not

             這些門(mén)都只有單個(gè)輸入,一個(gè)或多個(gè)輸出。這些門(mén)的實(shí)例語(yǔ)句的基本語(yǔ)法如下:

          multiple_output_gate_type
          [instance_name] (Out1, Out2, . . . OutN ,InputA);
          最后的端口是輸入端口,其余的所有端口為輸出端口。
             例如:

          buf B1 (Fan [0],F(xiàn)an [1],F(xiàn)an [2],F(xiàn)an [3],Clk);
          not N1 (PhA,PhB,Ready);

          在第一個(gè)門(mén)實(shí)例語(yǔ)句中,Clk是緩沖門(mén)的輸入。門(mén)B1有4個(gè)輸出:Fan[0]到Fan[3]。在第二個(gè)門(mén)實(shí)例語(yǔ)句中,Ready是非門(mén)的唯一輸入端口。門(mén)N1有兩個(gè)輸出:PhA和PhB。

          4 三態(tài)門(mén)

             三態(tài)門(mén)有:

          bufif0 bufif1 notif0 notif1

          這些門(mén)用于對(duì)三態(tài)驅(qū)動(dòng)器建模。這些門(mén)有一個(gè)輸出、一個(gè)數(shù)據(jù)輸入和一個(gè)控制輸入。三態(tài)門(mén)實(shí)例語(yǔ)句的基本語(yǔ)法如下:

          tristate_gate[instance_name] (OutputA, InputB,ControlC);

             第一個(gè)端口OutputA是輸出端口,第二個(gè)端口InputB是數(shù)據(jù)輸入,ControlC是控制輸入。根據(jù)控制輸入,輸出可被驅(qū)動(dòng)到高阻狀態(tài),即值z(mì)。對(duì)于bufif0,若通過(guò)控制輸入為1,則輸出為z;否則數(shù)據(jù)被傳輸至輸出端。對(duì)于bufif1,若控制輸入為0,則輸出為z。對(duì)于notif0,如果控制輸出為1,那么輸出為z;否則輸入數(shù)據(jù)值的非傳輸?shù)捷敵龆恕?duì)于notif1,若控制輸入為0;則輸出為z。
             例如:

          bufif1 BF1 (Dbus,MemData,Strobe);
          notif0 NT2 (Addr, Abus, Probe);
          當(dāng)Strobe為0時(shí),bufif1門(mén)BF1驅(qū)動(dòng)輸出Dbus為高阻;否則MemData被傳輸至Dbus。在第2個(gè)實(shí)例語(yǔ)句中,當(dāng)Probe為1時(shí),Addr為高阻;否則Abus的非傳輸?shù)紸ddr。

          5 上拉、下拉電阻

             上拉、下拉電阻有:

          pullup pulldown

             這類門(mén)設(shè)備沒(méi)有輸入只有輸出。上拉電阻將輸出置為1。下拉電阻將輸出置為0。門(mén)實(shí)例語(yǔ)句形式如下:

          pull_gate[instance_name] (OutputA);
          門(mén)實(shí)例的端口表只包含1個(gè)輸出。例如:
          pullup PUP (Pwr);
          此上拉電阻實(shí)例名為PUP,輸出Pwr置為高電平1。

          6 MOS開(kāi)關(guān)

             MOS開(kāi)關(guān)有:

          cmos pmos nmos rcmos rpmos rnmos

             這類門(mén)用來(lái)為單向開(kāi)關(guān)建模。即數(shù)據(jù)從輸入流向輸出,并且可以通過(guò)設(shè)置合適的控制輸入關(guān)閉數(shù)據(jù)流。
          pmos(p類型MOS管)、nmos(n類型MOS管),rnmos(r代表電阻)和rpmos開(kāi)關(guān)有一個(gè)輸出、一個(gè)輸入和一個(gè)控制輸入。實(shí)例的基本語(yǔ)法如下:

          gate_type[instance_name] (OutputA, InputB, ControlC);
          第一個(gè)端口為輸出,第二個(gè)端口是輸入,第三個(gè)端口是控制輸入端。如果nmos和rnmos開(kāi)關(guān)的控制輸入為0,pmos和rpmos開(kāi)關(guān)的控制為1,那么開(kāi)關(guān)關(guān)閉,即輸出為z;如果控制是1,輸入數(shù)據(jù)傳輸至輸出;如圖5-5所示。與nmos和pmos相比,rnmos和rpmos在輸入引線和輸出引線之間存在高阻抗(電阻)。因此當(dāng)數(shù)據(jù)從輸入傳輸至輸出時(shí),對(duì)于rpmos和rmos,存在數(shù)據(jù)信號(hào)強(qiáng)度衰減。信號(hào)強(qiáng)度將在第10章進(jìn)行講解。
             例如:

          pmos P1 (BigBus, SmallBus, GateControl);
          rnmos RN1 (ControlBit, ReadyBit, Hold);

             第一個(gè)實(shí)例為一個(gè)實(shí)例名為P1 的pmos開(kāi)關(guān)。開(kāi)關(guān)的輸入為SmallBus,輸出為BigBus,控制信號(hào)為GateControl。
             這兩個(gè)開(kāi)關(guān)實(shí)例語(yǔ)句的語(yǔ)法形式如下:

          (r)cmos [instance_name]
          (OutputA, InputB, Ncontrol, PControl);
          第一個(gè)端口為輸出端口,第二個(gè)端口為輸入端口,第三個(gè)端口為n通道控制輸入,第四個(gè)端口為是P通道控制輸入。cmos(rcmos)開(kāi)關(guān)行為與帶有公共輸入、輸出的pmos(rpmos)和nmos(rnmos)開(kāi)關(guān)組合十分相似。

          7 雙向開(kāi)關(guān)

             雙向開(kāi)關(guān)有:

          tran rtran tranif0 rtranif0 tranif1 rtranif1

          這些開(kāi)關(guān)是雙向的,即數(shù)據(jù)可以雙向流動(dòng),并且當(dāng)數(shù)據(jù)在開(kāi)關(guān)中傳播時(shí)沒(méi)有延時(shí)。后4個(gè)開(kāi)關(guān)能夠通過(guò)設(shè)置合適的控制信號(hào)來(lái)關(guān)閉。tran和rtran開(kāi)關(guān)不能被關(guān)閉。
             tran或rtran(tran 的高阻態(tài)版本)開(kāi)關(guān)實(shí)例語(yǔ)句的語(yǔ)法如下:

          (r)tran [instance_name] (SignalA, SignalB );

          端口表只有兩個(gè)端口,并且無(wú)條件地雙向流動(dòng),即從SignalA向SignalB,反之亦然。
             其它雙向開(kāi)關(guān)的實(shí)例語(yǔ)句的語(yǔ)法如下:

          gate_type[instance_name] (SignalA, SignalB, ControlC);

          前兩個(gè)端口是雙向端口,即數(shù)據(jù)從SignalA流向SignalB,反之亦然。第三個(gè)端口是控制信號(hào)。如果對(duì)tranif0和tranif0,ControlC是1;對(duì)tranif1和rtranif1,Controlc是0;那么禁止雙向數(shù)據(jù)流動(dòng)。對(duì)于rtran、rtranif0和rtranif1,當(dāng)信號(hào)通過(guò)開(kāi)關(guān)傳輸時(shí),信號(hào)強(qiáng)度減弱。

          本文引用地址:http://yuyingmama.com.cn/article/201706/349518.htm


          8 門(mén)時(shí)延

             可以使用門(mén)時(shí)延定義門(mén)從任何輸入到其輸出的信號(hào)傳輸時(shí)延。門(mén)時(shí)延可以在門(mén)自身實(shí)例語(yǔ)句中定義。帶有時(shí)延定義的門(mén)實(shí)例語(yǔ)句的語(yǔ)法如下:

          gate_type [delay][instance_name](terminal_list);

          時(shí)延規(guī)定了門(mén)時(shí)延,即從門(mén)的任意輸入到輸出的傳輸時(shí)延。當(dāng)沒(méi)有強(qiáng)調(diào)門(mén)時(shí)延時(shí),缺省的時(shí)延值為0。
             門(mén)時(shí)延由三類時(shí)延值組成:
             1) 上升時(shí)延
             2) 下降時(shí)延
             3) 截止時(shí)延
             門(mén)時(shí)延定義可以包含0個(gè)、1個(gè)、2個(gè)或3個(gè)時(shí)延值。下表為不同個(gè)數(shù)時(shí)延值說(shuō)明條件下,各種具體的時(shí)延取值情形。

          無(wú)時(shí)延 1個(gè)時(shí)延(d) 2個(gè)時(shí)延(d1, d2) 3個(gè)時(shí)延 (dA, dB, dC)
          上升 0 d d1 dA
          下降 0 d d2 dB
          to_x 0 d min① (d1, d2) min (dA, dB, dC)
          截止 0 d min (d1, d2) dC
          ① min 是minimum 的縮寫(xiě)詞。
             注意轉(zhuǎn)換到x的時(shí)延(to_x)不但被顯式地定義,還可以通過(guò)其它定義的值決定。
             下面是一些具體實(shí)例。注意Verilog HDL模型中的所有時(shí)延都以單位時(shí)間表示。單位時(shí)間與實(shí)際時(shí)間的關(guān)聯(lián)可以通過(guò)`timescale編譯器指令實(shí)現(xiàn)。在下面的實(shí)例中,

          not N1 (Qbar, Q);

          因?yàn)闆](méi)有定義時(shí)延,門(mén)時(shí)延為0。下面的門(mén)實(shí)例中,

          nand #6 (Out, In1, In2);

          所有時(shí)延均為6,即上升時(shí)延和下降時(shí)延都是6。因?yàn)檩敵鰶Q不會(huì)是高阻態(tài),截止時(shí)延不適用于與非門(mén)。轉(zhuǎn)換到x的時(shí)延也是6。

          and #(3,5) (Out, In1, In2, In3);

          在這個(gè)實(shí)例中,上升時(shí)延被定義為3,下降時(shí)延為5,轉(zhuǎn)換到x的時(shí)延是3和5中間的最小值,即3。在下面的實(shí)例中,

          notif1 #(2,8,6) (Dout, Din1, Din2);

          上升時(shí)延為2,下降時(shí)延為8,截止時(shí)延為6,轉(zhuǎn)換到x的時(shí)延是2、8和6中的最小值,即2。
             對(duì)多輸入門(mén)(例如與門(mén)和非門(mén))和多輸出門(mén)(緩沖門(mén)和非門(mén))總共只能夠定義2個(gè)時(shí)延(因?yàn)檩敵鰶Q不會(huì)是z)。三態(tài)門(mén)共有3個(gè)時(shí)延,并且上拉、下拉電阻實(shí)例門(mén)不能有任何時(shí)延。

          min:typ:max時(shí)延形式

          門(mén)延遲也可采用min:typ:max形式定義。形式如下:

          minimum: typical: maximum

             最小值、典型值和最大值必須是常數(shù)表達(dá)式。下面是在實(shí)例中使用這種形式的實(shí)例。

          nand #(2:3:4, 5:6:7) (Pout, Pin1, Pin2);

          選擇使用哪種時(shí)延通常作為模擬運(yùn)行中的一個(gè)選項(xiàng)。例如,如果執(zhí)行最大時(shí)延模擬,與非門(mén)單元使用上升時(shí)延4和下降時(shí)延7。
             程序塊也能夠定義門(mén)時(shí)延。

          9 實(shí)例數(shù)組

             當(dāng)需要重復(fù)性的實(shí)例時(shí),在實(shí)例描述語(yǔ)句中能夠有選擇地定義范圍說(shuō)明(范圍說(shuō)明也能夠在模塊實(shí)例語(yǔ)句中使用)。這種情況的門(mén)描述語(yǔ)句的語(yǔ)法如下:

          gate_type [delay]instance_name [leftbound:rightbound]
          (list_of_terminal_names);
          leftbound和rightbound值是任意的兩個(gè)常量表達(dá)式。左界不必大于右界,并且左、右界兩者都不必限定為0。示例如下。
          wire [3:0] Out, InA, InB;
          . . .
          nand Gang [3:0] (Out, InA, InB);
          帶有范圍說(shuō)明的實(shí)例語(yǔ)句與下述語(yǔ)句等價(jià):
          nand
          Gang3 (Out[3], InA[3], InB[3]),
          Gang2 (Out[2], InA[2], InB[2]),
          Gang1 (Out[1], InA[1], InB[1]),
          Gang0 (Out[0], InA[0], InB[0]);
          注意定義實(shí)例數(shù)組時(shí),實(shí)例名稱是不可選的。

          10 隱式線網(wǎng)

             如果在Verilog HDL模型中一個(gè)線網(wǎng)沒(méi)有被特別說(shuō)明,那么它被缺省聲明為1位線網(wǎng)。但是

          `default_nettype編譯指令能夠用于取代缺省線網(wǎng)類型。編譯指令格式如下:
          `default_nettype net_type
          例如:
          `default_nettype wand
          根據(jù)此編譯指令,所有后續(xù)未說(shuō)明的線網(wǎng)都是wand類型。
          `default_nettype編譯指令在模塊定義外出現(xiàn),并且在下一個(gè)相同編譯指令或`resetall編譯指令出現(xiàn)前一直有效。

          11 簡(jiǎn)單示例

             下面是4-1多路選擇電路的門(mén)級(jí)描述。注意因?yàn)閷?shí)例名是可選的(除用于實(shí)例數(shù)組情況外),在門(mén)實(shí)例語(yǔ)句中沒(méi)有指定實(shí)例名。

          module MUX4x1 (Z,D0,D1,D2,D3,S0,S1);
          output Z;
          input D0,D1,D2,D3,S0,S1;

          and (T0,D0,S0bar,S1bar),
          (T1,D1,S0bar,S1),
          (T2,D2,S0,S1bar),
          (T3,D3,S0,S1),

          not (S0bar,S0),
          (S1bar,S1);

          or (Z,T0,T1,T2,T3,);
          endmodule
          如果或門(mén)實(shí)例由下列的實(shí)例代替呢?
          or Z (Z,T0,T1,T2,T3); //非法的Verilog HDL表達(dá)式。
             注意實(shí)例名還是Z,并且連接到實(shí)例輸出的線網(wǎng)也是Z。這種情況在Verilog HDL中是不允許的。在同一模塊中,實(shí)例名不能與線網(wǎng)名相同。

          12 2-4解碼器舉例

             2-4解碼器電路的門(mén)級(jí)描述如下:

          module DEC2×4 (A,B,Enable,Z);
          input A,B,Enable;
          output [0:3] Z;
          wire Abar, Bbar;

          not # (1,2)
          V0 (Abar,A),
          V1(Bbar, B);

          nand # (4,3)
          N0 (Z[3], Enable, A,B),
          N1 (Z[0], Enable, Abar,Bbar),
          N2 (Z[1], Enable, Abar,B),
          N3 (Z[2], Enable, A,Bbar),
          endmodule

          13 主從觸發(fā)器舉例

             主從D觸發(fā)器的門(mén)級(jí)描述如下:

          module MSDFF (D,C,Q,Qbar);
          input D,C;
          output Q,Qbar;

          not
          NT1 (NotD,D),
          NT2 (NotC,C),
          NT3 (NotY,Y);

          nand
          ND1 (D1,D,C),
          ND2 (D2,C,NotD),
          ND3 (Y,D1,Ybar),
          ND4 (Ybar,Y,D2),
          ND5 (Y1,Y,NotC),
          ND6 (Y2,NotY,NotC),
          ND7 (Q,Qbar,Y1),
          ND8 (Qbar,Y2,Q);
          endmodule

          14 奇偶電路

             9位奇偶發(fā)生器門(mén)級(jí)模型描述如下:

          module Parity_9_Bit (D, Even,Odd);
          input [0:8] D;
          output Even, Odd;
          xor # (5,4)
          XE0 (E0,D[0],D[1]),
          XE1 (E1,D[2],D[3]),
          XE2 (E2,D[4],D[5]),
          XE3 (E3,D[6],D[7]),
          XF0 (F0,E0,E1),
          XF1 (F1,E2,E3),
          XH0 (H0,F0,F1),
          XEVEN (Even, D[8], H0);
          not #2
          XODD (Odd, Even);
          endmodule



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉