版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
上節(jié)回顧塊語句語句塊提供將兩條或更多條語句組合成語法結(jié)構(gòu)上相當(dāng)于一條語句的機(jī)制。在VerilogHDL中有兩類語句塊,即:
順序語句塊(begin...end):語句塊中的語句按給定次序順序執(zhí)行。
并行語句塊(fork...join):語句塊中的語句并行執(zhí)行。語句塊的標(biāo)識(shí)符是可選的,如果有標(biāo)識(shí)符,寄存器變量可在語句塊內(nèi)部聲明。帶標(biāo)識(shí)符的語句塊可被引用編譯預(yù)處理Verilog-HDL語言中有幾種特殊命令,編譯系統(tǒng)先對(duì)這些特殊命令進(jìn)行“預(yù)處理”,然后將預(yù)處理的結(jié)果和源程序一起進(jìn)行通常的編譯處理。這些預(yù)處理命令:以重音符號(hào)ˋ開頭行末尾不加分號(hào)常用預(yù)處理命令:
`include/`define,`undef/`timescale/`ifdef,`else,`endif/`default_nettype`resetall/
`unconnected_drive,`nounconnected_drive`celldefine,`endcelldefine1)編寫一模塊test1,生成如下波形2)編寫一模塊test2,生成一個(gè)周期為20的時(shí)鐘信號(hào)VerilogHDL的描述方式結(jié)構(gòu)描述
12行為描述3混合描述4數(shù)據(jù)流描述一、結(jié)構(gòu)描述在Verilog程序中可通過如下方式描述電路的結(jié)構(gòu)◆調(diào)用Verilog內(nèi)置門元件(門級(jí)結(jié)構(gòu)描述)◆調(diào)用開關(guān)級(jí)元件(晶體管級(jí)結(jié)構(gòu)描述)◆用戶自定義元件UDP(也在門級(jí))1、門級(jí)結(jié)構(gòu)描述moduleaddbit(a,b,ci,sum,co);inputa,b,ci;outputsum,co;wirea,b,ci,sum,co,n1,n2,n3;
xor(n1,a,b,);xor(sum,n1,ci);and(n2,a,b);and(n3,n1,ci);or(co,n2,n3);endmodule
由一些Verilog原型列出結(jié)構(gòu)化的元件并按網(wǎng)表連接1.1內(nèi)置的基本門VerilogHDL為門級(jí)電路建模的能力提供下列內(nèi)置基本門:多輸入門:and,nand,or,nor,xor,xnor
多輸出門:buf,not
三態(tài)門:bufif0,bufif1,notif0,notif1
上拉、下拉電阻:pullup,pulldownMOS開關(guān):cmos,nmos,pmos,rcmos,rnmos,rpmos
雙向開關(guān):tran,tranif0,tranif1,rtran,rtranif0,rtranif1門級(jí)結(jié)構(gòu)建模語法語句形式gate_type[instance_name](term1,term2,...,termN);注意,instance_name是可選的;gate_type為前面列出的某種門類型。各term用于表示與門的輸入/輸出端口相連的線網(wǎng)或寄存器.同一門類型的多個(gè)實(shí)例能夠在一個(gè)結(jié)構(gòu)形式中定義gate_type[instance_name1](term1,term2,...,termN),
[instance_name2](term1,term2,...,termN),
[instance_name3](term1,term2,...,termN),
[instance_name4](term1,term2,...,termN);1.2
多輸入門內(nèi)置的多輸入門包括:andnandnororxor
xnor這些邏輯門只有單個(gè)輸出,1個(gè)或多個(gè)輸入。門實(shí)例語句的語法如:multi_input_gate_type[instance_name](OutputA,Input1,Input2,...,InputN);第一個(gè)端口是輸出,其它端口是輸入input1多輸入門input2inputNOutputA多輸入門語法舉例andA1(Out1,In1,In2);andRBX(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]);多輸入門的真值表(一)nand01XZ01111110XXX1XXXZ1XXXand01XZ00000101XXX0XXXZ0XXX多輸入門的真值表(二)nor01XZ010XX10000XX0XXZX0XXor01XZ001XX11111XX1XXZX1XX多輸入門的真值表(三)xnor01XZ010XX101XXXXXXXZXXXXxor01XZ001XX110XXXXXXXZXXXX1.3多輸出門多輸出門有:bufnot這些門都只有單個(gè)輸入,一個(gè)或多個(gè)輸出。多輸出門的實(shí)例語句的基本語法如:multi_output_gate_type[instance_name](Out1,Out2,...OutN,InputA);多輸出門output1output2outputNInputA多輸出門語法舉例buf
B1(Fan[0],F(xiàn)an[1],F(xiàn)an[2],F(xiàn)an[3],Clk);notN1(PhA,PhB,Ready);真值表01XZbuf01XXnot10XX1.4三態(tài)門三態(tài)門有:bufif0bufif1notif0notif1這些門用于對(duì)三態(tài)驅(qū)動(dòng)器建模。這些門有一個(gè)輸出、一個(gè)數(shù)據(jù)輸入和一個(gè)控制輸入。三態(tài)門實(shí)例語句的基本語法如下:
tristate_gate[instance_name](OutputA,InputB,ControlC);第一個(gè)端口OutputA是輸出端口,第二個(gè)端口InputB是數(shù)據(jù)輸入,ControlC是控制輸入。inputAoutputAControlC三態(tài)門三態(tài)門的真值表bufif0控制信號(hào)01XZ數(shù)據(jù)輸入00Z0/z0/z11Z1/z1/zXXZXxZXZXxbufif1控制信號(hào)01XZ數(shù)據(jù)輸入0Z00/z0/z1Z11/z1/zXZXXxZZXXxnotif0控制信號(hào)01XZ數(shù)據(jù)輸入01Z1/z1/z10Z0/z0/zXXZXxZXZXxnotif1控制信號(hào)01XZ數(shù)據(jù)輸入0Z11/z1/z1Z00/z0/zXZXXxZZXXx門級(jí)結(jié)構(gòu)建模例題module
flop(data,clock,clear,q,qb);input
data,clock,clear;output
q,qb;nand
#10 nd1(a,data,clock,clear),nd2(b,ndata,clock),nd4(d,c,b,clear),nd5(e,c,nclock),nd6(f,d,nclock),nd8(qb,q,f,clear);nand
#9nd3(c,a,d),nd7(q,e,qb);not
#10 iv1(ndata,data),iv2(nclock,clock);endmodule課堂練習(xí)用verilog的內(nèi)置基本門結(jié)構(gòu)建模以下電路參考答案moduleParity_9_Bit(D,Even,Odd);input[0:8]D;outputEven,Odd;xor
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);notXODD(Odd,Even);endmodule門級(jí)描述的特點(diǎn):1.一個(gè)邏輯網(wǎng)絡(luò)是由許多邏輯門和開關(guān)所組成,因此用邏輯門的模型來描述邏輯網(wǎng)絡(luò)是最直觀的。2.不易得出模塊邏輯功能。1.5其他門級(jí)模型其他門級(jí)模型包括上拉、下拉電阻:pullup,pulldownMOS開關(guān):cmos,nmos,pmos,rcmos,rnmos,rpmos
雙向開關(guān):tran,tranif0,tranif1,rtran,rtranif0,rtranif1上拉、下拉電阻pullup,pulldown,這類門設(shè)備沒有輸入只有輸出。上拉電阻將輸出置為1。下拉電阻將輸出置為0。門實(shí)例的端口表只包含1個(gè)輸出。例如:pullupPUP(SCL);此上拉電阻實(shí)例名為PUP,輸出Pwr置為高電平1。MOS開關(guān)這類門用來為單向開關(guān)建模。即數(shù)據(jù)從輸入流向輸出,并且可以通過設(shè)置合適的控制輸入關(guān)閉數(shù)據(jù)流。pmos(p類型MOS管)、nmos(n類型MOS管),rnmos(r代表電阻)和rpmos開關(guān)有一個(gè)輸出、一個(gè)輸入和一個(gè)控制輸入,例如:rnmosRN1(ControlBit,ReadyBit,Hold);cmos(mos互補(bǔ))和rcmos(cmos的高阻態(tài)版本)開關(guān)有一個(gè)數(shù)據(jù)輸出,一個(gè)數(shù)據(jù)輸入和兩個(gè)控制輸入。例如:(r)cmos
[instance_name](OutputA,InputB,NControl,PControl);rnmos、rpmos、驅(qū)動(dòng)強(qiáng)度rnmos和
rpmos在輸入引線和輸出引線之間存在高阻抗(電阻)。因此當(dāng)數(shù)據(jù)從輸入傳輸至輸出時(shí),對(duì)于rpmos和rnmos,存在數(shù)據(jù)信號(hào)強(qiáng)度衰減。值1強(qiáng)度supply1>strong1>pull1>weak1>highz1值0強(qiáng)度supply0>strong0>pull0>weak0>highz0雙向開關(guān)雙向開關(guān):tran,tranif0,tranif1,rtran,rtranif0,rtranif1開關(guān)是雙向的,即數(shù)據(jù)可以雙向流動(dòng),并且當(dāng)數(shù)據(jù)在開關(guān)中傳播時(shí)沒有延時(shí)。后4個(gè)開關(guān)能夠通過設(shè)置合適的控制信號(hào)來關(guān)閉。tran和rtran(tran的高阻態(tài)版本)開關(guān)不能被關(guān)閉。gate_type[instance_name](SignalA,SignalB,ControlC);前兩個(gè)端口是雙向端口,即數(shù)據(jù)從SignalA流向SignalB,反之亦然。第三個(gè)端口是控制信號(hào)。根據(jù)開關(guān)例化的選擇有控制信號(hào)或者沒有控制信號(hào)。1.6門的延時(shí)可以使用門時(shí)延定義門從任何輸入到其輸出的信號(hào)傳輸時(shí)延。門時(shí)延可以在門自身實(shí)例語句中定義。帶有時(shí)延定義的門實(shí)例語句的語法如下:
gate_type[delay][instance_name](terminal_list);時(shí)延規(guī)定了門時(shí)延,即從門的任意輸入到輸出的傳輸時(shí)延。當(dāng)沒有強(qiáng)調(diào)門時(shí)延時(shí),缺省的時(shí)延值為0。門時(shí)延由三類時(shí)延值組成:上升時(shí)延下降時(shí)延截止時(shí)延門時(shí)延定義個(gè)數(shù)0個(gè)時(shí)延1個(gè)時(shí)延2個(gè)時(shí)延3個(gè)時(shí)延上升0dd1d1下降0dd2d2to_X0dmin(d1,d2)min(d1,d2,d3)截止0dmin(d1,d2)d3門時(shí)延由三類時(shí)延值組成:上升時(shí)延,下降時(shí)延,截止時(shí)延門時(shí)延定義可以包含0個(gè)、1個(gè)、2個(gè)或3個(gè)時(shí)延值。門時(shí)延舉例notN1(Qbar,Q);//門時(shí)延為0nand
#6(Out,In1,In2);//所有時(shí)延均為6,即上升和下降時(shí)延都是6and#(3,5)(Out,In1,In2,In3);notif1#(2,8,6)(Dout,Din1,Din2);//上升時(shí)延為2,下降時(shí)延為8,截止時(shí)延為6,轉(zhuǎn)換到x的時(shí)延是2、8和6中的最小值,即2。門延遲也可采用min:type:max形式定義。最小值、典型值和最大值必須是常數(shù)表達(dá)式。例如:and#(2:3:4,5:6:7)(Pout,Pin1,Pin2);如要更精確定義門延時(shí),可用specify語句定義從特定的輸入到輸出端的各種延時(shí).1.7矢量線網(wǎng)用于門結(jié)構(gòu)描述當(dāng)需要進(jìn)行多次實(shí)例引用時(shí),在實(shí)例描述語句中能夠有選擇地定義范圍說明,以便自動(dòng)生成多個(gè)重復(fù)的實(shí)例。wire[3:0]Out,InA,InB;nand
Gang[3:0](Out,InA,InB);實(shí)例化時(shí)自動(dòng)以相同的標(biāo)號(hào)對(duì)齊。等價(jià)于nandGang3(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]);注意:當(dāng)指定實(shí)例數(shù)組時(shí),必須明確定義實(shí)例名。例:parameterNUM=4;
wire[NUM-1:0]gate,in; wirebypass; and#(1,2)u0and[NUM-1:0](gate,in,bypass);注意:bypass是一個(gè)標(biāo)量。這種情況下,該標(biāo)量扇出(連接)到所有實(shí)例的端口。門級(jí)結(jié)構(gòu)建模例題`timescale1ns/1nsmoduleDEC2X4(A,B,Enable,Z);inputA,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注意:在同一模塊中,實(shí)例名不能與線網(wǎng)名相同。not#(1,2)Abar(Abar,A)
×門級(jí)結(jié)構(gòu)建模練習(xí)題參考解答`timescale1ns/1nsmodule
GateCircuit(Data,Encode,Valid)input[3:0]Data;output[1:0]Encode,Valid;notG1(NotData[2],Data[2]);andG2(A,NotData[2],Data[1]);orG3(B,Data[1],Data[0]),
G4(Encode[0],Data[3],A),
G5(Encode[1],Data[3],Data[2]),
G6(Valid,Data[3],Data[2],B);
endmodule二、行為描述
就是對(duì)設(shè)計(jì)實(shí)體的數(shù)學(xué)模型的描述,其抽象程度遠(yuǎn)高于結(jié)構(gòu)描述方式。行為描述類似于高級(jí)編程語言,當(dāng)描述一個(gè)設(shè)計(jì)實(shí)體的行為時(shí),無需知道具體電路的結(jié)構(gòu),只需要描述清楚輸入與輸出信號(hào)的行為(即輸入、輸出的因果關(guān)系,也就是在何種輸入下產(chǎn)生何種輸出),而不需要花費(fèi)更多的精力關(guān)注設(shè)計(jì)功能的門級(jí)實(shí)現(xiàn)。EDA的綜合工具能自動(dòng)將行為描述轉(zhuǎn)換成電路結(jié)構(gòu),形成網(wǎng)表文件。
顯然,當(dāng)電路的規(guī)模較大或時(shí)序關(guān)系較復(fù)雜時(shí),通常采用行為描述方式進(jìn)行設(shè)計(jì)。
行為描述模塊的設(shè)計(jì)模型其他如:initial語句;并發(fā)執(zhí)行語句。行為描述的2選1MUXmodulemux2(out,a,b,sel);outputout;inputa,b,sel;regout;always@(aorborsel)begin
if(sel) out=b;else out=a;endendmodule三、數(shù)據(jù)流描述
數(shù)據(jù)流描述方式主要使用持續(xù)賦值語句,多用于描述組合邏輯電路,其格式為:
assign
LHS_net=RHS_expression;狹義上講,將傳統(tǒng)意義上的“邏輯表達(dá)式”運(yùn)用verilog中的運(yùn)算符,變成連續(xù)賦值中的表達(dá)式。右邊表達(dá)式中的操作數(shù)無論何時(shí)發(fā)生變化,都會(huì)引起表達(dá)式值的重新計(jì)算,并將重新計(jì)算后的值賦予左邊表達(dá)式的net型變量。數(shù)據(jù)流描述模塊的設(shè)計(jì)模型數(shù)據(jù)流描述的2選1MUXmoduleMUX3(out,a,b,sel);outputout;inputa,b,sel;assignout=sel?b:a;endmodule不同描述風(fēng)格的設(shè)計(jì)
對(duì)設(shè)計(jì)者而言,采用的描述級(jí)別越高,設(shè)計(jì)越容易;對(duì)綜合器而言,行為級(jí)的描述為綜合器的優(yōu)化提供了更大的空間,較之門級(jí)結(jié)構(gòu)描述更能發(fā)揮綜合器的性能,所以在電路設(shè)計(jì)中,除非一些關(guān)鍵路徑的設(shè)計(jì)采用門級(jí)結(jié)構(gòu)描述外,一般更多地采用行為建模方式。
結(jié)構(gòu)描述的一位全加器modulefull_add1(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;wires1,m1,m2,m3;and(m1,a,b),(m2,b,cin),(m3,a,cin);xor(s1,a,b),(sum,s1,cin);or(cout,m1,m2,m3);endmodule數(shù)據(jù)流描述的1位全加器modulefull_add2(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;assignsum=a^b^cin;assigncout=(a&b)|(b&cin)|(cin&a);endmodule行為描述的1位全加器Modulefull_add3(a,b,cin,sum,cout);inputa,b,cin;output
sum,cout;regsum,cout,m1,m2,m3;always@(aorborcin)beginm1=a&b;m2=b&cin;m3=a&cin;sum=(a^b)^cin;cout=(m1|m2)|m3;endendmodule4位加法器`include"full_add1.v"moduleadd4_1(sum,cout,a,b,cin);output[3:0]sum;outputcout;input[3:0]a,b;inputcin;full_add1f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考化學(xué)一輪復(fù)習(xí)專練14鐵銅及其化合物含解析新人教版
- 2024高考化學(xué)一輪復(fù)習(xí)第一部分考點(diǎn)13化學(xué)與可持續(xù)發(fā)展強(qiáng)化訓(xùn)練含解析
- 2024高考化學(xué)一輪復(fù)習(xí)第四章非金屬及其化合物第二講富集在海水中的元素-氯規(guī)范演練含解析新人教版
- 2024高考?xì)v史一輪復(fù)習(xí)模塊四選修部分第1講歷史上重大改革回眸學(xué)案含解析人民版
- 學(xué)校視頻監(jiān)控配置情況匯報(bào)
- 鋼結(jié)構(gòu)廠房工程施工要點(diǎn)
- 2024年湖北三峽職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 平安福產(chǎn)說會(huì)修正版
- 八年級(jí)物理下冊(cè)121杠桿課件新版新人教版
- 二零二五年度高校畢業(yè)生就業(yè)見習(xí)實(shí)習(xí)實(shí)訓(xùn)基地安全管理合同3篇
- 資質(zhì)模型與測(cè)評(píng)技術(shù)(中國(guó)人民大學(xué)勞動(dòng)人事學(xué)院 孫健敏)
- SMW工法型鋼拔除專項(xiàng)施工方案
- 大健康商業(yè)招商計(jì)劃書
- 高一上半學(xué)期總結(jié)教學(xué)課件
- 高速公路初步設(shè)計(jì)匯報(bào)課件
- 申根簽證申請(qǐng)表模板
- 企業(yè)會(huì)計(jì)準(zhǔn)則、應(yīng)用指南及附錄2023年8月
- 2022年浙江省事業(yè)編制招聘考試《計(jì)算機(jī)專業(yè)基礎(chǔ)知識(shí)》真題試卷【1000題】
- 認(rèn)養(yǎng)一頭牛IPO上市招股書
- GB/T 3767-2016聲學(xué)聲壓法測(cè)定噪聲源聲功率級(jí)和聲能量級(jí)反射面上方近似自由場(chǎng)的工程法
- GB/T 23574-2009金屬切削機(jī)床油霧濃度的測(cè)量方法
評(píng)論
0/150
提交評(píng)論