




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5講 數(shù)據(jù)類型與表達(dá)式共四十五頁(yè)Verilog HDL提供了豐富的數(shù)據(jù)類型,本講把Verilog HDL的數(shù)據(jù)分為常量和變量?jī)深?,并分別介紹其特點(diǎn)和使用方法。表達(dá)式是操作符、操作數(shù)和標(biāo)點(diǎn)符號(hào)序列,其目的是用來(lái)說(shuō)明(shumng)一個(gè)計(jì)算過(guò)程。 程序中的大部分語(yǔ)句是由表達(dá)式構(gòu)成的。本講將給出操作符和操作數(shù)的種類及正確用法。 主要(zhyo)內(nèi)容共四十五頁(yè)(一) 常量在程序運(yùn)行過(guò)程中,其值不能被改變的量稱為常量。Verilog HDL有整型、實(shí)數(shù)型、字符串型3種常量。在整型或?qū)崝?shù)型常量的任意位置(wi zhi)可以隨意插入下劃線“_”(但是不能當(dāng)作首符號(hào)),這些下劃線對(duì)數(shù)本身并沒(méi)有意義,但是當(dāng)數(shù)
2、字很長(zhǎng)時(shí)使用下劃線可以提高可讀性。一、數(shù)據(jù)類型共四十五頁(yè)Verilog HDL有4種基本的邏輯狀態(tài): 0 表示邏輯0或“假”; 1 表示邏輯1或“真”; x 表示未知; z 表示高阻。注意:x值和z值都是不分大小寫的,如: 值0 x1z與值0X1Z相同(xin tn)。Verilog HDL的常量是由以上這4種基本值組成的。共四十五頁(yè)Verilog HDL的整數(shù)有兩種書寫格式:十進(jìn)制數(shù)格式;基數(shù)格式。(1)十進(jìn)制數(shù)格式是一個(gè)可以帶正負(fù)號(hào)的數(shù)字序列,代表一個(gè)有符號(hào)(fho)數(shù),如下例: 32 /十進(jìn)制數(shù)32-15 /十進(jìn)制數(shù)-151整型常量(chngling)(整數(shù))共四十五頁(yè)(2)基數(shù)格式的數(shù)
3、通常是無(wú)符號(hào)數(shù),形式如下: sizebase valuesize定義常量的位數(shù)(長(zhǎng)度),這是可選項(xiàng);base是基數(shù),規(guī)定這個(gè)數(shù)據(jù)的進(jìn)制,可以是o或O(表示八進(jìn)制),b或B(表示二進(jìn)制),d或D(表示十進(jìn)制),h或H(表示十六進(jìn)制)之一;value是一個(gè)數(shù)字序列,其形式應(yīng)與base定義的形式相符。這個(gè)數(shù)字序列中出現(xiàn)的值x和z以及(yj)十六進(jìn)制中的af不區(qū)分大小寫,“?”字符可以代替值z(mì)。共四十五頁(yè)下面給出一些典型書寫方法,有正確的也有錯(cuò)誤(cuw)的。5O37 /5位八進(jìn)制數(shù)4D2 /4位十進(jìn)制數(shù)4B1x_01 /4位二進(jìn)制數(shù)7Hx /7位x(擴(kuò)展的x), 即xxxxxxx4hZ /4位z(擴(kuò)
4、展的z) , 即zzzz2h1? /2位十六進(jìn)制數(shù),與2h1z相同8h2 A /在位數(shù)和字符之間,以及基數(shù)和數(shù)值之間允許出現(xiàn)空格4d-4 /非法:數(shù)值不能為負(fù)3b001 /非法:和基數(shù)b之間不允許出現(xiàn)空格(2+3)b10 /非法:位數(shù)不能夠?yàn)楸磉_(dá)式共四十五頁(yè)如果沒(méi)有定義常量的位數(shù),那么這個(gè)數(shù)的長(zhǎng)度就是相應(yīng)值的位數(shù),例如(lr):o721 /9位八進(jìn)制數(shù)hAF /8位十六進(jìn)制數(shù)如果定義的長(zhǎng)度大于數(shù)字序列的實(shí)際長(zhǎng)度,通常在數(shù)據(jù)序列的高位(左側(cè))補(bǔ)0。但是如果這個(gè)數(shù)字序列最左邊一位為x或z,就用x或z在左邊補(bǔ)位,例如:10b10 /左邊補(bǔ)0, 000000001010bx0 x1 /左邊補(bǔ)x, xx
5、xxxxx0 x1如果定義的長(zhǎng)度小于數(shù)字序列的實(shí)際長(zhǎng)度,這個(gè)數(shù)字序列最左邊超出的位將被截?cái)?,例如?b1001_0011 /與3b011相等5H0FFF /與5H1F相等共四十五頁(yè)實(shí)數(shù)(shsh)的定義方式有兩種:(1)十進(jìn)制格式,由數(shù)字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn)),例如:2.05.67811572.120.12. / 非法:小數(shù)點(diǎn)右側(cè)必須有數(shù)字2實(shí)數(shù)(shsh)型常量(浮點(diǎn)數(shù))共四十五頁(yè)2)指數(shù)格式,由數(shù)字和字符e(E)組成例:23_5.1e2 /其值為23510.0,忽略下劃線3.6E2 /其值為360.0 ( e與E相同)5E4 /其值為0.0005e的前面(qin mian)必須要有數(shù)
6、字而且后面必須為整數(shù)共四十五頁(yè)3字符串型常量(chngling)字符串常量是由一對(duì)雙引號(hào)括起來(lái)的字符序列。例:INTERNAL ERROR“ R E A C H E D H E R E ” /空格(kn )出現(xiàn)在/雙引號(hào)內(nèi),所以是字符串的組成部分12345_6789_0 /下劃線出現(xiàn)在/雙引號(hào)內(nèi),所以是字符串的組成部分共四十五頁(yè)字符(z f)都會(huì)被轉(zhuǎn)換成二進(jìn)制數(shù)(ASCII碼) 。所以字符串實(shí)際就是若干個(gè)8位ASCII碼的序列。例如: 字符串“INTERNAL ERROR”共有14個(gè)字符,存儲(chǔ)這個(gè)字符串的變量就需要8*14位的存儲(chǔ)空間,如下:reg 1:8*14 Message; /定義變量M
7、essage并分配存儲(chǔ)空Message = INTERNAL ERROR /給變量Message賦值為字符串常量共四十五頁(yè)參數(shù)(cnsh)在Verilog語(yǔ)言(yyn)中,用參數(shù)parameter來(lái)定義符號(hào)常量。參數(shù)常用來(lái)定義時(shí)延和變量的寬度。其定義格式如下:parameter 參數(shù)名1=表達(dá)式1,參數(shù)名2=表達(dá)式2,參數(shù)名3=表達(dá)式3, ;例: parameter sel=8,code=8ha3;共四十五頁(yè)Verilog HDL有線網(wǎng)net和寄存器兩種類型(lixng)的變量,每種類型(lixng)都有其在電路中的實(shí)際意義。1線網(wǎng)型變量Net型數(shù)據(jù)相當(dāng)于硬件電路中的各種物理連接,其特點(diǎn)是輸出
8、的值緊跟輸入值的變化而變化。 對(duì)net型有兩種驅(qū)動(dòng)方式: 一種方式是在結(jié)構(gòu)描述中將其連接到一個(gè)門元件或模塊的輸出端; 另一種方式是用持續(xù)賦值語(yǔ)句assign對(duì)其進(jìn)行賦值。 wire是最常用的Net型變量。(二) 變量(binling)共四十五頁(yè)wire型變量(binling)的定義格式如下:wire 數(shù)據(jù)名1,數(shù)據(jù)名2,數(shù)據(jù)名n;例如: wire a,b; /定義了兩個(gè)wire型變量a和bWire7:0 databus; /databus的寬度是8位共四十五頁(yè)2寄存器型變量(binling)寄存器表示一個(gè)抽象的數(shù)據(jù)存儲(chǔ)單元。寄存器只能在always和initial過(guò)程語(yǔ)句中賦值,在未被賦值時(shí),
9、寄存器的缺省值為x。Verilog HDL共有(n yu)5種寄存器類型: reg(最常用的寄存器型),integer,time,real,realtime reg定義格式如下: reg 數(shù)據(jù)名1,數(shù)據(jù)名2,數(shù)據(jù)名n;例:reg a,b; /定義了兩個(gè)reg型變量a,b reg7:0 q; /定義q為8位寬的reg型向量共四十五頁(yè)用reg聲明(shngmng)存儲(chǔ)器在Verilog HDL中不能直接聲明存儲(chǔ)器,存儲(chǔ)器是通過(guò)(tnggu)寄存器數(shù)組聲明的。存儲(chǔ)器聲明形式如下:reg msb: lsb memory1 upper1:lower1 , memory2 upper2:lower2 ,.
10、;定義單個(gè)寄存器的位寬定義存儲(chǔ)器的大?。ü灿卸嗌賯€(gè)寄存器)注意:maxplus不支持此種定義方式。共四十五頁(yè)例:reg 0:3 MyMem 0:63/ /MyMem是由64個(gè)4位寄存器組成(z chn)的存儲(chǔ)器reg Bog 1:5/ /Bog是由5個(gè)1位寄存器組成的數(shù)組reg 1:4 Xrom 1 : 5 /Xrom是由5個(gè)4位寄存器組成的存儲(chǔ)器共四十五頁(yè)存儲(chǔ)器的賦值 reg 1:4 Xrom 1 : 5 對(duì)存儲(chǔ)器Xrom賦值的正確方法有兩種:對(duì)存儲(chǔ)器賦值方法一:Xrom1 = 4hA; /對(duì)其中(qzhng)一個(gè)寄存器賦值Xrom2 = 4h8; /對(duì)其中一個(gè)寄存器賦值Xrom3 = 4h
11、F; /對(duì)其中一個(gè)寄存器賦值Xrom4 = 4h2; /對(duì)其中一個(gè)寄存器賦值Xrom5 = 4h9; /對(duì)其中一個(gè)寄存器賦值注意:不能只用一條賦值語(yǔ)句就完成(wn chng)對(duì)整個(gè)存儲(chǔ)器的賦值,應(yīng)當(dāng)對(duì)存儲(chǔ)器中的每個(gè)寄存器單獨(dú)賦值共四十五頁(yè)對(duì)存儲(chǔ)器賦值方法二: 使用$readmemb系統(tǒng)任務(wù)(rn wu)從指定的文本文件中讀取數(shù)據(jù)并加載到存儲(chǔ)器。例: $readmemb (ram.patt, Xrom );存儲(chǔ)器的賦值 reg 1:4 Xrom 1 : 5 存儲(chǔ)器名包含(bohn)數(shù)據(jù)的文本文件注意:ram.patt必須包含二進(jìn)制值,也可以包含空白和注釋。共四十五頁(yè)注意: 這里討論的verilo
12、g存儲(chǔ)器設(shè)計(jì),在綜合時(shí)都是用觸發(fā)器來(lái)實(shí)現(xiàn)的。 平時(shí)在實(shí)際設(shè)計(jì)中如果需要用到存儲(chǔ)器,更多的是采用設(shè)計(jì)軟件(如quartusII)所提供(tgng)的存儲(chǔ)器宏功能模塊來(lái)實(shí)現(xiàn)(參考教材8.1.4節(jié)),這樣在綜合時(shí)會(huì)自動(dòng)采用FPGA器件中的嵌入式存儲(chǔ)器塊去物理實(shí)現(xiàn)。共四十五頁(yè)1 操作數(shù)操作數(shù)就是運(yùn)算對(duì)象,位于操作符左右兩側(cè)。VerilogHDL操作數(shù)有如下8種類型:常數(shù)參數(shù)(parameter定義的數(shù))線網(wǎng)(wire定義的數(shù))寄存器(Reg定義的數(shù))位選擇(線網(wǎng)或寄存器的某個(gè)位)部分(b fen)選擇(線網(wǎng)或寄存器的部分連續(xù)位)存儲(chǔ)器單元函數(shù)調(diào)用二、表達(dá)式共四十五頁(yè)Verilog HDL的操作符有如下
13、9種類型:算術(shù)操作符關(guān)系操作符相等操作符邏輯操作符按位操作符歸約操作符(縮位操作符)移位操作符條件操作符連接和復(fù)制(fzh)操作符其中,除條件操作符從右向左關(guān)聯(lián)外,其余所有操作符均自左向右關(guān)聯(lián)。2 操作符共四十五頁(yè)(1)算術(shù)(sunsh)運(yùn)算符(Arithmetic operators)常用的算術(shù)運(yùn)算符包括:+加-減*乘/除%求模共四十五頁(yè)注意:整數(shù)除法將截?cái)嗨行?shù)部分,如7/4 結(jié)果為1;模操作符將求出與第一個(gè)操作數(shù)符號(hào)(fho)相同的余數(shù),如7%4結(jié)果為3,而-7%4結(jié)果為-3;MaxplusII不支持“/和%”運(yùn)算符如果算術(shù)操作符的操作數(shù)中出現(xiàn)x或z,那么整個(gè)算術(shù)操作的運(yùn)算結(jié)果為x。例
14、如:b10 x1 + b01111 的結(jié)果為不確定數(shù) bxxxxx。共四十五頁(yè)(2)關(guān)系操作符關(guān)系操作符是對(duì)兩個(gè)(lin )操作數(shù)進(jìn)行比較,如果比較結(jié)果為真則結(jié)果為1,如果比較結(jié)果為假則結(jié)果為0,關(guān)系操作符多用于條件判斷。關(guān)系操作符有如下4種: (大于) =(不小于) 45 /結(jié)果為假(0) 52= b01110 等價(jià)于: b01000 = b01110 /結(jié)果為假(0)共四十五頁(yè)(3)相等操作符與關(guān)系操作符類似,相等操作符也是對(duì)兩個(gè)操作數(shù)進(jìn)行比較,如果(rgu)比較結(jié)果為假,則結(jié)果為0,否則結(jié)果為1。相等操作符有如下4種: =(邏輯相等) !=(邏輯不等) =(全等) !=(非全等)共四十五
15、頁(yè)其中,“=”和“!=”是把兩個(gè)操作數(shù)的邏輯值做比較,由于操作數(shù)中某些位可能是x或z,所以比較結(jié)果也有可能是x。而 “=”和“!=”是按位進(jìn)行比較,即便在兩個(gè)操作數(shù)中某些位出現(xiàn)了x或z,只要它們出現(xiàn)在相同的位,那么就認(rèn)為(rnwi)二者是相同的,比較結(jié)果為1,否則為0,而不會(huì)出現(xiàn)結(jié)果為x的情況。共四十五頁(yè)(4)邏輯操作符邏輯操作(cozu)符是對(duì)操作(cozu)數(shù)做與、或、非運(yùn)算,操作(cozu)結(jié)果為0或1。邏輯操作符有3種: &(邏輯與) |(邏輯或) !(邏輯非)共四十五頁(yè)邏輯操作符的操作數(shù)只能是邏輯值0或1如: Crd = b0; /Crd是邏輯0 Dgs = b1; /Dgs是邏輯1
16、 那么(n me): Crd & Dgs /結(jié)果為0 (假) Crd | Dgs /結(jié)果為1 (真) !Dgs /結(jié)果為0 (假)共四十五頁(yè)(5)位操作符位操作(cozu)符是對(duì)操作(cozu)數(shù)按位進(jìn)行與、或、非等邏輯操作(cozu)。位操作(cozu)符有如下5種: (一元非,只有一個(gè)操作數(shù)位于右側(cè)) &(二元與,有兩個(gè)操作數(shù)位于左右兩側(cè)) |(二元或,有兩個(gè)操作數(shù)位于左右兩側(cè)) (二元異或,有兩個(gè)操作數(shù)位于左右兩側(cè)) 或者 (二元異或非,有兩個(gè)操作數(shù)位于左右兩側(cè))共四十五頁(yè)例如(lr): A = b0110; B = b0100; 那么: A | B /結(jié)果為0110 A & B /結(jié)果
17、為0100共四十五頁(yè)(6)縮位運(yùn)算符(歸約操作符)&與&與非|或|或非異或,同或縮位運(yùn)算符與位運(yùn)算符的邏輯運(yùn)算法則一樣,但縮位運(yùn)算是對(duì)單個(gè)操作數(shù)進(jìn)行(jnxng)與、或、非遞推運(yùn)算的,它放在操作數(shù)的前面。縮位運(yùn)算符將一個(gè)矢量縮減為一個(gè)標(biāo)量。例:共四十五頁(yè)A = b0110;B = b0100;那么:|B /結(jié)果為1,因?yàn)?yn wi)B中有1&B /結(jié)果為0,因?yàn)锽中有0A /結(jié)果為0,因?yàn)锳中有偶數(shù)個(gè)1歸約異或操作符“”可用于檢查操作數(shù)中是否包含x,例如:MyReg = 4b01x0;MyReg /結(jié)果為x,說(shuō)明操作數(shù)MyReg中包含x共四十五頁(yè)(7) 移位(y wi)操作符移位操作符是把操
18、作數(shù)向左或向右移位若干位。移位操作符有2種: (右移)例:module yiwei(a,c,d); input7:0 a; output7:0 c,d; assign c=a2; endmodule若a=2h08,則程序執(zhí)行后c=2h20,d=2h02;若a=2h04,則程序執(zhí)行后c=2h10,d=2h01;共四十五頁(yè)(8) 條件(tiojin)運(yùn)算符(conditional operators) ?:三目運(yùn)算符,其定義方式如下: 信號(hào)=條件?表達(dá)式1:表達(dá)式2;當(dāng)條件成立時(shí),信號(hào)取表達(dá)式1的值,反之取表達(dá)式2的值。共四十五頁(yè)【例】用Verilog HDL語(yǔ)言(yyn)描述下圖所示的電路。ca
19、by源程序如下(rxi)module example1(out,a,b,c);inputa,b,c;outputout;assign out = a? b:c;endmodule y = a*c+a*b 共四十五頁(yè)(9) 位拼接(pn ji)運(yùn)算符(concatenation operators) 該運(yùn)算符將兩個(gè)或多個(gè)信號(hào)的某些位拼接起來(lái)。如:信號(hào)1的某幾位,信號(hào)2的某幾位,信號(hào)n的某幾位例:module full_add2(a, b, cin, sum, cout);input 3:0a, b; input cin;output3:0 sum; output cout;assign cout,sum=a+b+cin;endmodule共四十五頁(yè)運(yùn)算符的優(yōu)先級(jí)在書寫程序(chngx)時(shí)建議用括號(hào)()來(lái)控制運(yùn)算的優(yōu)先級(jí) 共四十五頁(yè)(10) 復(fù)制操作符復(fù)制操作符是通過(guò)指定重復(fù)(chngf)次數(shù)來(lái)多次執(zhí)行連接操作。例:Abus = 34b1011; /做3次連接操作
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)習(xí)動(dòng)力激發(fā)輔導(dǎo)考核試卷
- 舊貨零售店鋪選址與商圈分析考核試卷
- 拉丁語(yǔ)基礎(chǔ)與古羅馬文化考核試卷
- 智能材料設(shè)計(jì)與制造考核試卷
- 小學(xué)生經(jīng)典誦讀愛國(guó)課件
- 智能餐飲顧客服務(wù)系統(tǒng)考核試卷
- ehs之家安全培訓(xùn)課件
- 施工安全合同范本
- 城管部門采購(gòu)合同范本
- 貨物拉運(yùn)合同范本
- 2024年3、6、9月青少年軟件編程Python等級(jí)考試一級(jí)真題(全3套 含答案)
- T-IMAS 087-2024 托克托縣辣椒地方品種提純復(fù)壯技術(shù)規(guī)程
- 2025年全國(guó)道路運(yùn)輸企業(yè)安全管理人員考試題庫(kù)(含答案)
- 太陽(yáng)能光伏發(fā)電安裝工程監(jiān)理實(shí)施細(xì)則
- 小學(xué)科學(xué)課件《水》
- 全新版大學(xué)高階英語(yǔ):綜合教程 第3冊(cè) Unit 6 China Rejuvenated課件
- 2024年下半年江蘇省鹽城市射陽(yáng)縣人民政府項(xiàng)目辦公室招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 醫(yī)療行業(yè)信息安全等級(jí)保護(hù)
- 新公務(wù)員法培訓(xùn)講稿
- 荊州市國(guó)土空間總體規(guī)劃(2021-2035年)
- 2024年政府辦事-戶口管理考試近5年真題集錦(頻考類試題)帶答案
評(píng)論
0/150
提交評(píng)論