版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
VHDL的順序語句只能出現(xiàn)在進程(process)、過程(procedure)和函數(shù)(function)中,利用順序語句可以描述數(shù)字邏輯系統(tǒng)中的組合邏輯電路和時序邏輯電路。VHDL程序中常見的順序語句有:賦值語句、流程控制語句、wait語句、子程序調用語句、空操作語句、斷言語句、report語句等。項目5VHDL的順序語句1.順序賦值語句順序賦值語句是出現(xiàn)在進程、過程和函數(shù)中的賦值語句,有信號賦值語句和變量賦值語句。它們的格式如下:
變量名:=表達式;
信號名<=表達式;變量賦值具有局部特征,它的賦值是立即發(fā)生的。信號賦值具有全局特征,它可以作為一個設計實體內部各單元之間數(shù)據(jù)傳送的載體,還可通過信號進行實體間通信。信號在順序語句中的賦值發(fā)生在一個進程結束或子程序調用完成以后,信號的賦值有一定的延時。項目5VHDL的順序語句【例5.1】變量賦值和信號賦值的應用項目5VHDL的順序語句信號“scnt”與變量“vcnt”都從0開始加1計數(shù),但是信號計數(shù)輸出“sigcnt”值比變量計數(shù)輸出“varcnt”值延遲一個時鐘周期。相當于信號賦值是通過寄存器賦值,而變量賦值是直接賦值。2.流程控制語句流程控制語句通過對條件的判斷來決定執(zhí)行哪一條或幾條語句,常用的流程控制語句有if語句、case語句、loop語句等。(1)if語句if語句是通過對分支條件的判斷決定執(zhí)行哪個分支的順序語句。if語句的常用格式有以下三種。①單分支if語句。單分支if語句格式如下:If條件判斷表達式then
順序執(zhí)行語句;endif;當程序執(zhí)行到單分支if語句時,如果if的判斷條件為真,則if語句所包含的順序執(zhí)行語句將被執(zhí)行;否則,不做任何操作。項目5VHDL的順序語句【例5.2】單分支if語句的應用項目5VHDL的順序語句在組合電路中使用單分支if語句,從“in_a”到“out_a”產(chǎn)生的是鎖存器;在時序電路中使用單分支if語句,從“in_b”到“out_b”產(chǎn)生的是寄存器。②兩分支if語句。兩分支if語句格式:If條件判斷表達式then
順序執(zhí)行語句1;else
順序執(zhí)行語句2;Endif;當if條件成立時,程序執(zhí)行then和else之間的順序執(zhí)行語句;當if語句的條件不成立時,程序執(zhí)行else和endif之間的順序執(zhí)行語句,即根據(jù)所指定的條件是否滿足,程序可以選擇兩條不同的執(zhí)行路徑,可以看成是一個二選一數(shù)選擇器。項目5VHDL的順序語句【例5.3】兩分支if語句的應用項目5VHDL的順序語句從兩分支if語句寄存器傳輸級綜合效果圖中可知,兩分支if語句是一個二選一數(shù)據(jù)選擇器。③多分支if語句。多分支if語句的格式:if條件判斷表達式1then
順序語句1;elsif條件判斷表達式2then
順序語句2; …elsif條件判斷表達式nthen
順序語句n;else
順序語句n+1;endif;項目5VHDL的順序語句沒有else分支的格式:if條件判斷表達式1then
順序語句1;elsif條件判斷表達式2then
順序語句2; …elsif條件判斷表達式nthen
順序語句n;endif;多分支if語句執(zhí)行多選擇控制功能,允許在一個語句中出現(xiàn)多重條件,即條件嵌套。當滿足所設置的多個條件之一時,就執(zhí)行該條件后的順序執(zhí)行語句。【例5.4】多分支if語句的應用項目5VHDL的順序語句從多分支if語句寄存器傳輸級綜合效果圖中可知,輸出“out_a”的多分支if語句最后加了else分支,沒有產(chǎn)生鎖存器;輸出“out_b”的多分支if語句最后沒有加else分支,產(chǎn)生了鎖存器,而且前面還產(chǎn)生了一個3輸入的“或門”等資源消耗。(2)case語句case語句的格式如下:case判斷表達式iswhen選擇項值1=>順序語句1;when選擇項值2=>順序語句2;
…when選擇項值n=>順序語句n;whenothers=>順序語句n+1;endcase;當執(zhí)行case語句時,首先計算判斷表達式的值,然后根據(jù)條件句中與之相同的選擇值對應的順序語句執(zhí)行,最后結束case語句。選擇項可以是一個值,也可以是多個用“值|值|值”表示的值,還可用“值to值”約束一個范圍,但選擇項不能有重復。項目5VHDL的順序語句使用case語句注意點:①條件句中的“=>”是操作符,它相當于if語句中的“then”。②條件句中的選擇值,必須在“判斷表達式”的取值范圍之內。③case語句中每一條語句的選擇值只能出現(xiàn)一次。④除非所有條件句中的選擇值能完全覆蓋case語句表達式的取值,否則最末一個條件句中的選擇值,必須用“others”表示,它代表已給的所有條件句中未能列出的其他可能的取值。關鍵詞“others”只能出現(xiàn)一次,且只能作為最后一條件取值。⑤與if語句相比,if語句是有序的,先處理最起始、最優(yōu)先的條件,后處理次優(yōu)先的條件。case語句是無序的,所有表達式的值都并行處理。項目5VHDL的順序語句【例5.5】case語句與多分支if語句的差別項目5VHDL的順序語句使用case語句從輸入到輸出“out_a”是一個數(shù)據(jù)選擇器,只有一個數(shù)據(jù)選擇器的延時。多分支if語句從輸入到輸出“out_b”由多級級連的二選一數(shù)據(jù)選擇器組成,等級最低的if分支從輸入到輸出要經(jīng)過多級二選一數(shù)據(jù)選擇器的延時。(3)loop語句loop語句的功能是循環(huán)執(zhí)行一條或多條順序語句,主要有for循環(huán)、while循環(huán)和條件跳出等三種形式。①for/loop語句。for/loop語句格式如下:[標號]:for循環(huán)變量in循環(huán)變量的范圍loop
順序語句;endloop[標號];for循環(huán)語句中的循環(huán)變量是一個臨時變量,是loop語句的局部變量,不必事先定義,由loop語句自動定義,它只能作為賦值源,不能被賦值。在同一loop語句中不能再使用與此變量同名的標識符。循環(huán)變量的循環(huán)范圍從循環(huán)變量的初值開始,每執(zhí)行一次,就改變一次,直到循環(huán)變量范圍的終值。項目5VHDL的順序語句【例5.6】for/loop語句的應用項目5VHDL的順序語句例5.6VHDL程序是16位偶校驗電路。從仿真結果可知,輸入第1個“data”值的所有位中有4個1,校驗結果“xoro”為“0”,與偶校驗位相同,輸入的“data”值中有偶數(shù)個“1”;輸入第2個“data”值的所有位中有5個1,校驗結果“xoro”為“1”,與偶校驗位不相同,輸入的“data”值中有奇數(shù)個“1”。同理,可分析圖中其它輸入數(shù)值的偶校驗。②while/loop語句。while/loop語句格式如下:[標號]:while條件loop
順序處理語句;endloop[標號];在while/loop語句中,沒有給出循環(huán)次數(shù)的范圍,而給出了循環(huán)執(zhí)行順序語句的條件,沒有自動遞增循環(huán)變量的功能。如果循環(huán)控制條件為真,則進行循環(huán),否則結束循環(huán)。因而需要在順序處理語句中有修改循環(huán)條件的語句,使循環(huán)條件不滿足,從而結束循環(huán)。項目5VHDL的順序語句【例5.7】while/loop語句的應用項目5VHDL的順序語句例5.7的VHDL程序是16位奇校驗電路。從仿真結果可知,輸入第1個“data”值的所有位中有4個1,校驗結果“xoro”為“1”,與奇校驗位相同,說明輸入的“data”值中有偶數(shù)個“1”;輸入第2個“data”值的所有位中有5個1,校驗結果“xoro”為“0”,與奇校驗位不相同,說明輸入的“data”值中有奇數(shù)個“1”;同理,可分析圖中其它輸入數(shù)值的奇校驗。③條件跳出循環(huán)。循環(huán)語句中的next與exit語句,用來結束循環(huán)或跳出循環(huán)。next語句用于控制內循環(huán)的結束,其格式為:next[標號][when條件];exit語句用于結束loop循環(huán)狀態(tài),其格式為:exit[標號][when條件];next語句與exit語句具有相似的語句格式和跳轉功能,它們都是loop語句的內部循環(huán)控制語句。next語句是跳向loop語句的起始點,而exit語句是跳向loop語句的終點。項目5VHDL的順序語句3.wait語句wait語句的功能是把一個進程掛起,直到滿足等待的條件成立才重新開始進程的執(zhí)行,含wait語句的進程,process后不能加敏感信號,否則是非法的。wait語句使用形式通常有waiton(敏感信號列表)、waituntil(判斷條件表達式)和waitfor(時間)等三種形式。項目5VHDL的順序語句(1)waiton語句waiton語句的使用格式為:processbegin
順序語句1;順序語句2;
…順序語句n;waiton信號[,信號];endprocess;waiton語句后的信號也可以稱為敏感信號,如果信號發(fā)生變化,則執(zhí)行,否則進程處于掛起狀態(tài)。waiton語句有些綜合工具不支持。3.wait語句項目5VHDL的順序語句(2)waituntil語句waituntil語句的使用格式為:processbegin
順序語句1;順序語句2;
…順序語句n;waituntil條件判斷表達式;endprocess;當進程執(zhí)行到waituntil語句時進程被掛起,若條件判斷表達式為真,則進程將被啟動。waituntil語句中,條件判斷表達式隱式地建立了一個敏感信號量表。wait語句的功能是把一個進程掛起,直到滿足等待的條件成立才重新開始進程的執(zhí)行,含wait語句的進程,process后不能加敏感信號,否則是非法的。wait語句使用形式通常有waiton(敏感信號列表)、waituntil(判斷條件表達式)和waitfor(時間)等三種形式。3.wait語句項目5VHDL的順序語句(3)waitfor語句waitfor語句的格式為:processbegin
順序語句1;順序語句2;
…順序語句n;waitfor時間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房資金監(jiān)管服務規(guī)范化合同2024版
- 二零二五年度戶外廣告宣傳推廣合同
- 2025年度男女雙方協(xié)議離婚后的財產(chǎn)分配及子女監(jiān)護合同3篇
- 2025年度面包烘焙品牌跨界合作訂購合同4篇
- 二零二五年度農藥行業(yè)數(shù)據(jù)分析與研究報告合同
- 二零二五年度教育機構教師聘用合同續(xù)簽模板
- 二零二五年度影視行業(yè)演員形象代言合同保密條款范本3篇
- 2025年度跨境電商企業(yè)出口貸款合同范本2篇
- 二零二五版鎳礦國際貿易風險預警合同3篇
- 2025年度分手后子女教育經(jīng)費及撫養(yǎng)費支付合同4篇
- 【地理】地圖的選擇和應用(分層練) 2024-2025學年七年級地理上冊同步備課系列(人教版)
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產(chǎn)文件編制和管理規(guī)定
- JBT 14588-2023 激光加工鏡頭 (正式版)
- 2024年四川省成都市樹德實驗中學物理八年級下冊期末質量檢測試題含解析
- 九型人格與領導力講義
- 廉潔應征承諾書
- 2023年四川省成都市中考物理試卷真題(含答案)
- 泵車述職報告
- 2024年山西文旅集團招聘筆試參考題庫含答案解析
- 恢復中華人民共和國國籍申請表
- 管理期貨的趨勢跟蹤策略 尋找危機阿爾法
評論
0/150
提交評論