EDA技術(shù)及應(yīng)用 VHDL設(shè)計(jì)初步_第1頁
EDA技術(shù)及應(yīng)用 VHDL設(shè)計(jì)初步_第2頁
EDA技術(shù)及應(yīng)用 VHDL設(shè)計(jì)初步_第3頁
EDA技術(shù)及應(yīng)用 VHDL設(shè)計(jì)初步_第4頁
EDA技術(shù)及應(yīng)用 VHDL設(shè)計(jì)初步_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

會(huì)計(jì)學(xué)1EDA技術(shù)及應(yīng)用VHDL設(shè)計(jì)初步教學(xué)目的

通過簡單、完整而典型的VHDL設(shè)計(jì)示例,初步了解用VHDL表達(dá)和設(shè)計(jì)電路的方法。

第1頁/共57頁4.1多路選擇器的VHDL描述2選1多路選擇器的示意圖和真值表absyax0axb1babys01當(dāng)s=0時(shí),y=a當(dāng)s=1時(shí),y=b第2頁/共57頁4.1多路選擇器的VHDL描述2.2選1多路選擇器實(shí)現(xiàn)-原理圖形輸入法001y=a0a110y=bb0第3頁/共57頁4.1多路選擇器的VHDL描述2.2選1多路選擇器實(shí)現(xiàn)-VHDL文本輸入法1實(shí)體結(jié)構(gòu)體實(shí)體名稱端口名稱流動(dòng)方向數(shù)據(jù)類型結(jié)構(gòu)體名功能描述第4頁/共57頁4.1多路選擇器的VHDL描述2.2選1多路選擇器實(shí)現(xiàn)-VHDL文本輸入法2實(shí)體結(jié)構(gòu)體第5頁/共57頁4.1多路選擇器的VHDL描述2.2選1多路選擇器實(shí)現(xiàn)-VHDL文本輸入法3實(shí)體結(jié)構(gòu)體第6頁/共57頁4.1多路選擇器的VHDL描述3.相關(guān)語句結(jié)構(gòu)和語法-實(shí)體表達(dá)結(jié)構(gòu)ENTITY、IS、PORT、END都是描述實(shí)體的關(guān)鍵詞,不分大寫小寫,但是為了便于閱讀,一般在設(shè)計(jì)中將關(guān)鍵詞使用大寫,自定義使用小寫。第7頁/共57頁4.1多路選擇器的VHDL描述3.相關(guān)語句結(jié)構(gòu)和語法-實(shí)體名稱實(shí)體名表達(dá)的是該設(shè)計(jì)電路的器件名,通常根據(jù)相應(yīng)電路的功能來確定。不能用數(shù)字或中文、不能與工具庫中已定義的元件名、不能數(shù)字開頭。第8頁/共57頁4.1多路選擇器的VHDL描述3.相關(guān)語句結(jié)構(gòu)和語法-實(shí)體名稱舉例mux4174LS04and2adder4bnot4輸入與門第9頁/共57頁4.1多路選擇器的VHDL描述3.相關(guān)語句結(jié)構(gòu)和語法-端口語句和名稱端口以PORT();來引導(dǎo)端口模式有:IN、OUT、INOUT、BUFFER數(shù)據(jù)類型有:BOOLEAN、BIT、INTEGER、CHAR型等第10頁/共57頁4.1多路選擇器的VHDL描述3.相關(guān)語句結(jié)構(gòu)和語法-結(jié)構(gòu)體表達(dá)結(jié)構(gòu)ARCHITECTURE、OF、IS、BEGIN、END都是描述結(jié)構(gòu)體的關(guān)鍵詞。功能描述語句:并行語句,順序語句

并行語句:WHEN_ELSE,邏輯操作賦值順序語句:IF_THEN_ELSE功能描述語句第11頁/共57頁4.1多路選擇器的VHDL描述3.相關(guān)語句結(jié)構(gòu)和語法-文件名稱使用VHDL語句編寫:后綴是.vhd使用VerilogHDL語句編寫:后綴是.v使用原理圖輸入設(shè)計(jì):后綴是.gdf文件名稱建議和實(shí)體名稱相同第12頁/共57頁4.1多路選擇器的VHDL描述4.思考y=ab+c_思考1:畫出真值表abcyxx110x001b0b_第13頁/共57頁4.1多路選擇器的VHDL描述4.思考y=ab+c_思考2:使用原理圖方式實(shí)現(xiàn)上式功能第14頁/共57頁4.1多路選擇器的VHDL描述4.思考y=ab+c_思考3:使用VHDL實(shí)現(xiàn)上式功能第15頁/共57頁4.1多路選擇器的VHDL描述5.賦值符號(hào)Y<=(aAND(NOTs))or(bANDs)賦值符號(hào)第16頁/共57頁4.1多路選擇器的VHDL描述6.各種表達(dá)式的比較---布爾邏輯表達(dá)式y(tǒng)<=(aAND(NOTs))OR(bANDs)第17頁/共57頁4.1多路選擇器的VHDL描述6.各種表達(dá)式的比較---條件賦值表達(dá)式y(tǒng)<=aWHENs1=‘0’ELSE b;賦值目標(biāo)<=表達(dá)式WHEN

賦值條件ELSE

表達(dá)式WHEN

賦值條件ELSE

表達(dá)式WHEN

賦值條件ELSE

表達(dá)式;第18頁/共57頁4.1多路選擇器的VHDL描述7.各種表達(dá)式的比較---IF_THEN_ELSE表達(dá)IF(s=‘0’)THENy<=a;ELSEy<=b;ENDIF;IF

條件表達(dá)式THEN

賦值語句;ELSIF

條件表達(dá)式THEN

賦值語句;ELSIF

條件表達(dá)式THEN

賦值語句;ELSE

條件表達(dá)式;ENDIF;第19頁/共57頁4.1多路選擇器的VHDL描述8.小結(jié) 4.1節(jié)中主要通過多路選擇器的實(shí)現(xiàn)過程,學(xué)習(xí)了VHDL描述的基本語言結(jié)構(gòu),以及組合邏輯電路的功能描述方法布爾邏輯表達(dá)式WHEN_ELSE條件表達(dá)式IF_THEN_ELSE表達(dá)式第20頁/共57頁4.2寄存器描述及其VHDL語言1.教學(xué)目的

通過D觸發(fā)器的VHDL實(shí)現(xiàn)過程,學(xué)習(xí)時(shí)序電路的VHDL描述方法。第21頁/共57頁4.2寄存器描述及其VHDL語言2.D觸發(fā)器的功能描述當(dāng)CP=0時(shí),觸發(fā)器不工作,處于維持狀態(tài)。

當(dāng)CP=1時(shí),它的功能如下:

當(dāng)D=0時(shí),次態(tài)=0,

當(dāng)D=1時(shí),次態(tài)=1。第22頁/共57頁4.2寄存器描述及其VHDL語言3.VHDL實(shí)現(xiàn)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdff1IS PORT( clk:INSTD_LOGIC; d:INSTD_LOGIC; q:OUTSTD_LOGIC );ENDdff1;ARCHITECTUREbhvOFdff1IS SIGNAL q1:STD_LOGIC;BEGINPROCESS(clk,q1)BEGIN IFCLK'EVENTANDCLK='1' THENq1<=d; ENDIF;ENDPROCESS;q<=q1;ENDbhv;引用庫數(shù)據(jù)類型內(nèi)部節(jié)點(diǎn)時(shí)鐘條件第23頁/共57頁4.2寄存器描述及其VHDL語言4.VHDL實(shí)現(xiàn)---引用庫LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;LIBRARY設(shè)計(jì)庫名稱;USE 設(shè)計(jì)庫.程序包名.ALL;數(shù)據(jù)類型、函數(shù)等放在設(shè)計(jì)庫中和程序包中。因?yàn)槭褂昧薙TD_LOGIC的數(shù)據(jù)類型,而該數(shù)據(jù)類型放置在設(shè)計(jì)庫IEEE的STD_LOGIC_1164程序包中,所以在使用前需要先申明。第24頁/共57頁4.2寄存器描述及其VHDL語言4.VHDL實(shí)現(xiàn)---數(shù)據(jù)類型PORT(clk:INSTD_LOGIC; d:INSTD_LOGIC; q:OUTSTD_LOGIC);BIT的定義:TYPEBITIS(‘0’,‘1’);STD_LOGIC的定義:TYPESTD_LOGICIS(‘U’,’X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-’)第25頁/共57頁4.2寄存器描述及其VHDL語言4.VHDL實(shí)現(xiàn)---信號(hào)定義(內(nèi)部節(jié)點(diǎn))SIGNAL q1:STD_LOGIC;不必定義端口模式(如IN、OUT)目的是為了設(shè)計(jì)更大的時(shí)序電路qq1X1PORT(clk:INSTD_LOGIC; d:INSTD_LOGIC; q:OUTSTD_LOGIC); q<=q1;第26頁/共57頁4.2寄存器描述及其VHDL語言4.VHDL實(shí)現(xiàn)---時(shí)鐘表達(dá)式IFclk'EVENTANDclk='1‘檢測時(shí)鐘信號(hào)的上升沿表示clk信號(hào)有變化,并且變化后為1第27頁/共57頁4.2寄存器描述及其VHDL語言4.VHDL實(shí)現(xiàn)---存儲(chǔ)功能的產(chǎn)生不完整的條件語句實(shí)現(xiàn)存儲(chǔ)功能元件如果是完整的條件語句,則只能構(gòu)成邏輯電路IFclk'EVENTANDclk='1' THENq1<=d;ENDIF;第28頁/共57頁4.2寄存器描述及其VHDL語言5.實(shí)現(xiàn)時(shí)序電路的不同描述IF(clk‘EVENT)AND(clk='1‘)AND (clk’LAST_VALUE=‘0’)IF(clk='1‘)AND(clk’LAST_VALUE=‘0’)IFrising_edge(clk)--STD_LOGIC_1164定義Waituntilclk=‘1’;第29頁/共57頁4.2寄存器描述及其VHDL語言6.同步時(shí)序電路和異步時(shí)序電路移位寄存器二進(jìn)制計(jì)數(shù)器只需一個(gè)時(shí)鐘進(jìn)程需兩個(gè)時(shí)鐘進(jìn)程第30頁/共57頁4.2寄存器描述及其VHDL語言6.同步時(shí)序電路和異步時(shí)序電路PROCESS(clk)BEGIN **********ENDPROCESS;PROCESS(q)BEGIN **********ENDPROCESS;第31頁/共57頁4.31位二進(jìn)制全加器的VHDL描述1.半加器功能描述全加器可由兩個(gè)半加器和一個(gè)或門構(gòu)成半加器是最簡單的加法器,把2個(gè)1位二進(jìn)制數(shù)相加,不考慮低位的進(jìn)位,產(chǎn)生一個(gè)2位和,和的低位叫半加和,高位叫半加進(jìn)位半加器由一個(gè)與門,一個(gè)或門和一個(gè)異或門構(gòu)成第32頁/共57頁4.31位二進(jìn)制全加器的VHDL描述2.半加器真值表及電路圖abcoso0000010110011110co=aANDbso=aXORb第33頁/共57頁4.31位二進(jìn)制全加器的VHDL描述3.半加器VHDL描述方法--布爾表達(dá)式LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC; co,so:OUTSTD_LOGIC );ENDh_adder;ARCHITECTUREaOFh_adderISBEGIN co<=aANDb; so<=aXORb;ENDa;第34頁/共57頁4.31位二進(jìn)制全加器的VHDL描述3.半加器VHDL描述方法--真值表表達(dá)方式abcoso0000010110011110第35頁/共57頁4.31位二進(jìn)制全加器的VHDL描述4.全加器圖形輸入法考慮低位進(jìn)位的情況下,2個(gè)輸入和第36頁/共57頁4.31位二進(jìn)制全加器的VHDL描述5.全加器VHDL描述——或門通過頂層調(diào)用底層元件,實(shí)現(xiàn)全加器,下面使用VHDL描述實(shí)現(xiàn)或門邏輯。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2a ISPORT(a,b:INSTD_LOGIC; c:OUTSTD_LOGIC );ENDor2a ;ARCHITECTUREaOFor2a ISBEGIN c<=aorb;ENDa;第37頁/共57頁4.31位二進(jìn)制全加器的VHDL描述5.全加器VHDL描述——頂層設(shè)計(jì)通過頂層調(diào)用底層元件,實(shí)現(xiàn)全加器def第38頁/共57頁4.31位二進(jìn)制全加器的VHDL描述6.新學(xué)內(nèi)容總結(jié)a.標(biāo)準(zhǔn)邏輯矢量數(shù)據(jù)類型b.并置操作符c.CASE語句d.頂層描述及例化語句第39頁/共57頁4.31位二進(jìn)制全加器的VHDL描述6.新學(xué)內(nèi)容總結(jié)--標(biāo)準(zhǔn)邏輯矢量數(shù)據(jù)類型STD_LOGIC_VECTOR標(biāo)準(zhǔn)一維數(shù)組,數(shù)組中每一位的數(shù)據(jù)類型都是STD_LOGICSTD_LOGIC標(biāo)準(zhǔn)位類型定義方法:

A:OUTSTD_LOGIC_VECTOR(7DOWNTO0) B:OUTSTD_LOGIC_VECTOR(1TO5)賦值方法:

A<=“01010101”; A(7DOWNTO4)<=“0101”;第40頁/共57頁4.31位二進(jìn)制全加器的VHDL描述6.新學(xué)內(nèi)容總結(jié)--并置操作符并置操作符&的作用: 將操作數(shù)或者數(shù)組合并成新的數(shù)組操作符 舉例功能<=c<=aANDb賦值操作符=,>,<IF(s=‘0’)THEN比較操作符&abc<=a&b并置操作符使用方法: ‘0’&’1’&a&d(1)----定義信號(hào)注釋操作符第41頁/共57頁4.31位二進(jìn)制全加器的VHDL描述6.新學(xué)內(nèi)容總結(jié)--CASE語句利用CASE語句可以直接表達(dá)電路的邏輯真值表,有效直觀功能表達(dá)語句功能c<=aANDb布爾表達(dá)方式IF_THEN_ELSEIF條件語句WHEN_ELSEWHEN條件語句CASE語句CASE語句第42頁/共57頁4.31位二進(jìn)制全加器的VHDL描述6.新學(xué)內(nèi)容總結(jié)--頂層設(shè)計(jì)定義頂層設(shè)計(jì)端口申明調(diào)用元件,定義內(nèi)部信號(hào)使用端口映射語句連接元件第43頁/共57頁4.31位二進(jìn)制全加器的VHDL描述6.新學(xué)內(nèi)容總結(jié)--COMPONENTCOMPONENTh_adder2PORT(a,b:INSTD_LOGIC; co,so:OUTSTD_LOGIC);ENDCOMPONENT;將現(xiàn)成的設(shè)計(jì)實(shí)體定義為一個(gè)元件,做出調(diào)用申明端口名表需要列出元件對(duì)外通信的各端口名,命名方式與實(shí)體中的PORT()一致(端口名可重新定義)。元件申明語句放置在ARCHITECTURE和BEGIN之間COMPONENT元件名PORT(

端口名表);ENDCOMPONENT;第44頁/共57頁4.31位二進(jìn)制全加器的VHDL描述6.新學(xué)內(nèi)容總結(jié)--PORTMAPu1:h_adder2PORTMAP(a=>ain,b=>bin,co=>d,so=>e);u2:h_adder2PORTMAP(a=>e,b=>cin,co=>f,so=>sum);u3:or2a PORTMAP(a=>d,b=>f,c=>cout);例化名相當(dāng)于電子電路里的標(biāo)號(hào)元件名即調(diào)用的元件實(shí)體的名稱,相對(duì)于器件名稱PORTMAP表示端口映射,端口到外部引腳或引線的連接關(guān)系兩個(gè)例化元件之間不能直接連接

=>是連接符號(hào)例化名:元件名PORTMAP(端口名=>X,端口名=>Y,…)第45頁/共57頁4.31位二進(jìn)制全加器的VHDL描述7.思考習(xí)題4-2

思考習(xí)題4-3

思考習(xí)題4-4第46頁/共57頁4.4計(jì)數(shù)器設(shè)計(jì)1.計(jì)數(shù)器的VHDL描述BUFFERINTEGERq<=q+1第47頁/共57頁4.4計(jì)數(shù)器設(shè)計(jì)1.計(jì)數(shù)器的VHDL描述——BUFFERBUFFERINOUTINOUT元件等效于在結(jié)構(gòu)體BEGIN之前定義了一個(gè)信號(hào),供反饋使用第48頁/共57頁4.4計(jì)數(shù)器設(shè)計(jì)1.計(jì)數(shù)器的VHDL描述——INTEGERINTEGERBITSTD_LOGICSTD_LOGIC_VECTORINTEGER類型可用32位有符號(hào)的二進(jìn)制數(shù)表示,取值范圍:-2147483647~+2147483647INTEGER必須有RANGE限定范圍,否則無法綜合VHDL規(guī)定加、減等算術(shù)符對(duì)應(yīng)的操作數(shù)的數(shù)據(jù)類型只能是INTEGER型(除非重載算術(shù)操作符)NATURAL、POSITIVE是INTEGER的子類型在語句中INTEGER類型表達(dá)式不加‘’第49頁/共57頁4.4計(jì)數(shù)器設(shè)計(jì)1.計(jì)數(shù)器的VHDL描述——運(yùn)算符重載第50頁/共57頁4.4作業(yè)1.端口模式有那些?各有什么區(qū)別?2.習(xí)題4-2第51頁/共57頁4.54位2進(jìn)制計(jì)數(shù)器設(shè)計(jì)1.帶進(jìn)位計(jì)數(shù)器的VHDL描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcnt4ISPORT(clk:INSTD_LOGIC; q:BUFFERINTEGERRANGE15DOWNTO0; c:OUTSTD_LOGIC );ENDcnt4;ARCHITECTUREaOFcnt4ISBEGIN PROCESS(clk) BEGIN IF(clk'EVENTAND(clk='1'))THEN IF(q<15) THENq<=q+1;c<='0'; ELSE q<=0;c<='1'; ENDIF; ENDIF; ENDPROCESS;ENDa;第52頁/共57頁4.54位2進(jìn)制計(jì)數(shù)器設(shè)計(jì)2.4位構(gòu)成8位計(jì)數(shù)器的VHDL描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcnt2dISPORT(clk:INSTD_LOGIC; qH:BUFFERINTEGERRANGE9DOWNTO0; qL:BUFFERINTEGERRANGE9DOWNTO0; cout:OUTSTD_LOGIC );ENDcnt2d;ARCHITECTUREaOFcnt2dISCOMPONENTcnt4

PORT(clk:INSTD_LOGIC; q:BUFFERINTEGERRANGE9DOWNTO0; c:OUTSTD_LOGIC );ENDCOMPONENT;SIGNALs1:STD_LOGIC;BEGIN u1:cnt4PORTMAP(clk=>clk,q=>qL,c=>s1); u2:cnt4PORTMAP(clk=>s1,q=>qH,c=>cout);ENDa;第53頁/共57頁4.5作業(yè)設(shè)計(jì)一位十進(jìn)制計(jì)數(shù)器,即計(jì)數(shù)范圍0~9

要求:有進(jìn)位輸出2.使用第一題中的一位十進(jìn)制計(jì)數(shù)器,設(shè)計(jì)3位十進(jìn)制計(jì)數(shù)器,即計(jì)數(shù)范圍000~999

要求:有進(jìn)位輸出 采用頂層設(shè)計(jì)的方法,調(diào)用習(xí)題1的設(shè)計(jì)。第54頁/共57頁4.5作業(yè)設(shè)計(jì)一位十進(jìn)制計(jì)數(shù)器,即技術(shù)范圍0~9

要求:有進(jìn)位輸出LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcnttenISPORT(clk:INSTD_LOGIC; q:BUFFERINTEGERRANGE9DOWNTO0; c:OUTSTD_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論