版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章行為級(jí)建模方法4.1行為級(jí)建模程序結(jié)構(gòu)4.2過程結(jié)構(gòu)語句4.3語句塊4.4時(shí)序控制4.5賦值語句4.6分支語句4.7循環(huán)語句
4.1行為級(jí)建模程序結(jié)構(gòu)
行為級(jí)建模是指對(duì)信號(hào)采用行為級(jí)的描述(不是結(jié)構(gòu)級(jí)的描述)方法來建模。行為級(jí)的描述常用于復(fù)雜數(shù)字邏輯系統(tǒng)的設(shè)計(jì)中,也就是通過行為級(jí)建模把一個(gè)復(fù)雜的系統(tǒng)分解成可操作的若干個(gè)模塊,每個(gè)模塊之間的邏輯關(guān)系通過行為模塊的仿真加以驗(yàn)證。這樣就把一個(gè)大的系統(tǒng)合理地分解為若干個(gè)較小的子系統(tǒng),然后將每個(gè)子系統(tǒng)用可綜合風(fēng)格的VerilogHDL模塊(門級(jí)結(jié)構(gòu)或RTL級(jí)、算法級(jí)、系統(tǒng)級(jí)的模塊)加以描述。同時(shí),行為級(jí)建模也可以用來生成仿真測試信號(hào),對(duì)已設(shè)計(jì)模塊進(jìn)行檢測。通過下面的例子,讀者可對(duì)行為級(jí)建模方式有個(gè)初步的概念。
例如:一位全加器的行為級(jí)建模。通過該例,應(yīng)建立以下概念:
(1)只有寄存器類型的信號(hào)才可以在always和initial語句中進(jìn)行賦值,類型定義通過reg語句實(shí)現(xiàn);
(2)采用行為級(jí)描述方式,即直接采用“+”來描述加法,{Count,Sum}表示對(duì)位數(shù)的擴(kuò)展,因?yàn)閮蓚€(gè)1?bit相加,產(chǎn)生的和有兩位,低位放在Sum變量中,進(jìn)位放在Count中;
(3)?always語句一直重復(fù)執(zhí)行,由敏感列表(always語句括號(hào)內(nèi)的變量)中的變量觸發(fā);
(4)?always語句從0時(shí)刻開始;
(5)在begin和end之間的語句是順序執(zhí)行的,屬于串行語句。
4.2過程結(jié)構(gòu)語句
每個(gè)過程塊是由過程語句(initial或always)和語句塊組成的,過程塊中有下列部件:過程賦值語句——賦值語句和過程連續(xù)賦值語句;時(shí)序控制——控制塊的執(zhí)行及塊中的語句時(shí)序;高級(jí)結(jié)構(gòu)(循環(huán),條件語句等)——描述塊的功能。
VerilogHDL中的多數(shù)過程模塊都從屬于以下兩種過程語句:
initial說明語句;
always說明語句;一個(gè)程序模塊可以有多個(gè)initial和always過程塊。每個(gè)initial和always說明語句在仿真的一開始即執(zhí)行。initial語句常用于仿真中的初始化,initial語句只執(zhí)行一次,而always語句則是不斷地重復(fù)執(zhí)行,直到仿真過程結(jié)束。always過程語句是可綜合的,在可綜合的電路設(shè)計(jì)中廣泛采用。4.2.1initial語句
initial語句的語法格式如下:
initial
語句塊
其中,語句塊的格式為
<塊定義語句1>
時(shí)間控制1行為語句1;
…
時(shí)間控制n行為語句n;
<塊定義語句2>
initial語句不帶觸發(fā)條件,initial過程中的塊語句沿時(shí)間軸只執(zhí)行一次,參見圖4.1。initial語句通常用于仿真模塊中對(duì)激勵(lì)信號(hào)的描述,或用于給寄存器變量賦初值,它是面向模擬仿真的過程語句,通常不能被邏輯綜合工具所支持。圖4.1initial語句執(zhí)行順序
【例4.1】用initial語句在仿真開始時(shí)對(duì)各變量進(jìn)行初始化。
【例4.2】用initial語句對(duì)存儲(chǔ)器進(jìn)行初始化。4.2.2always語句
always過程塊是由always過程語句和語句塊組成的,其語法格式如下:
always@<敏感信號(hào)表達(dá)式>
語句塊
其中,語句塊的格式為
<塊定義語句1>
時(shí)間控制1行為語句1;
…
時(shí)間控制n行為語句n;
<塊定義語句2>以上的格式中:
(1)關(guān)鍵詞always表明了該過程塊是一個(gè)“always過程塊”。
(2)?@<敏感信號(hào)表達(dá)式>是可選項(xiàng),有敏感事件列表的語句塊被稱為“由事件控制的語句塊”,它的執(zhí)行要受敏感事件的控制。
(3)“時(shí)間控制”用來對(duì)過程塊內(nèi)各條語句的執(zhí)行時(shí)間進(jìn)行控制,它可以是任何一種時(shí)間控制方式。
(4)語句塊中的行為語句可以是如下語句中的一種:過程賦值語句(阻塞型或非阻塞型)、過程連續(xù)賦值語句、if條件分支語句、case條件分支語句、循環(huán)控制語句(forever、repeat、while、for循環(huán)控制語句)、wait等待語句、disable中斷語句、事件觸發(fā)語句、任務(wù)調(diào)用語句(用戶定義的任務(wù)或系統(tǒng)任務(wù))。圖4.2always語句執(zhí)行順序
【例4.3】always語句示例(1)。
always#half_periodareg=~areg;
這個(gè)例子生成了一個(gè)周期為period(=2*half_period)的無限延續(xù)的信號(hào)波形,常用這種方法來描述時(shí)鐘信號(hào),作為激勵(lì)信號(hào)來測試所設(shè)計(jì)的電路。
【例4.4】always語句示例(2)。
4.3語句塊
語句塊是由塊標(biāo)志符begin-end或fork-join界定的一組語句,當(dāng)塊語句只包含一條語句時(shí),塊標(biāo)志符可以省略。下面分別介紹順序語句塊和并行語句塊。4.3.1順序語句塊
順序語句塊(begin-end)的語句按給定次序順序執(zhí)行。每條語句中的時(shí)延值與其前面語句執(zhí)行的模擬時(shí)間相關(guān)。一旦順序語句塊執(zhí)行結(jié)束,跟隨順序語句塊過程的下一條語句繼續(xù)執(zhí)行。順序語句塊的語法格式如下:圖4.3激勵(lì)波形4.3.2并行語句塊
并行語句塊(fork-join)內(nèi)的語句是同時(shí)執(zhí)行的,即程序流程控制一進(jìn)入到該并行塊,塊內(nèi)語句就開始同時(shí)執(zhí)行;塊內(nèi)每條語句的延遲時(shí)間是相對(duì)于程序流程控制進(jìn)入到塊內(nèi)的仿真時(shí)刻而言的;延遲時(shí)間是用來給賦值語句提供執(zhí)行時(shí)序的;當(dāng)按時(shí)間順序排序在最后的語句執(zhí)行完后,或一個(gè)disable語句執(zhí)行時(shí),程序流程控制跳出該程序塊。
【例4.5】
并行語句塊舉例。4.3.3順序語句塊和并行語句塊的混合使用
順序語句塊和并行語句塊的混合使用有以下兩種情況:
(1)當(dāng)順序語句塊和并行語句塊屬于不同的過程塊(initial或always過程塊)時(shí),順序語句塊和并行語句塊是并行執(zhí)行的。
【例4.6】順序語句塊和并行語句塊的混合使用示例(1)。圖4.4例4.6的激勵(lì)波形
(2)當(dāng)順序語句塊和并行語句塊嵌套在同一條過程塊內(nèi)時(shí),內(nèi)層語句塊可以看做外層語句塊中的一條普通語句,內(nèi)層語句塊在什么時(shí)候得到執(zhí)行是由外層語句塊的規(guī)則所決定的;內(nèi)層語句塊開始執(zhí)行后,其內(nèi)部各條語句的執(zhí)行要遵守內(nèi)層語句塊的規(guī)則。
【例4.7】順序語句塊和并行語句塊的混合使用示例(2)。
4.4時(shí)序控制
時(shí)序控制可以用來對(duì)過程塊中各條語句的執(zhí)行時(shí)間(時(shí)序)進(jìn)行控制。VerilogHDL提供了兩種類型的時(shí)序控制。
(1)延時(shí)控制:為行為語句的執(zhí)行指定一個(gè)延遲時(shí)間。
(2)事件控制:為行為語句的執(zhí)行指定觸發(fā)事件時(shí)間。事件控制分為兩種,即電平敏感事件觸發(fā)和邊沿敏感事件觸發(fā)。4.4.1延時(shí)控制
延時(shí)控制的語法格式如下:
#<延遲時(shí)間>行為語句;
或
#<延遲時(shí)間>;
其中,符號(hào)“#”是延時(shí)控制的標(biāo)識(shí)符,<延遲時(shí)間>是指定的延遲時(shí)間量,它是以多個(gè)仿真時(shí)間單位的形式給出的。
【例4.8】延時(shí)控制方式一。
【例4.9】延時(shí)控制方式二。4.4.2電平敏感事件觸發(fā)
電平敏感事件控制方式下啟動(dòng)語句執(zhí)行的觸發(fā)條件是指定的條件表達(dá)式為真(1)。電平敏感事件控制用關(guān)鍵詞“wait”來表示,有以下3種所示:
wait(條件表達(dá)式)語句塊;
wait(條件表達(dá)式)行為語句;
wait(條件表達(dá)式);
【例4.10】電平敏感事件控制舉例。第三種形式中的wait后沒有包含語句塊或行為語句,在這種形式下,當(dāng)仿真進(jìn)程執(zhí)行到該wait控制語句條件表達(dá)式的值為“真”時(shí),立即結(jié)束該wait控制語句的執(zhí)行,仿真進(jìn)程繼續(xù)向下進(jìn)行。這種形式的電平敏感事件控制常常對(duì)順序語句中各條語句的執(zhí)行時(shí)序進(jìn)行控制。
程序執(zhí)行到以下語句時(shí)將暫停,直到reset變?yōu)檎?值為1)時(shí),立即結(jié)束該wait控制語句,繼續(xù)執(zhí)行后面的語句。
wait(reset);4.4.3邊沿敏感事件觸發(fā)
在邊沿敏感事件觸發(fā)的事件控制方式下,行為語句的執(zhí)行需要由指定事件的發(fā)生來觸發(fā),也就是在指定信號(hào)的跳變邊沿才觸發(fā)語句的執(zhí)行,而當(dāng)信號(hào)處于穩(wěn)定狀態(tài)時(shí)則不會(huì)觸發(fā)語句的執(zhí)行。
邊沿敏感事件控制的語法格式有以下4種:例如:
【例4.11】邊沿敏感事件計(jì)數(shù)器。
【例4.12】二選一多路選擇器。
4.5賦值語句
賦值語句可以分為連續(xù)賦值語句和過程賦值語句。連續(xù)賦值語句是數(shù)據(jù)流描述方式的賦值語句,而過程賦值語句則是行為描述方式的賦值語句。
過程賦值語句是最常見的賦值形式,等號(hào)左側(cè)是賦值目標(biāo),右側(cè)是表達(dá)式。它有以下幾個(gè)特點(diǎn):
(1)過程賦值語句只出現(xiàn)在initial和always語句塊內(nèi)。
(2)過程賦值語句只能給寄存器變量賦值。
(3)賦值表達(dá)式的右端可以是任何表達(dá)式。
【例4.13】過程賦值語句賦值操作的一般形式。4.5.1連續(xù)賦值語句
連續(xù)賦值語句用來驅(qū)動(dòng)線網(wǎng)型變量,這一線網(wǎng)型變量必須已經(jīng)事先定義過。只要輸入端操作數(shù)的值發(fā)生變化,該語句就重新計(jì)算并刷新賦值結(jié)果,我們可以使用連續(xù)賦值語句來描述組合邏輯,而不需要用門電路和互連線。連續(xù)賦值語句的語法格式如下:
assignnet_value=expression(表達(dá)式);其中:net_value為線網(wǎng)型(wire)變量,expression為賦值操作表達(dá)式,可以是常量、由運(yùn)算符(如邏輯運(yùn)算符、算術(shù)運(yùn)算符)參與的表達(dá)式。例如:
wire[3:0]Z,a,b; //線網(wǎng)說明
assignZ=a&b; //連續(xù)賦值語句,給Z賦值
連續(xù)賦值語句執(zhí)行時(shí),只要等號(hào)右端的操作數(shù)上有事件發(fā)生(操作數(shù)值的變化),右端表達(dá)式即被計(jì)算,如果結(jié)果值有變化,新結(jié)果就賦給等號(hào)左端的線網(wǎng)型變量。4.5.2阻塞賦值語句
阻塞賦值的操作符是等號(hào)(=),例如:
b=a;
阻塞賦值語句在執(zhí)行時(shí),先計(jì)算右側(cè)表達(dá)式的值,然后賦值給等號(hào)左端目標(biāo),在完成整個(gè)賦值之前不能被其他語句打斷。也就是說,前面的賦值語句沒有完成之前,后面的語句不能被執(zhí)行,仿佛被阻塞了一樣,因此稱為阻塞賦值方式。
【例4.14】阻塞賦值語句示例。圖4.5阻塞賦值仿真波形4.5.3非阻塞賦值語句
非阻塞賦值的操作符是符號(hào)“<=”,例如:
b<=a;
非阻塞過程賦值只能用于寄存器賦值。非阻塞賦值在所在塊結(jié)束之后才能真正完成賦值操作,如例4.15中,b的值并不是立刻改變的。
【例4.15】非阻塞賦值語句示例。圖4.6非阻塞賦值仿真波形
4.6分支語句
4.6.1if-else語句
if語句用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。VerilogHDL語言提供了三種形式的if語句。
1.第一種形式
if(條件表達(dá)式)塊語句
說明:
(1)當(dāng)條件表達(dá)式為邏輯真和邏輯1時(shí)執(zhí)行塊語句,其他情況下(如為0、x、z)均為條件不成立;
(2)一條沒有else語句的if語句映射到硬件上,會(huì)形成一個(gè)鎖存器。例如:
always@(enableordada)
if(enbale)
out=data;
data與out的關(guān)系參見表4.1。表4.1if條件表達(dá)式的真值表
【例4.16】if-else語句示例。
3.第三種形式
【例4.17】模為60的BCD碼計(jì)數(shù)器。4.6.2case語句
case分支語句是另一種用來實(shí)現(xiàn)多路分支選擇控制的語句。case分支語句通常用于微處理器指令譯碼功能的描述和有限狀態(tài)機(jī)的描述。它有case、casez和casex三種形式。其語法格式如下:
【例4.18】一個(gè)名為
encod8_3的8-3普通編碼器。這個(gè)例子描述了一個(gè)名為encod8_3
的8-3普通編碼器,實(shí)現(xiàn)了8位輸入、3位輸出,在某一時(shí)刻只有一個(gè)輸入被轉(zhuǎn)換為二進(jìn)制碼。
VerilogHDL針對(duì)電路的特性還提供了case語句的另外兩種形式:casez和casex。其中casez語句忽略比較表達(dá)式兩邊的z部分,casex語句忽略比較表達(dá)式兩邊的x部分和z部分,即在表達(dá)式進(jìn)行比較時(shí),不將該位的狀態(tài)考慮在內(nèi)。這樣,在case語句表達(dá)式進(jìn)行比較時(shí),就可以靈活地設(shè)置對(duì)信號(hào)的某些位進(jìn)行比較。例如:
4.7循環(huán)語句
4.7.1forev
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國外用止痛藥行業(yè)競爭格局及投資價(jià)值研究報(bào)告
- 2024-2030年中國型煤(型焦)行業(yè)發(fā)展前景預(yù)測規(guī)劃研究報(bào)告
- 2024-2030年中國四功能折疊健身器產(chǎn)業(yè)未來發(fā)展趨勢及投資策略分析報(bào)告
- 2024-2030年中國印花涂料色漿市場運(yùn)行狀況及發(fā)展趨勢預(yù)測報(bào)告
- 梅河口康美職業(yè)技術(shù)學(xué)院《有限元分析與可靠性設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 眉山藥科職業(yè)學(xué)院《小學(xué)道德與法治課程與教學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年物業(yè)買賣合同范本:物業(yè)信息與交易條件
- 2024年度綠色建筑HSE施工與運(yùn)維服務(wù)合同2篇
- 微專題物質(zhì)的制備實(shí)驗(yàn)突破策略-2024高考化學(xué)一輪考點(diǎn)擊破
- 2024年標(biāo)準(zhǔn)專業(yè)施工承包協(xié)議文件版B版
- 道德與法治中考備考建議課件
- 財(cái)產(chǎn)保險(xiǎn)退保申請(qǐng)范文推薦6篇
- 食品工程原理課程設(shè)計(jì)
- YYT 0325-2022 一次性使用無菌導(dǎo)尿管
- 羊膜在眼科臨床中應(yīng)用課件
- (71)第十五章15.2.3整數(shù)指數(shù)冪1-負(fù)整數(shù)指數(shù)冪-導(dǎo)學(xué)案
- 初步設(shè)計(jì)方案詢價(jià)表
- 2022年江蘇省環(huán)保集團(tuán)有限公司招聘筆試題庫及答案解析
- 《汽車焊接技術(shù)》試卷期末理論考試含參考答案一套
- FMEA分析經(jīng)典案例【范本模板】
- 2023-2023年山東省學(xué)業(yè)水平考試英語試題及答案
評(píng)論
0/150
提交評(píng)論