版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VerilogHDL基本語(yǔ)法運(yùn)算符及表達(dá)式過程語(yǔ)句(initial、always)塊語(yǔ)句(begin-end、fork-join)賦值語(yǔ)句條件語(yǔ)句循環(huán)語(yǔ)句task和function說明語(yǔ)句主要內(nèi)容VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法一、VerilogHDL基本語(yǔ)法1、
詞法規(guī)定
(1)關(guān)鍵字關(guān)鍵字(又稱保留字),小寫的英文字符串。如:module、endmodule、input、output、wire、reg、and、assign、always等。
(2)格式VerilogHDL是自由格式的,即結(jié)構(gòu)可以跨越多行編寫,也可以在一行內(nèi)編寫??瞻追〒Q行、換頁(yè)、tab和空格)沒有特殊的意義,但使用空白符可以提高代碼的可讀性。在綜合時(shí),空白符被忽略。
VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法(3)標(biāo)識(shí)符標(biāo)識(shí)符(identifier)是程序代碼中給對(duì)象(如模塊、端口、變量等)取名所用的字符串。由字母、數(shù)字字符、下劃線(_)和美元符號(hào)($)組成,區(qū)分大小寫,其第一個(gè)字符必須是英文字母或下劃線,不能是數(shù)字或$。以$開始的字符串是為系統(tǒng)函數(shù)保留的,如“$display”最長(zhǎng)可以是1023個(gè)字符標(biāo)識(shí)符區(qū)分大小寫,sel和SEL是不同的標(biāo)識(shí)符※關(guān)鍵字不能作為標(biāo)識(shí)符使用。標(biāo)識(shí)符舉例:outputa,A;wireclk;34net;a*b_net;module
mux21
(out,a,b,sel);outputout;
input
a,b,sel;
notnot1
(nsel,sel);
and
and1(a1,a,nsel);
and
and2(b1,b,sel);
or
or1(out,a1,b1);endmoduleVerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法(4)注釋moduleFour_bit_FA(A,B,Cin,Sum,Cout);parameterLENGTH=4; //聲明加法器位數(shù)參數(shù)input[(LENGTH-1):0]A,[(LENGTH-1):0]B;//輸入/輸出端口inputCin; output[(LENGTH-1):0]Sum;outputCout;wirec1,c2,c3; //內(nèi)部線網(wǎng)聲明//實(shí)例化四個(gè)一位全加器FA_structFA0(A[0],B[0],Cin,Sum[0],c1);//端口映射采用非名字關(guān)聯(lián)FA_structFA1(A[1],B[1],C1,Sum[1],c2);FA_structFA2(A[0],B[0],C2,Sum[2],c3);FA_structFA3(A[0],B[0],C3,Sum[3],Cout);endmoduleVerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法52、
數(shù)據(jù)類型常量變量常數(shù):4'b1010,8'd31,-8’d31字符串:“IloveHIT”參數(shù)型:parameterIDLE=2'b01線網(wǎng)類型(Net)wire,triwand,triandwor,triortriregtri0,tri1supply0,supply1寄存器型(Register)RegIntegerRealTimerealtime‘0’,Low,
False,
Logic
Low,
Ground,
VSS,
Negative
Assertion
‘1’,
High,
True,
Logic
High,
Power,
VDD,
VCC,
Positive
Assertion
‘X’Unknown:
Occurs
at
Logical
Which
Cannotbe
Resolved
Conflict
HiZ,
High
Impedance,
Tri-
Stated,
Disabled
Driver
(Unknown)
VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法6常量及其表示三種類型的常量:整數(shù)型常量(整數(shù))、實(shí)數(shù)型常量(實(shí)數(shù))和字符串型常量。
(1)整數(shù)---整數(shù)的一般表達(dá)式為:
<+/-><size>’<baseformat><number>-14//十進(jìn)制數(shù)-1416’d255//位寬為16的十進(jìn)制數(shù)2558’h9a//位寬為8的十六進(jìn)制數(shù)9a6’o21//位寬為6的八進(jìn)制數(shù)218’hAF//位寬為8的十六進(jìn)制數(shù)AF-4’d10//位寬為4的十進(jìn)制數(shù)10(3+2)’b11001//非法表示,位寬不能為表達(dá)式注意:數(shù)基(base)無大小寫之分VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法7(2)實(shí)數(shù)十進(jìn)制格式,由數(shù)字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))例如:0.1,3.1415,2.0√3.x指數(shù)格式(科學(xué)計(jì)數(shù)法):由數(shù)字和字符e(E)組成,e(E)的前面必須要有數(shù)字而且后面必須為整數(shù),
例如:
135.1e2
//其值為13510.08.5E2//850.0(e與E相同)4E-4//0.0004
4'b10104-bitbinary4'h54-bithexadecimal'h83aunsizedhexadecimal(zero-extendedto32bits)12unsizeddecimal(zero-extendedto32bits)64'hff0164-bithexadecimal(zero-extendedto64bits)8'b1100_00018-bit
binary32'b101xzero-extendedto32bits3'b1010_11013-bitnumber,truncatedto3'b1016.3decimalnotation32e-4scientificnotationfor0.00324.1e3scientificnotationfor4100VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法8(3)字符串常量是由一對(duì)雙引號(hào)括起來的字符序列(不能跨行)。如”helloworld!”是一個(gè)合法字符串。每個(gè)字符串(包括空格)被看作是8位的ASCII值序列。存儲(chǔ)字符串“helloworld!”,就需要定義一個(gè)8*12位的變量:reg[1:8*12]stringvar;initialbeginstringvar=“helloworld”;endVerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法9變量的數(shù)據(jù)類型(1)線網(wǎng)型變量(net)
wire型信號(hào)定義格式如下:wire[msb:lsb]變量名1,變量名2,…變量名n;wirea;//定義了一個(gè)1位的wire型數(shù)據(jù)wire[7:0]b;//定義了一個(gè)8位的wire型向量wire[4:1]c,d;//定義了二個(gè)4位的wire型向量assignc=d;
線網(wǎng)型變量可以理解為實(shí)際電路中的導(dǎo)線,通常表示為結(jié)構(gòu)實(shí)體(例如門)之間的
物理連接。
VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法10線網(wǎng)類型除了常用的wire、tri類型之外,還有一些其他的線網(wǎng)類型線網(wǎng)類型功能說明可綜合性說明wiretri表示單元(元件)之間的連線,Wire為一般連線:
tri為三態(tài)線√supply0
supply1用于對(duì)電源建?!蘷andtriand多重驅(qū)動(dòng),具有線與特性的線網(wǎng)類型wortrior多重驅(qū)動(dòng),具有線或特性的線網(wǎng)類型triltri0上拉電阻,用于開關(guān)級(jí)建模trireg具有電荷保持特性的線網(wǎng)類型,用于開關(guān)級(jí)建模VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法11(2)寄存器型變量可以理解為實(shí)際電路中的寄存器,具有記憶性,是數(shù)據(jù)儲(chǔ)存單元的抽象,在輸入信號(hào)消失后它可以保持原有的數(shù)值不變。與線網(wǎng)型變量的根本區(qū)別在于:register型變量需要被明確地賦值,并且在被重新賦值前一直保持原值。關(guān)鍵字是reg,只能在initial或always賦值,默認(rèn)值是x。注意:在always和initial塊內(nèi)被賦值的每一個(gè)信號(hào)都必須定義成reg型??偨Y(jié):Verilog程序模塊中,被聲明為input或者inout型的端口,只能被定義為線網(wǎng)型變量,被聲明為output型的端口可以被定義為線網(wǎng)型或者寄存器型變量,輸入輸出信號(hào)類型缺省時(shí)自動(dòng)定義為wire型。wire型信號(hào)可以用作任何方程式的輸入,也可以用作“assign”語(yǔ)句或?qū)嵗妮敵觯豢梢栽趇nitial和always模塊中被賦值。VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法12reg型數(shù)據(jù)的格式如下:reg[msb:lsb]變量名1,變量名2,…變量名n;regclock;reg[3:0]regb;reg[4:1]regc,regd;除了常用的reg類型之外,還有一些其他的寄存器類型:寄存器類型功能說明可綜合說明reg常用的寄存器型變量√integer32位有符號(hào)整型變量√time64位無符號(hào)時(shí)間變量real64位有符號(hào)實(shí)型變量寄存器類型變量及其說明VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法13端口類型判斷方法:一個(gè)端口看成是由相互連接的兩個(gè)部分組成,一部分位于模塊的內(nèi)部,另一部分位于模塊的外部。當(dāng)在一個(gè)模塊中調(diào)用(引用)另一個(gè)模塊時(shí),端口之間的連接必須遵守一些規(guī)則。端口的IOP端口的數(shù)據(jù)類型module內(nèi)部module外部inputnetnet或regoutputnet或regnetinoutnetnet端口的I/O與數(shù)據(jù)類型的關(guān)系VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法14輸入端口:從模塊內(nèi)部來講,輸入端口必須為線網(wǎng)數(shù)據(jù)類型,從模塊外部來看,輸入端口可以連接到線網(wǎng)或者reg數(shù)據(jù)類型的變量。輸出端口:從模塊內(nèi)部來講,輸出端口可以是線網(wǎng)或者reg數(shù)據(jù)類型,從模塊外部來看,輸出必須連接到線網(wǎng)類型的變量,而不能連接到reg類型的變量。輸入/輸出端口:從模塊內(nèi)部來講,輸入/輸出端口必須為線網(wǎng)數(shù)據(jù)類型;從模塊外部來看,輸入/輸出端口也必須連接到線網(wǎng)類型的變量。位寬匹配:在對(duì)模塊進(jìn)行調(diào)用的時(shí)候,verilog允許端口的內(nèi)、外兩個(gè)部分具有不同的位寬。一般情況下,verilog仿真器會(huì)對(duì)此警告。未連接端口:Verilog允許模塊實(shí)例的端口保持未連接的狀態(tài)。例如,如果模塊的某些輸出端口只用于調(diào)試,那么這些端口可以不與外部信號(hào)連接。端口與外部信號(hào)的連接:在對(duì)模塊調(diào)用的時(shí)候,可以使用兩種方法將模塊定義的端口與外部環(huán)境中的信號(hào)連接起來:按順序連接以及按名字連接。但兩種方法不能混合在一起使用。順序端口連接:需要連接到模塊實(shí)例的信號(hào)必須與模塊聲明時(shí)目標(biāo)端口在端口列表中的位置保持一致。VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法15端口類型定義舉例輸入端口in1,in2可以由net/register(A,B)驅(qū)動(dòng),但輸入端口in1,in2只能是net類型。輸出端口out可以是net/register類型,輸出端口只能驅(qū)動(dòng)net(Y)。若輸出端口out在過程塊中賦值則為register類型;若在過程塊外賦值(包括實(shí)例化語(yǔ)句),則為net類型。外部信號(hào)A,B類型判斷方法與輸出端口相同。VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法16數(shù)據(jù)類型選擇舉例修改前:moduleexample(o1,o2,a,b,c,d);inputa,b,c,d;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 攤位認(rèn)租合同范本
- 錢財(cái)代理合同范本
- 鋁藝護(hù)欄合同范本
- 采購(gòu)生鐵合同范本
- 護(hù)理保險(xiǎn)合同范本
- 戶用光伏合同范本
- 新三板的合同協(xié)議
- 施工補(bǔ)償合同協(xié)議
- 開店投資合同范本
- 足浴行業(yè)合同范本
- 2025云南昆明市惠筑建設(shè)開發(fā)有限公司招聘2人備考題庫(kù)及答案詳解(新)
- 第5單元舞劇音樂《快樂的女戰(zhàn)士》課件人教版初中音樂九年級(jí)上冊(cè)
- 8.2《購(gòu)買水果》(教案)-2025-2026學(xué)年三年級(jí)上冊(cè)數(shù)學(xué) 北師大版
- 2025長(zhǎng)沙城發(fā)集團(tuán)發(fā)布管培生校招筆試歷年參考題庫(kù)附帶答案詳解
- 一把手講安全課課件
- 按摩店大學(xué)生創(chuàng)業(yè)計(jì)劃
- 《ISO 37001-2025反賄賂管理體系要求及使用指南》專業(yè)深度解讀和應(yīng)用培訓(xùn)指導(dǎo)材料之7:9績(jī)效評(píng)價(jià)(2025A1)
- 廣東省領(lǐng)航高中聯(lián)盟2025-2026學(xué)年高三上學(xué)期12月聯(lián)考政治試卷(含答案)
- 2025學(xué)年濰坊市高二語(yǔ)文上學(xué)期期中質(zhì)量監(jiān)測(cè)試卷附答案解析
- 2025年上饒市市直機(jī)關(guān)公開遴選公務(wù)員備考題庫(kù)附答案
- (完整版)2025年新版藥品管理法培訓(xùn)試卷附答案
評(píng)論
0/150
提交評(píng)論