Verilog中的一些語法和技巧_第1頁
Verilog中的一些語法和技巧_第2頁
Verilog中的一些語法和技巧_第3頁
Verilog中的一些語法和技巧_第4頁
Verilog中的一些語法和技巧_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

、.、.3、RegXregreg4、在數(shù)據(jù)類型中?和Z均表示高阻態(tài)。5、Reg“always”regreg是并不一定總是這樣。6、VerilogMemoryregreg[n-1:0]存儲器名[m-1:0];7、在除法和取余的運算中結(jié)果的符號和第一個操作數(shù)的符號位是相同的。8、不同長度的數(shù)據(jù)進行運算:兩個長度不同的數(shù)據(jù)進行位運算時,系統(tǒng)會自動0作數(shù)安慰進行操作。9、===與!===和==與!==的區(qū)別:后者稱為邏輯等是運算符,其結(jié)果是2xzxzx0.10、非阻塞和阻塞賦值方式:非阻塞賦值方式(如a<=b)上面語句所賦得變量值不能立即被下面語句所用(2)3(賦值語句執(zhí)行完后,塊才結(jié)束2b311、模塊的描述方式:(RTL為寄存器傳輸級描述)(1)“assign”連續(xù)賦值語句來實現(xiàn)。分為兩種a、顯式連續(xù)賦值語句;1PAGEPAGE10連線型變量類型[連線型變量為快]連線型變量名Assign#(延時量)連線型變量名=賦值表達式;顯式連續(xù)賦值語句包含了兩條語句;第一條是對連線型變量的進行類型說明的說明語句;第二句是對這個已得到聲明的連線型變量進行連續(xù)賦值語句。影視賦值語句:連線型變量類型(復(fù)制驅(qū)動強度延時量連線性變量名=賦值表達式。隱式連續(xù)賦值語句是把連線性變量說明語句和連線AssignAssignreg行為描述方式:A、initialB、always0、結(jié)構(gòu)描述方式verilogverilogHDLAb、用用戶自定義元件UDPcd關(guān)級元件混合型描述11、連續(xù)賦值語句與過程賦值語句的區(qū)別:veriloga、從語法上來看,連續(xù)賦值語句由“assign”關(guān)鍵詞來表示,而過程賦值語句中則不包含b、連續(xù)賦值語句中左側(cè)的被賦值數(shù)據(jù)類型必須是線網(wǎng)型數(shù)據(jù),而過程賦值語句中的被賦值數(shù)據(jù)類型則必須是寄存器類型的變量c、連續(xù)賦值語句不能出現(xiàn)在過程快(initialalways)而過程賦值語句則只能出現(xiàn)在過程快中d、連續(xù)復(fù)制語句主要用來對組合邏輯電路進行建模以及對線網(wǎng)型數(shù)據(jù)間的連接進行描述,而過程賦值語句主要用來對時序邏輯電路進行行為描述e(值上,這也是我們有時會使用“連續(xù)驅(qū)動”這個術(shù)語的原因,而在過程賦值語變量的取值不再受到賦值表達式的影響.1、間隔符和注釋符:verilogHDL(\b、tab(\t行符(\n)以及換頁符。注釋符有2種://和/*……….*/后為多行注釋符用于對多行語句注釋;前者為單行注釋符,只對注釋符所在的行有效。13數(shù)之間,他們對數(shù)值的大小沒有任何的影響,只是為了提高可讀性。verilogbB、十進制dD、八進制oO六進制(hH)格式:<size>’<base-format><number> <size>用于指定所表示數(shù)的位寬,在數(shù)值的表示中式可以缺省的.位寬小于數(shù)值的實際位數(shù)時,相應(yīng)的高位部分被忽略;當(dāng)位寬大于實際的位數(shù),且數(shù)值的最高位是0或者1時,相應(yīng)的高位補零當(dāng)位寬高于數(shù)值的實際位數(shù)但數(shù)值的最高位是x或者z時相應(yīng)的高位部分補x或者z。二進制中的x或者z表示一位處于x或者z,八進制的表示三位,十六進制的表示4位。14、實型數(shù)及其表示方法VerilogHDL進制數(shù)格式,小數(shù)點兩邊必須有數(shù)字,否則為非法字符。如3.8E10 2.1e-9;15、字符串寫。如字符串用作verilogHDL8ASCII8ASCIIverilog最大長度。需要注意的是,verilogHDL大于字符串的實際長度,則字符串變量的高位補零。Reg[8*12:1]stringvarInitialBegin string=“helloEnd特殊字符:\n換行符\ttab鍵 \\符號\\*符號*\dddASCII16、數(shù)據(jù)類型01z,中X,z物理類型數(shù)據(jù)分為連線型和寄存器型亮中連線型數(shù)據(jù)對應(yīng)的是硬件電路的物理信號連線,沒有電荷的保持作用(除外。連線型數(shù)據(jù)必須有去動員驅(qū)動,有兩種方式對他進行驅(qū)動:一種是結(jié)構(gòu)assign連線型數(shù)據(jù)Wire,triWor,triorWand,triandTri1

功能描述兩種常見類型多重驅(qū)動時,具有線或特性的連線型多重驅(qū)動時,具有線與特性的連線型上拉電阻Tri0Tri0下拉電阻Supp.ly11Supply00VerilogHDL中的連線型數(shù)據(jù)及其功能描述regx在過程語句后面的過程塊語句中。ROM,RAM件進行建模。數(shù)組中的每一個寄存器均稱為一個元素,用不同的索引來尋址。Reg[16:1]mem[5:1]165、抽象數(shù)據(jù)類項有整型integer 時間型time實型real參數(shù)性parameter17、運算符*/xx。18~對于3==2)1;而后者對為進行操作~(、0、1、0)=1101;19后將運算結(jié)果與第三位進行歸約運算,以此類推,直到最后一位。格式(&b)19、移位運算?!不會20、條件運算符:verilogHDL1,則算子返回第二個操作數(shù);如第一個操0,表給出的邏輯,將第二個和第三個操作數(shù)按位比較得到結(jié)果。:01XZ00XXX1X1XXXXXXXZXXXX21VerilogHDL復(fù)制運算符{{}}將一個表達式放入雙重花括號內(nèi),而復(fù)制因子放在第一個括號內(nèi),用來指定復(fù)制的次數(shù)。運算符[]()~!&|~&~|^~^^~+-{}*/%+-<< >>> >= < >===!=&…^ ^~ ~^|&&||

描述為選擇或部分選擇圓括號歸約運算符鏈接運算符算術(shù)運算符雙目運算符以為運算符關(guān)系運算符相等運算符按位與按位異或或異或非按位或邏輯與邏輯或::條件表達式二、模塊的基本結(jié)構(gòu)1Module<模塊名>(模塊端口說明參數(shù)定義(可選數(shù)據(jù)類型說明過程快(initialalways連續(xù)賦值語句任務(wù)定義tast(可選)函數(shù)定義function(可選)沒有進行數(shù)據(jù)類型說明,則他的類型缺省為連線類型(wire。必須出現(xiàn)在端口和數(shù)據(jù)被引用之前。2(1)在行為描述模塊中出現(xiàn)的每個過程塊initial塊)都代表一個獨立的進程。0每一個過程塊內(nèi)部的多條語句的執(zhí)行方式可以是順序執(zhí)行的(當(dāng)快定義語begin——end,也可以是并行執(zhí)行的(塊定義語句是時的情況。alwaysinitial3、initialInitial語句塊而語句塊的格式為:<塊定義語句>:<塊名>塊內(nèi)局部變量;時間控制1 行為語句;時間控制n 行為語句;<塊定義語句2>其中:塊定義語句刻意是“beginend”語句組,或者時“fork,join”語句組。disable句中斷。部變量只能是寄存器類數(shù)據(jù)類型。行為語句可以是如下語句中的一種過程賦值語(阻塞型或非阻塞型過程賦值語句)過程連續(xù)賦值語句(assign/deassign或force/release語句組)if條件分支語句case條件分支語句 循環(huán)控制語(foreverrepeatwhilefor循環(huán)語句) wait等待語句 disable終端語句 事件觸發(fā)語句(event——trigger) 任務(wù)調(diào)用語句(用戶自定義的任務(wù)或系統(tǒng)任務(wù)。Initialinitial過程塊常常用來對只需執(zhí)行一次的過程進行描述,例如刻意用來寄存器的初始化!4、always過程塊:Alwaysalways”Always@(敏感事件列表)語句塊其中語句塊的格式為:<塊定義語句1 這里一般是begin或者fork>:<塊名塊內(nèi)局部變量說明;時間控制1 行為語句1;。。。時間控制n 行為語句n;<塊定義語句2 這里一般是end>說明:@(敏感事件列表)是可選項,帶有敏感事件列表的語句塊被稱為“由事OR他的塊內(nèi)定義語句也分為串行塊和并行塊。5alwaysinitialalwaysalways為觸發(fā)條件始終被滿足。6alwaysalwaysalwaysalways列入敏感事件列表。7、串行塊:begin:<塊名>快內(nèi)局部變量時間控制1 行為語句1;。。。時間控制n 行為語句Endreginteger型變量聲明語句。他的語句是順序執(zhí)行的。8、并行塊和串行塊的格式是相同的,只是它的關(guān)鍵字是fork-join,而且他的語句是并行執(zhí)行的。而且并行塊和串行塊是可以嵌套使用的。三、行為描述:時間控制和賦值控制1、時間控制可以用來對過程塊中各條語句的執(zhí)行時間進行控制,時間控制分為兩類:、延時控制:為行為語句的執(zhí)行指定一個延時時間的控制方式、事件控制:為行為語句的執(zhí)行指定觸發(fā)事件的時間控制方式其中時事件控制方式又可以分為兩類:邊沿觸發(fā)事件控制和電平敏感事件控制2、延時控制格式為:#<延遲時間>行為語句;或者#<延遲時間>;是以多少個仿真時間單位的形式給出的,可以是一個立即數(shù)、變量和表達式。xz值的二進制補碼值作為實際的延時量。3、邊沿觸發(fā)控制分為四種格式:第一種:@<事件表達式> 行為語句第二種:@<事件表達式>;第三種1>or<2>。or<@(<1>or<2>。or<n>;其中事件表達式有三種形式:<信號名>Posedge<信號名>Negedge<信號名>信號名可以是任意數(shù)據(jù)類型的標(biāo)量或矢量。輯變化(不論是整條便還是負(fù)跳變。它是信號出了保持穩(wěn)定太意外的任意一種變化過程。第二種表示正跳變可以是下列中的一種:0——x變化過程。第二種表示正跳變可以是下列中的一種:0——x0——z0——1z——1第三種表示負(fù)跳變可以是寫列中的一種:1——x1——z1——0Z——0.4、用always過程塊實現(xiàn)組合邏輯功能x——0(1)事件表達式內(nèi)不能能包含“posedge”和“negedge”關(guān)鍵詞,也就是說敏感事件列表中的事件表達式智能是前面所述的第一種現(xiàn)在敏感時間列表中。5、電平敏感事件控制(wait語句)是某一個指定的條件為真。有三種形式:第一種:wait(條件表達式)語句塊;第二種:wait(條件表達式) 行為語句第三種wait(條件表達式;6(initial過程塊(現(xiàn)連續(xù)賦值語句,同時過程賦值語句也只能用在過程塊中。過程賦值語句的基本格式為:<被賦值變量><賦值操作符><賦值表達式>性賦值類型。7、過程賦值語句智能對于對寄存器類的變量(reg、integer、real、time)進行賦值8、過程賦值的兩種延時方式:予左端被賦變量。例如 #5 a=b;相當(dāng)于延時5在把b的值賦給a。、內(nèi)部時間控制當(dāng)賦值語句中的時間控制部分出現(xiàn)在“賦值操作符”和“賦值表達式”之間這種情況下的時間控制成為“內(nèi)部時間控制”。格式為:a=#5b;先計算b的值,當(dāng)延遲時間過后把b的值賦給a??梢?,在內(nèi)部時間控制方式下,時間控制所“控制”的是賦值表達式被計算時刻到賦值操作被執(zhí)行時刻之間的時間差,賦值表達式被計算時刻和賦值變量被復(fù)制的時刻是不同的,他們之間的時間差是有時間控制部分決定的。abbab格式例子:b=#5a;c=@(posedgeclk)a;d=wait(enable)a;9#0a=b不具有延時控制的賦值語句“a=b”的執(zhí)行過程是很相似的;在語句開始執(zhí)行后baa=b”內(nèi)的表達式計算和變量賦值操作則是在賦值開始執(zhí)行后立即進行的,不需要等待同一時刻的其他操作完成后才進行。如initialBeginA=0;B=0;EndInitialBegin#0#0b=1;End上了顯示零延時控制a,b0,0a,b1,a、1。10、阻塞和非阻塞賦值:阻塞型————符號為“=” 非阻塞型——符號為“<=”區(qū)別:阻塞型在串行快中的個跳阻塞型過程賦值語句將以他們在順序快中的先后排列次序依次得到執(zhí)行;而并行塊中的各條阻塞型過程賦值語句則是同事得到執(zhí)行的。阻塞性過程賦值語句的執(zhí)行過程是:先計算右端賦值表達式的取值,然后立即將計算結(jié)果賦值給“=”左端的被復(fù)制變量。值操作執(zhí)行完畢后下一條語句才能開始執(zhí)行。也就是說“=”時,語句是一條一條執(zhí)行的,第一條語句執(zhí)行完畢后,第二條語句才開始執(zhí)行。begin-end畢之前,下一條語句也是可以執(zhí)行的。12、連續(xù)賦值語句:主要對組合邏輯電路進行描述。連線性賦值語句智能用來對連星星變量進行驅(qū)動(賦值量進行賦值他可以采用如下兩種格式:、顯示連續(xù)復(fù)制語句:連線型變量類型[連線型變量位寬]連線型變量名;Assign#(延時量)連線型變量名=賦值表達式;、隱式連續(xù)賦值語句:連線型變量類型(賦值驅(qū)動強度)[連線型變量位寬]#(延時量)連線型變量名=賦值表達式;在以上兩種格式中trireg線型數(shù)據(jù)類型。驅(qū)動強度默認(rèn)為(strong1,weak0)即賦1值時的驅(qū)動強度為strong,賦0值weakwire(weak1,strong0)a=b&c;“延時量”也是可選的格式如下:#(delay1,delay2,delay3)delay1、2、3“delay1”表示連線性變量轉(zhuǎn)移到“1”時的延時量(稱為上升延時delay2delay3阻z”狀態(tài)的延時稱之為關(guān)斷延時。在實際使用中上三個值是可以省略其中一個或者兩個的:如值給出了一個延時延時值為零。同時也可以包含任何操作符。13、 在實際中,連續(xù)賦值語句的賦值目標(biāo)可以是如下幾種:、標(biāo)量連線型變Wirea,b;Assigna=b;、向量連線性變Wire[7:0]a,b;Assigna=b;、向量連線型中變量的一Wire[7:0]a,b;Assigna[3]=b[3];、向量連線性變量中的幾Wire[7:0]a,b;Assigna[3:2]=b[3:2];、上面幾種類型的任意憑借運算結(jié)Wirea,c;Wire[2:1]b;Assign{a,c}=b;在需要對多個連線型變量進行連續(xù)賦值時還可以采用下列形勢的連續(xù)復(fù)制語句,他可以實現(xiàn)對多個變量進行連續(xù)賦值。AssignC=d;D=f;就等同于Assigna=b;Assignc=d;Assignd=f;連續(xù)賦值語句是對連線型變量進行連續(xù)的驅(qū)動;14(而寄存器型變量只奧在某一時刻得到一次過程賦值后就能一直保持其取值,弱一個連線性變量沒有得到認(rèn)可連續(xù)驅(qū)動則它的取值x。15連續(xù)賦值語句、過程塊、模塊實例或原語實例時,他們之間都是并行執(zhí)行的。.16在過程塊內(nèi)對變量進行連續(xù)賦值的。過程連續(xù)賦值語句和連續(xù)賦值語句的不同之處在于:、過程連續(xù)賦值語句智能用在過程塊(initialalways)中,而、過程連續(xù)賦值語句刻意對寄存器類變量進行連續(xù)復(fù)制,他的賦值目標(biāo)不可以是變量的某一位或者某幾位。值表達式”內(nèi)操作數(shù)的任何變化都會引起被賦值變量取值的更新,直到對該變量執(zhí)行了“撤銷過程連續(xù)賦值操作”。17、assigndeassignassigndeassign器類變量的連續(xù)復(fù)制,而后者則是一條撤連續(xù)賦值的語句。Assign語句的使用語法是:Assign其中“寄存器類變量”致命了連續(xù)賦值操作的目標(biāo)變量,熱“賦值表達式”則致命了連續(xù)賦值的“驅(qū)動信號”。assign進入被連續(xù)驅(qū)動的狀態(tài)。他的優(yōu)先級是高于普通過程賦值語句的。如果有2assignassignassignDeassign的使用語法:Deassign<寄存器變量>;assign由普通的過程賦值語句進行賦值操作。deassigndeassign18、forcereleaseingforce先級高于“assignForce語句的語法如下:Force<寄存器或連線性變量>=<賦值表達式>forceforce態(tài),這是將忽略其他較低優(yōu)先級的賦值語句(assignrelease“語句來釋放對這個寄存器變量的連續(xù)賦值為止。ForceReleasedeassignforce行為描述:高級程序語句、函數(shù)和任務(wù)1if-eksecase2、If-else、if(<條件表達式>)語句或語句塊;其中條件表達式中1代表真,0、z、x代表假。沒else語句。、if(<條件表達式>)語句或語句塊Else 語句或語句塊、if(<條件表達式>)1;Elseif(<條件表達式>)Else if(<條件表達式>)語句或語句塊Else 語句或語句塊n+1;3、case分支控制語句case分支語句有case、casez、casex三種形式。1、caseCase(<控制表達式>)<分支項表達式>1:1;<分支項表達式>2:2;<分支項表達式>n:Default:語句塊n+1;Endcase式通常是一些常量表達式。將在這些槍狂下需要執(zhí)行的語句塊放在這幾個分支項表達式的后面。例如Case(op_code)2’b00:out=a|b;2’b01,2’b10,2’b11:out=a&b;Default:out=0;Endcase4casexcasez:casezcasex都視為不比關(guān)心的情況。5、循環(huán)控制語句:forever、repeat、while、for循環(huán)語句。6Forever分將不斷重復(fù)的執(zhí)行。格式如下:Forever語句或語句塊;ForeverinitialBeginForever#25clk=~clk;End產(chǎn)生一個周期為50的時鐘波形。forever語句塊中使用終止語句(disable)來實現(xiàn)這一目的。如:begin:FOREVER_PARTforeverbegincount=count+1;if(count>=200)disable#25clk=~clk;EndEnd7、repeat循環(huán)語句repeat循環(huán)語句實現(xiàn)的是一種循環(huán)次數(shù)預(yù)先指定的循環(huán),這中循環(huán)語句內(nèi)的循環(huán)體部分被重復(fù)執(zhí)行指定的次數(shù)。格式:repeat(<循環(huán)次數(shù)表達式>) 語句或者語句塊;其中循環(huán)此時表達式可以是整數(shù)、變量或一個數(shù)值表達式。Data={data<<1,temp}用來實現(xiàn)移位操作。Tempdata8、whilewhile為“真”時才會重復(fù)執(zhí)行循環(huán)體,否則不執(zhí)行循環(huán)體。格式如下:while(<條件表達式>)語句或語句塊;句的執(zhí)行。9、for循環(huán)語句while,for定的條件表達式成立時才進行循環(huán)。格式:For(<語句一>;<條件表達式>;<語句二>)循環(huán)體語句或語句塊;作和增值操作;分一下幾步:、執(zhí)行語句一。for3若“條件表達式”的取值不為真,則不再執(zhí)行循環(huán)體部分,循環(huán)過程結(jié)束,退出for循環(huán)語句的執(zhí)行。、執(zhí)行語句二然后轉(zhuǎn)到(2)繼續(xù)執(zhí)行。10、 任務(wù)調(diào)試,引入任務(wù)和函數(shù)還可以簡化程序的結(jié)構(gòu),增強代碼的易讀性。任務(wù)的定義:Task端口與類型說明局部變量說明Begin行為語句EndEndtask端口列表。在定義任務(wù)的時候,要注意以下幾點:、在第一行“task”語句中不能列出端口名稱表;、在任務(wù)定義結(jié)構(gòu)中的“行為語句”部分可以有延時語句、敏感事件控制、在一個任務(wù)中刻意條用其他的任務(wù)或者函數(shù),也可以調(diào)用該任務(wù)本身。、在任務(wù)定義結(jié)構(gòu)內(nèi)不允許出現(xiàn)過程塊。任務(wù)的調(diào)用格式:<任務(wù)名>(1、2調(diào)用任務(wù)時注意:、任務(wù)調(diào)用語句只能出現(xiàn)在過程塊中。、任務(wù)調(diào)用語句就像一條普通的行為語句那樣得到處理。11、函數(shù)函數(shù)定義的語法如下:Function<返回值類型或返回值寬度><函數(shù)名>;Begin行為語句;EndEndfunction寬度進行說明:“[msb:lsb]”這種形式說明函數(shù)名所代表的返回數(shù)據(jù)變量是一個多為“[msb:lsb]”指定。“integer“real”如果這項缺省則認(rèn)為函數(shù)名代表的變量是一個一位的寄存器。在進行函數(shù)定義是必須注意:、與任務(wù)一樣,函數(shù)定義結(jié)構(gòu)智能出現(xiàn)在模塊中,而不能出現(xiàn)在過程塊中。、函數(shù)至少需要一個輸入端口。、函數(shù)不能有任何類型的輸出端口和雙向端口。、在函數(shù)定義結(jié)構(gòu)中的行為語句部分內(nèi)不能出現(xiàn)任何類型的時間控制描述disable、與任務(wù)定義一樣,函數(shù)定義結(jié)構(gòu)內(nèi)部不能出現(xiàn)過程塊。、在一個函數(shù)內(nèi)可以對其它函數(shù)進行調(diào)用,但是函數(shù)不能調(diào)用其他的任務(wù)。、在第一行“function”中不能出現(xiàn)端口名列表函數(shù)調(diào)用的格式:<函數(shù)名>(<輸入表達式1><輸入表達式2><><輸入表達式n>)M在函數(shù)定義結(jié)構(gòu)中排列順序及類型保持一致。注意以下兩點:out=getbyte(input、number;在這個函數(shù)語句中,函數(shù)調(diào)用部分“getbyte(input、number”被看做是一個條語句出現(xiàn)也就是說“getbyte(input、number”是非法的。assignassignnet=getbyte(input、number;第四章:用戶自定義元件(UDP)UDP的格式如下:Primitive2><輸出端口類型說明(output;輸入端口類型說明(input;輸出端寄存器變量說明元件初始狀態(tài)說明Table<table1><table2><tableEndtableEndprimitive(2)、只有一個輸出端口并且改輸出端口并且改輸出端口必須是端口說明表中的UDPUDP9UDP10(標(biāo)量。UDP0、1、xz。、由關(guān)鍵字“table”和“endtable”tableUDP元件定義模塊內(nèi)的一個輸出真值表。在table01xzUDPtableTableUDPUDPtable上。例子;Primitivemux4_1(out,in1,in2,in3,in4,ctrl1,ctr2);Outputout;Inputin1,in2,in3,in4,ctrl1,ctr2;Table//in1 in2 in3 in4 ctrl1 ctrl2: out注釋行用于保證表項中各項的正確//排列順序0???00:01???00:10??00:01??00:1?0?00:0?1?00:1?0?00:0??100:1EndtableEndprimitiveUDP2UDP對于組合邏輯電路UDP元件的描述相當(dāng)于直接把電路的邏輯真值表搬到UDP藐視的table表中。組合邏輯電路UDP定義時的table的真值表為:12n1table各個輸入輸出邏輯值智能是0、1、x和?中的一個,不能去高阻態(tài);primitivetabletable像中的排列順序必須和他們在“primivite”定義語句中端口表象內(nèi)的排列tabletablex。3、時序邏輯對時序邏輯UDP進行定義時的table表項格式為:<輸入1邏輯值><輸入2邏輯值>。<輸入n邏輯值>:<內(nèi)部狀態(tài)>:<輸出輯值> 輸入邏輯值要用空格分開。ing端口說明變?yōu)榧拇嫫黝愋?。他分為電平觸發(fā)和邊沿觸發(fā)兩種:電平觸發(fā)的UDPD_inClkCurrent_stateNext_state0001x01001x101x11101x100PrimitiveOutputq;Regq;latch(q,clk,d_in)Inputclk,d_in;InitialTable//clkd_in:current_state:next_state01:?:1;00:?:0;1?:?:-;EndtableEndprimitiveTUDPPrimitivet_trrgger(q,clk,t_in);Outputq;Regq;Inputt_in,clk;Table//clk t_in:state:q(01) 0:?:-;(01) 1:?:1;(01) 1:?:0;(10) ?:?:-;(0x) 0:?:-;(1x) 0:?:-;(??):?:-;EndtableEndprimitive其中(??)表示0、1、x中的一個狀態(tài)跳到其中的一個狀態(tài)。Table表項定義說明縮記符號0邏輯0用來描述輸入輸出信號1邏輯1用來藐視輸入輸出信號Xx為不定態(tài)用來描述輸入輸出信號-輸出狀態(tài)保持不變只能用來描述時序邏輯電路的UDP出狀態(tài)的輸01x(任意態(tài))不能用來對輸出進行描述Bb01不能用來對輸出進行描述(VW)輸入從邏輯值v變化到邏輯值w不能用來對輸出進行描述,其中的是1、0、x、?中的一個v,wRr等價于(01)輸入上升跳變不能用來對輸出進行描述Ff等價于(10)輸入上升跳變不能用來對輸出進行描述Pp(01(0x(x1中的任意一個表示輸入端包含x態(tài)的正跳變不能用來對輸出進行描述Nn(10(1x(x0任意一個表示輸入端包含x態(tài)的負(fù)跳變不能用來對輸出進行描述*等價于(??)表示輸入端的任意變化不能用來對輸出進行描述第八章:結(jié)構(gòu)描述在verilog中,一個模塊可以對其它的模塊進行調(diào)用(化(實例語句1verilog2、Module<聲明語句模塊組項SpecifyEndmodule其中:聲明部分用來對模塊端口類型(輸入、輸出、雙向、模塊內(nèi)部變量(存器、連線和存儲器類型)以及模塊悲慘是進行說明。模塊組項部分是模塊功能的描述題部分,用來對模塊的功能特點進行描述,在這一部分可以出現(xiàn)具有行為描述性質(zhì)的語句結(jié)構(gòu)(initialalways,也可以出現(xiàn)結(jié)構(gòu)描述項語句(模塊實例語句、門及元件3、對上述的具體說明:端口的分隱式端口名形式和顯式端口名形式兩種形式隱式端口名形式:(<端口表達式1><端口表達式2>…<端口表達式n>)一位或某幾位,或者是以上三種組合。顯式端口名形式:(1>(<2>(<n>))端口聲明的作用對象智能是模塊端口的內(nèi)部變量,而不能是端口名。4、模塊

溫馨提示

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

評論

0/150

提交評論