版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
3.1數(shù)據(jù)流建模
3.2行為級建模
3.3結(jié)構(gòu)化建模3.1數(shù)據(jù)流建模在數(shù)字電路中,輸入信號經(jīng)過組合邏輯電路傳送到輸出端類似于數(shù)據(jù)流動,而不會在其中存儲。通過連續(xù)賦值語句可以對這種特性進行建模,這種建模方式通常稱為數(shù)據(jù)流建模。VerilogHDL中的數(shù)據(jù)流建模方式是比較簡單的行為建模,它只有一種描述方式,即通過連續(xù)賦值語句進行邏輯描述。其最基本的語句是由關鍵詞assign引導的。對于連續(xù)賦值語句,只要輸入端操作數(shù)的值發(fā)生變化,該語句就重新計算并刷新賦值結(jié)果。通??梢允褂眠B續(xù)賦值語句來描述組合邏輯電路,而不需要用門電路和互連線。連續(xù)賦值的目標類型主要是標量線網(wǎng)和向量線網(wǎng),標量線網(wǎng)如“wirea,b;”,向量線網(wǎng)如“wire[3:0]a,b;”。連續(xù)賦值語句只能用來對連線型變量進行驅(qū)動,而不能對寄存器型變量進行賦值,它可以采取顯式連續(xù)賦值語句和隱式連續(xù)賦值語句兩種賦值方式。1.顯式連續(xù)賦值語句顯式連續(xù)賦值語句的語法格式如下:<net_declaration><range><name>;assign#<delay><name>=assignmentexpression;這種格式的連續(xù)賦值語句包含兩條語句:第一條語句是對連線型變量進行類型說明的語句;第二條語句是對這個連線型變量進行連續(xù)賦值的賦值語句。賦值語句是由關鍵詞assign引導的,它能夠用來驅(qū)動連線型變量,而且只能對連線型變量進行賦值,主要用于對wire型變量進行賦值。2.隱式連續(xù)賦值語句隱式連續(xù)賦值語句的語法格式如下:<net_declaration><drive_strength><range>#<delay><name>=assignmentexpression;這種格式的連續(xù)賦值語句把連線型變量的說明語句以及對該連線型變量進行連續(xù)賦值的語句結(jié)合到同一條語句內(nèi)。利用它可以在對連線型變量進行類型說明的同時實現(xiàn)連續(xù)賦值。上述兩種格式中:·“net_declaration(連線型變量類型)”可以是除了trireg類型外的任何一種連線型數(shù)據(jù)類型?!ぁ皉ange(變量位寬)”指明了變量數(shù)據(jù)類型的寬度,格式為[msb:lab],缺省時為1位?!ぁ癲rive_strength(賦值驅(qū)動強度)”是可選的,它只能在“隱式連續(xù)賦值語句”格式中指定。它用來對連線型變量受到的驅(qū)動強度進行指定。它是由“對1驅(qū)動強度”和“對0驅(qū)動強度”兩項組成的。驅(qū)動強度的概念在上一章的數(shù)據(jù)類型中已經(jīng)說明,比如語句“wire(weak0,strong1)out=in1&in2;”內(nèi)的“(weak0,strong1)”就表示該語句指定的連續(xù)賦值對連線型變量“out”的驅(qū)動強度是:賦“0”值時的驅(qū)動強度為“弱(weak)”,而賦“1”值時的驅(qū)動強度為“強(strong)”。如果在格式中缺省了“賦值驅(qū)動強度”這一項,則驅(qū)動強度默認為(strong1,strong0)。·“delay(延時量)”項也是可選的,它指定了賦值表達式內(nèi)信號發(fā)生變化時刻到連線型變量取值被更新時刻之間的延遲時間量。其語法格式如下:#(delay1,delay2,delay3)其中,delay1、delay2、delay3都是一個數(shù)值,“delay1”指明了連線型變量轉(zhuǎn)移到“1”狀態(tài)時的延時值(稱為上升延時);“delay2”指明了連線型變量轉(zhuǎn)移到“0”狀態(tài)時的延時值(稱為下降延時);“delay3”指明了連線型變量轉(zhuǎn)移到“高阻Z”狀態(tài)時的延時值(稱為關閉延時)。如果沒有定義delay,則缺省值為0。3.連續(xù)賦值語句使用中的注意事項(1)賦值目標只能是線網(wǎng)類型(wire)。(2)在連續(xù)賦值中,只要賦值語句右邊表達式的任何一個變量有變化,表達式立即被計算,計算的結(jié)果立即賦給左邊的信號(若沒有定義延時量)。(3)連續(xù)賦值語句不能出現(xiàn)在過程塊中。(4)多個連續(xù)賦值語句之間是并行關系,因此與位置順序無關。(5)連續(xù)賦值語句中的延時具有硬件電路中慣性延時的特性,任何小于其延時量的信號變化脈沖都將被濾除掉,不會出現(xiàn)在輸出端口。
3.2行
為
級
建
模VerilogHDL支持設計者從電路外部行為的角度對其進行描述,因此行為級建模是從一個層次很高的抽象角度來表示電路的。其目標不是對電路的具體硬件結(jié)構(gòu)進行說明,它是為了綜合以及仿真的目的而進行的。在這個層次上,設計數(shù)字電路更類似于使用一些高級語言(如C語言)進行編程,而且VerilogHDL行為級建模的語法結(jié)構(gòu)與C語言也非常相似。VerilogHDL提供了許多行為級建模語法結(jié)構(gòu),為設計者的使用提供了很大的靈活性。行為描述常常用于復雜數(shù)字邏輯系統(tǒng)的頂層設計中,也就是通過行為級建模把一個復雜的系統(tǒng)分解成可操作的若干個模塊,每個模塊之間的邏輯關系通過行為模塊的仿真加以驗證。這樣就能把一個大的系統(tǒng)合理地分解為若干個較小的子系統(tǒng),然后再將每個子系統(tǒng)用可綜合風格的VerilogHDL模塊(門級結(jié)構(gòu)或RTL級、算法級、系統(tǒng)級的模塊)加以描述。同時,行為級建模也可以用來生成仿真測試信號,對已設計的模塊進行檢測。本節(jié)將詳細介紹行為級建模結(jié)構(gòu)以及各種高級語句的語法格式和用法。圖3.2-1給出了VerilogHDL行為描述中模塊的構(gòu)成框架。3.2.1過程語句
VerilogHDL中的過程塊是由過程語句組成的。過程語句有兩種,即initial過程語句和always過程語句。1.initial過程語句initial過程語句的語法格式是:
initial過程語句在進行仿真時從模擬0時刻開始執(zhí)行,它在仿真過程中只執(zhí)行一次,在執(zhí)行完一次后該initial過程語句就被掛起,不再執(zhí)行。如果一個模塊中存在多個initial過程語句,則每個initial過程語句都是同時從0時刻開始并行執(zhí)行的。initial過程語句內(nèi)的多條行為語句可以是順序執(zhí)行的,也可以是并行執(zhí)行的。initial過程語句通常用于仿真模塊中對激勵向量的描述,或用于給寄存器變量賦初值。2.a(chǎn)lways過程語句從語法描述角度而言,相對于initial過程語句,always過程語句的觸發(fā)狀態(tài)是一直存在的,只要滿足always后面的敏感事件列表,就執(zhí)行語句塊。其語法格式如下:always@(<敏感事件列表>)
語句塊;其中,敏感事件列表就是觸發(fā)條件,只有當觸發(fā)條件滿足時,其后的語句塊才能被執(zhí)行。也就是說,只要該列表中變量的值發(fā)生改變,就會引發(fā)塊內(nèi)語句的執(zhí)行。因此,敏感事件列表中應列出影響塊內(nèi)取值的所有信號。若有兩個或兩個以上信號,則它們之間可以用“or”連接,也可以用逗號“,”連接。敏感信號可以分為兩種類型:一種為邊沿敏感型,一種為電平敏感型。對于時序電路,事件通常是由時鐘邊沿觸發(fā)的。為表達邊沿這個概念,VerilogHDL提供了posedge和negedge兩個關鍵字分別描述信號的上升沿和下降沿。3.過程語句使用中的注意事項過程語句具有很強的功能,VerilogHDL的大多數(shù)高級程序語句都是在過程中使用的。它既可以描述時序邏輯電路,也可以描述組合邏輯電路。采用過程語句進行程序設計時,VerilogHDL有一定的設計要求和規(guī)范。在信號的形式定義方面,無論是對時序邏輯電路還是對組合邏輯電路進行描述,VerilogHDL都要求在過程語句(initial和always)中被賦值信號必須定義為reg類型。敏感事件列表是VerilogHDL中的一個關鍵性設計,如何選取敏感事件作為過程的觸發(fā)條件,在VerilogHDL程序中有一定的設計要求:(1)采用過程語句對組合電路進行描述時,需要把全部的輸入信號列入敏感事件列表。(2)采用過程語句對時序電路進行描述時,需要把時間信號和部分輸入信號列入敏感事件列表。應當注意的是,不同的敏感事件列表會產(chǎn)生不同的電路形式。
3.2.2語句塊在VerilogHDL過程語句的使用中,當語句數(shù)超過一條時,需要采用語句塊。語句塊就是由塊標識符begin-end或fork-join界定的一組行為描述語句。語句塊就相當于給塊中的一組行為描述語句進行打包,使之在形式上類似于一條語句。語句塊的具體功能是通過語句塊中所包含的描述語句的執(zhí)行而得以實現(xiàn)的。當語句塊中只包含一條語句時,可以直接寫這條語句,此時塊標識符可以缺省。語句塊包括串行語句塊(begin-end)和并行語句塊(fork-join)兩種。1.串行語句塊串行語句塊采用的是關鍵字“begin”和“end”,其中的語句按串行方式順序執(zhí)行,可以用于可綜合電路程序和仿真測試程序。其語法格式是:其中,塊名即該塊的名字,當塊內(nèi)有變量時必須有塊名,否則在編譯時將出現(xiàn)語法錯誤。塊內(nèi)聲明語句是可選的,可以是參數(shù)說明語句、integer型變量聲明語句、reg型變量聲明語句、time型變量聲明語句和事件(event)說明語句。串行語句塊的特點:(1)串行語句塊中的每條語句依據(jù)塊中的排列次序逐條執(zhí)行。塊中每條語句給出的延遲時間都是相對于前一條語句執(zhí)行結(jié)束的相對時間。(2)串行語句塊的起始執(zhí)行時間就是串行語句塊中第一條語句開始執(zhí)行的時間;串行語句塊的結(jié)束時間就是塊中最后一條語句執(zhí)行結(jié)束的時間。2.并行語句塊并行語句塊采用的是關鍵字“fork”和“join”,其中的語句按并行方式執(zhí)行,只能用于仿真測試程序,不能用于可綜合電路程序。其語法格式是:并行語句塊的特點:(1)塊內(nèi)語句是同時執(zhí)行的,即程序流程控制指令一進入到該并行語句塊,塊內(nèi)語句就同時開始執(zhí)行。(2)塊內(nèi)每條語句的延遲時間是相對于程序流程控制指令進入到塊內(nèi)的仿真時間。3.語句塊的使用例3.2-6分別采用串行語句塊和并行語句塊產(chǎn)生圖3.2-3所示的信號波形。(1)采用串行語句塊的VerilogHDL程序代碼如下:(2)采用并行語句塊的VerilogHDL程序代碼如下:從該例可以看到,采用串行語句塊和并行語句塊都可以產(chǎn)生相同的測試信號,具體采用哪種語句進行設計主要取決于設計者的習慣。需要說明的是,在對于電路的描述性設計中,部分綜合工具不支持并行語句塊,因此主要采用串行語句塊進行設計。
表3.2-1對比了串行語句塊和并行語句塊,用以幫助讀者理解二者的區(qū)別和聯(lián)系。3.2.3過程賦值語句過程塊中的賦值語句稱為過程賦值語句。過程性賦值是在initial語句或always語句內(nèi)的賦值,它只能對寄存器數(shù)據(jù)類型的變量賦值。對于多位寬的寄存器變量(矢量),還可以只對其中的某一位或某幾位進行賦值。對于存儲器類型的,則只能通過選定的地址單元,對某個單元進行賦值。還可以將前述各類變量用連接符拼接起來,構(gòu)成一個整體,作為過程賦值語句的左端。過程賦值語句有阻塞賦值語句和非阻塞賦值語句兩種。1.阻塞賦值語句阻塞賦值語句的操作符號為“=”,其語法格式是:變量?=?表達式;例如:b=a;當一個語句塊中有多條阻塞賦值語句時,如果前面的賦值語句沒有完成,則后面的語句就不能被執(zhí)行,仿佛被阻塞了一樣,因此稱為阻塞賦值方式。阻塞賦值語句的特點:(1)在串行語句塊中,各條阻塞賦值語句將按照排列順序依次執(zhí)行;在并行語句塊中的各條阻塞賦值語句則同時執(zhí)行,沒有先后之分。(2)執(zhí)行阻塞賦值語句的順序是,先計算等號右端表達式的值,然后立刻將計算的值賦給左邊的變量,與仿真時間無關。2.非阻塞賦值語句非阻塞賦值語句的操作符號為“<=”,其語法格式是:變量<=表達式;例如:b?<=a;如果在一個語句塊中有多條非阻塞賦值語句,則后面語句的執(zhí)行不會受到前面語句的限制,因此稱為非阻塞賦值方式。非阻塞賦值語句的特點:(1)在串行語句塊中,各條非阻塞賦值語句的執(zhí)行沒有先后之分,排在前面的語句不會影響到后面語句的執(zhí)行,各條語句并行執(zhí)行。(2)執(zhí)行非阻塞賦值語句的順序是,先計算右端表達式的值,然后待延遲時間的結(jié)束后,再將計算的值賦給左邊的變量。阻塞賦值語句和非阻塞賦值語句可以用于數(shù)字邏輯電路設計和測試仿真程序中。在數(shù)字邏輯電路設計中,阻塞賦值語句和非阻塞賦值語句對于電路的描述差別很大,使用不同的賦值語句,產(chǎn)生的電路差異可能很大。3.2.4過程連續(xù)賦值語句過程連續(xù)賦值可以在always和initial過程語句中對連線型和寄存器型變量類型進行賦值操作。在VerilogHDL中,過程連續(xù)賦值語句有兩種類型:賦值、重新賦值語句(assign、deassign)和強制、釋放語句(force、release)。值得注意的是,過程連續(xù)賦值不能夠?qū)拇嫫餍妥兞窟M行位操作,例如,執(zhí)行“assignc[1]?=?1;”語句時將會出現(xiàn)錯誤。1.賦值語句和重新賦值語句賦值語句和重新賦值語句采用的關鍵字是“assign”和“deassign”,語法格式分別是:賦值語句只能對寄存器型變量賦值,而不可用于對連線型變量賦值;重新賦值語句用于釋放assign對寄存器型變量的連續(xù)賦值,作用后,該寄存器變量仍將保持deassign語句執(zhí)行前的原有取值。也就是說,使用assign給寄存器型變量賦值之后,該值將一直保持在這個寄存器上,直至遇到deassign。若在不同過程塊中,過程賦值語句和assign過程連續(xù)賦值語句同時對同一變量賦值,則變量取assign過程賦值語句得到的結(jié)果,即過程連續(xù)賦值語句的優(yōu)先級高于普通的過程賦值語句。2.強制語句和釋放語句強制語句和釋放語句采用的關鍵字是“force”和“release”,可以對連線型和寄存器型變量進行賦值操作,force語句的優(yōu)先級高于assign語句。其語法格式分別是:當force語句對寄存器型變量賦值時,變量的當前值被force覆蓋,因而限制了其他驅(qū)動源的作用,直至遇到release(釋放語句,作用類似于deassign)語句,變量才得以釋放,被重新賦值。這種語句主要用于VerilogHDL仿真測試程序中,便于對某種信號進行臨時性的賦值和測試。3.2.5條件分支語句VerilogHDL的條件分支語句有兩種:if語句和case語句。1.if語句if語句就是判斷所給的條件是否滿足,然后根據(jù)判斷的結(jié)果確定下一步的操作。條件語句只能在initial和always語句引導的語句塊中使用,模塊的其他部分都不能使用。if語句有三種形式:形式1中,當條件表達式成立(邏輯值為1)時,執(zhí)行后面的語句塊;當條件表達式不成立時,后面的語句塊不被執(zhí)行。例如:if(a>b) out=din;表示當a?>?b時,out為din。形式2中,當條件表達式成立時,執(zhí)行后面的語句塊1,然后結(jié)束條件語句的執(zhí)行;當條件表達式不成立時,執(zhí)行else后面的語句塊2,然后結(jié)束條件語句的執(zhí)行。2.case語句case語句也是一種可實現(xiàn)多路分支選擇控制的語句,但比if-else語句更為方便和直觀。一般的,case語句多用于多條件譯碼電路的設計,如描述譯碼器、數(shù)據(jù)選擇器、狀態(tài)機及微處理器的指令譯碼等。case語句的語法格式是:case語句的執(zhí)行過程是:當case語句中控制表達式的值與值1相同時,執(zhí)行語句塊1;當控制表達式的值與值2相同時,執(zhí)行語句塊2;依次類推。如果控制表達式的值與上面列出的值1到值n都不相同,則執(zhí)行default后面的語句塊n?+?1。用case語句對控制表達式和其后的值進行的比較,必須是一種全等比較,必須保證兩者的對應位全等。case語句的真值表如表3.2-2所示。注意:(1)值1到值n必須各不相同,一旦判斷到與某值相同并執(zhí)行相應的語句塊后,case語句的執(zhí)行即結(jié)束。(2)如果某幾個連續(xù)排列的值項執(zhí)行的是同一條語句,則這幾個值項間可用逗號間隔,而將語句放在這幾個值項的最后一項中。(3)?default選項相當于if-else語句中的else部分,可依據(jù)需要使用或者不使用,當前面已經(jīng)列出了控制表達式的所有可能值時,default可以省略。(4)?case語句的所有表達式的值的位寬必須相等,因為只有這樣,控制表達式和分支表達式才能進行對應位的比較。3.2.6循環(huán)語句VerilogHDL中規(guī)定了四種循環(huán)語句,分別是forever、repeat、while和for語句。與條件分支語句一樣,循環(huán)語句也是一種高級程序語句,多用于測試仿真程序設計。1.forever語句關鍵字“forever”所引導的循環(huán)語句表示永久循環(huán)。永久循環(huán)中不包含任何條件表達式,只執(zhí)行無限循環(huán),直至遇到系統(tǒng)任務$finish。如果需要從forever循環(huán)中退出,則可以使用disable語句。forever語句的語法格式是:forever語句或語句塊;forever語句連續(xù)不斷地執(zhí)行后面的語句或語句塊,常用來產(chǎn)生周期性的波形,作為仿真激勵信號。它與always語句的不同之處在于,它不能獨立寫在程序中。forever語句一般用在initial過程語句中,如果在forever語句中沒有加入時延控制,forever語句將在0時延后無限循環(huán)下去。2.repeat語句關鍵字“repeat”所引導的循環(huán)語句表示執(zhí)行固定次數(shù)的循環(huán)。其語法格式是:repeat(循環(huán)次數(shù)表達式)
語句或語句塊(循環(huán)體);
其中,“循環(huán)次數(shù)表達式”用于指定循環(huán)次數(shù),它必須是一個常數(shù)、一個變量或者一個信號。如果循環(huán)次數(shù)是變量或者信號,則循環(huán)次數(shù)是循環(huán)開始執(zhí)行時變量或者信號的值,而不是循環(huán)執(zhí)行期間的值。repeat語句的執(zhí)行過程為:先計算出循環(huán)次數(shù)表達式的值,并將它作為循環(huán)次數(shù)保存起來;接著執(zhí)行后面的語句塊(循環(huán)體),語句塊執(zhí)行結(jié)束后,將重復執(zhí)行次數(shù)減去一次,再接著重新執(zhí)行下一次的語句塊操作;如此重復,直至循環(huán)執(zhí)行次數(shù)被減為0時,結(jié)束整個循環(huán)過程。3.while語句關鍵字“while”所引導的循環(huán)語句表示的是一種“條件循環(huán)”。while語句根據(jù)條件表達式的真假來確定循環(huán)體的執(zhí)行,當指定的條件表達式取值為真時才會重復執(zhí)行循環(huán)體,否則就不執(zhí)行循環(huán)體。其語法格式是:while(條件表達式)語句或語句塊;其中,“條件表達式”表示循環(huán)體得以繼續(xù)重復執(zhí)行時必須滿足的條件,它常常是一個邏輯表達式。在每一次執(zhí)行循環(huán)體之前都要對這個條件表達式是否成立進行判斷。while語句的執(zhí)行過程可以描述為:先判斷條件表達式是否為真,如果為真,則執(zhí)行后面的語句,接著再回來判斷條件表達式是否仍為真,只要是真,再執(zhí)行語句,直至某一次執(zhí)行完語句后,判斷出條件表達式的值為非真,則結(jié)束循環(huán)過程。為保證循環(huán)過程的正常結(jié)束,通常在循環(huán)體內(nèi)部必定有一條語句用以改變條件表達式的值,使其逐次趨于假。4.for語句關鍵字“for”所引導的循環(huán)語句也表示一種“條件循環(huán)”,只有在指定的條件表達式成立時才進行循環(huán)。其語法格式是:for(循環(huán)變量賦初值;循環(huán)結(jié)束條件;循環(huán)變量增值)語句塊;for語句的執(zhí)行過程是:先給“循環(huán)變量賦初值”,然后判斷“循環(huán)結(jié)束條件”,若其值為真,則執(zhí)行for語句中指定的語句塊,然后進行“循環(huán)變量增值”操作,這一過程進行到循環(huán)結(jié)束條件滿足時,for循環(huán)語句結(jié)束。3.3結(jié)
構(gòu)
化
建
模結(jié)構(gòu)描述方式就是將硬件電路描述成一個分級子模塊系統(tǒng),通過逐層調(diào)用這些子模塊構(gòu)成功能復雜的數(shù)字邏輯電路和系統(tǒng)的一種描述方式。在這種描述方式下,組成硬件電路的各個子模塊之間的相互層次關系以及相互連接關系都需要說明。由于任何硬件電路在結(jié)構(gòu)上都是由一級級不同層次的若干功能單元組成的,所以結(jié)構(gòu)描述方式很適合用來對電路的結(jié)構(gòu)特點進行說明,這也是“結(jié)構(gòu)描述方式”這種叫法的由來。結(jié)構(gòu)描述方式的描述目標是電路的層次結(jié)構(gòu),組成硬件電路的各層功能單元將被描述成各個級別的子模塊。根據(jù)所調(diào)用子模塊的不同抽象級別,可以將模塊的結(jié)構(gòu)描述方式分成如下三類:(1)模塊級建模:通過調(diào)用由用戶設計生成的低級子模塊來對硬件電路結(jié)構(gòu)進行說明。這種情況下的模塊由低級模塊的實例組成。(2)門級建模:通過調(diào)用VerilogHDL內(nèi)部的基本門級元件來對硬件電路的結(jié)構(gòu)進行說明。這種情況下的模塊由基本門級元件的實例組成。(3)開關級建模:通過調(diào)用VerilogHDL內(nèi)部的基本開關元件來對硬件電路的結(jié)構(gòu)進行說明。這種情況下的模塊由基本開關級元件的實例組成。3.3.1模塊級建模模塊級建模就是通過調(diào)用由用戶自己描述產(chǎn)生的module模塊來對硬件電路結(jié)構(gòu)進行說明,并設計出電路。上一章已經(jīng)對模塊的概念進行了說明,下面主要介紹如何調(diào)用模塊進行模塊級建模。模塊級建模方式可以把一個模塊看成是由其他模塊像積木一樣搭建而成的。模塊中被調(diào)用模塊屬于低一層次的模塊。如果當前模塊不再被其他模塊所調(diào)用,那么這個模塊一定是所謂的頂層模塊。在對一個硬件系統(tǒng)的描述中,必定有而且只能有一個頂層模塊。1.模塊調(diào)用方式在VerilogHDL中,模塊可以被任何其他模塊調(diào)用,這種調(diào)用實際上是將模塊所描述的電路進行復制并連接。一個模塊可以調(diào)用多個模塊,這些模塊可以是相同的,也可以是不同的,語法要求在同一模塊中被調(diào)用模塊的實例名不能不同。模塊調(diào)用的基本語法格式是:模塊名<參數(shù)值列表>實例名(端口名列表);其中,“模塊名”是在module定義中給定的模塊名,它指明了被調(diào)用的是哪一個模塊;“參數(shù)值列表”是可選項,它是將參數(shù)值傳遞給被調(diào)用模塊實例中的各個參數(shù);“實例名”是模塊被調(diào)用到當前模塊的標志,用來索引層次化模塊建模中被調(diào)用模塊的位置;“端口名列表”是被調(diào)用模塊實例各端口相連的外部信號。2.模塊端口對應方式在模塊級建模方式中,被調(diào)用模塊需要將模塊的輸入和輸出信號連接到調(diào)用模塊中。在VerilogHDL中有兩種模塊調(diào)用端口對應方式,即端口位置對應方式和端口名對應方式。1)端口位置對應方式端口位置對應方式是被調(diào)用的模塊按照一定的順序出現(xiàn)在端口連接表中的一種模塊調(diào)用方式。其語法格式如下:模塊名<參數(shù)值列表>實例名(<信號名1>,<信號名2>,…,<信號名n>);其中,端口名列表中的這些信號將與所調(diào)用模塊定義的端口依次連接,如信號名1與所調(diào)用模塊端口列表中的第一個端口相連接,信號名2與所調(diào)用端口列表中的第二個端口相連接,依次類推。3.分級名結(jié)構(gòu)描述中一個重要的概念就是“分級名”。對于頂層模塊,分級名就是模塊名;對于非頂層模塊,分級名是調(diào)用時帶有絕對路徑的“實例名”。除模塊外,任務、函數(shù)、有名塊、信號名等都構(gòu)成了一個新的層次并以分級名出現(xiàn),從而形成了一個樹狀分層結(jié)構(gòu)。4.模塊參數(shù)值當一個模塊在另一個模塊的內(nèi)部被實例引用時,較高層次的模塊能夠通過調(diào)用較低層次的模塊來改變低層次模塊的參數(shù)值。這個功能在實際的設計中很有用,能夠提高模塊的使用率,降低程序的復雜度,使程序簡化。比如設計加法器時,加法器的位數(shù)可以由模塊內(nèi)的參數(shù)來確定。在調(diào)用這個加法器模塊時,只需修改參數(shù)的值,就可得到不同位數(shù)的加法器,非常方便。通過下面兩種途徑可以改變模塊實例的參數(shù)值。1)使用帶有參數(shù)的模塊實例語句修改參數(shù)值在這種方法中,模塊實例本身就能指定新的參數(shù)值。其語法格式如下:模塊名<參數(shù)值列表>調(diào)用名(端口名列表);其中,“參數(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版商務車租賃合同(含保險責任條款)
- 二零二五版合作開發(fā)房地產(chǎn)合同綠色建筑認證3篇
- 2025年綠色建筑土石方工程承包合同樣本2篇
- 2025年度菜園大棚蔬菜種植與農(nóng)業(yè)科技研發(fā)合同3篇
- 2025版路燈設施安全檢查與應急搶修服務合同4篇
- 二零二四年醫(yī)療耗材配件銷售代理合同樣本3篇
- 2025年度工業(yè)用地場地租賃及使用權(quán)轉(zhuǎn)讓合同3篇
- 2025年度車輛租賃與道路救援服務合同3篇
- 2025年新能源汽車專用車位租賃與充電服務合同2篇
- 2025年度房地產(chǎn)項目融資合同8篇
- 家庭年度盤點模板
- 河南省鄭州市2023-2024學年高二上學期期末考試 數(shù)學 含答案
- 2024年資格考試-WSET二級認證考試近5年真題集錦(頻考類試題)帶答案
- 試卷中國電子學會青少年軟件編程等級考試標準python三級練習
- 公益慈善機構(gòu)數(shù)字化轉(zhuǎn)型行業(yè)三年發(fā)展洞察報告
- 飼料廠現(xiàn)場管理類隱患排查治理清單
- 【名著閱讀】《紅巖》30題(附答案解析)
- Starter Unit 2 同步練習人教版2024七年級英語上冊
- 分數(shù)的加法、減法、乘法和除法運算規(guī)律
- 2024年江蘇鑫財國有資產(chǎn)運營有限公司招聘筆試沖刺題(帶答案解析)
- 2024年遼寧石化職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫含答案
評論
0/150
提交評論