




免費(fèi)預(yù)覽已結(jié)束,剩余22頁(yè)可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2.1 Verilog HDL的語(yǔ)言要素Verilog HDL語(yǔ)法來源于C語(yǔ)言基本的語(yǔ)法,其基本此法約定與C語(yǔ)言類似。程序的語(yǔ)言要素稱為語(yǔ)法,是由 符號(hào)、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式構(gòu)成的,其中符號(hào)包括空白符、注釋符、和轉(zhuǎn)義標(biāo)示符、關(guān)鍵字、數(shù)值等。2.1.1 空白符空白符包括空格符(b),制表符(t)、換行符和換頁(yè)符??瞻追勾a看起來結(jié)構(gòu)清晰,閱讀起來更方便。在編譯過程中,空白符被忽略。2.1.2 注釋符Verilog HDL語(yǔ)言允許插入注釋,標(biāo)明程序代碼功能、修改、版本等信息,以增強(qiáng)程序的可閱讀性和幫助管理文檔。Verilog HDL有兩種注釋方式1) 單行注釋:?jiǎn)涡凶⑨屢浴?”開始,Verilog HDL忽略從此處到行尾的內(nèi)容2) 多行注釋:多行注釋以“/*”開始,到“*/”結(jié)束,Verilog忽略其中的注釋內(nèi)容。2.1.3 標(biāo)識(shí)符和轉(zhuǎn)義字符 在Verilog HDL中,標(biāo)識(shí)符(Identifier)被用來命令信號(hào)名、模塊名、參數(shù)名等。它可以使任意一組字母、數(shù)字、$符號(hào)和_符號(hào)的組合。應(yīng)該注意的是,標(biāo)識(shí)符的字符區(qū)分大小寫,并且第一個(gè)字符必須是字母或者下劃線Verilog HDL規(guī)定了轉(zhuǎn)義標(biāo)識(shí)符(Escaped Identifier)。采用轉(zhuǎn)義字符可以在一條標(biāo)識(shí)符中包含任何可打印的字符。轉(zhuǎn)義標(biāo)識(shí)符以“”(反斜線)符號(hào)開頭,以空白符結(jié)尾(空白可以是 一個(gè)空格、一個(gè)制表符或者換行符)21.4 關(guān)鍵字 Verilog HDL語(yǔ)言內(nèi)部已經(jīng)使用的詞稱為關(guān)鍵字或保留字,它是Verilog HDL語(yǔ)言的內(nèi)部專用詞,是事先定義好的確認(rèn)符,用來組織語(yǔ)言結(jié)構(gòu)的。 需要注意的是,在Verilog HDL中,保留字都是小寫的。2.1.5 數(shù)值Verilog HDL有四種基本的邏輯數(shù)值狀態(tài),用數(shù)字或字符表達(dá)數(shù)字電路中傳送的邏輯狀態(tài)和存儲(chǔ)信息。Verilog HDL邏輯數(shù)值中,x和z都不區(qū)分大小寫。也就是說 ,0x1z和值)0X1Z是等同的。Verilog HDL中有四值電平邏輯如表狀態(tài)含義0低電平、邏輯0、“假”1高電平,邏輯1或“真”X或x不確定或未知的邏輯狀態(tài)Z或 Z高阻態(tài)1. 數(shù)值及其表示Verilog HDL中的整數(shù)可以是二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制。數(shù)制基數(shù)符號(hào)合法標(biāo)識(shí)符二進(jìn)制B或b0、1、x、X、Z、z、?、_八進(jìn)制O或o07、x、X、Z、z、?、_十進(jìn)制D或d09、_十六進(jìn)制H或h09、af、AF、x、X、Z、z、?、_需要注意的是1) 在較長(zhǎng)的數(shù)之間可以用下劃線來分開,目的是提高可讀性,下劃線本身沒有意義,1)在數(shù)值中,下劃線符號(hào)“_”除了不能放于數(shù)值的首位外,可以隨意用在整型數(shù)與實(shí)型數(shù)中,他們對(duì)數(shù)值大小沒有任何改變,只是為了提高可讀性。例如16b 1011000110001100和16b 1011_0001_1000_1100的數(shù)值大小是相同的,只是后一種的表達(dá)方式可讀性更強(qiáng)。如16b 1011_0001_1000_1100,但下劃線不能用作首字符。2)當(dāng)數(shù)字沒有說明位寬時(shí),默認(rèn)為32位3)z或x在二進(jìn)制中代表1位z或x,在八進(jìn)制中代表3位z或x,在十六進(jìn)制中代表4位z或x,其代表的寬度取決于所用的進(jìn)制。8b1011xxxx /等價(jià)于8hBx8b1001zzzz /等價(jià)于8h9z4. 若沒有定義一個(gè)整數(shù)的位寬,其寬度為相應(yīng)值中定義的為數(shù)。例如 o642 /9位八進(jìn)制數(shù) hBD /8位16進(jìn)制數(shù)5. 若定義的位寬比實(shí)際數(shù)的為數(shù)大,則在左邊用0補(bǔ)齊。但如果輸最左邊一位為x或者z,就相應(yīng)的用x或z左邊補(bǔ)齊。如 10b101 /左邊補(bǔ)0,得 0000000101 8bzx01 /左邊補(bǔ)z,得zzzzz0x1 如果定義的位寬比實(shí)際數(shù)的位數(shù)大,那么最左邊的位被截?cái)唷?. “?”是高阻態(tài)z的另一種表示符號(hào)。在數(shù)字的表示中,字符“?”和Z或z是等價(jià)的,可以互相替換。7. 整數(shù)可以帶正、負(fù)號(hào),并且正、負(fù)號(hào)應(yīng)寫在最左邊。負(fù)數(shù)表示為二進(jìn)制的補(bǔ)碼形式。8.如果位寬和進(jìn)制都缺省,則代表十進(jìn)制數(shù)9.數(shù)字中不能有空格,但在表示進(jìn)制的字母兩則可以有空格。例: 5hx /5位十六進(jìn)制數(shù)x(擴(kuò)展的x),即xxxxx 8 h 2A /在位寬和字符之間以及進(jìn)制和數(shù)值之間可以/有空格,但數(shù)字之間不能有空格2. 實(shí)數(shù)極其表示1) 十進(jìn)制表示法。采用十進(jìn)制格式,小數(shù)點(diǎn)兩邊必須都有數(shù)字,否則為非法的表示形式2) 科學(xué)計(jì)數(shù)法。 如564.2e2的值為54620.03) Verilog HDL還定義了實(shí)數(shù)轉(zhuǎn)換為整數(shù)的方法,實(shí)數(shù)通過四舍五入轉(zhuǎn)換為最相近的整數(shù)。3. 字符串及其表示字符串是指用雙引號(hào)括起來的字符序列,它必須包含在同一行中,不能分行書寫。若字符串用作Verilog HDL表達(dá)式或賦值語(yǔ)句中的操作數(shù),則字符串被看作8位的ASCII值序列,即一個(gè)字符對(duì)應(yīng)8位的ASCII碼。如 “hello world”和“An example for Verilog HDL”2.2 數(shù)據(jù)類型 在Verilog HDL中,數(shù)據(jù)類型共有19種。分為兩類:物理數(shù)據(jù)類型(主要包括連線型及寄存器型)和抽象數(shù)據(jù)類型(主要包括、整型、時(shí)間型、實(shí)型及參數(shù)型)物理數(shù)據(jù)類型的抽象數(shù)據(jù)程度比較低,與實(shí)際硬件電路的映射關(guān)系比較明顯;而抽象數(shù)據(jù)類型則是進(jìn)行輔助設(shè)計(jì)和驗(yàn)證的數(shù)據(jù)類型。2.2.1 物理數(shù)據(jù)類型 Verilog HDL最主要的物理數(shù)據(jù)類型是連線型、寄存器型和存儲(chǔ)器型,并使用四種邏輯電平和八種信號(hào)強(qiáng)度對(duì)實(shí)際的電路建模。四值邏輯電平是對(duì)信號(hào)的抽象方式。信號(hào)強(qiáng)度表示數(shù)字電路中不同強(qiáng)度的驅(qū)動(dòng)源,用來解決不同驅(qū)動(dòng)強(qiáng)度下的賦值沖突,邏輯0和1可以用下表列出的強(qiáng)度值表示,驅(qū)動(dòng)強(qiáng)度從supply到highz依次遞減。標(biāo)記符名稱類型強(qiáng)弱程度supply電源級(jí)驅(qū)動(dòng)驅(qū)動(dòng)最強(qiáng)最弱strong強(qiáng)驅(qū)動(dòng)驅(qū)動(dòng)pull上拉級(jí)驅(qū)動(dòng)驅(qū)動(dòng)large大容性存儲(chǔ)weak弱驅(qū)動(dòng)驅(qū)動(dòng)medium中性驅(qū)動(dòng)存儲(chǔ)small小容性存儲(chǔ)highz高容性高阻連線型連線型數(shù)據(jù)類型功能說明wire,tri標(biāo)準(zhǔn)連線(缺省為該類型)wor,trior多重驅(qū)動(dòng)時(shí),具有線或特性的連線型trireg具有電荷保持特性的連線型數(shù)據(jù)tri1上拉電阻tri0下拉電阻sypply0電源線,用于對(duì)“地”建模,為低電平0supply1電源線,用于對(duì)電源線建模,為高電平1wand,trand多重驅(qū)動(dòng)時(shí),具有線與特性的連線型連線表示邏輯單元的物理連接,可以對(duì)應(yīng)為電路中的物理信號(hào)連線,這種變量類型不能保持電荷(除trieg之外)。連線型變量必須要有驅(qū)動(dòng)源,一種是連接到一個(gè)們或者模塊的輸出端,另一種是用assign連續(xù)賦值語(yǔ)句對(duì)它進(jìn)行賦值。若沒有驅(qū)動(dòng)源,將保持高阻態(tài)z.1) wire和tri最常見的是wire(連線)和tri(三態(tài)線)兩種,它們的語(yǔ)法和語(yǔ)義一致。不同之處在于:wire型變量通常用來表示單個(gè)門驅(qū)動(dòng)或連續(xù)賦值語(yǔ)句驅(qū)動(dòng)的連線型數(shù)據(jù)tri型數(shù)據(jù)變量則用來表示多驅(qū)動(dòng)器驅(qū)動(dòng)的連線型數(shù)據(jù),主要用于定義三態(tài)的線網(wǎng)。wire/tri01xz00xx01x1x1xxxxxz01xz上述真值表明:同時(shí)有兩個(gè)驅(qū)動(dòng)強(qiáng)度相同的驅(qū)動(dòng)源來驅(qū)動(dòng)wire或tri變量時(shí)的輸出結(jié)果。2)wor和tirorWor/tiror01xz001x011111xx1xxz01xz3) wand和triandwand/triand01xz00000101x1x0xxxz01xz4) trio和tri1tri0(tri1)的特征是,若無(wú)驅(qū)動(dòng)源驅(qū)動(dòng),其值為0(tri的值為1)trio/ tri101xz00xx01x1x1xxxxxz01x0/15) supply0 和 supply1supply0用于對(duì)“地”建模,即低電平0;supply1用于對(duì)電源建模,即高電平1.如supply0表示Gnd. Supply1表示Vcc。6) trireg 線網(wǎng)trireg線網(wǎng)能存儲(chǔ)數(shù)值(類似于寄存器型數(shù)據(jù)類型),并且用于電容節(jié)點(diǎn)的建模。當(dāng)三態(tài)寄存器(trireg)的所有驅(qū)動(dòng)源都處于高阻態(tài)(z)時(shí),三態(tài)寄存器線網(wǎng)將保持作用在線網(wǎng)上的最后一個(gè)邏輯值。三態(tài)寄存器線網(wǎng)的缺省初始值為x一個(gè)trireg網(wǎng)絡(luò)型數(shù)據(jù)用于模擬電荷存儲(chǔ)。電荷量強(qiáng)度可以下面的關(guān)鍵字來控制:samll、medium、;large。默認(rèn)的電荷強(qiáng)度為medium。一個(gè)trireg網(wǎng)絡(luò)型數(shù)據(jù)能夠模擬一個(gè)電荷存儲(chǔ)節(jié)點(diǎn),該節(jié)點(diǎn)的電荷量將隨時(shí)間而逐漸衰減。對(duì)于一個(gè)trireg網(wǎng)絡(luò)型數(shù)據(jù),仿真時(shí)其電荷衰減時(shí)間應(yīng)當(dāng)制定為延遲時(shí)間。2 寄存器型 Reg型變量時(shí)最常見也是最重要的寄存器型數(shù)據(jù)類型,它是數(shù)據(jù)存儲(chǔ)單元的抽象類型,其對(duì)應(yīng)的硬件電路元件具有狀態(tài)保持作用,能夠存儲(chǔ)數(shù)據(jù),如觸發(fā)器、鎖存器等。reg型變量常用于行為級(jí)描述中,由過程賦值語(yǔ)句對(duì)其進(jìn)行賦值。reg 型數(shù)據(jù)域wire型數(shù)據(jù)的區(qū)別在于,reg型數(shù)據(jù)類型保持最后一次的賦值,而wire型數(shù)據(jù)需要有持續(xù)的驅(qū)動(dòng)。一般情況下,reg型數(shù)據(jù)的默認(rèn)初始值為不定值x,缺省時(shí)的位寬為1位。reg 型數(shù)據(jù)變量舉例:reg a; /定義一個(gè)1位的名為a的reg型變量reg3:0 b ; /定義一個(gè)4位的名為b的reg型變量reg8:1 c,d,e ; /定義三個(gè)名稱分別為c、d、e的8位reg型的變量。reg型變量一般是無(wú)符號(hào)數(shù),若將一個(gè)負(fù)數(shù)賦給一個(gè)reg型變量,則自動(dòng)轉(zhuǎn)換成其二進(jìn)制補(bǔ)碼形式。在過程塊內(nèi)被賦值的每一個(gè)信號(hào)都必須定義為reg型,并且只能在always或initial過程塊中賦值,大多數(shù)reg型信號(hào)常常是寄存器或觸發(fā)器的輸出。2.2.2 連線型和寄存器數(shù)據(jù)類型的聲明1. 連線型數(shù)據(jù)類型的聲明 缺省的連線型數(shù)據(jù)的默認(rèn)類型為1位(標(biāo)量)wire類型。Verilog禁止對(duì)已經(jīng)聲明過的網(wǎng)絡(luò)、變量或參數(shù)再次聲明。連線型數(shù)據(jù)類型聲明的一般語(yǔ)法如下: 其中,drive_strength、range、delay為可選項(xiàng)。而list_of_variables為必選項(xiàng)1) net_declaration:表示網(wǎng)絡(luò)型數(shù)據(jù)的類型,可以是wire,tri、tri0、tri1、wand、triand、trior、wor、trireg中的任意一種。對(duì)于trireg類型,其聲明還有一個(gè)charge_strength(電荷強(qiáng)度)的可選項(xiàng)2) drive_strength:表示連線變量的驅(qū)動(dòng)強(qiáng)度3) range:用來指定數(shù)據(jù)位標(biāo)量或矢量。若該項(xiàng)默認(rèn),表示數(shù)據(jù)類型為1位的標(biāo)量,超過1位就為矢量形式。4) delay:指定仿真延遲時(shí)間5) list_of_variables:變量名稱,一次可定義多個(gè)名稱,之間用逗號(hào)分開。2. 寄存器型數(shù)據(jù)類型的聲明reg 型數(shù)據(jù)類型聲明的一般語(yǔ)法格式:reg其中,range為可選項(xiàng),它制定了reg型變量的位寬,缺省時(shí)為1位。說明: list_of_register_variables:變量名稱列表,一次可以定義多個(gè)名稱,之間用逗號(hào)分開。 物理數(shù)據(jù)類型聲明舉例:reg 7:0 regb; /定義一個(gè)8位的寄存器變量tri 7:0 tribus; /定義了一個(gè)8位的三態(tài)總線tri0 15:0 busa; /定義了一個(gè)16位的連線型,處于三態(tài)時(shí)為上拉電阻tri1 31:0 busb; /定義了一個(gè)32位的連線型,處于三態(tài)時(shí)為下拉電阻reg scalared1:4b;/定義了一個(gè)4位的標(biāo)量型寄存器矢量wire(pull,strong()) c =a+b; /定義了一個(gè)1和0的驅(qū)動(dòng)強(qiáng)度不同的1位連線型變量ctrireg (large)storeline;/定義了一個(gè)具有強(qiáng)度的電荷存儲(chǔ)功能的存儲(chǔ)線2.23存儲(chǔ)器型存儲(chǔ)器型(memory)本質(zhì)上還是寄存器型變量陣列,只是Verilog HDL語(yǔ)言中沒有多維數(shù)組,所有就用reg型變量建立寄存器組來實(shí)現(xiàn)存儲(chǔ)器的功能,也就是擴(kuò)展的reg型數(shù)據(jù)地址范圍。存儲(chǔ)器型變量可以描述RAM型、ROM型存儲(chǔ)器以及reg文件。數(shù)組中的每一個(gè)單元通過一個(gè)數(shù)組索引進(jìn)行尋址。存儲(chǔ)器型變量的一般聲明格式:reg;其中,range1和range2都是可選項(xiàng),缺省時(shí)都為1.說明:(1) range1:表示存儲(chǔ)器中寄存器的位寬,格式為msb:lsb(2) range2:表示寄存器的個(gè)數(shù),格式為msb:lsb,即有msb-lsb+1個(gè)(3) name_of_register:變量名稱列表,一次可以定義多個(gè)名稱,之間用逗號(hào)分開。reg7:0 mem1255:0; /定義了一個(gè)有256個(gè)8位寄存器的存儲(chǔ)器mem1 地址范圍是0到255.reg15:0mem2127:0,reg1,reg2;/定義了一個(gè)具有128個(gè)16位寄存器的存儲(chǔ)器,mem2和2個(gè)16位的寄存器reg1和reg2注意:memory型和reg型數(shù)據(jù)的差別。一個(gè)由n個(gè)1位寄存器構(gòu)成的寄存器和一個(gè)n位寄存器的意義是不同的。regn-1:0a; /表示一個(gè)n位的寄存器areg mem1n-1:0; /表示一個(gè)由n個(gè)1位寄存器構(gòu)成的存儲(chǔ)器mem1.一個(gè)n位的寄存器可以在一條賦值語(yǔ)句里進(jìn)行賦值,而一個(gè)完整的存儲(chǔ)器則不行。如果想對(duì)存儲(chǔ)器中的存儲(chǔ)單元進(jìn)行讀寫操作,則必須指定該單元在存儲(chǔ)器中的地址。 如: mem12=0;/給mem1存儲(chǔ)器中的第三個(gè)存儲(chǔ)單元賦值為02.24 抽象數(shù)據(jù)類型除了物理數(shù)據(jù)類型外,Verilog HDL還提供了一下幾種抽象數(shù)據(jù)類型:整形(integer)、時(shí)間型(time)、實(shí)型(real)及參數(shù)型(parameter)。他們只是純數(shù)學(xué)的抽象描述,不能夠與實(shí)際的硬件電路相映射。1. 整型整型數(shù)據(jù)常用于對(duì)循環(huán)控制變量的說明,在算術(shù)運(yùn)算中被視為二進(jìn)制補(bǔ)碼形式的有符號(hào)數(shù)。除了寄存器數(shù)據(jù)被當(dāng)作無(wú)符號(hào)數(shù)來處理之外,整數(shù)型據(jù)與32位寄存器型數(shù)據(jù)在實(shí)際意義上相同。整型數(shù)據(jù)的聲明格式:integer integer index; /簡(jiǎn)單的32位有符號(hào)整數(shù)integer i31:0; /定義了整數(shù)數(shù)組,它有32個(gè)元素2時(shí)間型時(shí)間型數(shù)據(jù)與整型數(shù)據(jù)類似,只是它是64位的無(wú)符號(hào)數(shù)。時(shí)間型數(shù)據(jù)主要用于對(duì)模擬時(shí)間的存儲(chǔ)與計(jì)算處理,常與系統(tǒng)函數(shù)$time一起使用聲明格式如下:time ;如: time a,b; /定義了兩個(gè)64位的時(shí)間變量3實(shí)型Verilog HDL支持實(shí)型常量與變量。實(shí)型數(shù)據(jù)在機(jī)器碼表示法中是浮點(diǎn)型數(shù)據(jù),可用于對(duì)延遲時(shí)間的計(jì)算。聲明格式:real如: real stime;/定義了一個(gè)實(shí)型數(shù)據(jù)4 參數(shù)型在Verilog HDL中,參數(shù)是一個(gè)非常重要的數(shù)據(jù)類型,屬于常量,在仿真開始之前就被賦值,在仿真過程中保持不變。采用參數(shù)定義方法可以提高程序的可讀性和維護(hù)性。參數(shù)常用來定義延遲時(shí)間和變量的位寬。參數(shù)類型的定義格式:parameter 參數(shù)名1=表達(dá)式1,參數(shù)名2=表達(dá)式2,參數(shù)名n=表達(dá)式n;其中,表達(dá)式既可以是常數(shù),也可以是表達(dá)式。參數(shù)定義完以后,程序中出現(xiàn)的所有的參數(shù)名都將被替換為相對(duì)應(yīng)的表達(dá)式。如:parameter length=32,weight=16;運(yùn)算符Verilog HDL語(yǔ)言的運(yùn)算符主要針對(duì)數(shù)字邏輯電路的制定,覆蓋范圍廣泛。請(qǐng)參見Verilog HDL中的運(yùn)算符和優(yōu)先級(jí)。運(yùn)算符2.3.1 算術(shù)運(yùn)算符Verilog HDL中常用的算術(shù)運(yùn)算符主要有5種,分別是加法(+)、減法(-)、乘法(*)、除法(/)、取模(%),均為雙目運(yùn)算符1) 算術(shù)操作結(jié)果的位寬 算術(shù)表達(dá)式結(jié)果的長(zhǎng)度由最長(zhǎng)的操作數(shù)決定。在賦值語(yǔ)句中,算術(shù)操作結(jié)果的長(zhǎng)度由操作左端的目標(biāo)長(zhǎng)度決定。2) 有符號(hào)與無(wú)符號(hào)的使用無(wú)符號(hào)數(shù)的值一般存儲(chǔ)在線網(wǎng)、reg(寄存器)變量及普通(沒有符號(hào)標(biāo)記s)的基數(shù)格式表示的整數(shù)型中有符號(hào)數(shù)值一般存儲(chǔ)在存儲(chǔ)在整型變量、十進(jìn)制形式的整數(shù)、有符號(hào)的reg(寄存器)變量及有符號(hào)的線網(wǎng)中2.3.2關(guān)系運(yùn)算符雙目運(yùn)算符:大于()、小于()、大于等于、小于等于、在進(jìn)行關(guān)系比較時(shí),如果成立則結(jié)果為“1”,否則返回的結(jié)果為“0”.若不確定則返回結(jié)果為不定值(x)2.34 相等關(guān)系運(yùn)算符相等關(guān)系運(yùn)算符是對(duì)兩個(gè)操作數(shù)進(jìn)行比較,比較的結(jié)果有三種:真1,假0,和不定值(x).Verilog HD語(yǔ)言中四種相等關(guān)系運(yùn)算符:等于(=)、不等于(!=)、全等于(=)。這四種運(yùn)算符都是雙目運(yùn)算符,要求有兩個(gè)操作數(shù)。他們的優(yōu)先級(jí)是相同的?!?”和“!=”稱為邏輯等式運(yùn)算符,其結(jié)果有兩個(gè)操作數(shù)的值決定,由于操作數(shù)中某些位可能是不定值x和高阻態(tài)值z(mì),所以結(jié)果可能是不定值x?!? =”和“!=”運(yùn)算符則不同,他是對(duì)操作數(shù)按位比較,兩個(gè)操作數(shù)必須完全一樣,其結(jié)果才是1,否則都是0.但是,若兩個(gè)操作數(shù)對(duì)應(yīng)位出現(xiàn)不定值x和高阻值z(mì),則可以認(rèn)為是相同的。“=”和“!=”運(yùn)算符常用于case表達(dá)式的判別,所以又稱為“case”等式運(yùn)算符。2.3.4 邏輯運(yùn)算符邏輯與運(yùn)算符“&” 邏輯或運(yùn)算符“|”,邏輯非運(yùn)算符(?。┢渲羞壿嬇c和邏輯或,是雙目運(yùn)算符。邏輯非為單目運(yùn)算符。在邏輯運(yùn)算符的操作中,如果操作數(shù)是1位的,那么1就代表邏輯真,0就代表邏輯假。如果是操作數(shù)是由多位的,則當(dāng)操作數(shù)每一位都是0時(shí)才是邏輯0值,只要有一位1,這個(gè)操作數(shù)就是邏輯1值。例如:寄存器變量a、b的初值分別是4b1110和4b0000,則!a=0, !b=1; a&b=0; a|b=1;需要注意的是,若操作數(shù)中存在不定態(tài)x,則邏輯運(yùn)算的結(jié)果也是不定態(tài)。2.3.5 按位運(yùn)算符數(shù)字邏輯電路中,信號(hào)與信號(hào)之間的運(yùn)算稱之位運(yùn)算。Verilog HDL提供了一下五種類型的位運(yùn)算符:按位取反()、按位與(&)、按位或(|)、按位異或()、按位同或()位邏輯運(yùn)算對(duì)其自變量的每一位進(jìn)行操作。2.3.6 歸納運(yùn)算符歸納運(yùn)算符按位進(jìn)行邏輯運(yùn)算,屬于單目運(yùn)算符。由于這一類運(yùn)算符操作的結(jié)果產(chǎn)生1位邏輯值,因而被形象地稱為縮位運(yùn)算符。在Verilog HDL中,縮位運(yùn)算符包括&(與)、|(或)、(異或)以及相應(yīng)的非操作&、 |、 、 .歸納運(yùn)算符的操作數(shù)只有一個(gè)。2.3.7 移位運(yùn)算符移位運(yùn)算符有兩種:左移位運(yùn)算符()。運(yùn)算過程是將左邊(右邊)的操作數(shù)向左(右)移,所移動(dòng)的位數(shù)由右邊的操作數(shù)來決定,然后用0來填補(bǔ)移出的空位。2.3.8 條件運(yùn)算符條件運(yùn)算符是Verilog HDL里唯一的三目運(yùn)算符。它根據(jù)條件表達(dá)式的值來選擇執(zhí)行表達(dá)式,其表達(dá)形式為?:其中,條件表達(dá)式的計(jì)算結(jié)果有真(1)、假(0)和不定時(shí)(x)三種。當(dāng)條件表達(dá)式的結(jié)果為真時(shí),執(zhí)行表達(dá)式1,當(dāng)條件表達(dá)式的結(jié)果為假時(shí),執(zhí)行表達(dá)式為2.當(dāng)條件表達(dá)式的結(jié)果為不定態(tài)x,則模擬器按位對(duì)表達(dá)式1的值與表達(dá)式2的值進(jìn)行比較。2.3.9鏈接和復(fù)制運(yùn)算符連接運(yùn)算符() 和復(fù)制運(yùn)算符()連接運(yùn)算符是把位于大括號(hào)()中的兩個(gè)或兩個(gè)以上信號(hào)或數(shù)值用逗號(hào)(,)分隔的小表達(dá)式按位連接在一起,最后用大括號(hào)括起來表示一個(gè)整體信號(hào),形成一個(gè)大的表達(dá)式,其格式為:信號(hào)1的某幾位,信號(hào)2的某幾位,信號(hào)n的某幾位重復(fù)運(yùn)算符()將一個(gè)表達(dá)式放入雙重花括號(hào)中,復(fù)制因子放在第一層括號(hào)中,它為復(fù)制一個(gè)常量提供了一種簡(jiǎn)便的方法。2.4 模塊2.4.1 模塊的基本概念模塊(module)是Verilog HDL語(yǔ)言的基本單元,它代表一個(gè)基本的功能塊,用于描述某個(gè)設(shè)計(jì)的功能或結(jié)構(gòu),以及與其它模塊通信的一個(gè)外部端口,一個(gè)電路設(shè)計(jì)不僅僅局限于一個(gè)模塊的設(shè)計(jì),而是由多個(gè)模塊組合而成,因此一個(gè)模塊的設(shè)計(jì)只是一個(gè)系統(tǒng)設(shè)計(jì)中某個(gè)層次的設(shè)計(jì)?;镜哪K結(jié)構(gòu)組成(1). 模塊的開始與結(jié)束: 模塊在語(yǔ)言形式上是以關(guān)鍵字module開始,以關(guān)鍵詞 endmodule結(jié)束的一段程序,其中模塊開始語(yǔ)句必須要以分號(hào)結(jié)束。模塊的開始部分包括模塊名(name)和端口列表(Port_list),模塊名是模塊唯一性的標(biāo)識(shí)符,而端口列表是由模塊各個(gè)輸入、輸出和雙向端口變量組成的一張列表,這些端口用來與其它模塊進(jìn)行連接(不妨理解為集成電路的引腳) (2) 模塊端口定義:用來定義端口列表里的變量那些是輸入(input)、輸出(output)和雙向端口(inout)以及位寬。(3)模塊數(shù)據(jù)類型的說明: 數(shù)據(jù)類型包括 wire、reg、memory和parameter等,用來說明模塊中所用到的內(nèi)部信號(hào)、調(diào)用模塊等的聲明語(yǔ)句和功能定義語(yǔ)句。一般來說,module的input缺省定義為wire類型,output信號(hào)可以是wire類型,也可以是reg類型(條件是在always或initial語(yǔ)句塊中被賦值);inout一般為tri(三態(tài)類型),表示有多個(gè)驅(qū)動(dòng)源。 (4) 模塊邏輯功能描述:用來產(chǎn)生各種邏輯(主要是組合邏輯和時(shí)序邏輯),主要包括initial語(yǔ)句、always語(yǔ)句、其它子模塊實(shí)例化語(yǔ)句、門實(shí)例化語(yǔ)句、用戶自定義原語(yǔ)(UDP)實(shí)例化語(yǔ)句、連續(xù)賦值語(yǔ)句(assign)、函數(shù)(function)和任務(wù)(task) 因此由上述模塊的結(jié)構(gòu)組成可以看出,模塊在概念上可等同于一個(gè)器件,比如通用器件(與門、三態(tài)門)或通用宏單元(計(jì)數(shù)器、ALU、CPU)等。一個(gè)模塊可在另一個(gè)模塊中調(diào)用,一個(gè)模塊代表了一個(gè)特定功能塊。一個(gè)電路設(shè)計(jì)可由多個(gè)模塊組合而成,因此一個(gè)模塊的設(shè)計(jì)只是一個(gè)系統(tǒng)設(shè)計(jì)中某個(gè)層次的設(shè)計(jì)。模塊設(shè)計(jì)可采用多中建模方式,一般包括行為描述方式,結(jié)構(gòu)描述方式以及混合描述方式(混合使用結(jié)構(gòu)描
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代駕司機(jī)崗位面試問題及答案
- 2025屆湖北省示范初中高一下化學(xué)期末檢測(cè)模擬試題含解析
- 太原市重點(diǎn)中學(xué)2025年高一化學(xué)第二學(xué)期期末綜合測(cè)試模擬試題含解析
- 河北省衡水滁州分校2025屆化學(xué)高一下期末考試試題含解析
- 河南文物鉆探管理辦法
- 機(jī)構(gòu)合作管理暫行辦法
- 北京藥品直供管理辦法
- 智慧治理視角下基層指揮中心數(shù)字化管理效能提升研究
- 關(guān)鍵績(jī)效指標(biāo)體系構(gòu)建與應(yīng)用研究
- 民族院校師生管理辦法
- 陜西省專業(yè)技術(shù)人員繼續(xù)教育2025公需課《黨的二十屆三中全會(huì)精神解讀與高質(zhì)量發(fā)展》20學(xué)時(shí)題庫(kù)及答案
- 2024-2025學(xué)年人教版數(shù)學(xué)五年級(jí)下學(xué)期期末試卷(含答案)
- 教師專業(yè)發(fā)展與職業(yè)生涯規(guī)劃
- 會(huì)計(jì)師事務(wù)所員工績(jī)效考評(píng)新版制度
- 氣釘槍安全培訓(xùn)教材PPT學(xué)習(xí)教案
- 小學(xué)數(shù)學(xué)圖形與幾何知識(shí)點(diǎn)歸納匯總
- APQP培訓(xùn)教材PPT課件
- JC∕T 1083-2008 水泥與減水劑相容性試驗(yàn)方法
- 食品工程原理(李云飛)第二章ppt 傳熱
- 二氧化碳?xì)怏w保護(hù)焊.ppt
- 儀表工程質(zhì)量控制點(diǎn)等級(jí)劃分表
評(píng)論
0/150
提交評(píng)論