




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025第二季度新疆機(jī)場(chǎng)集團(tuán)哈密伊州機(jī)場(chǎng)招聘23人考前自測(cè)高頻考點(diǎn)模擬試題附答案詳解
- 2025內(nèi)蒙古大唐錫林浩特電廠招聘專職消防員1人考前自測(cè)高頻考點(diǎn)模擬試題附答案詳解(考試直接用)
- 2025吉林市事業(yè)單位招聘1381名工作人員(含專項(xiàng)招聘)考前自測(cè)高頻考點(diǎn)模擬試題及參考答案詳解1套
- 2025年湖南省低空經(jīng)濟(jì)發(fā)展集團(tuán)有限公司第二次公開招聘12人考前自測(cè)高頻考點(diǎn)模擬試題及完整答案詳解
- 2025廣西壯族自治區(qū)衛(wèi)生健康委員會(huì)機(jī)關(guān)服務(wù)中心招聘第二批編外聘用人員1人考前自測(cè)高頻考點(diǎn)模擬試題附答案詳解
- 2025海南軟件職業(yè)技術(shù)學(xué)院考核招聘員額制人員15人考前自測(cè)高頻考點(diǎn)模擬試題帶答案詳解
- 2025廣西桂林市資源縣中峰鎮(zhèn)中心衛(wèi)生院公開招聘編外專業(yè)技術(shù)人員2人考前自測(cè)高頻考點(diǎn)模擬試題及1套完整答案詳解
- 2025遼漁集團(tuán)有限公司人員考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(必刷)
- 2025中心醫(yī)院營(yíng)養(yǎng)支持個(gè)體化考核
- 邢臺(tái)市人民醫(yī)院?jiǎn)T工心理健康與危機(jī)干預(yù)知識(shí)試題
- 招江西省交通投資集團(tuán)有限責(zé)任公司招聘筆試真題2024
- 2025年智能可穿戴設(shè)備生物傳感技術(shù)在高原病治療監(jiān)測(cè)中的創(chuàng)新應(yīng)用報(bào)告
- 醫(yī)院藥師培訓(xùn)課件
- 2025年濟(jì)南市中考語(yǔ)文試題卷(含答案)
- 《傳感器原理及應(yīng)用》課件-第8章+光電效應(yīng)及光電器件
- 智慧交通2025年城市智能停車系統(tǒng)解決方案及實(shí)施建議
- 2025年燃?xì)馍a(chǎn)和供應(yīng)行業(yè)研究報(bào)告及未來(lái)行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)
- 母嬰乙肝傳播知識(shí)培訓(xùn)課件
- 設(shè)備點(diǎn)檢員國(guó)家職業(yè)標(biāo)準(zhǔn)
- 12醉 翁 亭 記 同步練習(xí) (含答案)2025-2026學(xué)年語(yǔ)文統(tǒng)編版九年級(jí)上冊(cè)
- 2024正安縣輔警招聘考試真題
評(píng)論
0/150
提交評(píng)論