版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2.5.1
Verilog語(yǔ)言的基本語(yǔ)法規(guī)則
2.5.2變量的數(shù)據(jù)類型
2.5.3運(yùn)算符及其優(yōu)先級(jí)
2.5.4
Verilog內(nèi)部的基本門級(jí)元件
2.5.5
Verilog程序的基本結(jié)構(gòu)
2.5.6邏輯功能的仿真與測(cè)試2.5硬件描述語(yǔ)言VerilogHDL基礎(chǔ)硬件描述語(yǔ)言HDL(HardwareDescriptionLanguag)類似于高級(jí)程序設(shè)計(jì)語(yǔ)言.它是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語(yǔ)言,用它可以表示邏輯電路圖、邏輯表達(dá)式,復(fù)雜數(shù)字邏輯系統(tǒng)完成的邏輯功能。HDL是高層次自動(dòng)化設(shè)計(jì)的起點(diǎn)和基礎(chǔ).2.5硬件描述語(yǔ)言VerilogHDL基礎(chǔ)計(jì)算機(jī)對(duì)HDL的處理:邏輯綜合
是指從HDL描述的數(shù)字邏輯電路模型中導(dǎo)出電路基本元件列表以及元件之間的連接關(guān)系(常稱為門級(jí)網(wǎng)表)的過程。類似對(duì)高級(jí)程序語(yǔ)言設(shè)計(jì)進(jìn)行編譯產(chǎn)生目標(biāo)代碼的過程.產(chǎn)生門級(jí)元件及其連接關(guān)系的數(shù)據(jù)庫(kù),根據(jù)這個(gè)數(shù)據(jù)庫(kù)可以制作出集成電路或印刷電路板PCB。邏輯仿真是指用計(jì)算機(jī)仿真軟件對(duì)數(shù)字邏輯電路的結(jié)構(gòu)和行為進(jìn)行預(yù)測(cè).仿真器對(duì)HDL描述進(jìn)行解釋,以文本形式或時(shí)序波形圖形式給出電路的輸出。在仿真期間如發(fā)現(xiàn)設(shè)計(jì)中存在錯(cuò)誤,就再要對(duì)HDL描述進(jìn)行及時(shí)的修改。2.5.1Verilog語(yǔ)言的基本語(yǔ)法規(guī)則為對(duì)數(shù)字電路進(jìn)行描述(常稱為建模),Verilog語(yǔ)言規(guī)定了一套完整的語(yǔ)法結(jié)構(gòu)。1.間隔符:
Verilog的間隔符主要起分隔文本的作用,可以使文本錯(cuò)落有致,便于閱讀與修改。間隔符包括空格符(\b)、TAB鍵(\t)、換行符(\n)及換頁(yè)符。2.注釋符:注釋只是為了改善程序的可讀性,在編譯時(shí)不起作用。多行注釋符(用于寫多行注釋):/*---*/;單行注釋符:以//開始到行尾結(jié)束為注釋文字。為了表示數(shù)字邏輯電路的邏輯狀態(tài),Verilog語(yǔ)言規(guī)定了4種基本的邏輯值。0邏輯0、邏輯假1邏輯1、邏輯真x或X不確定的值(未知狀態(tài))z或Z高阻態(tài)標(biāo)識(shí)符:給對(duì)象(如模塊名、電路的輸入與輸出端口、變量等)取名所用的字符串。以英文字母或下劃線開始如,clk、counter8、_net、bus_A。關(guān)鍵詞:是Verilog語(yǔ)言本身規(guī)定的特殊字符串,用來定義語(yǔ)言的結(jié)構(gòu)。例如,module、endmodule、input、output、wire、reg、and等都是關(guān)鍵詞。關(guān)鍵詞都是小寫,關(guān)鍵詞不能作為標(biāo)識(shí)符使用。4.邏輯值集合3.標(biāo)識(shí)符和關(guān)鍵詞5.常量及其表示實(shí)數(shù)型常量十進(jìn)制記數(shù)法如:0.1、2.0、5.67科學(xué)記數(shù)法如:23_5.1e2、5E-423510.0、0.0005Verilog允許用參數(shù)定義語(yǔ)句定義一個(gè)標(biāo)識(shí)符來代表一個(gè)常量,稱為符號(hào)常量。定義的格式為:parameter參數(shù)名1=常量表達(dá)式1,參數(shù)名2=常量表達(dá)式2,……;如parameterBIT=1,BYTE=8,PI=3.14;6.字符串:字符串是雙撇號(hào)內(nèi)的字符序列常量十進(jìn)制數(shù)的形式的表示方法:表示有符號(hào)常量例如:30、-2帶基數(shù)的形式的表示方法:表示常量格式為:<+/-><位寬>’<基數(shù)符號(hào)><數(shù)值>整數(shù)型例如:3’b101、5’o37、8’he3,8’b1001_0011
2.5.2變量的數(shù)據(jù)類型1線網(wǎng)類型:是指輸出始終根據(jù)輸入的變化而更新其值的變量,它一般指的是硬件電路中的各種物理連接.例:wireL;//將上述電路的輸出信號(hào)L聲明為網(wǎng)絡(luò)型變量wire[7:0]databus;//聲明一個(gè)8-bit寬的網(wǎng)絡(luò)型總線變量常用的網(wǎng)絡(luò)類型由關(guān)鍵詞wire定義wire型變量的定義格式如下:wire[n-1:0]變量名1,變量名2,…,變量名n;變量寬度例:網(wǎng)絡(luò)型變量L的值由與門的驅(qū)動(dòng)信號(hào)a和b所決定,即L=a&b。a、b的值發(fā)生變化,線網(wǎng)L的值會(huì)立即跟著變化。寄存器型變量對(duì)應(yīng)的是具有狀態(tài)保持作用的電等路元件,如觸發(fā)器寄存器。寄存器型變量只能在initial或always內(nèi)部被賦值。2、寄存器類型寄存器類型功能說明reg常用的寄存器型變量integer32位帶符號(hào)的整數(shù)型變量real64位帶符號(hào)的實(shí)數(shù)型變量,time64位無符號(hào)的時(shí)間變量4種寄存器類型的變量例:regclock;//定義一個(gè)1位寄存器變量reg[3:0]counter;//定義一個(gè)4位寄存器變量抽象描述,不對(duì)應(yīng)具體硬件1.運(yùn)算符2.5.3運(yùn)算符及其優(yōu)先級(jí)類型符號(hào)功能說明類型符號(hào)功能說明算術(shù)運(yùn)算符+--*/二進(jìn)制加二進(jìn)制減2的補(bǔ)碼二進(jìn)制乘二進(jìn)制除關(guān)系運(yùn)算符(雙目運(yùn)算符)><>=<===!=大于小于大于或等于小于或等于相等不相等位運(yùn)算符(雙目運(yùn)算符)~&|^^~或~^按位取反按位與按位或按位異或按位同或縮位運(yùn)算符(單目運(yùn)算符)&~&|~|^^~或~^縮位與縮位與非縮位或縮位或非縮位異或縮位同或邏輯運(yùn)算符(雙目運(yùn)算符)!&&||邏輯非邏輯與邏輯或移位運(yùn)算符(雙目運(yùn)算符)>><<右移左移位拼接運(yùn)算符{,}{{}}將多個(gè)操作數(shù)拼接成為一個(gè)操作數(shù)條件運(yùn)算符(三目運(yùn)算符)?:根據(jù)條件表達(dá)式是否成立,選擇表達(dá)式運(yùn)算符分為算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、移位運(yùn)算符等對(duì)同一個(gè)操作數(shù)的重復(fù)拼接還可以雙重大括號(hào)構(gòu)成的運(yùn)算符{{}}例如{4{A}}=4’b1111,{2{A},2{B},C}=8’b11101000。作用是將兩個(gè)或多個(gè)信號(hào)的某些位拼接起來成為一個(gè)新的操作數(shù),進(jìn)行運(yùn)算操作。位拼接運(yùn)算符設(shè)A=1’b1,B=2’b10,C=2’b00則{B,C}=4’b1000{A,B[1],C[0]}=3’b110{A,B,C,3’b101}=8’b11000101。位運(yùn)算符與縮位運(yùn)算的比較A:4’b1010、B:4’b1111,A~^B=1010A^B=0101A|B=1111A&B=1010~A=0101~B=0000位運(yùn)算~^A=1~^B=1^A=0^B=0|A=1~|B=0~&A=1&B=1&A=1&0&1&0=0縮位運(yùn)算2.運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)的順序從下向上依次增加。類型符號(hào)優(yōu)先級(jí)別取反!~-(求2的補(bǔ)碼)最高優(yōu)先級(jí)算術(shù)*/+-移位>><<關(guān)系<<=>>=等于==!=縮位&~&^^~|~|邏輯&&||條件?:最低優(yōu)先級(jí)一般用法:condition_expr?expr1:expr2;條件運(yùn)算符是三目運(yùn)算符,運(yùn)算時(shí)根據(jù)條件表達(dá)式的值選擇表達(dá)式。首先計(jì)算第一個(gè)操作數(shù)condition_expr的值,如果結(jié)果為邏輯1,則選擇第二個(gè)操作數(shù)expr1的值作為結(jié)果返回,結(jié)果為邏輯0,選擇第三個(gè)操作數(shù)expr2的值作為結(jié)果返回。基本門級(jí)元件模型元件符號(hào)功能說明元件符號(hào)功能說明and多輸入端的與門nand多輸入端的與非門or多輸入端的或門nor多輸入端的或非門xor多輸入端的異或門xnor多輸入端的異或非門buf多輸出端的緩沖器not多輸出端的反相器bufif1控制信號(hào)高電平有效的三態(tài)緩沖器notif1控制信號(hào)高電平有效的三態(tài)反相器bufif0控制信號(hào)低電平有效的三態(tài)緩沖器notif0控制信號(hào)低電平有效的三態(tài)反相器多輸入門多輸出門三態(tài)門2.5.4Verilog內(nèi)部的基本門級(jí)元件門級(jí)建模:將邏輯電路圖用HDL規(guī)定的文本語(yǔ)言表示出來。1、多輸入門只允許有一個(gè)輸出,但可以有多個(gè)輸入。andA1(out,in1,in2,in3);X-不確定狀態(tài)Z-高阻態(tài)
and真值表x0zx0xx10100000zX10輸入1and輸入2xxxxx調(diào)用名XX1XZXX1XX11111XX100ZX10輸入1or輸入2
or真值表輸入2XXXXZXXXXXXX011XX100ZX10輸入1xorxor真值表2、多輸出門允許有多個(gè)輸出,但只有一個(gè)輸入。notN1(out1,out2,…,in);xx10zx10輸入buf輸出buf真值表輸出xx01zx10輸入notnot真值表bufB1(out1,out2,…,in);out1inout2outN…out1inout2outN…bufif1真值表xxxzzxxxzx1/z1/z1z10/z0/z0z0zx10控制輸入bufif1數(shù)據(jù)輸入xxxzzxxxzx0/z0/z0z11/z1/z10zzx10控制輸入notif1數(shù)據(jù)輸入notif1真值表3、三態(tài)門有一個(gè)輸出、一個(gè)數(shù)據(jù)輸入和一個(gè)輸入控制。如果輸入控制信號(hào)無效,則三態(tài)門的輸出為高阻態(tài)z。2、每個(gè)模塊先要進(jìn)行端口的定義,并說明輸入(input)和輸出(output),然后對(duì)模塊功能進(jìn)行描述。2.5.5Verilog程序的基本結(jié)構(gòu)模塊是Verilog描述電路的基本單元。對(duì)數(shù)字電路建模時(shí),用一個(gè)或多個(gè)模塊。不同模塊之間通過端口進(jìn)行連接。1、每個(gè)模塊以關(guān)鍵詞module開始,以endmodule結(jié)束。3、除了endmodule語(yǔ)句外,每個(gè)語(yǔ)句后必須有分號(hào)。4、可以用/*---*/和//…..對(duì)程序的任何部分做注釋。5、邏輯功能的描述方式有三種不同風(fēng)格:結(jié)構(gòu)描述方式(門級(jí)描述方式)數(shù)據(jù)流描述方式,行為描述方式。模塊定義的一般語(yǔ)法結(jié)構(gòu)如下:端口類型說明電路結(jié)構(gòu)描述模塊名數(shù)據(jù)類型說明例用結(jié)構(gòu)描述方式建立門電路Verilog模型modulemux2to1(D0,D1,S,Y
);
inputD0,D1,S;//定義輸入信號(hào)outputY;//定義輸出信號(hào)wireSnot,A,B;//定義內(nèi)部節(jié)點(diǎn)信號(hào)數(shù)據(jù)類型//下面對(duì)電路的邏輯功能進(jìn)行描述notU1(Snot,Sl);
andU2(A,D0,Snot);
andU3(B,D1,S);
orU4(Y,A,B);endmodule
modulemux2to1_dataflow(D0,D1,S,Y
);
inputD0,D1,S;outputY;wireY;//下面是邏輯功能描述assignY=(~S&D0)|(S&D1);//表達(dá)式左邊Y必須是wire型endmodule
端口類型說明電路結(jié)構(gòu)描述數(shù)據(jù)類型說明例用數(shù)據(jù)流描述方式建立模型注意,在assign語(yǔ)句中,左邊變量的數(shù)據(jù)類型必須是wire型。數(shù)據(jù)類型說明例用行為描述方式建立模型modulemux2to1_bh(D0,D1,S,Y
);
inputD0,D1,S;outputY;regY;//邏輯功能描述always@(S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 診所整改報(bào)告格式范文
- 調(diào)研報(bào)告范文工作
- 八年級(jí)英語(yǔ)Connect課件
- 車輛整改報(bào)告范文
- 2025年錦州貨運(yùn)資格證模擬考試卷
- 個(gè)人自檢自查報(bào)告范文
- 外墻風(fēng)貌調(diào)研報(bào)告范文
- 常見應(yīng)急事故
- 2025年玉樹c1貨運(yùn)上崗證模擬考試
- 2025年潮州貨運(yùn)從業(yè)資格證模擬考試保過版
- 期末試卷(試題)-2024-2025學(xué)年滬教版三年級(jí)上冊(cè)數(shù)學(xué)
- 政府采購(gòu)評(píng)審專家考試題及答案
- 電影敘事與美學(xué)智慧樹知到期末考試答案章節(jié)答案2024年南開大學(xué)
- 2024年成都益民投資集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 改進(jìn)維持性血液透析患者貧血狀況PDCA
- 行業(yè)類別名稱及代碼
- 第《6》章層壓成型工藝
- 海綿城市施工方案(完整版)
- 演講者必須要具備的儀表風(fēng)度
- 偷襲珍珠港教學(xué)學(xué)習(xí)PPT
- 20腎病綜合征臨床路徑
評(píng)論
0/150
提交評(píng)論