Verilog語法與要素_第1頁
Verilog語法與要素_第2頁
Verilog語法與要素_第3頁
Verilog語法與要素_第4頁
Verilog語法與要素_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系第五章第五章 Verilog語法與要素語法與要素5.1 概述概述5.2 Verilog 模塊的模塊的結(jié)構(gòu)結(jié)構(gòu)5.3 語言要素語言要素5.4 常量常量5.5 數(shù)據(jù)類型數(shù)據(jù)類型5.6 參數(shù)參數(shù)5.7 向量向量5.8 運算符運算符第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系5.1 概述概述Verilog的設計初衷是成為一種基本語法與的設計初衷是成為一種基本語法與C語言相語言相近的硬件描述語言。近的硬件描述語言。C語言在語言在Verilog設計之初

2、,已經(jīng)在許多領域得到廣設計之初,已經(jīng)在許多領域得到廣泛應用,泛應用,C語言的許多語言要素已經(jīng)被許多人習慣。語言的許多語言要素已經(jīng)被許多人習慣。所以,一種與所以,一種與C語言相似的硬件描述語言,可以讓語言相似的硬件描述語言,可以讓電路設計人員更容易學習和接受。電路設計人員更容易學習和接受。但但Verilog與與C語言還是存在許多差別。語言還是存在許多差別。作為一種與普通計算機編程語言不同的硬件描述語作為一種與普通計算機編程語言不同的硬件描述語言,它還具有一些獨特的語言要素,例如向量形式言,它還具有一些獨特的語言要素,例如向量形式的線網(wǎng)和寄存器、過程中的非阻塞賦值等。的線網(wǎng)和寄存器、過程中的非阻塞

3、賦值等。第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系Verilog 是在是在C語言基礎上發(fā)展起來的,保留了語言基礎上發(fā)展起來的,保留了C語言的結(jié)構(gòu)特點。語言的結(jié)構(gòu)特點。C語言由函數(shù)組成語言由函數(shù)組成, Verilog HDL由模塊由模塊(module)組成,組成,C語言通過函數(shù)名及其參數(shù)變量實現(xiàn)調(diào)用,語言通過函數(shù)名及其參數(shù)變量實現(xiàn)調(diào)用, Verilog HDL通過模塊名及其端口變量實現(xiàn)調(diào)用。通過模塊名及其端口變量實現(xiàn)調(diào)用。C語言有主函數(shù)語言有主函數(shù)main( ), Verilog HDL的各模塊的各模塊均等價,但必有一個頂層模塊,包含芯片

4、系統(tǒng)與均等價,但必有一個頂層模塊,包含芯片系統(tǒng)與外界的所有外界的所有I/O信號。信號。C語言順序執(zhí)行,語言順序執(zhí)行,Verilog HDL的各模塊均并發(fā)的各模塊均并發(fā)執(zhí)行。執(zhí)行。Verilog 與與C語言的比較語言的比較第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系Verilog 與與C語言的比較語言的比較第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系Verilog 與與C語言的比較語言的比較第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工

5、程系module aoi(a,b,c,d,f);input a,b,c,d;output fwire a,b,c,d,f; assign f=(a&b)|(c&d); endmodule“與與-或或-非非”電路電路 /* 模塊名為模塊名為aoi,端口列表,端口列表a,b,c,d,f */ /模塊的輸入端口為模塊的輸入端口為a,b,c,d /模塊的輸出端口為模塊的輸出端口為f /定義信號的數(shù)據(jù)類型定義信號的數(shù)據(jù)類型 /邏輯功能描述邏輯功能描述 /結(jié)束語句結(jié)束語句5.2 Verilog HDL 模塊的結(jié)構(gòu)模塊的結(jié)構(gòu)第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子

6、工程系材料與能源學院微電子工程系Verilog程序是由模塊構(gòu)成的。每個模塊的內(nèi)容都嵌程序是由模塊構(gòu)成的。每個模塊的內(nèi)容都嵌在在module和和endmodule兩個關(guān)鍵字之間;每個模塊兩個關(guān)鍵字之間;每個模塊實現(xiàn)特定的功能。實現(xiàn)特定的功能。每個模塊首先要進行端口定義,并說明輸入和輸出每個模塊首先要進行端口定義,并說明輸入和輸出口(口(input、output或或inout),然后對模塊的功能進),然后對模塊的功能進行定義。行定義。Verilog程序書寫格式自由,一行可以寫幾個語句,程序書寫格式自由,一行可以寫幾個語句,一個語句也可以分多行寫。一個語句也可以分多行寫。除了除了endmodule等

7、少數(shù)語句外,每個語句的最后必等少數(shù)語句外,每個語句的最后必須有分號。須有分號??捎每捎?/*/ 和和 /對對Verilog程序作注釋。程序作注釋。 第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系模塊聲明包括模塊名字,模塊輸入、輸出端口列表。模模塊聲明包括模塊名字,模塊輸入、輸出端口列表。模塊定義格式如下:塊定義格式如下:module 模塊名模塊名(端口端口1,端口,端口2,端口,端口3,);1. 模塊聲明模塊聲明端口端口(Port)定義定義 對模塊的輸入輸出端口要明確說明,其格式為:對模塊的輸入輸出端口要明確說明,其格式為: input 端

8、口名端口名1,端口名,端口名2, 端口名端口名n; /輸入端口輸入端口 output 端口名端口名1,端口名,端口名2, 端口名端口名n; /輸出端口輸出端口 inout 端口名端口名1,端口名,端口名2, 端口名端口名n; /輸入輸出端口輸入輸出端口第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系3信號類型聲明信號類型聲明對模塊中所用到的所有信號(包括端口信號、對模塊中所用到的所有信號(包括端口信號、節(jié)點信號等)都必須進行數(shù)據(jù)類型的定義。節(jié)點信號等)都必須進行數(shù)據(jù)類型的定義。Verilog語言提供了各種信號類型,分別模擬語言提供了各種信號類

9、型,分別模擬實際電路中的各種物理連接和物理實體。實際電路中的各種物理連接和物理實體。如果信號的數(shù)據(jù)類型沒有定義,則綜合器將其如果信號的數(shù)據(jù)類型沒有定義,則綜合器將其默認為是默認為是wire型。型。 第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系 在在Verilog-1995中,端口定義和數(shù)據(jù)類型定義需要在兩中,端口定義和數(shù)據(jù)類型定義需要在兩條語句中執(zhí)行,而條語句中執(zhí)行,而Verilog-2001中可以將其組合在一起中可以將其組合在一起,并放,并放在模塊聲明中,其格式是:在模塊聲明中,其格式是:module 模塊標識名模塊標識名模塊參數(shù)列表模

10、塊參數(shù)列表 端口聲明列表端口聲明列表 ; 模塊內(nèi)容模塊內(nèi)容 endmoduleVerilog 2001模塊聲明的擴展模塊聲明的擴展例如:例如:module aoi(input wire a,b,c,d,output wire f);assign f=(a&b)|(c&d);endmodule第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系模塊中最核心的部分是邏輯功能定義。模塊中最核心的部分是邏輯功能定義。定義邏輯功能的幾種基本方法定義邏輯功能的幾種基本方法:用用assign持續(xù)賦值語句定義持續(xù)賦值語句定義 assign語句多用

11、于組合邏輯的賦值,稱為持續(xù)賦值語句多用于組合邏輯的賦值,稱為持續(xù)賦值方式。方式。用用always過程塊定義過程塊定義 always過程語句既可以用來描述組合電路,也可過程語句既可以用來描述組合電路,也可以描述時序電路。以描述時序電路。 調(diào)用元件調(diào)用元件(元件例化元件例化) 調(diào)用元件的方法類似于在電路圖輸入方式下調(diào)入圖調(diào)用元件的方法類似于在電路圖輸入方式下調(diào)入圖形符號來完成設計,這種方法側(cè)重于電路的結(jié)構(gòu)描述。形符號來完成設計,這種方法側(cè)重于電路的結(jié)構(gòu)描述。 4. 邏輯功能定義邏輯功能定義第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系p Ver

12、ilog 模塊的模板模塊的模板 module ();output 輸出端口列表輸出端口列表; /輸出端口聲明輸出端口聲明input 輸入端口列表輸入端口列表; /輸入端口聲明輸入端口聲明/*定義數(shù)據(jù),信號的類型,函數(shù)聲明定義數(shù)據(jù),信號的類型,函數(shù)聲明*/reg 信號名;信號名;/邏輯功能定義邏輯功能定義assign =;/使用使用assign語句定義邏輯功能語句定義邏輯功能/用用always塊描述邏輯功能塊描述邏輯功能always ()begin /過程賦值過程賦值 /if-else,case語句語句 /while,repeat,for循環(huán)語句循環(huán)語句 /task,function調(diào)用調(diào)用 e

13、nd /調(diào)用其他模塊調(diào)用其他模塊 ();/門元件例化門元件例化 門元件關(guān)鍵字門元件關(guān)鍵字 ();endmodule 第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系module add4_bin(cout,sum,ina,inb,cin);input cin; input3:0 ina,inb;output3:0 sum; output cout;assign cout,sum=ina+inb+cin;/*邏輯功能定義邏輯功能定義*/endmodule【例例】4位二進制加法器的位二進制加法器的Verilog描述描述 第五章第五章 Verilo

14、g語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系4位二進制加法器位二進制加法器RTL級綜合結(jié)果級綜合結(jié)果(Synplify Pro)綜合綜合(RTL(RTL級級) )第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系4位二進制加法器門級綜合視圖位二進制加法器門級綜合視圖(Synplify Pro)綜合綜合( (門級門級) )第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系5.3 Verilog HDL 語言要語言要素素Verilog 程序由符號流構(gòu)成,符號包括:程序由

15、符號流構(gòu)成,符號包括:空白符(空白符(White space)注釋(注釋(Comments)操作符(操作符(Operators)數(shù)字(數(shù)字(Numbers)字符串(字符串(Strings)標識符(標識符(Identifiers)關(guān)鍵字(關(guān)鍵字(Keywords)等)等第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系 空白符包括:空格、空白符包括:空格、tab、換行和換頁??瞻追Q行和換頁。空白符使代碼錯落有致,閱讀起來更方便。在綜合時空白使代碼錯落有致,閱讀起來更方便。在綜合時空白符被忽略。符被忽略。 Verilog程序可以不分行:程序可以

16、不分行: initial begin ina=3b001;inb=3b011; end 也可以加入空白符采用多行編寫:也可以加入空白符采用多行編寫:initial begin ina=3b001; inb=3b011; end 空白符空白符(White space)第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系u單行注釋:以單行注釋:以“/”開始到本行結(jié)束開始到本行結(jié)束u多行注釋:多行注釋以多行注釋:多行注釋以“/ /* *”開始,到開始,到“* */ /” 結(jié)結(jié) 束束 注釋注釋(Comment)/*舉例說明舉例說明*/module add

17、bit(a,b,ci,sum,co);/輸入端口輸入端口input a;input b;.第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系標識符標識符(Identifiers) Verilog中的標識符可以是任意一組字母、數(shù)字以及符號中的標識符可以是任意一組字母、數(shù)字以及符號“$”和和“_”(下劃線)的組合,但標識符的第一個字符必須(下劃線)的組合,但標識符的第一個字符必須是字母或者下劃線。另外,標識符最長是字母或者下劃線。另外,標識符最長1023個字符,區(qū)分大個字符,區(qū)分大小寫的。小寫的。 轉(zhuǎn)義標志符以轉(zhuǎn)義標志符以“”開頭、空白符結(jié)尾,可用

18、任何字符。開頭、空白符結(jié)尾,可用任何字符。nExamples:不合法的名字:不合法的名字:l123al$datalmodulel7seg.v合法的名字:合法的名字:A_99_ZReset_54MHz_Clock$Module 第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系關(guān)鍵字關(guān)鍵字事先定義好的確認事先定義好的確認符,用來組織語言結(jié)構(gòu);或者符,用來組織語言結(jié)構(gòu);或者用于定義用于定義Verilog HDL提供的提供的門元件門元件(如如and,not,or,buf)。用用小寫小寫字母定義:字母定義:用戶程序中的用戶程序中的變量、節(jié)點等變量、節(jié)點

19、等名稱不能與名稱不能與關(guān)關(guān)鍵字鍵字同名!同名!endtaskeventforforceforeverforkf u n c t i o n highz0casexcasezcmosdeassigndefaultdefparamdisableedgeandalwaysassignbeginbufbufif0bufif1caseelseendendcaseendfunctionendprimitiveendmoduleendspecifyendtableVerilog HDL關(guān)鍵字關(guān)鍵字詳見附錄詳見附錄A、B第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微

20、電子工程系highz1 ififnoneinitialinoutinputintegerjoinlargemacromodulemediummodulenandnegedgenor notnotif0notif1nmosoroutputparameterpmosposedgeprimitivepulldownpulluppull0pull1rcmosrealrealtimeregreleaserepeatrnmosrpmosrtranrtranif0rtranif1scalaredsmallspecifyspecparamstrengths t r o n g 0 strong1supply0

21、supply1tabletasktrantranif0tranif1timetritriandtriortriregt r i 0 / t r i 1 vectoredwaitwandweak0/weak1whilewireworxnorxor第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系程序運行中,值不能被改變的量稱為常量程序運行中,值不能被改變的量稱為常量(constants),),Verilog中的常量主要有如下中的常量主要有如下3種類型。種類型。5.4 常量常量u 整數(shù)整數(shù)u 實數(shù)實數(shù)u 字符串字符串第五章第五章 Verilog語法

22、與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系整數(shù)整數(shù)(integer)p整數(shù)按如下方式書寫:整數(shù)按如下方式書寫:+/- 即即 +/- size 為對應二進制數(shù)的寬度,默認值為為對應二進制數(shù)的寬度,默認值為32位;位;base為進制;為進制;value是基于進制的數(shù)字序列。是基于進制的數(shù)字序列。p進制有如下進制有如下4種表示形式:種表示形式: 二進制(二進制(b或或B) 十進制(十進制(d或或D或缺?。┗蛉笔。?十六進制(十六進制(h或或H) 八進制(八進制(o或或O)第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系Ex

23、amples:8b11000101 /位寬為八位的二進制數(shù)位寬為八位的二進制數(shù)110001018hd5 /位寬為八位的十六進制數(shù)位寬為八位的十六進制數(shù)d5;5O27 /5位八進制數(shù)位八進制數(shù)4D2 /4位十進制數(shù)位十進制數(shù)24B1x_01 /4位二進制數(shù)位二進制數(shù)1x015Hx /5位位x(擴展的(擴展的x),即),即xxxxx4hZ /4位位z,即,即zzzz8h2A /*在位寬和在位寬和之間,以及進制和數(shù)值之間允之間,以及進制和數(shù)值之間允許出現(xiàn)空格,但許出現(xiàn)空格,但和進制之間,數(shù)值間是不允和進制之間,數(shù)值間是不允許出現(xiàn)空格的,比如許出現(xiàn)空格的,比如8h2A、8h2A等形等形式都是不合法的寫

24、法式都是不合法的寫法 */第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系基數(shù)符號及其合法的表示值基數(shù)符號及其合法的表示值第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系書寫和使用數(shù)字的注意事項書寫和使用數(shù)字的注意事項: :數(shù)值常量中的下劃線數(shù)值常量中的下劃線“_”是為了增加可讀性,可是為了增加可讀性,可以忽略。如以忽略。如8b1100_0110表示表示8位二進制數(shù)位二進制數(shù)。沒說明位寬時,默認值為沒說明位寬時,默認值為32位。位。x或或(z)代表的寬度取決于所用的進制。代表的寬度取決于所用

25、的進制。例如:例如:8b1001xxxx /等價于等價于8h9x 8b101zzz /等價于等價于8o5z如果沒有定義一個整數(shù)型的長度,數(shù)的長度為相如果沒有定義一個整數(shù)型的長度,數(shù)的長度為相應值中定義的位數(shù)。應值中定義的位數(shù)。 例如:例如:o721 /9位位2進制位寬的八進進制位寬的八進制數(shù)制數(shù) hAF /8位位2進制位寬的十六進制位寬的十六進制數(shù)進制數(shù)第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系書寫和使用數(shù)字的注意事項書寫和使用數(shù)字的注意事項: :如果定義的長度比為常量指定的長度長,通常在如果定義的長度比為常量指定的長度長,通常在左邊填

26、左邊填0補位。但是如果數(shù)最左邊一位為補位。但是如果數(shù)最左邊一位為x或或z,就,就相應地用相應地用x或或z在左邊補位。在左邊補位。例如:例如:10b10 左邊添左邊添0占位,占位,00000000|10 10bx0 x1 左邊添左邊添x占位,占位,xxxxxx|x0 x1如果定義的位寬比實際的位數(shù)小,那么最左邊的如果定義的位寬比實際的位數(shù)小,那么最左邊的位相應地被截斷。位相應地被截斷。例如:例如:3b1001_0011 /與與3b011相等相等 5h0FFF /與與5h1F相等相等第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系書寫和使用數(shù)字的

27、注意事項書寫和使用數(shù)字的注意事項: :數(shù)值常量中的數(shù)值常量中的“?”表示高阻狀態(tài),如:表示高阻狀態(tài),如:2B1?表示表示2位的二進制數(shù)其中的一位是高阻狀態(tài)。位的二進制數(shù)其中的一位是高阻狀態(tài)。整數(shù)可以帶正、負號,且在最左邊。負數(shù)通常表整數(shù)可以帶正、負號,且在最左邊。負數(shù)通常表示為二進制補碼的形式。示為二進制補碼的形式。當人位寬與進制省略時表示十進制的數(shù)。當人位寬與進制省略時表示十進制的數(shù)。例如例如32/代表十進制數(shù)代表十進制數(shù)32-15/代表十進制數(shù)代表十進制數(shù)-15在位寬和在位寬和之間,以及進制和數(shù)值之間允許出現(xiàn)空之間,以及進制和數(shù)值之間允許出現(xiàn)空格,但格,但和進制之間以及數(shù)值之間不允許出現(xiàn)空

28、格。和進制之間以及數(shù)值之間不允許出現(xiàn)空格。第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系實數(shù)實數(shù)(Real)n實數(shù)(實數(shù)(Real)有下面兩種表示法。)有下面兩種表示法。 十進制表示法。十進制表示法。例如:例如:2.0 0.1 /以上以上2例是合法的實數(shù)表示形式例是合法的實數(shù)表示形式 2. /非法:小數(shù)點兩側(cè)都必須有數(shù)字非法:小數(shù)點兩側(cè)都必須有數(shù)字 科學計數(shù)法??茖W計數(shù)法。例如:例如:43_5.1e2 /其值為其值為43510.09.6E2 /960.0 (e與與E相同相同)5E-4 /0.0005第五章第五章 Verilog語法與要素語法

29、與要素材料與能源學院微電子工程系材料與能源學院微電子工程系n字符串是雙引號內(nèi)的字符序列。字符串是雙引號內(nèi)的字符序列。n字符串不能分成多行書寫。字符串不能分成多行書寫。例如:例如: INTERNAL ERRORn字符串的作用主要是用于仿真時,顯示一些相關(guān)字符串的作用主要是用于仿真時,顯示一些相關(guān)的信息,或者指定顯示的格式。的信息,或者指定顯示的格式。n字符串變量字符串變量reg型變量,其寬度為字符串中字符的型變量,其寬度為字符串中字符的個數(shù)乘以個數(shù)乘以8。n特殊字符必須用字符特殊字符必須用字符“”來說明,見表來說明,見表5.2。5.5 字符串字符串(Strings)第五章第五章 Verilog語

30、法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系5.5 數(shù)據(jù)類型數(shù)據(jù)類型p Verilog有下面四種基本的邏輯狀態(tài)。有下面四種基本的邏輯狀態(tài)。 0:低電平、邏輯:低電平、邏輯0或邏輯非或邏輯非 1:高電平、邏輯:高電平、邏輯1或或“真真” x或或X:不確定或未知的邏輯狀態(tài):不確定或未知的邏輯狀態(tài) z或或Z:高阻態(tài):高阻態(tài)pVerilog中的所有數(shù)據(jù)類型都在上述中的所有數(shù)據(jù)類型都在上述4類邏輯狀類邏輯狀態(tài)中取值,其中態(tài)中取值,其中x和和z都不區(qū)分大小寫,也就是都不區(qū)分大小寫,也就是說,值說,值0 x1z與值與值0X1Z是等同的。是等同的。數(shù)據(jù)類型(數(shù)據(jù)類型(Data Typ

31、e)是用來表示數(shù)字電路中的)是用來表示數(shù)字電路中的物理連線、數(shù)據(jù)存儲和傳輸單元等物理量的。物理連線、數(shù)據(jù)存儲和傳輸單元等物理量的。 第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系 Verilog中的變量分為如下兩種數(shù)據(jù)類型:中的變量分為如下兩種數(shù)據(jù)類型: net型型 variable型型net型中常用的有型中常用的有wire、tri;variable型包括型包括reg、integer等。等。注意:在注意:在Verilog-1995標準中,標準中,variable型變量稱型變量稱為為register型;在型;在Verilog-2001標準中將

32、標準中將register一一詞改為了詞改為了variable,以避免初學者將,以避免初學者將register和硬和硬件中的寄存器概念混淆起來。件中的寄存器概念混淆起來。第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系n Net型數(shù)據(jù)相當于硬件電路中的各種物理連接,其特點是型數(shù)據(jù)相當于硬件電路中的各種物理連接,其特點是輸出的值緊跟輸入值的變化而變化。對連線型有兩種驅(qū)動輸出的值緊跟輸入值的變化而變化。對連線型有兩種驅(qū)動方式,一種方式是在結(jié)構(gòu)描述中將其連接到一個門元件或方式,一種方式是在結(jié)構(gòu)描述中將其連接到一個門元件或模塊的輸出端;另一種方式是用持

33、續(xù)賦值語句模塊的輸出端;另一種方式是用持續(xù)賦值語句assign對其對其進行賦值。進行賦值。n wire是最常用的是最常用的Net型變量。型變量。n wire型變量的定義格式如下:型變量的定義格式如下:wire 數(shù)據(jù)名數(shù)據(jù)名1,數(shù)據(jù)名,數(shù)據(jù)名2,數(shù)據(jù)名數(shù)據(jù)名n;nExamples:wire a,b; /定義了兩個定義了兩個wire型變量型變量a和和bwire7:0 databus; /databus的寬度是的寬度是8位位wire19:0 addrbus; /addrbus的寬度是的寬度是20位位5.5.1 net型型netsnets型變量型變量不能儲存值!不能儲存值!第五章第五章 Verilog

34、語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系常用的常用的nets型變量型變量ntritri和和wirewire的功能和使用方法完全一樣,但后者綜合后具有的功能和使用方法完全一樣,但后者綜合后具有三態(tài)功能。三態(tài)功能。第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系n variable型變量必須放在過程語句(如型變量必須放在過程語句(如initial、always)中,)中,通過過程賦值語句賦值;在通過過程賦值語句賦值;在always、initial等過程塊內(nèi)被賦等過程塊內(nèi)被賦值的信號也必須定義成值的信號也必須定義成v

35、ariable型。型。n 注意:注意:variable型變量并不意味著一定對應著硬件上的一型變量并不意味著一定對應著硬件上的一個觸發(fā)器或寄存器等存儲元件,在綜合器進行綜合時,個觸發(fā)器或寄存器等存儲元件,在綜合器進行綜合時,variable型變量會根據(jù)具體情況來確定是映射成連線還是型變量會根據(jù)具體情況來確定是映射成連線還是映射為觸發(fā)器或寄存器。映射為觸發(fā)器或寄存器。 n reg型變量是最常用的一種型變量是最常用的一種variable型變量。定義格式如下:型變量。定義格式如下: reg 數(shù)據(jù)名數(shù)據(jù)名1,數(shù)據(jù)名,數(shù)據(jù)名2,數(shù)據(jù)名數(shù)據(jù)名n;5.5.2 Variable型型Examples:reg a,

36、b; /定義了兩個定義了兩個reg型變量型變量a,breg7:0 qout; /定義定義qout為為8位寬的位寬的reg型向量型向量reg8:1 qout; 第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系常用的常用的variable型變量型變量第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系variable型與型與net型變量的根本區(qū)別是:型變量的根本區(qū)別是: variable型變量需要被明確地賦值,并型變量需要被明確地賦值,并且在被重新賦值前一直保持原值。且在被重新賦值前一直保持原值。v

37、ariable型變量必須通過過程賦值語句型變量必須通過過程賦值語句賦值!不能通過賦值!不能通過assign語句賦值!語句賦值!1.在過程塊內(nèi)被賦值的每個信號必須定義在過程塊內(nèi)被賦值的每個信號必須定義成成variable型!型!第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系用用reg型變量生成型變量生成組合邏輯組合邏輯舉舉例例:module rw1( a, b, out1, out2 ) ; input a, b; output out1, out2; reg out1; wire out2; assign out2 = a ; always

38、 (b) out1 = b;endmoduleaout2BUFFbINVout1過程賦值語句過程賦值語句連續(xù)賦值語句連續(xù)賦值語句電平觸發(fā)電平觸發(fā)Verilog中中reg與與wire的區(qū)別的區(qū)別regreg型變量既可生成觸發(fā)器,型變量既可生成觸發(fā)器,也可生成組合邏輯;也可生成組合邏輯; wirewire型型變量只能生成組合邏輯。變量只能生成組合邏輯。第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系用用reg型變量生成型變量生成觸發(fā)器觸發(fā)器舉舉例例:module rw2( clk, d, out1, out2 ); input clk, d; o

39、utput out1, out2; reg out1; wire out2; assign out2 = d & out1 ; always (posedge clk) begin out1 b);assign equal = (a= =b);assign less = (ab);endmodule第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系【例例】 采用參數(shù)定義的加法器采用參數(shù)定義的加法器module add_w(a,b,sum);parameter MSB=15; /參數(shù)定義參數(shù)定義inputMSB:0 a,b; output

40、MSB+1:0 sum;assign sum=a+b;endmodule第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系【例例】采用參數(shù)定義的二進制計數(shù)器采用參數(shù)定義的二進制計數(shù)器module count_w(en,clk,reset,out);input clk,reset,en;parameter WIDTH=8; /參數(shù)定義參數(shù)定義outputWIDTH-1:0 out; regWIDTH-1:0 out;always (posedge clk or negedge reset)if(!reset) out=0;else if(en)

41、out=out+1;endmodule第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系【例例】采用參數(shù)定義的約翰遜計數(shù)器采用參數(shù)定義的約翰遜計數(shù)器module johnson_w(clk,clr,qout);input clk,clr;parameter WIDTH=8; /參數(shù)定義參數(shù)定義output reg(WIDTH-1):0 qout;always (posedge clk or posedge clr)begin if(clr) qout=0;else beginqout=qout1; qout0=qoutWIDTH-1;enden

42、dendmodule第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系5.7 向量向量標量與向量標量與向量寬度為寬度為1位的變量稱為標量,如果在變量聲明中位的變量稱為標量,如果在變量聲明中沒有指定位寬,則默認為標量沒有指定位寬,則默認為標量(1位位)。 如:如: wire a; /a為標量為標量 reg clk; /clk為標量為標量reg型變量型變量線寬大于線寬大于1位的變量位的變量(包括包括net型和型和variable型型)稱稱為向量為向量(vector)。它的寬度用下面的形式定義:。它的寬度用下面的形式定義: msb : lsb比如:比

43、如: wire3:0 bus; /4位的總線位的總線第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系位選擇和域選擇位選擇和域選擇在表達式中可任意選中向量中的一位或相鄰幾位,在表達式中可任意選中向量中的一位或相鄰幾位,分別稱為位選擇和域選擇。分別稱為位選擇和域選擇。如:如: A=mybyte6; /位選擇位選擇 B=mybyte5:2; /域選擇域選擇比如:比如: reg7:0 a,b; reg3:0 c; reg d;d=a7&b7; /位選擇位選擇c=a7:4+b3:0; /域選擇域選擇第五章第五章 Verilog語法與要素語法與要

44、素材料與能源學院微電子工程系材料與能源學院微電子工程系memory型變量存儲器型變量存儲器定義:由若干個相同寬度的定義:由若干個相同寬度的reg型向量構(gòu)成的數(shù)組。型向量構(gòu)成的數(shù)組。Verilog HDL通過通過reg型變量建立數(shù)組來對型變量建立數(shù)組來對存儲器存儲器建模。建模。memory型變量可描述型變量可描述RAM、ROM和和reg文件。文件。memory型變量通過擴展型變量通過擴展reg型變量的地址范圍來生成:型變量的地址范圍來生成:regn-1:0存儲器名存儲器名m-1:0;或或regn-1:0存儲器名存儲器名m:1;每個存儲單元位寬為每個存儲單元位寬為n共有共有m個存儲單元個存儲單元第

45、五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系含義不同含義不同例例 regn-1:0 rega;/一個一個n位的位的寄存器寄存器 reg mema n-1:0 ;/由由n個個1位寄存器組成的位寄存器組成的存儲器存儲器 必 須必 須指 明指 明存 儲存 儲單 元單 元的的 地地址址!0n-10n-1n-2地址地址賦值方式不同賦值方式不同 一個一個n位的寄存器可用一條賦值語句賦值;位的寄存器可用一條賦值語句賦值; 一個完整的一個完整的存儲器則不行!若要對某存儲器中的存儲單元進行讀寫操作,存儲器則不行!若要對某存儲器中的存儲單元進行讀寫操作,必須指

46、明該單元在存儲器中的必須指明該單元在存儲器中的地址地址! 例例 rega = 0; /合法賦值語句合法賦值語句 mema = 0 ; /非法賦值語句非法賦值語句 mema8 = 1 ; /合法賦值語句合法賦值語句 mema1023:0 = 0 ;/合法賦值語句合法賦值語句memory型變量型變量與與reg型變量型變量的區(qū)別的區(qū)別第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系5.8 運算符運算符(Operators)Verilog HDL語言的運算符范圍很廣,其運算符按其功能可語言的運算符范圍很廣,其運算符按其功能可分為以下幾類:分為以下幾類

47、: (1)算術(shù)運算符算術(shù)運算符(+,-,X,); (2)賦值運算符賦值運算符(,); (4)邏輯運算符邏輯運算符(&,|,!); (5)條件運算符條件運算符(?:); (6)位運算符位運算符( ,|, &, ); (7)移位運算符移位運算符(); (8)拼接運算符拼接運算符( ); (9)其他(等號運算符、縮減運算符)。其他(等號運算符、縮減運算符)。第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系在在Verilog HDL語言中運算符所帶的操作數(shù)是不同的,按其語言中運算符所帶的操作數(shù)是不同的,按其所帶操作數(shù)的個數(shù)運算符可分為

48、所帶操作數(shù)的個數(shù)運算符可分為3種:種:單目運算符:可以帶一個操作數(shù),操作數(shù)放在運算符的單目運算符:可以帶一個操作數(shù),操作數(shù)放在運算符的右邊右邊;雙目運算符:可以帶兩個操作數(shù),操作數(shù)放在運算符的雙目運算符:可以帶兩個操作數(shù),操作數(shù)放在運算符的兩邊;兩邊;三目運算符:可以帶三個操作數(shù),這三個操作數(shù)用三目三目運算符:可以帶三個操作數(shù),這三個操作數(shù)用三目運算符分隔開。運算符分隔開。例:例: clockclock; /是一個單目取反運算符,是一個單目取反運算符,clock是操作數(shù)是操作數(shù) ca|b; /是一個二目按位或運算符,是一個二目按位或運算符,a和和b是操作數(shù)是操作數(shù) rs? t:u; /?:是一

49、個三目條件運算符,:是一個三目條件運算符,s,t,u是操作數(shù)是操作數(shù)第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系1、算術(shù)運算符、算術(shù)運算符(Arithmetic operators)雙雙目運算符目運算符進行整數(shù)除法運算時,結(jié)果值略去小數(shù)部分,只取整數(shù)部分!進行整數(shù)除法運算時,結(jié)果值略去小數(shù)部分,只取整數(shù)部分!%稱為稱為求模求模(或(或求余求余)運算符,要求)運算符,要求%兩側(cè)均為兩側(cè)均為整型整型數(shù)據(jù);數(shù)據(jù);求模運算結(jié)果值的符號位取第一個操作數(shù)的符號位!求模運算結(jié)果值的符號位取第一個操作數(shù)的符號位! 例例 -11%3 結(jié)果為結(jié)果為-2進行算術(shù)運算時,若某操作數(shù)為不定值進行算術(shù)運算時,若某操作數(shù)為不定值x,則整個結(jié)果也為,則整個結(jié)果也為x。 + 加加 - 減減 * 乘乘 / 除除 % 模模第五章第五章 Verilog語法與要素語法與要素材料與能源學院微電子工程系材料與能源學院微電子工程系2、邏輯運算符、邏輯運算符(Logical operators)邏輯操作符的結(jié)果為一位邏輯操作符的結(jié)果為一位1,0或或x。邏輯操作符只對邏輯值運算。邏輯操作符只對邏輯值運算。如操作數(shù)為全如操作數(shù)為全0,則其邏輯值為,則其邏輯值為false。如操作數(shù)有一位為如操作數(shù)有一位為1,則其邏輯值為,則其邏輯值為true。若操作數(shù)若操作數(shù)只只包

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論