




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、EDA技術(shù)及其應(yīng)用第4章應(yīng)用VHDL設(shè)計(jì)數(shù)字系統(tǒng)4.1 多路選擇器的VHDL描述4.1.1多路選擇器的VHDL描述圖4-1 mux21a實(shí)體圖4-2 mux21a結(jié)構(gòu)體4.1 多路選擇器的VHDL描述4.1.1多路選擇器的VHDL描述【例4-1】ENTITY mux21a ISPORT ( a, b : IN BIT;s : IN BIT;y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINy = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ;4.1 多路選擇器的VHDL描述
2、4.1.1多路選擇器的VHDL描述【例4-2】ENTITY mux21a ISPORT ( a, b : IN BIT;s : IN BIT;y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a ISSIGNAL d,e : BIT;BEGINd = a AND (NOT S) ;e = b AND s ;y = d OR e ;END ARCHITECTURE one ;4.1 多路選擇器的VHDL描述4.1.1多路選擇器的VHDL描述【例4-3】ENTITY mux21a ISPORT ( a, b, s: IN BIT;y
3、: OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINPROCESS (a,b,s)BEGINIF s = 0 THENy = a ; ELSEy = b ;END IF;END PROCESS;END ARCHITECTURE one ;4.1 多路選擇器的VHDL描述4.1.1多路選擇器的VHDL描述圖4-3 mux21a功能時(shí)序波形4.1 多路選擇器的VHDL描述4.1.2語(yǔ)句結(jié)構(gòu)和語(yǔ)法說(shuō)明1. 實(shí)體表達(dá)實(shí)體表達(dá)【例【例4-4】ENTITY e_name ISPORT ( p_name : port_m data_
4、type;.p_namei : port_mi data_type );END ENTITY e_name;4.1 多路選擇器的VHDL描述4.1.2語(yǔ)句結(jié)構(gòu)和語(yǔ)法說(shuō)明2. 實(shí)體名3. 端口語(yǔ)句和端口信號(hào)名4. 端口模式5. 數(shù)據(jù)類(lèi)型4.1 多路選擇器的VHDL描述6. 結(jié)構(gòu)體表達(dá)結(jié)構(gòu)體表達(dá)【例4-5】ARCHITECTURE arch_name OF e_name IS說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句BEGIN(功能描述語(yǔ)句功能描述語(yǔ)句)END ARCHITECTURE arch_name ;4.1 多路選擇器的VHDL描述7. 賦值符號(hào)和數(shù)據(jù)比較符號(hào)賦值符號(hào)和數(shù)據(jù)比較符號(hào)IF a THEN . - 留意,
5、留意,a的數(shù)據(jù)類(lèi)型必須是的數(shù)據(jù)類(lèi)型必須是booleanIF (s1=0)AND(s2=1)OR(cb+1) THEN . .8. 邏輯操作符邏輯操作符9. 條件語(yǔ)句條件語(yǔ)句4.1 多路選擇器的VHDL描述10. WHEN_ELSE條件信號(hào)賦值語(yǔ)句條件信號(hào)賦值語(yǔ)句賦值目標(biāo) = 表達(dá)式 WHEN 賦值條件 ELSE表達(dá)式 WHEN 賦值條件 ELSE.表達(dá)式 ;z = a WHEN p1 = 1 ELSEb WHEN p2 = 1 ELSEc ;4.1 多路選擇器的VHDL描述11. 進(jìn)程語(yǔ)句和順序語(yǔ)句進(jìn)程語(yǔ)句和順序語(yǔ)句12. 文件取名和存盤(pán)文件取名和存盤(pán)4.2 寄存器描述的VHDL程序4.2.1
6、D觸發(fā)器的描述圖4-4 D觸發(fā)器4.2 寄存器描述的VHDL程序【例4-6】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF1 ISPORT (CLK : IN STD_LOGIC ;D : IN STD_LOGIC ;Q : OUT STD_LOGIC );END ;ARCHITECTURE bhv OF DFF1 ISSIGNAL Q1 : STD_LOGIC ; -類(lèi)似于在芯片內(nèi)部定義一個(gè)數(shù)據(jù)的暫存節(jié)點(diǎn)類(lèi)似于在芯片內(nèi)部定義一個(gè)數(shù)據(jù)的暫存節(jié)點(diǎn)BEGINPROCESS (CLK,Q1)BEGINIF CLKEVENT AND CLK
7、= 1THEN Q1 = D ;END IF;END PROCESS ;Q = Q1 ; -將內(nèi)部的暫存數(shù)據(jù)向端口輸出雙橫線(xiàn)將內(nèi)部的暫存數(shù)據(jù)向端口輸出雙橫線(xiàn)-是注釋符號(hào))是注釋符號(hào))END bhv;4.2 寄存器描述的VHDL程序4.2.2VHDL描述的語(yǔ)言現(xiàn)象說(shuō)明1. 標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類(lèi)型STD_LOGICBIT數(shù)據(jù)類(lèi)型定義:TYPE BIT IS(0,1); -只有兩種取值STD_LOGIC數(shù)據(jù)類(lèi)型定義:TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-);4.2 寄存器描述的VHDL程序4.2.2VHDL描述的語(yǔ)言現(xiàn)象說(shuō)明2. 設(shè)計(jì)庫(kù)和標(biāo)準(zhǔn)程序包LIBRARY WOR
8、K ;LIBRARY STD ;USE STD.STANDARD.ALL ;LIBRARY ;USE .ALL ;LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;4.2 寄存器描述的VHDL程序4.2.2VHDL描述的語(yǔ)言現(xiàn)象說(shuō)明3. 信號(hào)定義和數(shù)據(jù)對(duì)象信號(hào)定義和數(shù)據(jù)對(duì)象4. 上升沿檢測(cè)表式和信號(hào)屬性函數(shù)上升沿檢測(cè)表式和信號(hào)屬性函數(shù)EVENT5. 不完整條件語(yǔ)句與時(shí)序電路不完整條件語(yǔ)句與時(shí)序電路4.2 寄存器描述的VHDL程序4.2.2VHDL描述的語(yǔ)言現(xiàn)象說(shuō)明5. 不完整條件語(yǔ)句與時(shí)序電路【例4-7】ENTITY COMP_BAD ISPORT( a1,
9、b1 : IN BIT;q1 : OUT BIT );END ;ARCHITECTURE one OF COMP_BAD ISBEGINPROCESS (a1,b1)BEGINIF a1 b1 THEN q1 = 1 ;ELSIF a1 b1 THEN q1 b1 THEN q1 = 1 ;ELSE q1 = 0 ; END IF;4.2 寄存器描述的VHDL程序4.2.3實(shí)現(xiàn)時(shí)序電路的不同表述【例4-9】.PROCESS (CLK)BEGINIF CLKEVENT AND (CLK=1) AND(CLKLAST_VALUE=0)THEN Q = D ; -確保CLK的變化是一次上升沿的跳變E
10、ND IF;END PROCESS ;4.2 寄存器描述的VHDL程序4.2.3實(shí)現(xiàn)時(shí)序電路的不同表述【例4-10】.PROCESS (CLK)BEGINIF CLK=1 AND CLKLAST_VALUE=0THEN Q = D ;END IF;END PROCESS ;4.2 寄存器描述的VHDL程序【例4-11】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF3 ISPORT (CLK,D : IN STD_LOGIC ;Q : OUT STD_LOGIC );END ;ARCHITECTURE bhv OF DFF3 ISSIG
11、NAL Q1 : STD_LOGIC;BEGINPROCESS (CLK)BEGINIF rising_edge(CLK) - 必須打開(kāi)必須打開(kāi)STD_LOGIC_1164程序包程序包THEN Q1 = D ;END IF;END PROCESS ;Q = Q1 ; -在此,賦值語(yǔ)句可以放在進(jìn)程外,作為并行賦值語(yǔ)句在此,賦值語(yǔ)句可以放在進(jìn)程外,作為并行賦值語(yǔ)句END ;4.2 寄存器描述的VHDL程序4.2.3實(shí)現(xiàn)時(shí)序電路的不同表述【例4-12】.PROCESSBEGINwait until CLK = 1Q = D ;END PROCESS;-利用利用wait語(yǔ)句語(yǔ)句4.2 寄存器描述的VH
12、DL程序4.2.3實(shí)現(xiàn)時(shí)序電路的不同表述【例4-13】.PROCESS (CLK)BEGINIF CLK = 1THEN Q = D ;END IF;END PROCESS ;-利用進(jìn)程的啟動(dòng)特性產(chǎn)生對(duì)利用進(jìn)程的啟動(dòng)特性產(chǎn)生對(duì)CLK的邊沿檢測(cè)的邊沿檢測(cè)圖4-7 例4-13的時(shí)序波形4.2 寄存器描述的VHDL程序4.2.3實(shí)現(xiàn)時(shí)序電路的不同表述【例4-14】.PROCESS (CLK,D) BEGINIF CLK = 1 -電平觸發(fā)型寄存器THEN Q = D ;END IF;END PROCESS圖4-8 例4-14的時(shí)序波形4.2 寄存器描述的VHDL程序4.2.4異步時(shí)序電路設(shè)計(jì)【例4-
13、15】.ARCHITECTURE bhv OF MULTI_DFF ISSIGNAL Q1,Q2 : STD_LOGIC;BEGINPRO1: PROCESS (CLK)BEGINIF CLKEVENT AND CLK=1THEN Q1 = NOT (Q2 OR A);END IF;END PROCESS ;PRO2: PROCESS (Q1)BEGINIF Q1EVENT AND Q1=1THEN Q2 = D;END IF;END PROCESS ; = Q2 ;.4.2 寄存器描述的VHDL程序4.2.4異步時(shí)序電路設(shè)計(jì)圖4-9 例4-15綜合后的電路Synplify綜合)4.3 1位全
14、加器的VHDL描述4.3.1半加器描述【例4-16】LIBRARY IEEE; -半加器描述(1):布爾方程描述方法USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT (a, b : IN STD_LOGIC;co, so : OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder isBEGINso = NOT(a XOR (NOT b) ; co = a AND b ;END ARCHITECTURE fh1;4.3 1位全加器的VHDL描述4.3.1半加器描述aand2co
15、a00b01so01co00bnotxnor2so11011001圖4-10 半加器h_adder電路圖及其真值表a4.3 1位全加器的VHDL描述4.3.1半加器描述ainu1h_adderA codh_adderA co f bor2accoutainbinf_addercoutbinBsoeBsou3sumcinsumcinu2圖4-11 全加器f_adder電路圖及其實(shí)體模塊USE IEEE.STD_LOGIC_1164.ALL;END ARCHITECTURE fh1 ;4.3h_adder ISco, so OUT半加器描述半加器描述【例4-17】LIBRARY IEEE; -半加
16、器描述半加器描述(2):真值表描述方法:真值表描述方法ENTITY 1位全加器的位全加器的VHDL描述描述PORT (a, b : IN STD_LOGIC;4.3.1 : STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder isSIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; -定義標(biāo)準(zhǔn)邏輯位矢量定義標(biāo)準(zhǔn)邏輯位矢量數(shù)據(jù)類(lèi)型BEGINabc so=0; co so=1; co so=1; co so=0; co NULL ;END CASE;END PROCESS;圖4-11 全加器f_add
17、er電路圖及其實(shí)體模塊4.3 1位全加器的VHDL描述4.3.1半加器描述【例4-18】LIBRARY IEEE ; -或門(mén)邏輯描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a ISPORT (a, b :IN STD_LOGIC;c : OUT STD_LOGIC );END ENTITY or2a;ARCHITECTURE one OF or2a ISBEGINc ain,b=bin,co=d,so=e); -例化例化語(yǔ)句u2 : h_adder PORT MAP(a=e, b=cin, co=f,so=sum);u3 : or2a PORT MAP(a=
18、d, b=f, c=cout);END ARCHITECTURE fd1;4.3 1位全加器的VHDL描述4.3.2CASE語(yǔ)句1. CASE語(yǔ)句CASE ISWhen = ; . ; ;When = ; . ; ;.WHEN OTHERS = ;END CASE ;WHEN OTHERS = ;4.3 1位全加器的VHDL描述4.3.2CASE語(yǔ)句2. 標(biāo)準(zhǔn)邏輯矢量數(shù)據(jù)類(lèi)型B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; 或SIGNAL A :STD_LOGIC_VECTOR(1 TO 4)B = 01100010 ; - B(7)為 0B(4 DOWNTO 1)
19、 = 1101 ; - B(4)為 1B(7 DOWNTO 4) = A ; - B(6)等于 A(2)SIGNAL C :BIT_VECTOR(3 DOWNTO 0);4.3 1位全加器的VHDL描述4.3.2CASE語(yǔ)句3. 并置操作符 &SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ;.a 連接端口名,.);4.4 計(jì)數(shù)器設(shè)計(jì)【例4-20】ENTITY CNT4 ISPORT ( CLK : IN BIT ;Q : BUFFER INTEGER RANGE 15
20、 DOWNTO 0 ) ;END ;ARCHITECTURE bhv OF CNT4 ISBEGINPROCESS (CLK)BEGINIF CLKEVENT AND CLK = 1 THENQ = Q + 1 ;END IF;END PROCESS ;END bhv;4.4 計(jì)數(shù)器設(shè)計(jì).24位二進(jìn)制加法計(jì)數(shù)器設(shè)計(jì)整數(shù)類(lèi)型103510E316#D9#8#720#2#11010010#十進(jìn)制整數(shù)十進(jìn)制整數(shù)十進(jìn)制整數(shù)十進(jìn)制整數(shù),等于十進(jìn)制整數(shù)1000十六進(jìn)制整數(shù),等于十六進(jìn)制整數(shù)D9H八進(jìn)制整數(shù),等于八進(jìn)制整數(shù)720O二進(jìn)制整數(shù),等于二進(jìn)制整數(shù)11010010B4.4 計(jì)數(shù)器設(shè)計(jì)4
21、.4.3計(jì)數(shù)器設(shè)計(jì)的其他表述方法【例4-21】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;USE IEEE.STD_LOGIC_UNSIGNED.ALL ;ENTITY CNT4 ISPORT ( CLK : IN STD_LOGIC ;Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ;END ;ARCHITECTURE bhv OF CNT4 ISSIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (CLK)BEGINIF CLKEVENT AND CLK = 1
22、THENQ1 = Q1 + 1 ;END IF;END PROCESS ;Q 0) ; -計(jì)數(shù)器異步復(fù)位計(jì)數(shù)器異步復(fù)位ELSIF CLKEVENT AND CLK=1 THEN -檢測(cè)時(shí)鐘上升沿檢測(cè)時(shí)鐘上升沿IF EN = 1 THEN -檢測(cè)是否允許計(jì)數(shù)同步使能)檢測(cè)是否允許計(jì)數(shù)同步使能)IF CQI 0); -大于大于9,計(jì)數(shù)值清零,計(jì)數(shù)值清零END IF;END IF;END IF;IF CQI = 9 THEN COUT = 1; -計(jì)數(shù)大于計(jì)數(shù)大于9,輸出進(jìn)位信號(hào),輸出進(jìn)位信號(hào)ELSE COUT = 0;END IF;CQ X)SIGNAL d1 : STD_LOGIC_VECTOR
23、(4 DOWNTO 0);VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0);.d1 0); a1 := (OTHERS=0) ;d1 e(3),3=e(5), OTHERS=e(1) );f = e(1) & e(5) & e(1) & e(3) & e(1) ;4.5 一般加法計(jì)數(shù)器設(shè)計(jì)4.5.2程序分析圖4-14 例4-22的RTL電路Synplify綜合)4.5 一般加法計(jì)數(shù)器設(shè)計(jì)4.5.2程序分析圖4-15 例4-22的工作時(shí)序4.5 一般加法計(jì)數(shù)器設(shè)計(jì)4.5.3含并行置位的移位寄存器設(shè)計(jì)【例4-23】LIBRARY
24、 IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHFRT IS - 8位右移寄存器PORT ( CLK,LOAD : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0);QB : OUT STD_LOGIC );END SHFRT;ARCHITECTURE behav OF SHFRT ISBEGINPROCESS (CLK, LOAD)VARIABLE REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLKEVENT AND CLK = 1 THENIF LOAD =
25、 1 THEN REG8 := DIN; -由LOAD=1)裝載新數(shù)據(jù)ELSE REG8(6 DOWNTO 0) := REG8(7 DOWNTO 1);END IF;END IF;QB = REG8(0); - 輸出最低位END PROCESS;END behav;4.5 一般加法計(jì)數(shù)器設(shè)計(jì)4.5.3含并行置位的移位寄存器設(shè)計(jì)圖4-16 例4-23的工作時(shí)序4.6 基于QuartusII的VHDL文本輸入設(shè)計(jì)4.6.1建立工作庫(kù)文件夾和編輯設(shè)計(jì)文件圖4-17 選擇VHDL文本編輯器4.6 基于QuartusII的VHDL文本輸入設(shè)計(jì)4.6.1建立工作庫(kù)文件夾和編輯設(shè)計(jì)文件圖4-18 選擇編輯
26、文件的語(yǔ)言類(lèi)型,鍵入源程序并存盤(pán)4.6 基于QuartusII的VHDL文本輸入設(shè)計(jì)4.6.2創(chuàng)建工程圖4-19 利用“New Preject Wizard創(chuàng)建工程cnt104.6 基于QuartusII的VHDL文本輸入設(shè)計(jì)4.6.2創(chuàng)建工程圖4-20 將所有相關(guān)的文件都加入進(jìn)此工程4.6 基于QuartusII的VHDL文本輸入設(shè)計(jì).4全程編譯時(shí)序仿真圖4-21例4-22的時(shí)序仿真波形圖4.6 基于QuartusII的VHDL文本輸入設(shè)計(jì)4.6.5應(yīng)用RTL電路圖觀察器圖4-22 RTL Viewer選擇4.6 基于QuartusII的VHDL文本輸入設(shè)計(jì)4.6.5應(yīng)用RT
27、L電路圖觀察器圖4-23 例4-22的RTL圖4.6 基于QuartusII的VHDL文本輸入設(shè)計(jì)4.6.6硬件測(cè)試器圖4-24下載cnt10.sof并啟動(dòng)SignalTap II,測(cè)試輸出數(shù)據(jù)4.6 基于QuartusII的VHDL文本輸入設(shè)計(jì)4.6.6硬件測(cè)試器圖4-25 SignalTap II數(shù)據(jù)窗設(shè)置后的信號(hào)波形習(xí) 題4-1. 畫(huà)出與下例實(shí)體描述對(duì)應(yīng)的原理圖符號(hào)元件:畫(huà)出與下例實(shí)體描述對(duì)應(yīng)的原理圖符號(hào)元件:ENTITY buf3s IS - 實(shí)體實(shí)體1: 三態(tài)緩沖器三態(tài)緩沖器PORT (input : IN STD_LOGIC ; - 輸入端輸入端enable : IN STD_LO
28、GIC ; - 使能端使能端output : OUT STD_LOGIC ) ; - 輸出端輸出端END buf3x ;ENTITY mux21 IS -實(shí)體實(shí)體2: 2選選1多路選擇器多路選擇器PORT (in0, in1, sel : IN STD_LOGIC;output : OUT STD_LOGIC);習(xí) 題4-2. 圖圖4-26所示的是所示的是4選選1多路選擇器,試分別用多路選擇器,試分別用IF_THEN語(yǔ)句和語(yǔ)句和CASE語(yǔ)句的表達(dá)方式寫(xiě)出此電路的VHDL程序。選擇控制的信號(hào)s1和s0的數(shù)據(jù)類(lèi)型為STD_LOGIC_VECTOR;當(dāng)s1=0,s0=0;s1=0,s0=1;s1=1
29、,s0=0和和s1=1,s0=1分別執(zhí)行分別執(zhí)行y=a、y=b、y=c、y=d。圖4-26 4選1多路選擇器習(xí) 題4-3. 圖圖4-27所示的是雙所示的是雙2選選1多路選擇器構(gòu)成的電路多路選擇器構(gòu)成的電路MUXK,對(duì)于其中,對(duì)于其中MUX21A,當(dāng),當(dāng)s=0和和1時(shí),分別有時(shí),分別有y=a和和ya2,b=a3,s=s0,y=tmp);u2 : MUX21A PORT MAP(a=a1,b=tmp,s=s1,y=outy);END ARCHITECTURE BHV ;實(shí)驗(yàn)與實(shí)踐4-2. 時(shí)序電路的設(shè)計(jì)時(shí)序電路的設(shè)計(jì)4-3. 含異步清含異步清0和同步時(shí)鐘使能的加法計(jì)數(shù)器的設(shè)計(jì)和同步時(shí)鐘使能的加法計(jì)
30、數(shù)器的設(shè)計(jì)4-4. 數(shù)控分頻器的設(shè)計(jì)數(shù)控分頻器的設(shè)計(jì)圖4-31 當(dāng)給出不同輸入值D時(shí),F(xiàn)OUT輸出不同頻率(CLK周期=50ns)實(shí)驗(yàn)與實(shí)踐END;4-2. 時(shí)序電路的設(shè)計(jì)時(shí)序電路的設(shè)計(jì)P_REG: PROCESS(CLK)VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0);IF CNT8 = 11111111 THENCNT8 := D;4-4. 數(shù)控分頻器的設(shè)計(jì)數(shù)控分頻器的設(shè)計(jì)【例4-24】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DV
31、F ISPORT ( CLK : IN STD_LOGIC;D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);FOUT : OUT STD_LOGIC );ARCHITECTURE one OF DVF ISSIGNAL FULL : STD_LOGIC;BEGIN4-3. 含異步清含異步清0和同步時(shí)鐘使能的加法計(jì)數(shù)器的設(shè)計(jì)和同步時(shí)鐘使能的加法計(jì)數(shù)器的設(shè)計(jì)BEGINIF CLKEVENT AND CLK = 1 THEN-當(dāng)CNT8計(jì)數(shù)計(jì)滿(mǎn)時(shí),輸入數(shù)據(jù)D被同步預(yù)置給計(jì)數(shù)器CNT8FULL = 1; -同時(shí)使溢出標(biāo)志信號(hào)FULL輸出為高電平ELSE CNT8 := CNT8
32、 + 1; -否則繼續(xù)作加1計(jì)數(shù)FULL = 0; -且輸出溢出標(biāo)志信號(hào)FULL為低電平END IF;END IF;END PROCESS P_REG ;P_DIV: PROCESS(FULL)VARIABLE CNT2 : STD_LOGIC;BEGINIF FULLEVENT AND FULL = 1 THENCNT2 := NOT CNT2; -如果溢出標(biāo)志信號(hào)如果溢出標(biāo)志信號(hào)FULL為高電平,為高電平,D觸發(fā)器輸出取反觸發(fā)器輸出取反IF CNT2 = 1 THEN FOUT = 1; ELSE FOUT CLK8HZ, ToneIndex=ToneIndex);u2 : ToneTab
33、a PORT MAP (Index=ToneIndex,Tone=Tone,CODE=CODE1,HIGH=HIGH1);u3 : Speakera PORT MAP(clk=CLK12MHZ,Tone=Tone, SpkS=SPKOUT );END實(shí)驗(yàn)與實(shí)踐4-5 PreCLK, FullSpkS : STD_LOGIC;【例4-26】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera ISPORT ( clk : IN STD_LOGIC;Tone : IN STD
34、_LOGIC_VECTOR (10 DOWNTO 0);SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speakera ISSIGNAL樂(lè)曲硬件演奏電路設(shè)計(jì)樂(lè)曲硬件演奏電路設(shè)計(jì)BEGINDivideCLK : PROCESS(clk)VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0) ;BEGINPreCLK 11 THEN PreCLK = 1; Count4 := 0000;ELSIF clkEVENT AND clk = 1 THEN Count4 := Count4 + 1;END IF;END
35、 PROCESS;GenSpkS : PROCESS(PreCLK, Tone)- 11位可預(yù)置計(jì)數(shù)器位可預(yù)置計(jì)數(shù)器VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0);BEGINIF PreCLKEVENT AND PreCLK = 1 THENIF Count11 = 16#7FF# THEN Count11 := Tone ; FullSpkS = 1;ELSE Count11 := Count11 + 1; FullSpkS = 0; END IF;END IF;END PROCESS;DelaySpkS : PROCESS(FullSpk
36、S)-將輸出再將輸出再2分頻,展寬脈沖,使揚(yáng)聲器有足夠功率發(fā)音分頻,展寬脈沖,使揚(yáng)聲器有足夠功率發(fā)音VARIABLE Count2 : STD_LOGIC;BEGINIF FullSpkSEVENT AND FullSpkS = 1 THEN Count2 := NOT Count2;IF Count2 = 1 THEN SpkS = 1;ELSE SpkS Tone=11111111111; CODE Tone=01100000101; CODE Tone=01110010000; CODE Tone=10000001100; CODE Tone=10010101101; CODE Tone
37、=10100001010; CODE Tone=10101011100; CODE Tone=10110000010; CODE Tone=10111001000; CODE Tone=11000000110; CODE Tone=11001010110; CODE Tone=11010000100; CODE Tone=11011000000; CODE NULL;END CASE;END PROCESS;END;HIGHHIGHHIGHHIGHHIGHHIGHHIGHHIGHHIGHHIGHHIGHHIGHHIGH=0;-2047=0;-773;=0;-912;=0;-1036;=0;-1
38、197;=0;-1290;=0;-1372;=1;-1410;=1;-1480;=1;-1542;=1;-1622;=1;-1668;=1;-1728;LIBRARY IEEE;ToneIndex : OUT【例4-28】USE IEEE.STD_LOGIC_1164.ALL;實(shí)驗(yàn)與實(shí)踐實(shí)驗(yàn)與實(shí)踐USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs ISPORT ( clk : IN STD_LOGIC;4-5 樂(lè)曲硬件演奏電路設(shè)計(jì)樂(lè)曲硬件演奏電路設(shè)計(jì)STD_LOGIC_VECTOR (3 DOWNTO 0) );END;ARCHITECTURE on
39、e OF NoteTabs ISCOMPONENT MUSIC -音符數(shù)據(jù)音符數(shù)據(jù)ROMPORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);inclock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END COMPONENT;SIGNAL Counter : STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINCNT8 : PROCESS(clk, Counter)BEGINIF Counter= THEN Counter = 00000000;ELSIF (clkE
40、VENT AND clk = 1) THEN Counter Counter , q=ToneIndex,inclock=clk);END;4-5 4 ; -“梁祝樂(lè)曲演奏數(shù)據(jù)梁祝樂(lè)曲演奏數(shù)據(jù)實(shí)驗(yàn)與實(shí)踐【例4-29】WIDTH =樂(lè)曲硬件演奏電路設(shè)計(jì)樂(lè)曲硬件演奏電路設(shè)計(jì)DEPTH = 256 ;ADDRESS_RADIX = DEC ;DATA_RADIX = DEC ;CONTENT BEGIN -注意實(shí)用文件中要展開(kāi)以下數(shù)據(jù),每一組占一行注意實(shí)用文件中要展開(kāi)以下數(shù)據(jù),每一組占一行00: 3 ; 01: 3 ; 02: 3 ; 03: 3; 04: 5; 05: 5; 06: 5;07: 6; 08: 8; 09: 8;10: 8 ; 11: 9 ; 12: 6 ; 13: 8; 14: 5; 15: 5; 16: 12;17: 12;18: 12; 19:15;20:13 ; 21:12 ; 22:10 ; 23:12; 24: 9; 25: 9; 26: 9; 27: 9; 28: 9; 29: 9;30: 9 ; 31: 0 ; 32: 9 ; 33: 9; 34: 9; 35:10; 36: 7; 37: 7; 38: 6; 39: 6
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)小程序游戲行業(yè)發(fā)展現(xiàn)狀、市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展前景預(yù)測(cè)報(bào)告
- 七年級(jí)下冊(cè)《平行線(xiàn)的性質(zhì)》課件與練習(xí)
- 企業(yè)知識(shí)共享結(jié)構(gòu)優(yōu)化與創(chuàng)新能力提升
- 2025年武器、彈藥及其零件合作協(xié)議書(shū)
- 智慧城市數(shù)據(jù)平臺(tái)建設(shè)合作協(xié)議
- 電梯安裝安全協(xié)議書(shū)
- 消防安全技術(shù)服務(wù)項(xiàng)目合同
- 林地合作經(jīng)營(yíng)合同書(shū)
- 用美術(shù)相關(guān)知識(shí)做
- 古代詩(shī)詞鑒賞征文
- 應(yīng)收帳款質(zhì)押擔(dān)保合同
- 門(mén)診診所運(yùn)行管理制度
- 湖南省懷化市2024-2025學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題(含答案)
- “5E”教學(xué)模式下高中數(shù)學(xué)教學(xué)實(shí)踐研究
- 《醫(yī)學(xué)影像檢查技術(shù)學(xué)》課件-踝X線(xiàn)攝影
- 急救藥品知識(shí)培訓(xùn)內(nèi)容
- 2025年臨床醫(yī)師定期考核必考復(fù)習(xí)題庫(kù)及答案(900題)
- JTG5120-2021公路橋涵養(yǎng)護(hù)規(guī)范
- DB14∕T 92-2010 M5、M15車(chē)用甲醇汽油
- 【高分復(fù)習(xí)筆記】李天元《旅游學(xué)概論》(第7版)筆記和課后習(xí)題詳解
- 新蘇教版科學(xué)六年級(jí)下冊(cè)全冊(cè)教案(含反思)
評(píng)論
0/150
提交評(píng)論