數(shù)字電子技術(shù)基礎(chǔ)-第11章課件_第1頁(yè)
數(shù)字電子技術(shù)基礎(chǔ)-第11章課件_第2頁(yè)
數(shù)字電子技術(shù)基礎(chǔ)-第11章課件_第3頁(yè)
數(shù)字電子技術(shù)基礎(chǔ)-第11章課件_第4頁(yè)
數(shù)字電子技術(shù)基礎(chǔ)-第11章課件_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

11.1數(shù)字系統(tǒng)設(shè)計(jì)簡(jiǎn)介11.1.1數(shù)字系統(tǒng)的基本結(jié)構(gòu)數(shù)字系統(tǒng)由若干個(gè)數(shù)字電路和邏輯功能部件組成,它可以實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、傳輸和加工處理等復(fù)雜的邏輯功能。數(shù)字系統(tǒng)從邏輯上可劃分為數(shù)據(jù)處理單元和控制單元兩部分,其結(jié)構(gòu)框圖如圖11.1.1所示。數(shù)據(jù)處理單元實(shí)現(xiàn)信息的存儲(chǔ)、傳輸和加工處理等功能??刂茊卧鶕?jù)外部控制信號(hào)和數(shù)據(jù)處理單元提供的當(dāng)前狀態(tài)信號(hào),發(fā)出對(duì)數(shù)據(jù)處理單元的控制序列信號(hào),在此控制序列信號(hào)的作用下,數(shù)據(jù)處理單元完成所規(guī)定的操作,并向控制單元輸出變化后的狀態(tài)信號(hào),以表示當(dāng)前的工作狀態(tài)和數(shù)據(jù)處理結(jié)果??刂茊卧邮盏綘顟B(tài)信號(hào)后,再發(fā)出下一步的控制序列信號(hào),使數(shù)據(jù)處理單元執(zhí)行新一輪的操作。 11.1數(shù)字系統(tǒng)設(shè)計(jì)簡(jiǎn)介1圖11.1.1數(shù)字系統(tǒng)的結(jié)構(gòu)框圖圖11.1.1數(shù)字系統(tǒng)的結(jié)構(gòu)框圖211.1.2數(shù)字系統(tǒng)的基本設(shè)計(jì)方法傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)多采用自底向上的方法,通常設(shè)計(jì)者選用標(biāo)準(zhǔn)的通用集成電路芯片和其他元器件,由底層逐級(jí)向上構(gòu)成子系統(tǒng)和系統(tǒng)。其設(shè)計(jì)過(guò)程是:書面設(shè)計(jì)—硬件安裝、調(diào)試—制作樣機(jī)。這樣設(shè)計(jì)的系統(tǒng)不僅所用元件的種類和數(shù)量多,功耗大,可靠性差,而且花費(fèi)時(shí)間多,修改電路和交流設(shè)計(jì)思想都很不方便。11.1.2數(shù)字系統(tǒng)的基本設(shè)計(jì)方法3EDA技術(shù)的發(fā)展和可編程邏輯器件的普及對(duì)數(shù)字系統(tǒng)硬件設(shè)計(jì)產(chǎn)生了很大的影響,它改變了傳統(tǒng)的設(shè)計(jì)思想,使人們可以利用EDA工具,通過(guò)芯片的設(shè)計(jì)來(lái)實(shí)現(xiàn)數(shù)字系統(tǒng)的功能?,F(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)多采用自頂向下的方法。它是一種從抽象到具體,從高層次到低層次,逐步由粗到細(xì)的分層次、分模塊的設(shè)計(jì)方法。設(shè)計(jì)者先將一個(gè)硬件系統(tǒng)劃分成幾個(gè)大的模塊,設(shè)計(jì)出各大模塊的行為(功能)或結(jié)構(gòu),并進(jìn)行仿真以檢驗(yàn)設(shè)計(jì)思想是否正確,然后將大的模塊分給下一級(jí)設(shè)計(jì)者。由于自頂向下的設(shè)計(jì)能夠在高層次完成,即一開始進(jìn)行功能劃分和結(jié)構(gòu)設(shè)計(jì)時(shí),就能通過(guò)仿真去檢驗(yàn)系統(tǒng)設(shè)計(jì)思想是否正確,在早期就能發(fā)現(xiàn)設(shè)計(jì)中存在的錯(cuò)誤,因而大大提高了系統(tǒng)的設(shè)計(jì)效率,縮短了設(shè)計(jì)周期。EDA技術(shù)的發(fā)展和可編程邏輯器件的普及對(duì)數(shù)字系統(tǒng)硬件設(shè)計(jì)4數(shù)字系統(tǒng)設(shè)計(jì)主要分系統(tǒng)設(shè)計(jì)和邏輯設(shè)計(jì)兩個(gè)階段。數(shù)字系統(tǒng)的一般設(shè)計(jì)過(guò)程如下:(1)確定頂層系統(tǒng)的方案。這是設(shè)計(jì)過(guò)程的第一階段,要求對(duì)設(shè)計(jì)任務(wù)進(jìn)行透徹了解,并在此基礎(chǔ)上決定設(shè)計(jì)任務(wù)和系統(tǒng)整體的功能、輸入信號(hào)及輸出信號(hào)。(2)描述系統(tǒng)功能,設(shè)計(jì)算法。數(shù)字系統(tǒng)設(shè)計(jì)主要分系統(tǒng)設(shè)計(jì)和邏輯設(shè)計(jì)兩個(gè)階段。數(shù)字系統(tǒng)的5描述系統(tǒng)功能是用符號(hào)、圖形、文字、表達(dá)式等形式來(lái)正確描述系統(tǒng)應(yīng)具有的邏輯功能和應(yīng)達(dá)到的技術(shù)指標(biāo)。設(shè)計(jì)算法是尋求一個(gè)解決問(wèn)題的步驟,實(shí)質(zhì)上是把系統(tǒng)要實(shí)現(xiàn)的復(fù)雜運(yùn)算分解成一組有序進(jìn)行的子運(yùn)算。描述算法的工具有算法流程圖、算法狀態(tài)機(jī)圖(ASM,AlgorithmicstateMachine)、方框圖、硬件描述語(yǔ)言等。在上述描述方法中,硬件描述語(yǔ)言是一種最容易向計(jì)算機(jī)輸入,由計(jì)算機(jī)自動(dòng)處理的現(xiàn)代化方法。方框圖用于描述數(shù)字系統(tǒng)的模型,是系統(tǒng)設(shè)計(jì)常用的重要手段,它可以詳細(xì)描述系統(tǒng)的總體結(jié)構(gòu),并作為進(jìn)一步設(shè)計(jì)的基礎(chǔ)。描述系統(tǒng)功能是用符號(hào)、圖形、文字、表達(dá)式等形式來(lái)正確描述6(3)根據(jù)算法選擇電路結(jié)構(gòu)。算法明確后,根據(jù)算法選擇電路結(jié)構(gòu),并將系統(tǒng)劃分為若干個(gè)子系統(tǒng)。若某部分規(guī)模仍然較大,則可進(jìn)一步劃分。劃分后的多個(gè)部分應(yīng)邏輯功能清楚,便于進(jìn)行電路設(shè)計(jì)。(4)設(shè)計(jì)輸入。描述系統(tǒng)功能的輸入方式有多種,常用的有原理圖輸入法、硬件描述語(yǔ)言輸入法、波形圖輸入法等??梢圆捎闷渲幸环N方法輸入,也可以多種方法混合使用。(5)設(shè)計(jì)驗(yàn)證(仿真、測(cè)試)和設(shè)計(jì)實(shí)現(xiàn)。(3)根據(jù)算法選擇電路結(jié)構(gòu)。7

11.2數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例

11.2.1簡(jiǎn)易電子琴1.系統(tǒng)原理框圖揚(yáng)聲器在不同頻率的信號(hào)驅(qū)動(dòng)下將發(fā)出不同的聲音。本設(shè)計(jì)是利用實(shí)驗(yàn)板上的8個(gè)按鍵產(chǎn)生不同的音階信號(hào),按鍵不同時(shí),不同的音階信號(hào)產(chǎn)生不同頻率的信號(hào)去驅(qū)動(dòng)揚(yáng)聲器,從而實(shí)現(xiàn)電子琴的功能。根據(jù)音樂(lè)學(xué)理論,每?jī)蓚€(gè)8度音之間可分為12個(gè)半音,每?jī)蓚€(gè)半音之間的頻率相差(=1.0599Hz)。若C調(diào)第一個(gè)音名do的頻率定為261.63Hz,則各音名與頻率以及2MHz時(shí)鐘的分頻系數(shù)的關(guān)系如表11.2.1所示。 11.2數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例8表11.2.1音名與頻率以及2MHz時(shí)鐘的分頻系數(shù)的關(guān)系表11.2.1音名與頻率以及2MHz時(shí)鐘的分頻系數(shù)的關(guān)系9

簡(jiǎn)易電子琴的系統(tǒng)框圖如圖11.2.1所示,它由鍵盤編碼器和時(shí)鐘分頻器組成。鍵盤編碼器產(chǎn)生按鍵編碼信號(hào);時(shí)鐘分頻器產(chǎn)生不同的分頻系數(shù),將輸入時(shí)鐘頻率分頻至各音名對(duì)應(yīng)的頻率值,從而驅(qū)動(dòng)揚(yáng)聲器發(fā)出該頻率的聲音。簡(jiǎn)易電子琴的系統(tǒng)框圖如圖11.2.1所示,它由鍵盤編碼器10圖11.2.1電子琴系統(tǒng)框圖圖11.2.1電子琴系統(tǒng)框圖11圖11.2.2電子琴頂層原理圖圖11.2.2電子琴頂層原理圖12圖11.2.2為實(shí)現(xiàn)簡(jiǎn)易電子琴的頂層原理圖。其中,KEYBOARD模塊實(shí)現(xiàn)對(duì)鍵盤的8-3編碼,K[7..0]為鍵盤輸入,SEL[2..0]為3位二進(jìn)制編碼輸出,EN為使能輸出信號(hào)(高電平有效);M—FREQ模塊實(shí)現(xiàn)分頻功能,CLK為時(shí)鐘輸入,當(dāng)SEL[2..0]編碼輸入不同,且EN輸入為高電平時(shí),分頻器產(chǎn)生不同的頻率值,當(dāng)SPK輸出為1時(shí)揚(yáng)聲器響,否則靜音。圖11.2.2為實(shí)現(xiàn)簡(jiǎn)易電子琴的頂層原理圖。其中,KEY132.模塊設(shè)計(jì)1)鍵盤編碼器VHDL描述文件keyboard.vhd如下:libraryieee;useieee.std—logic—1164.all;useieee.std—logic—unsigned.all;entitykeyboardisport( k:instd—logic—vector(7downto0); 8位鍵盤輸入 sel:outstd—logic—vector(2downto0); 3位鍵盤編碼輸出 en:outstd—logic 使能輸出);2.模塊設(shè)計(jì)14endkeyboard;architecturearc—keyboardofkeyboardisbeginprocess(k)begincasekiswhen″11111110″=>sel<=″001″; 按鍵,產(chǎn)生編碼 en<=′1′;

when″11111101″=>sel<=″010″;

en<=′1′;

when″11111011″=>sel<=″011″;

en<=′1′;

when″11110111″=>sel<=″100″;

en<=′1′;

endkeyboard;15

when″11101111″=>sel<=″101″;

en<=′1′;

when″11011111″=>sel<=″110″;

en<=′1′;

when″10111111″=>sel<=″111″;

en<=′1′;

when″01111111″=>sel<=″000″;

en<=′1′;whenothers=>sel<=″000″; en<=′0′;endcase;endprocess;endarc—keyboard;when″11101111″=>sel<=″101162)時(shí)鐘分頻器VHDL描述文件m—freq.vhd如下:libraryieee;useieee.std—logic—1164.all;useieee.std—logic—unsigned.all;entitym—freqisport(clk,en:instd—logic;sel:instd—logic—vector(2downto0);3位鍵盤編碼輸入spk:outstd—logic揚(yáng)聲器控制信號(hào)輸出);endm—freq;2)時(shí)鐘分頻器17architecturearc—m—freqofm—freqissignalcount—ld,count:std—logic—vector(12downto0);beginprocess(sel)begincaseseliswhen″000″=>count—ld<=″0111011101110″;3822when″001″=>count—ld<=″1110111011011″;7643when″010″=>count—ld<=″1101001010101″;6809when″011″=>count—ld<=″1011110110010″;6066when″100″=>count—ld<=″1011001011101″;5725when″101″=>count—ld<=″1001111101101″;5101when″110″=>count—ld<=″1000111000000″;4544architecturearc—m—freqofm—f18when″111″=>count—ld<=″0111111010000″;4048whenothers=>count—ld<=″0111011101110″;3822endcase;endprocess;

processbeginwaituntilclk′eventandclk=′1′;--計(jì)數(shù)器同步清零ifen=′0′thencount<=(others=>′0′);spk<=′1′;when″111″=>count—ld<=″011119當(dāng)計(jì)數(shù)值小于count—ld/2時(shí),spk=′1′,且加1計(jì)數(shù)elsifcount<(′0′&count—ld(12downto1))thencount<=count+1;spk<=′1′;當(dāng)計(jì)數(shù)值大于count—ld/2且小于count—ld時(shí),spk=′0′,且加1計(jì)數(shù)elsifcount<count—ldthencount<=count+1;spk<=′0′;--當(dāng)計(jì)數(shù)值計(jì)到count—ld時(shí),計(jì)數(shù)器清零,spk=′1′

elsecount<=(others=>′0′);spk<=′1′;endif;endprocess;endarc—m—freq;當(dāng)計(jì)數(shù)值小于count—ld/2時(shí),spk=′1′,2011.2.2用狀態(tài)機(jī)設(shè)計(jì)的交通信號(hào)控制系統(tǒng)1.設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)十字路口交通控制系統(tǒng),要求如下:(1)東西(用A表示)、南北(用B表示)方向均有綠燈、黃燈、紅燈指示,其持續(xù)時(shí)間分別是40秒、5秒和45秒,交通燈運(yùn)行的切換示意圖和時(shí)序圖分別如圖11.2.3和圖11.2.4所示。11.2.2用狀態(tài)機(jī)設(shè)計(jì)的交通信號(hào)控制系統(tǒng)21圖11.2.3交通控制系統(tǒng)運(yùn)行切換示意圖圖11.2.3交通控制系統(tǒng)運(yùn)行切換示意圖22圖11.2.4交通控制系統(tǒng)的時(shí)序圖圖11.2.4交通控制系統(tǒng)的時(shí)序圖23(2)系統(tǒng)設(shè)有時(shí)鐘,以倒計(jì)時(shí)方式顯示每一路允許通行的時(shí)間。(3)當(dāng)東西或南北兩路中任一路出現(xiàn)特殊情況時(shí),系統(tǒng)可由交警手動(dòng)控制立即進(jìn)入特殊運(yùn)行狀態(tài),即紅燈全亮,時(shí)鐘停止計(jì)時(shí),東西、南北兩路所有車輛停止通行;當(dāng)特殊運(yùn)行狀態(tài)結(jié)束后,系統(tǒng)恢復(fù)工作,繼續(xù)正常運(yùn)行。(2)系統(tǒng)設(shè)有時(shí)鐘,以倒計(jì)時(shí)方式顯示每一路允許通行的時(shí)間242.原理分析本系統(tǒng)主要由分頻器、計(jì)數(shù)器、控制器、倒計(jì)時(shí)顯示器等電路組成。分頻器將晶振送來(lái)的4MHz信號(hào)變?yōu)?Hz時(shí)鐘信號(hào);計(jì)數(shù)器實(shí)現(xiàn)總共90秒的計(jì)數(shù),90秒也是交通控制系統(tǒng)的一個(gè)大循環(huán);控制器控制系統(tǒng)的狀態(tài)轉(zhuǎn)移和紅、黃、綠燈的信號(hào)輸出;倒計(jì)時(shí)顯示電路實(shí)現(xiàn)45秒倒計(jì)時(shí)和顯示功能。整個(gè)系統(tǒng)的工作時(shí)序受控制器控制,它是系統(tǒng)的核心??刂破鞯恼麄€(gè)工作過(guò)程用狀態(tài)機(jī)進(jìn)行描述,其狀態(tài)轉(zhuǎn)移關(guān)系如圖11.2.5所示。5種狀態(tài)描述如下:2.原理分析25s0:A方向綠燈亮,B方向紅燈亮,此狀態(tài)持續(xù)40秒的時(shí)間;s1:A方向黃燈亮,B方向紅燈亮,此狀態(tài)持續(xù)5秒的時(shí)間;s2:A方向紅燈亮,B方向綠燈亮,此狀態(tài)持續(xù)40秒的時(shí)間;s3:A方向紅燈亮,B方向黃燈亮,此狀態(tài)持續(xù)5秒的時(shí)間;s4:緊急制動(dòng)狀態(tài),A方向紅燈亮,B方向紅燈亮,當(dāng)緊急制動(dòng)信號(hào)有效(hold=′0′)時(shí)進(jìn)入這種狀態(tài)。s0:A方向綠燈亮,B方向紅燈亮,此狀態(tài)持續(xù)40秒的時(shí)間26圖11.2.5交通控制系統(tǒng)的狀態(tài)轉(zhuǎn)移圖圖11.2.5交通控制系統(tǒng)的狀態(tài)轉(zhuǎn)移圖27當(dāng)緊急制動(dòng)信號(hào)無(wú)效(hold=′1′)時(shí),狀態(tài)機(jī)按照s0-s1-s2-s3-s0循環(huán);當(dāng)緊急制動(dòng)信號(hào)有效(hold=′0′)時(shí),狀態(tài)機(jī)立即轉(zhuǎn)入s4,兩個(gè)方向紅燈全亮,計(jì)數(shù)器停止計(jì)數(shù);當(dāng)緊急制動(dòng)信號(hào)再恢復(fù)無(wú)效時(shí),狀態(tài)機(jī)會(huì)回到原來(lái)的狀態(tài)繼續(xù)執(zhí)行。當(dāng)緊急制動(dòng)信號(hào)無(wú)效(hold=′1′)時(shí),狀態(tài)機(jī)按照s0283.電路設(shè)計(jì)交通控制系統(tǒng)頂層原理圖如圖11.2.6所示,它主要由4MHz分頻器(DEVIDE4M)模塊、控制器(CONTROL)、45秒倒計(jì)時(shí)計(jì)數(shù)器(M45)模塊、7字段譯碼器(SEG7)模塊組成。4MHz分頻器和7段譯碼器的設(shè)計(jì)可參照例10.6.14和例10.6.4,下面主要介紹控制器和倒計(jì)時(shí)計(jì)數(shù)器M45的設(shè)計(jì)方法。3.電路設(shè)計(jì)29圖11.2.6交通控制系統(tǒng)頂層原理圖圖11.2.6交通控制系統(tǒng)頂層原理圖301)控制器的設(shè)計(jì)控制器CONTROL的邏輯符號(hào)如圖11.2.7所示。其中,CLK為時(shí)鐘輸入信號(hào);HOLD為緊急制動(dòng)信號(hào);ARED、AGREEN、AYELLOW分別為東西方向驅(qū)動(dòng)紅燈、綠燈、黃燈指示的輸出信號(hào);BRED、BGREEN、BYELLOW分別為南北方向驅(qū)動(dòng)紅燈、綠燈、黃燈指示的輸出信號(hào)??刂破靼凑?qǐng)D11.2.5所示的狀態(tài)轉(zhuǎn)移圖控制系統(tǒng)的時(shí)序,即各方向紅、綠、黃燈的亮、滅時(shí)間。1)控制器的設(shè)計(jì)31圖11.2.7控制器的邏輯符號(hào)圖11.2.7控制器的邏輯符號(hào)32控制器的VHDL描述文件control.vhd如下:libraryieee;useieee.std—logic—1164.all;useieee.std—logic—unsigned.all;

entitycontrolisport(clk,hold:instd—logic;ared,agreen,ayellow,bred,bgreen,byellow:outstd—logic);endcontrol;

architecturebehaviorofcontrolistypestate—typeis(s0,s1,s2,s3,s4);signalcurrent—state,next—state:state—type;signalcounter:std—logic—vector(6downto0);控制器的VHDL描述文件control.vhd如下:33beginsynch:processbeginwaituntilclk′eventandclk=′1′;ifhold=′0′then當(dāng)緊急制動(dòng)信號(hào)有效時(shí),計(jì)數(shù)器停止計(jì)數(shù)counter<=counter;else當(dāng)緊急制動(dòng)信號(hào)無(wú)效時(shí),計(jì)數(shù)器進(jìn)行周期為90s的計(jì)數(shù)ifcounter<89thencounter<=counter+1;elsecounter<=(others=>′0′);endif;endif;endprocess;begin34process狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移描述beginwaituntilclk′eventandclk=′1′;current—state<=next—state;endprocess;

state—trans:process(current—state)begincasecurrent—stateiswhens0=>ifhold=′0′then next—state<=s4;elseifcounter<39thennext—state<=s0;process狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移描述35elsenext—state<=s1;endif;endif;whens1=>ifhold=′0′thennext—state<=s4;elseifcounter<44thennext—state<=s1;elsenext—state<=s2;endif;endif;whens2=>else36ifhold=′0′then next—state<=s4;elseifcounter<84thennext—state<=s2;elsenext—state<=s3;endif;endif;whens3=>ifhold=′0′then next—state<=s4;elseifcounter<89thennext—state<=s3;elseifhold=′0′then37next—state<=s0;endif;endif;whens4=>ifhold=′0′then next—state<=s4;elseifcounter<39thennext—state<=s0;elsifcounter<44thennext—state<=s1;elsifcounter<84thennext—state<=s2;elsifcounter<89thennext—state<=s3;next—state<=s0;38endif;endif;endcase;endprocess;

output:process(current—state)每種狀態(tài)下兩個(gè)路口紅綠燈的狀態(tài)描述begincasecurrent—stateiswhens0=>ared<=′0′;agreen<=′1′;ayellow<=′0′;bred<=′1′;bgreen<=′0′;byellow<=′0′;endif;39whens1=>ared<=′0′;agreen<=′0′;ayellow<=′1′;bred<=′1′;bgreen<=′0′;byellow<=′0′;whens2=>ared<=′1′;agreen<=′0′;ayellow<=′0′;bred<=′0′;bgreen<=′1′;byellow<=′0′;whens3=> ared<=′1′;whens1=>40agreen<=′0′;ayellow<=′0′;bred<=′0′;bgreen<=′0′;byellow<=′1′;whens4=>ared<=′1′;agreen<=′0′;ayellow<=′0′;bred<=′1′;bgreen<=′0′;byellow<=′0′;endcase;endprocess;endbehavior;agreen<=′0′;41圖11.2.8控制器的仿真波形圖11.2.8控制器的仿真波形422)倒計(jì)時(shí)計(jì)數(shù)器M45的設(shè)計(jì)倒計(jì)時(shí)計(jì)數(shù)器M45的邏輯符號(hào)如圖11.2.9所示。其中,CLK、EN、CR分別為時(shí)鐘、計(jì)數(shù)使能和清零端,QL[3..0]、QH[3..0]、OC分別為BCD碼的個(gè)位、十位和進(jìn)位輸出。圖11.2.9倒計(jì)時(shí)計(jì)數(shù)器的邏輯符號(hào)2)倒計(jì)時(shí)計(jì)數(shù)器M45的設(shè)計(jì)圖11.2.9倒計(jì)時(shí)計(jì)數(shù)43VHDL描述文件m45.vhd如下:libraryieee;useieee.std—logic—1164.all;useieee.std—logic—unsigned.all;entitym45isport(CLK:instd—logic;EN:instd—logic;CR:instd—logic;QL,QH:outstd—logic—vector(3downto0);OC:outstd—logic);endm45;VHDL描述文件m45.vhd如下:44architecturebehavofm45issignalcouL,couH:std—logic—vector(3downto0);begin

process(CR,CLK,EN)beginifCR=′0′then異步清零couL<=″0000″;couH<=″0000″;

elsifclk′eventandclk=′1′thenifEN=′1′thenif(couL=0andcouH=0)then減法計(jì)到00后,重新置數(shù)44 couL<=″0100″; couH<=″0100″;elsifcouL=0then否則個(gè)位計(jì)到0時(shí)置為9,十位減1architecturebehavofm45is45 couL<=″1001″; couH<=couH-1;elsecouL<=couL-1;否則個(gè)位減1endif;endif;endif;endprocess;

process(couL,couH)beginif(couL=0andcouH=0)thenOC<=′1′;減到00時(shí)有借位輸出elseOC<=′0′;endif;endprocess;QL<=couL;QH<=couH;

endbehav;

couL<=″1001″;46圖11.2.10倒計(jì)時(shí)計(jì)數(shù)器M45的仿真波形圖11.2.10倒計(jì)時(shí)計(jì)數(shù)器M45的仿真波形4711.2.3函數(shù)信號(hào)發(fā)生器1.系統(tǒng)原理框圖函數(shù)信號(hào)發(fā)生器電路能夠產(chǎn)生用戶需要的特定波形信號(hào),其基本構(gòu)成為數(shù)字邏輯電路加D/A轉(zhuǎn)換器。本節(jié)描述的函數(shù)信號(hào)發(fā)生器可產(chǎn)生4種波形,分別是:鋸齒波、三角波、方波和正弦波,通過(guò)選擇器選擇以后送給D/A轉(zhuǎn)換器產(chǎn)生相應(yīng)的信號(hào)波形輸出,具體如圖11.2.11所示。其中,用虛線框起來(lái)的部分屬于數(shù)字電路部分。11.2.3函數(shù)信號(hào)發(fā)生器48圖11.2.11函數(shù)信號(hào)發(fā)生器的電路框圖圖11.2.11函數(shù)信號(hào)發(fā)生器的電路框圖49各種波形示意圖如圖11.2.12所示。鋸齒波、三角波和方波每個(gè)周期有256點(diǎn)數(shù)據(jù),而正弦波為了簡(jiǎn)化設(shè)計(jì)每個(gè)周期有64點(diǎn)數(shù)據(jù)。數(shù)據(jù)線采用8位寬度,因此每種波形幅度的最大值不超過(guò)255。各種波形示意圖如圖11.2.12所示。鋸齒波、三角波和方50圖11.2.12信號(hào)波形示意圖圖11.2.12信號(hào)波形示意圖51每種波形第i個(gè)點(diǎn)的幅度值計(jì)算如下:鋸齒波:q—sawtooth(i)=i,i=0~255。三角波:當(dāng)i=0~127時(shí),q—triangle(i)=i;當(dāng)i=128~255時(shí),與前面的半個(gè)周期對(duì)稱。方波:當(dāng)i=0~127時(shí),q—square(i)=255;當(dāng)i=128~255時(shí),q—square(i)=0。正弦波:q—sin(i)=128+128×sin(2×3.14×i/64),i=0~63。四種波形數(shù)據(jù)產(chǎn)生以后,由sel[1..0]選擇輸出哪種波形數(shù)據(jù)。每種波形第i個(gè)點(diǎn)的幅度值計(jì)算如下:522.模塊設(shè)計(jì)函數(shù)信號(hào)發(fā)生器電路數(shù)字部分的硬件語(yǔ)言描述如下:libraryieee;useieee.std—logic—1164.all;useieee.std—logic—unsigned.all;useieee.std—logic—arith.all;

entitywaveformisport(clk:instd—logic; sel:instd—logic—vector(1downto0); qout:outstd—logic—vector(7downto0));endwaveform;2.模塊設(shè)計(jì)53architecturearcofwaveformissignalq—sawtooth:std—logic—vector(7downto0);鋸齒波信號(hào)signalq—triangle:std—logic—vector(7downto0);三角波信號(hào)signalq—square:std—logic—vector(7downto0);方波信號(hào)signalq—sin:integerrange0to255;正弦波信號(hào)signalcounter:std—logic—vector(7downto0);

begin計(jì)數(shù)器,同時(shí)也是鋸齒波波形產(chǎn)生電路processbeginarchitecturearcofwaveformis54waituntilclk′eventandclk=′1′;counter<=counter+1;endprocess;q—sawtooth<=counter;

三角波波形產(chǎn)生電路processbeginwaituntilclk′eventandclk=′1′;covn—std—logic—vector(127,8), 將interger類型的數(shù)據(jù)127轉(zhuǎn)換成std—logic—vector類型的8位數(shù)據(jù)ifcounter<=conv—std—logic—vector(127,8)thenwaituntilclk′eventandc55q—triangle<=q—triangle+1;elseq—triangle<=q—triangle-1;endif;endprocess;

-方波波形產(chǎn)生電路processbeginwaituntilclk′eventandclk=′1′;ifcounter<=conv—std—logic—vector(127,8)thenq—square<=X″FF″;elseq—square<=(others=>′0′);endif;endprocess;q—triangle<=q—triangle+1;56sin波形發(fā)生電路將一個(gè)周期的正弦波(共64點(diǎn))的幅度值直接送給信號(hào)q—sinprocessbeginwaituntilclk′eventandclk=′1′;conv—integer(counter(7downto2))將std—logic—vector類型的數(shù)據(jù)counter(7downto2)轉(zhuǎn)換成interger類型的數(shù)據(jù)caseconv—integer(counter(7downto2))iswhen0=>q—sin<=128;when1=>q—sin<=140;when2=>q—sin<=152;when3=>q—sin<=165;when4=>q—sin<=176;when5=>q—sin<=188;when6=>q—sin<=199;when7=>q—sin<=209;when8=>q—sin<=218;when9=>q—sin<=226;when10=>q—sin<=234;when11=>q—sin<=240;sin波形發(fā)生電路57數(shù)字電子技術(shù)基礎(chǔ)-第11章課件58數(shù)字電子技術(shù)基礎(chǔ)-第11章課件59在上面的硬件語(yǔ)言描述中使用了一個(gè)函數(shù)conv—std—logic—vector(a,b),其作用是將interger類型的數(shù)據(jù)轉(zhuǎn)換成std—logic—vector類型的數(shù)據(jù)。其中,參數(shù)a表示要轉(zhuǎn)換的整形數(shù),參數(shù)b表示生成的std—logic—vector數(shù)據(jù)的位數(shù)。該函數(shù)屬于std—logic—arith庫(kù),所以在最前面庫(kù)的包含里必須有useieee.std—logic—arith,否則仿真工具或綜合工具都會(huì)提示出錯(cuò)。在上面的硬件語(yǔ)言描述中使用了一個(gè)函數(shù)conv—std—l6011.2.4基于DDS的正弦信號(hào)發(fā)生器1.直接數(shù)字頻率合成器原理簡(jiǎn)介直接數(shù)字頻率合成器(DDS,DirectDigitalSynthesizer)是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)。一個(gè)數(shù)字頻率合成器由相位累加器、加法器、波形存儲(chǔ)ROM、D/A轉(zhuǎn)換器和低通濾波器(LPF)構(gòu)成。DDS的原理框圖如圖11.2.13所示。11.2.4基于DDS的正弦信號(hào)發(fā)生器61圖11.2.13DDS的原理框圖圖11.2.13DDS的原理框圖62圖中,K為頻率控制字,P為相位控制字,相位累加器的字長(zhǎng)為N位,ROM及D/A轉(zhuǎn)換器的位寬為D位。相位累加器在時(shí)鐘fc的控制下以步長(zhǎng)K進(jìn)行累加,輸出的N位二進(jìn)制碼與相位控制字P相加后作為存儲(chǔ)波形的ROM的地址對(duì)ROM進(jìn)行尋址。ROM輸出D位的幅度碼S(n),經(jīng)D/A轉(zhuǎn)換后變成模擬信號(hào)S(t),再經(jīng)過(guò)低通濾波器平滑后就可以得到合成的信號(hào)波形。波形形狀取決于ROM中存放的數(shù)據(jù),因此DDS可以產(chǎn)生任意波形。下面我們以正弦波為例介紹DDS的波形產(chǎn)生原理。圖中,K為頻率控制字,P為相位控制字,相位累加器的字長(zhǎng)為631)頻率設(shè)置K稱為頻率控制字,也叫相位增量。輸出信號(hào)的頻率與時(shí)鐘頻率之間的關(guān)系為其中,f0為輸出信號(hào)的頻率,fc為時(shí)鐘頻率,N為相位累加器的位數(shù)。當(dāng)K=1時(shí),DDS輸出最低頻率(即頻率分辨率)為fc/2N,因此當(dāng)N值很大時(shí),可以得到很小的頻率間隔。要改變DDS的輸出頻率,只要改變頻率控制字K即可。1)頻率設(shè)置其中,f0為輸出信號(hào)的頻率,fc為時(shí)鐘642)累加器相位累加器由內(nèi)部N位加法器和N位寄存器組成。每來(lái)一個(gè)時(shí)鐘作用沿,加法器將頻率控制字K與寄存器輸出的數(shù)據(jù)相加,再把相加的結(jié)果送至寄存器輸入端。下一個(gè)時(shí)鐘來(lái)到后,寄存器將其輸出數(shù)據(jù)又送至加法器輸入端繼續(xù)與頻率控制字相加,從而完成在時(shí)鐘作用下的相位累加。因此每來(lái)一個(gè)時(shí)鐘,相位累加器的輸出就增加一個(gè)步長(zhǎng)的相位增量,當(dāng)相位累加到滿量程時(shí)便產(chǎn)生一次溢出,完成一個(gè)周期的動(dòng)作。2)累加器653)相位調(diào)節(jié)器相位調(diào)節(jié)器將相位累加器的輸出數(shù)據(jù)和相位控制字P相加,實(shí)現(xiàn)信號(hào)的相位調(diào)節(jié)。改變相位控制字P可控制輸入信號(hào)的相位參數(shù)。如果相位調(diào)節(jié)器的字長(zhǎng)為N,則當(dāng)相位控制字由0變?yōu)镻時(shí),輸出信號(hào)的相位增加2πP/2N。4)波形存儲(chǔ)器用相位調(diào)節(jié)器輸出的數(shù)據(jù)作為波形存儲(chǔ)器的取樣地址,進(jìn)行波形數(shù)據(jù)的尋址,即可確定輸出波形的取樣幅度。N位的ROM相當(dāng)于把0°~360°的正弦信號(hào)離散成具有2N個(gè)樣點(diǎn)的序列。若ROM的數(shù)據(jù)位寬為D,則2N個(gè)樣點(diǎn)的幅值以D位二進(jìn)制數(shù)值存在ROM中,按照地址的不同可以輸出相應(yīng)相位的正弦信號(hào)的幅值。3)相位調(diào)節(jié)器665)D/A轉(zhuǎn)換器D/A轉(zhuǎn)換器的作用是把合成的正弦波數(shù)字量轉(zhuǎn)換成模擬量。轉(zhuǎn)換之后輸出波形變成了包絡(luò)為正弦波的階梯波S(t)。D/A轉(zhuǎn)換器的分辨率越高,合成的正弦波臺(tái)階數(shù)就越多,輸出的波形精度也就越高。5)D/A轉(zhuǎn)換器676)低通濾波器對(duì)D/A輸出的階梯波S(t)進(jìn)行

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論