FPGA應(yīng)用與開發(fā)實(shí)踐教程 課件 附A2 Verilog HDL基本語(yǔ)法_第1頁(yè)
FPGA應(yīng)用與開發(fā)實(shí)踐教程 課件 附A2 Verilog HDL基本語(yǔ)法_第2頁(yè)
FPGA應(yīng)用與開發(fā)實(shí)踐教程 課件 附A2 Verilog HDL基本語(yǔ)法_第3頁(yè)
FPGA應(yīng)用與開發(fā)實(shí)踐教程 課件 附A2 Verilog HDL基本語(yǔ)法_第4頁(yè)
FPGA應(yīng)用與開發(fā)實(shí)踐教程 課件 附A2 Verilog HDL基本語(yǔ)法_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

VerilogHDL基本語(yǔ)法運(yùn)算符及表達(dá)式過(guò)程語(yǔ)句(initial、always)塊語(yǔ)句(begin-end、fork-join)賦值語(yǔ)句條件語(yǔ)句循環(huán)語(yǔ)句task和function說(shuō)明語(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)編寫。空白符(換行、換頁(yè)、tab和空格)沒(méi)有特殊的意義,但使用空白符可以提高代碼的可讀性。在綜合時(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)無(wú)大小寫之分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)括起來(lái)的字符序列(不能跨行)。如”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)類型功能說(shuō)明可綜合性說(shuō)明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型。總結(jié):Verilog程序模塊中,被聲明為input或者inout型的端口,只能被定義為線網(wǎng)型變量,被聲明為output型的端口可以被定義為線網(wǎng)型或者寄存器型變量,輸入輸出信號(hào)類型缺省時(shí)自動(dòng)定義為wire型。wire型信號(hào)可以用作任何方程式的輸入,也可以用作“assign”語(yǔ)句或?qū)嵗妮敵?,不可以在initial和always模塊中被賦值。VerilogHDL的語(yǔ)言基本要素—基本語(yǔ)法12reg型數(shù)據(jù)的格式如下:reg[msb:lsb]變量名1,變量名2,…變量名n;regclock;reg[3:0]regb;reg[4:1]regc,regd;除了常用的reg類型之外,還有一些其他的寄存器類型:寄存器類型功能說(shuō)明可綜合說(shuō)明reg常用的寄存器型變量√integer32位有符號(hào)整型變量√time64位無(wú)符號(hào)時(shí)間變量real64位有符號(hào)實(shí)型變量寄存器類型變量及其說(shuō)明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)部來(lái)講,輸入端口必須為線網(wǎng)數(shù)據(jù)類型,從模塊外部來(lái)看,輸入端口可以連接到線網(wǎng)或者reg數(shù)據(jù)類型的變量。輸出端口:從模塊內(nèi)部來(lái)講,輸出端口可以是線網(wǎng)或者reg數(shù)據(jù)類型,從模塊外部來(lái)看,輸出必須連接到線網(wǎng)類型的變量,而不能連接到reg類型的變量。輸入/輸出端口:從模塊內(nèi)部來(lái)講,輸入/輸出端口必須為線網(wǎng)數(shù)據(jù)類型;從模塊外部來(lái)看,輸入/輸出端口也必須連接到線網(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)連接起來(lái):按順序連接以及按名字連接。但兩種方法不能混合在一起使用。順序端口連接:需要連接到模塊實(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在過(guò)程塊中賦值則為register類型;若在過(guò)程塊外賦值(包括實(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論