




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章VHDL設(shè)計(jì)深入
VHDL設(shè)計(jì)深入盡管前面我們對(duì)VHDL所涉及的語(yǔ)法做了比較詳細(xì)的說(shuō)明及示例詮釋,但依然存在有待深入探討的問(wèn)題,及系統(tǒng)性歸納闡述的必要,以便我們更好的掌握VHDL數(shù)字系統(tǒng)設(shè)計(jì)技術(shù)。28.1數(shù)據(jù)對(duì)象
8.1.1常數(shù)
常數(shù)的定義和設(shè)置主要是為了使程序更容易閱讀和修改。常數(shù)定義語(yǔ)句:示例:常數(shù)定義范圍:實(shí)體、結(jié)構(gòu)體、程序包、塊、進(jìn)程和子程序38.1數(shù)據(jù)對(duì)象
8.1.1常數(shù)
特點(diǎn):1.全局性
在程序中,常量是一個(gè)不變的值,一旦做了數(shù)據(jù)類型和賦值定義后,在程序中就不能再改變,因而具有全局性意義。2.可視性
即常數(shù)的使用范圍取決于它被定義的位置。
程序包實(shí)體結(jié)構(gòu)體屬于此結(jié)構(gòu)體的任意單元與進(jìn)程48.1數(shù)據(jù)對(duì)象
8.1.2變量
變量的賦值是一種理想化的數(shù)據(jù)傳輸,是立即發(fā)生的,不存在任何延時(shí)行為。其主要作用是在進(jìn)程中作為臨時(shí)的數(shù)據(jù)存儲(chǔ)單元。變量定義語(yǔ)句及示例:變量賦值語(yǔ)句及示例:變量定義范圍(局部量):進(jìn)程、子程序5初始值非必須8.1數(shù)據(jù)對(duì)象
8.1.3信號(hào)
信號(hào)定義語(yǔ)句:信號(hào)賦值語(yǔ)句:信號(hào)的定義和使用范圍:信號(hào)是描述硬件系統(tǒng)的基本數(shù)據(jù)對(duì)象。作為一種數(shù)值的容器,不但可以容納當(dāng)前值,也可以保持歷史值。實(shí)體、結(jié)構(gòu)體、程序包。在進(jìn)程和子進(jìn)程的順序語(yǔ)句中不允許定義信號(hào),但可使用,即賦值;進(jìn)程中只能將信號(hào)列入敏感表,而對(duì)變量不敏感。process(clk,en)68.1數(shù)據(jù)對(duì)象
8.1.3信號(hào)
信號(hào)的賦值可以出現(xiàn)在一個(gè)進(jìn)程中,也可以直接出現(xiàn)在結(jié)構(gòu)體的并行語(yǔ)句結(jié)構(gòu)中,但兩者的賦值含義是不一樣的:1.前者(進(jìn)程)屬于順序信號(hào)賦值,這時(shí)的信號(hào)賦值操作要視進(jìn)程是否已被啟動(dòng),并且允許對(duì)同一目標(biāo)信號(hào)進(jìn)行多次賦值;2.后者(結(jié)構(gòu)體)屬于并行信號(hào)賦值,其賦值操作是各自獨(dú)立并行地發(fā)生的,且不允許對(duì)同一目標(biāo)信號(hào)進(jìn)行無(wú)條件的多次賦值。示例:7√但,不同進(jìn)程中不允許對(duì)對(duì)同一信號(hào)賦值。8.1數(shù)據(jù)對(duì)象
8.1.3信號(hào)
after語(yǔ)句描述賦值延遲的賦值語(yǔ)句還可構(gòu)建在不同時(shí)間序列中對(duì)同一信號(hào)進(jìn)行賦值的語(yǔ)句表述。信號(hào)賦值語(yǔ)句:示例:
after
xns語(yǔ)句也僅對(duì)VHDL仿真有效,無(wú)法綜合出任何對(duì)應(yīng)的硬件電路。8初始值8.1數(shù)據(jù)對(duì)象
8.1.4進(jìn)程中的信號(hào)賦值與變量賦值
準(zhǔn)確理解和把握一個(gè)進(jìn)程中的信號(hào)和變量賦值行為的特點(diǎn)以及它們功能上的異同點(diǎn),對(duì)利用VHDL進(jìn)行正確的電路設(shè)計(jì)十分重要。98.1數(shù)據(jù)對(duì)象
8.1.4進(jìn)程中的信號(hào)賦值與變量賦值
信號(hào)與變量適用范圍示例:兩者綜合的結(jié)果相同:變量的定義與賦值只能在進(jìn)程內(nèi)信號(hào)的定義不能在進(jìn)程內(nèi)但賦值可內(nèi)可外108.1數(shù)據(jù)對(duì)象
8.1.4進(jìn)程中的信號(hào)賦值與變量賦值
信號(hào)與變量行為特性示例:?Why?118.1數(shù)據(jù)對(duì)象
8.1.4進(jìn)程中的信號(hào)賦值與變量賦值
進(jìn)程中的賦值行為應(yīng)該注意以下三點(diǎn):
1.信號(hào)的賦值需要有一個(gè)δ延時(shí)
。2.一個(gè)進(jìn)程中的所有賦值語(yǔ)句,包括信號(hào)賦值和變量,都必須在一個(gè)δ延時(shí)內(nèi)完成(變量在δ延時(shí)前即已完成賦值),即一個(gè)進(jìn)程的運(yùn)行時(shí)間固定為一個(gè)δ延時(shí)。在進(jìn)程中的順序賦值是以并行的方式“同時(shí)”完成的,執(zhí)行賦值操作和完成賦值是兩個(gè)不同的概念。3.當(dāng)在進(jìn)程中存在同一信號(hào)有多個(gè)賦值源(即對(duì)同一信號(hào)發(fā)生多次賦值)時(shí),實(shí)際完成賦值的信號(hào)是最接近endprocess語(yǔ)句的信號(hào)。128.1數(shù)據(jù)對(duì)象
8.1.4進(jìn)程中的信號(hào)賦值與變量賦值
執(zhí)行賦值與完成賦值示例:
e1在5ns+δ被執(zhí)行賦值,在5ns+
2δ完成賦值(即更新)c1的執(zhí)行賦值與完成賦值時(shí)間都是5ns+δ。δ138.1數(shù)據(jù)對(duì)象
8.1.4進(jìn)程中的信號(hào)賦值與變量賦值
信號(hào)與變量的差別示例:4選1多路選擇器的錯(cuò)誤描述:此三行并行執(zhí)行根據(jù)進(jìn)程中信號(hào)的賦值規(guī)則,只有第三行中的muxval得到更新,但由于muxval<=0并未完成賦值,故紅框內(nèi)的muxval始終是個(gè)未知數(shù),這就導(dǎo)致了仿真時(shí)序的不正確。錯(cuò)誤的仿真結(jié)果:148.1數(shù)據(jù)對(duì)象
8.1.4進(jìn)程中的信號(hào)賦值與變量賦值
信號(hào)與變量的差別示例:4選1多路選擇器的正確描述:正確的仿真結(jié)果:i0i2i1i3158.2含高阻輸出的電路設(shè)計(jì)8.2.1三態(tài)門設(shè)計(jì)(知識(shí)回顧)
概述:三態(tài)指其輸出既可以是一般二值邏輯電路的正常的高電平(邏輯1)或低電平(邏輯0),又可以保持特有的高阻抗?fàn)顟B(tài)(Z)。處于高阻抗?fàn)顟B(tài)時(shí),輸出電阻很大,相當(dāng)于開(kāi)路,沒(méi)有任何邏輯控制功能。高阻態(tài)的意義在于實(shí)際電路中不可能斷開(kāi)電路。
三態(tài)電路的輸出邏輯狀態(tài)的控制,是通過(guò)一個(gè)輸入引腳實(shí)現(xiàn)的。舉例:內(nèi)存里面的一個(gè)存儲(chǔ)單元,讀寫控制線處于低電位時(shí),存儲(chǔ)單元被打開(kāi),可以向里面寫入;當(dāng)處于高電位時(shí),可以讀出。但是不讀不寫,就要用高電阻態(tài),此時(shí)的節(jié)點(diǎn)處于懸空(不被拉到VDD或者GND)的狀態(tài),沒(méi)有電路驅(qū)動(dòng)他。應(yīng)用:如果你的設(shè)備端口要掛在一個(gè)總線上,必須通過(guò)三態(tài)緩沖器。因?yàn)樵谝粋€(gè)總線上同時(shí)只能有一個(gè)端口作輸出,這時(shí)其他端口必須在高阻態(tài),同時(shí)可以輸入這個(gè)輸出端口的數(shù)據(jù)。
168.2含高阻輸出的電路設(shè)計(jì)8.2.1三態(tài)門設(shè)計(jì)
實(shí)例:8位三態(tài)控制門電路:必須大寫:IEEE庫(kù)中對(duì)數(shù)據(jù)類型std_logic的預(yù)定義已經(jīng)將高阻態(tài)確定為大寫’Z’。178.2含高阻輸出的電路設(shè)計(jì)8.2.2雙向端口的設(shè)計(jì)方法
用Inout端口模式設(shè)計(jì)雙向端口也必須考慮三態(tài)的使用,因?yàn)殡p向端口的設(shè)計(jì)與三態(tài)端口的設(shè)計(jì)十分相似,都必須考慮端口的三態(tài)控制。
由于雙向端口在完成輸入功能時(shí),必須使原來(lái)呈輸出模式的端口呈高阻態(tài),否則,待輸入的的外部數(shù)據(jù)勢(shì)必會(huì)與端口處原有電平發(fā)生“線與”,導(dǎo)致無(wú)法將外部數(shù)據(jù)正確地讀入。188.2含高阻輸出的電路設(shè)計(jì)8.2.2雙向端口的設(shè)計(jì)方法
雙向端口的錯(cuò)誤描述:錯(cuò)誤的仿真結(jié)果:不完整:沒(méi)有體現(xiàn)q的輸出功能。導(dǎo)致:1.q的仿真符號(hào)僅為輸出符號(hào)2.鎖存器的產(chǎn)生198.2含高阻輸出的電路設(shè)計(jì)8.2.2雙向端口的設(shè)計(jì)方法
雙向端口的正確描述:前者體現(xiàn)q的輸出功能;后者體現(xiàn)q的輸入功能。產(chǎn)生正確的仿真結(jié)果:1.q為輸入輸出符號(hào)2.消除了鎖存器208.2含高阻輸出的電路設(shè)計(jì)8.2.3三態(tài)總線電路設(shè)計(jì)
三態(tài)總線設(shè)計(jì)示例:8位4通道的三態(tài)總線驅(qū)動(dòng)器錯(cuò)誤描述:四個(gè)順序完成的IF語(yǔ)句,為什么會(huì)綜合出錯(cuò)誤的結(jié)果呢?這是因?yàn)樵谶M(jìn)程中,順序等價(jià)的語(yǔ)句,包括賦值語(yǔ)句和if語(yǔ)句等,當(dāng)它們列于同一進(jìn)程敏感表中的信號(hào)同時(shí)變化時(shí),只可能對(duì)進(jìn)程結(jié)束前的那一條賦值語(yǔ)句進(jìn)行賦值操作,而忽略其上的所有等價(jià)語(yǔ)句。產(chǎn)生錯(cuò)誤的仿真結(jié)果:除input0外,其余三個(gè)8位輸入端都懸空,沒(méi)能用上。218.2含高阻輸出的電路設(shè)計(jì)8.2.3三態(tài)總線電路設(shè)計(jì)
三態(tài)總線設(shè)計(jì)示例:8位4通道的三態(tài)總線驅(qū)動(dòng)器正確描述:四個(gè)并列的when-else并行語(yǔ)句綜合出正確的電路結(jié)構(gòu):這是因?yàn)樵诮Y(jié)構(gòu)體中,每一條并行語(yǔ)句都等同于一個(gè)獨(dú)立運(yùn)行的進(jìn)程,它們的地位是平等的,它們獨(dú)立且不沖突第監(jiān)視各并行語(yǔ)句中作為敏感信號(hào)的輸入值ctl。即當(dāng)ctl變化時(shí),四條when-else語(yǔ)句始終有一條語(yǔ)句被執(zhí)行。產(chǎn)生正確的RTL電路(見(jiàn)設(shè)計(jì)文件)及仿真結(jié)果:228.3順序語(yǔ)句歸納
8.3.1進(jìn)程語(yǔ)句格式
一個(gè)結(jié)構(gòu)體中,允許放置任意多個(gè)進(jìn)程語(yǔ)句結(jié)構(gòu),而每一進(jìn)程的內(nèi)部都是由一系列順序語(yǔ)句構(gòu)成的。VHDL中的順序僅是程序上的,并不意味著綜合后的硬件邏輯行為也具有順序性。1.一個(gè)結(jié)構(gòu)體中可以含有多個(gè)Process結(jié)構(gòu);2.每一個(gè)Process結(jié)構(gòu)對(duì)于其敏感信號(hào)參數(shù)表中定義的任一敏感參量的變化,可在任
何時(shí)刻被激活或稱為啟動(dòng);3.所有被激活的進(jìn)程都是并行運(yùn)行的;4.必須以endprocess結(jié)束進(jìn)程,[is][進(jìn)程標(biāo)號(hào)]…可缺省。238.3順序語(yǔ)句歸納
8.3.2進(jìn)程結(jié)構(gòu)組成
1.進(jìn)程說(shuō)明部分:
主要定義一些除信號(hào)和共享變量外的局部變量,如數(shù)據(jù)類型、常數(shù)、變量、屬性、子程序等。
2.順序描述部分:
信號(hào)賦值語(yǔ)句、變量賦值語(yǔ)句、進(jìn)程啟動(dòng)語(yǔ)句(敏感信號(hào)參數(shù)表或wait語(yǔ)句)、子程序調(diào)用語(yǔ)句、順序描述語(yǔ)句(if、case、loop等)、進(jìn)程跳出語(yǔ)句(next、exit等)。
3.多數(shù)VHDL綜合器要求敏感信號(hào)表必須列出本進(jìn)程中所有輸入信號(hào)名。
248.3順序語(yǔ)句歸納
8.3.3進(jìn)程要點(diǎn)
Process為一無(wú)限循環(huán)語(yǔ)句
進(jìn)程只有兩種狀態(tài):執(zhí)行和等待。
2.進(jìn)程中的順序語(yǔ)句具有明顯的順序和并行雙重性
在同一process中,10條語(yǔ)句和1000條語(yǔ)句的執(zhí)行時(shí)間是一樣的。這和軟件語(yǔ)言是有本質(zhì)區(qū)別的。3.信號(hào)可以是多個(gè)進(jìn)程間的通信線
結(jié)構(gòu)體中多個(gè)進(jìn)程之所以能并行同步運(yùn)行,一個(gè)很重要原因是進(jìn)程之間的通信是通過(guò)具有全局特性的信號(hào)來(lái)實(shí)現(xiàn)的。4.一個(gè)進(jìn)程中只允許描述對(duì)應(yīng)于一個(gè)時(shí)鐘信號(hào)的同步時(shí)序邏輯
時(shí)序電路必須由進(jìn)程中的順序語(yǔ)句描述,而此順序語(yǔ)句必須由不完全條件語(yǔ)句構(gòu)成。盡管在同一個(gè)進(jìn)程中可順序放置多個(gè)條件語(yǔ)句(如if語(yǔ)句),但是推薦只放置一個(gè)含有時(shí)鐘邊沿檢測(cè)語(yǔ)句的條件語(yǔ)句。258.4并行賦值語(yǔ)句討論并行語(yǔ)句并不等同于總是并行且同時(shí)被執(zhí)行。例如進(jìn)程,除非幾個(gè)進(jìn)程都是擁有完全相同的敏感信號(hào),否則不可能出現(xiàn)完全并行運(yùn)行的情況。這兩個(gè)語(yǔ)句雖然屬于并行語(yǔ)句,但絕大多數(shù)情況下并不可能同時(shí)執(zhí)行,除非a、b、c嚴(yán)格同時(shí)發(fā)生變化。并行賦值語(yǔ)句也包含了類似進(jìn)程的順序語(yǔ)句特性:
假設(shè)在某一穩(wěn)態(tài)條件下s0=0,s1=0;a、b、c、d均為0,此時(shí)x=0?,F(xiàn)在假設(shè)a發(fā)生了一個(gè)事件,變?yōu)?,這時(shí)上面select賦值語(yǔ)句并不會(huì)被執(zhí)行,因?yàn)榇司洳⒉粚?duì)a敏感。這時(shí)只會(huì)執(zhí)行紅框內(nèi)語(yǔ)句,因?yàn)橹挥衅鋵?duì)a敏感,這時(shí)x將從原來(lái)的0變?yōu)?268.5IF語(yǔ)句概述
IF語(yǔ)句是VHDL設(shè)計(jì)中最重要和最常用的順序條件語(yǔ)句,可分為以下四類:1.非完整條件語(yǔ)句多用來(lái)產(chǎn)生時(shí)序電路2.完整條件語(yǔ)句多用來(lái)產(chǎn)生組合電路3.嵌套式條件語(yǔ)句組合、時(shí)序電路均可產(chǎn)生4.多分支條件語(yǔ)句組合、時(shí)序電路均可產(chǎn)生具有向上邏輯相與的功能?278.5IF語(yǔ)句概述
實(shí)例:利用多分支向上邏輯相與的功能實(shí)現(xiàn)8-3線優(yōu)先編碼器。288.6仿真延時(shí)8.6.1固有延時(shí)(信號(hào)的持續(xù)時(shí)間)8.6.2傳輸延時(shí)(并不考慮信號(hào)持續(xù)的時(shí)間,它僅表示信號(hào)傳輸推遲或延遲了一個(gè)時(shí)間段。)8.6.3仿真理解:綜合器不支持延時(shí)語(yǔ)句,干脆給并行語(yǔ)句和順序語(yǔ)句一個(gè)
的統(tǒng)一延時(shí)解決客觀存在的問(wèn)題。延時(shí)是VHDL仿真需要的重要特性,為設(shè)計(jì)而建立的精確的延時(shí)模型,可以使用VHDL仿真器得到接近實(shí)際的精確結(jié)果。VHDL中有兩類延時(shí)模型能用于行為仿真建模:固有延時(shí)和傳輸延時(shí)298.7VHDL的描述風(fēng)格
VHDL的模塊結(jié)構(gòu)具有描述整個(gè)設(shè)計(jì)實(shí)體的邏輯功能,對(duì)于所希望的電路功能行為,可以在模塊中用不同的語(yǔ)句類型和描述方
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 品牌貼牌合同協(xié)議書
- 雙擁單位共建協(xié)議書
- 土地廠房買賣協(xié)議書
- 廠房提前退租協(xié)議書
- 員工自愿保密協(xié)議書
- 別墅施工承攬協(xié)議書
- 衛(wèi)浴代理加盟協(xié)議書
- 廚房煙道保證協(xié)議書
- 商場(chǎng)運(yùn)營(yíng)管理協(xié)議書
- 基于2025年的有色金屬資源循環(huán)利用產(chǎn)業(yè)鏈創(chuàng)新技術(shù)應(yīng)用分析報(bào)告
- 《故宮公開(kāi)課》課件
- 《智能家居系統(tǒng)介紹》課件
- 2025-2030年中國(guó)證券融資融券市場(chǎng)需求態(tài)勢(shì)及投資風(fēng)險(xiǎn)預(yù)測(cè)研究報(bào)告
- 淘寶運(yùn)營(yíng)考試試題及答案
- 急性腦梗塞患者護(hù)理查房
- 2025年河南鄭州航空港科創(chuàng)投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 騰訊學(xué)院培訓(xùn)課件
- 認(rèn)知增強(qiáng)技術(shù)在法律領(lǐng)域的應(yīng)用-全面剖析
- 化學(xué)自制米酒 領(lǐng)略我國(guó)傳統(tǒng)釀造工藝的魅力課件 2024-2025學(xué)年高一下魯科版(2019)必修第二冊(cè)
- 貴州省往年氣象局筆試公共基礎(chǔ)題庫(kù)
- 2024-2025學(xué)年冀教版七年級(jí)英語(yǔ)下冊(cè)全冊(cè)教案
評(píng)論
0/150
提交評(píng)論