課程設(shè)計(jì)基于EDA的音樂播放器的設(shè)計(jì)_第1頁
課程設(shè)計(jì)基于EDA的音樂播放器的設(shè)計(jì)_第2頁
課程設(shè)計(jì)基于EDA的音樂播放器的設(shè)計(jì)_第3頁
課程設(shè)計(jì)基于EDA的音樂播放器的設(shè)計(jì)_第4頁
課程設(shè)計(jì)基于EDA的音樂播放器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目 錄1 引言.11.1 關(guān)于 eda 技術(shù).11.2 關(guān)于 vhdl .21.3eda 工具.21.4 有關(guān)于本次課程設(shè)計(jì) .22 設(shè)計(jì)實(shí)現(xiàn).32.1 準(zhǔn)備知識 .32.2 樂曲演奏電路的結(jié)構(gòu)示意 .42.3 樂曲演奏電路的子結(jié)構(gòu) .42.3.1 音調(diào)發(fā)生器模塊.42.3.2 手動自動選擇模塊.62.3.3 音調(diào)編碼器模塊.82.3.4 數(shù)控分頻器模塊.92.4 頂層文件 .112.4.1 頂層音樂演奏器源程序.112.4.2 頂層音樂演奏器原理圖.132.4.3 頂層程序仿真波形圖.133 結(jié)論.14謝辭.15參考文獻(xiàn).16附錄模式 5 電路圖.17附錄引腳鎖定表.181 引言1.1 關(guān)于

2、 eda 技術(shù)隨著科學(xué)技術(shù)的進(jìn)步,電子器件和電子系統(tǒng)設(shè)計(jì)方法日新月異,電子設(shè)計(jì)自動化(electronics design automation,eda)技術(shù)正是適應(yīng)了現(xiàn)代電子產(chǎn)品設(shè)計(jì)的要求,吸收了多學(xué)科最新成果而形成的一門新技術(shù)。現(xiàn)如今掌握 eda 技術(shù)是電子信息類專業(yè)的學(xué)生、工程技術(shù)人員所必備的基本能力和技能。傳統(tǒng)電子電路的設(shè)計(jì),首先要對系統(tǒng)進(jìn)行分析,然后按功能對系統(tǒng)進(jìn)行劃分,接下來就要選擇特定芯片,焊接成 pcb 電路板,最后對成品 pcb 電路板進(jìn)行調(diào)試。這樣的設(shè)計(jì)沒有靈活性可言,搭成的系統(tǒng)需要的芯片種類多且數(shù)目大,而且對于電路圖的設(shè)計(jì)和電路板的設(shè)計(jì)都需要很大的工作量,工作難度也很高。

3、然而,隨著可編程器件和 eda 技術(shù)的發(fā)展,傳統(tǒng)設(shè)計(jì)的劣勢被克服,采用可編程邏輯器件基于芯片的設(shè)計(jì)方法,期間的內(nèi)部邏輯和引腳可以由設(shè)計(jì)者自行決定,大大提高了設(shè)計(jì)的靈活性,提高了工作效率;同時,將系統(tǒng)集成在一個芯片上的設(shè)計(jì),使系統(tǒng)具有體積小、功耗低、可靠性高等特點(diǎn)。eda 技術(shù)的發(fā)展大致經(jīng)歷了三個階段:20 世紀(jì) 70 年代的 cad(計(jì)算機(jī)輔助設(shè)計(jì))階段、20 世紀(jì) 80 年代的 cae(計(jì)算機(jī)輔助工程)階段、20 世紀(jì) 90 年代后的 eda(電子設(shè)計(jì)自動化)階段。以下主要介紹第三個階段。eda 技術(shù)即電子設(shè)計(jì)自動化技術(shù),它是以可編程邏輯器件(pld)為載體,以硬件描述語言(hdl)為主要的

4、描述方式,以 eda 軟件為主要的開發(fā)軟件的電子設(shè)計(jì)過程。它主要采用“自頂向下”的設(shè)計(jì)方法,設(shè)計(jì)流程主要包括:設(shè)計(jì)輸入、綜合、仿真、適配、下載。eda 技術(shù)主要有以下特征:(1)高層綜合的理論和方法取得進(jìn)展,從而將 eda 設(shè)計(jì)層次由 rt 級提高到了系統(tǒng)級,并推出了相應(yīng)的系統(tǒng)級綜合優(yōu)化工具,大大縮短了復(fù)雜 asic 的設(shè)計(jì)周期。(2)采用硬件描述語言來描述 10 萬門以上的設(shè)計(jì),并形成了 vhdl 和 verilog-hdl 兩種標(biāo)準(zhǔn)硬件描述語言。(3)采用平面規(guī)劃技術(shù)對邏輯綜合和物理版圖設(shè)計(jì)聯(lián)合管理,做到在邏輯設(shè)計(jì)綜合早期階段就考慮到物理設(shè)計(jì)信息的影響。(4)可測性綜合設(shè)計(jì)。(5)為帶有嵌

5、入式 ip 核的 asic 設(shè)計(jì)提供軟、硬件協(xié)同設(shè)計(jì)工具。(6)建立并行設(shè)計(jì)工具框架結(jié)構(gòu)的集成化設(shè)計(jì)環(huán)境,以適應(yīng)當(dāng)今 asic 規(guī)模大而復(fù)雜、數(shù)字與模擬電路并存、硬件與軟件設(shè)計(jì)并存、產(chǎn)品上市速度快等特點(diǎn)??偠灾琫da 技術(shù)的出現(xiàn),給電子信息產(chǎn)業(yè)帶來了革命性的變革。1.2 關(guān)于 vhdlvhdl 是一種硬件描述語言,它可以對電子電路和系統(tǒng)的行為進(jìn)行描述,基于這種描述,結(jié)合相關(guān)的軟件工具,可以得到所期望的實(shí)際電路與系統(tǒng)。使用 vhdl 語言描述的電路,可以進(jìn)行綜合和仿真。然而,值得注意的是,盡管所有 vhdl 代碼都是可仿真的,但并不是所有代碼都能綜合。vhdl 被廣泛使用的基本原因在于它是一

6、種標(biāo)準(zhǔn)語言,是與工具和工藝無關(guān)的,從而可以方便地進(jìn)行移植和重用。vhdl 兩個最直接的應(yīng)用領(lǐng)域是可編程邏輯器件(pld)和專用集成電路(asic),其中可編程邏輯器件包括復(fù)雜可編程邏輯器件(cpld)和現(xiàn)場可編程門陣列(fpga)。關(guān)于 vhdl 最后要說明的是:與常規(guī)的順序執(zhí)行的計(jì)算機(jī)程序不同,vhdl從根本上講是并發(fā)執(zhí)行的。在 vhdl 中,只有在進(jìn)程(process)、函數(shù)(function)和過程(procedure)內(nèi)部的語句才是順序執(zhí)行的。1.3eda 工具目前有多種 eda 工具支持采用 vhdl 進(jìn)行電路綜合、仿真以及實(shí)現(xiàn)。比較常見的是 altera 公司的 quartus開發(fā)

7、平臺和 xilinx 公司的 ise 開發(fā)平臺。這些平臺中使用的綜合工具和仿真工具通常由專業(yè)的 eda 廠商提供。本次設(shè)計(jì)中所使用的平臺正是 quartus7.2,它是 altera 公司提供的一套集成了編譯、布局布線和仿真工具在內(nèi)的綜合開發(fā)環(huán)境。它能完成從代碼輸入到編譯到仿真再到物理實(shí)現(xiàn)的全部設(shè)計(jì)流程。1.4 有關(guān)于本次課程設(shè)計(jì)本次課程設(shè)計(jì)要求使用 eda 工具,設(shè)計(jì)實(shí)現(xiàn)簡易音樂演奏器,理解音名與頻率的關(guān)系及數(shù)控分頻原理,經(jīng)過對整體進(jìn)行模塊化分析、編程、綜合、仿真及最終下載,完整實(shí)現(xiàn)簡易音樂器的播放功能。我們知道,與利用單片機(jī)來實(shí)現(xiàn)樂曲演奏相比,以純硬件完成樂曲演奏電路的邏輯要復(fù)雜得多,如果

8、不借助于功能強(qiáng)大的 eda 工具與硬件描述語言,僅憑傳統(tǒng)的數(shù)字邏輯技術(shù),即使最簡單的演奏電路也難以實(shí)現(xiàn)。在后面的章節(jié)中會詳細(xì)介紹利用 eda 技術(shù)實(shí)現(xiàn)簡易音樂演奏器的過程。2 設(shè)計(jì)實(shí)現(xiàn)2.1 準(zhǔn)備知識在本次設(shè)計(jì)中采用了鈴聲祝你生日快樂作為要播放的樂曲,它的旋律如下: 5 5 |6 5 1|7 5 5|6 5 2|1 5 5|5 3 1|7 6 |0 0 4 4|3 1 2|1 根據(jù)聲樂知識,組成樂曲的每個音符的發(fā)音頻率值及其持續(xù)的時間是樂曲能連續(xù)演奏所需的兩個基本要素,獲取這兩個要素所對應(yīng)的數(shù)值以及通過純硬件的手段來利用這些數(shù)值實(shí)現(xiàn)所希望樂曲的演奏效果是本實(shí)驗(yàn)的關(guān)鍵。表 2-1 為簡譜中音名與

9、頻率的對應(yīng)關(guān)系。表 2-1 簡譜音名與頻率的關(guān)系音名頻率(hz)音名頻率(hz)中音 1523高音 11047中音 2587高音 21175中音 3659高音 31382中音 4698高音 41397中音 5784高音 51568中音 6880高音 61760中音 7988高音 71976頻率點(diǎn)及音符與音譜對應(yīng)定義如表 2-2 所示。表 2-2 音符語音譜定義音符對應(yīng)頻率點(diǎn)對應(yīng)音譜區(qū)別高中低音020470011091112119521312883141331415140951614796171541718156912916212210166832111689421217285213176362

10、141794722.2 樂曲演奏電路的結(jié)構(gòu)示意本設(shè)計(jì)由四個模塊組成,如圖 2-3 所示。圖 2-3 樂曲演奏電路的結(jié)構(gòu)示意2.3 樂曲演奏電路的子結(jié)構(gòu)頂層結(jié)構(gòu)所包含的模塊分別有音調(diào)發(fā)生器(ydfsq)模塊、手動自動選擇(bmux)模塊、音調(diào)編碼器(ydbmq)模塊及數(shù)控分頻器(skfpq)模塊。以下便是對各個子模塊的分析。2.3.1 音調(diào)發(fā)生器模塊1.音調(diào)發(fā)生器模塊的功能在此模塊中設(shè)置了一個 8 位二進(jìn)制計(jì)數(shù)器(計(jì)數(shù)最大值為 107) ,這個計(jì)數(shù)器的計(jì)數(shù)頻率選為 4hz,即每一計(jì)數(shù)值的停留時間為 0.25s,恰好為當(dāng)全音符設(shè)為 1s時,四四拍的 4 分音符的持續(xù)時間。例如,ydfsq 在以下的

11、 vhdl 邏輯描述中,祝你生日快樂樂曲的第一個音符為“5”,此音在邏輯中停留了 4 個時鐘節(jié)拍,即為 1s 時間,相應(yīng)地所對應(yīng)“1”音符分頻預(yù)置數(shù)為 1409 在 skfpq 的輸入端停留了1s。隨著 ydfsq 中的計(jì)數(shù)器按 4hz 的時鐘頻率做加法計(jì)數(shù)時,樂譜逐次被選取,祝你生日快樂樂曲就開始自然連續(xù)而且循環(huán)的演奏起來了。2.音調(diào)發(fā)生器模塊的 vhdl 源程序library ieee;use ieee.std_logic_1164.all;entity ydfsq isport(clk:in std_logic; clkj:in std_logic_vector(1 downto 0);

12、 rst:in std_logic; toneindex:out integer range 0 to 14);end ydfsq;architecture bhv of ydfsq issignal counter:integer range 0 to 107;signal clker:std_logic;音調(diào)發(fā)生手動自動選擇音調(diào)編碼數(shù)控分頻signal count4:integer;begin process(clk)beginif clkevent and clk=1 then if clkj=10 then count40 then clker=not clker;count4=0;

13、end if; elsif clkj=01 then count42 then clker=not clker;count4=0; end if; else count41 then clker=not clker;count4=0; end if; end if;end if;end process;process(clker,counter,rst)beginif rst=1 thencounter=0; elsif counter=107 then counter=0; elsif clkerevent and clker = 1 then countertoneindextoneind

14、extoneindextoneindextoneindextoneindextoneindextoneindextoneindexnull;end case;end process;end bhv;3.音調(diào)發(fā)生器模塊的仿真圖圖2-4 音調(diào)發(fā)生器模塊的仿真波形圖通過仿真圖可以清楚的看到,時鐘 clk 由 0 開始計(jì)數(shù),每計(jì)一次數(shù)輸出toneindex 的值隨之發(fā)生一定的變化,只不過根據(jù)樂譜的不同,輸出的變化也不盡相同。然后把輸出 toneindex 輸入到音調(diào)編碼器模塊,進(jìn)行下一步編碼工作。于是,由仿真圖印證了 ydfsq 模塊逐次選取音符的功能。2.3.2 手動自動選擇模塊1.手動自動選擇模塊

15、的功能根據(jù)設(shè)計(jì)的要求,該簡易樂曲演奏器能實(shí)現(xiàn)手動或自動演奏樂曲的功能。于是,可通過一個按鍵 cs 來進(jìn)行自動與手動的選擇,當(dāng) cs 按下時,樂曲自動演奏,其他情況下均為手動演奏樂曲,即可以通過按下其他的按鍵(與 cs 相連的按鍵除外)來控制不同的音符。與此同時,還需要一個復(fù)位信號 rst 來控制該演奏器是否工作,當(dāng) rst 為 1 時,停止演奏,為 0 時,可以演奏。以上提到的手動與自動的選擇只能在 rst 為 0 時有效。2.手動自動選擇模塊的 vhdl 源程序library ieee;use ieee.std_logic_1164.all;entity bmux isport(d1:in

16、integer range 0 to 14; d2:in integer range 0 to 14; cs,rst:in std_logic; q:out integer range 0 to 14); end bmux;architecture bhv of bmux isbegin process(cs,rst)beginif rst=1then qqqqtone=2047;code=0;code1tone=1091;code=1;code1tone=1195;code=2;code1tone=1288;code=3;code1tone=1331;code=4;code1tone=140

17、9;code=5;code1tone=1479;code=6;code1tone=1541;code=7;code1tone=1569;code=1;code1tone=1621;code=2;code1tone=1668;code=3;code1tone=1689;code=4;code1tone=1728;code=5;code1tone=1763;code=6;code1tone=1794;code=7;code1null;end case;end process;end bhv; 3.音調(diào)編碼器模塊的仿真圖圖 2-6 音調(diào)編碼器模塊的仿真波形圖在此仿真圖中從上到下依次代表輸出 code

18、、輸出 code1、輸入 index 和輸出tone。通過此仿真圖能清楚的看到當(dāng)音符分別為 3、5、8、13、0 時,它們所對應(yīng)的分頻預(yù)置數(shù) tone 分別是 1288、1409、1569、1763、2047;所對應(yīng)的音譜 code 分別是 3、5、1、6、0;所對應(yīng)的高中低音 code1 又分別是 1(中) 、1(中) 、2(高) 、2(高) 、0(低) 。其中 code、code1 能分別在兩個數(shù)碼管上顯示,而 tone 則輸入到數(shù)控分頻模塊作為分頻的依據(jù)。于是,由仿真圖印證了音調(diào)編碼模塊傳送預(yù)置數(shù)及顯示功能。2.3.4 數(shù)控分頻器模塊1.數(shù)控分頻器模塊的功能該模塊的 clk 端輸入一個具

19、有較高頻率(本實(shí)驗(yàn)為 12mhz)的信號,通過skfpq 分頻后由 spkout 輸出。由于直接從數(shù)控分頻器中出來的輸出信號是脈寬極窄的脈沖信號,為了便于驅(qū)動喇叭,需另加一個 d 觸發(fā)器均衡其占空比,也即作二分頻處理。skfpq 對 clk 輸入信號的分頻比由 11 位預(yù)置數(shù) tone10.0決定。spkout的輸出頻率將決定每一音符的音調(diào),這樣分頻計(jì)數(shù)器的預(yù)置數(shù) tone10.0與 spkout的輸出頻率就有了對應(yīng)關(guān)系。例如在 ydbmq 模塊中取 tone10.0=1479,作為發(fā)音符為“6”音的信號頻率。2.數(shù)控分頻器模塊的 vhdl 源程序library ieee;use ieee.s

20、td_logic_1164.all;entity skfpq isport(clk:in std_logic; tone:in integer range 0 to 2047; spks:out std_logic);end skfpq;architecture bhv of skfpq issignal preclk:std_logic;signal fullspks:std_logic;begin process(clk)variable count4:integer range 0 to 14;begin preclk11 then preclk=1;count4:=0;elsif cl

21、kevent and clk=1 then count4:=count4+1;end if;end process;process(preclk,tone)variable count11:integer range 0 to 2047;begin if preclkevent and preclk=1then if count11=2047 then count11:=tone;fullspks=1; else count11:=count11+1;fullspks=0; end if;end if;end process;process(fullspks)variable count2:s

22、td_logic;beginif fullspksevent and fullspks=1 then count2:=not count2; if count2=1then spks=1; else spksclk1,clkj=clkj,toneindex=x,rst=rst);u2:bmux port map(d1=d1,d2=x,cs=cs,rst=rst,q=y);u3:ydbmq port map(index=y,code=code,code1=code1,tone=z);u4:skfpq port map(clk=clk2,tone=z,spks=spks);end bhv;2.4.

23、2 頂層音樂演奏器原理圖經(jīng)過了各個子模塊的分析與驗(yàn)證后,我們只需將各個子模塊之間的輸入輸出端、子模塊與整體電路之間的輸入輸出端進(jìn)行正確的硬件連接就得到了頂層音樂演奏器的原理圖,如圖 2-8 所示:圖 2-8 樂曲演奏電路的頂層原理圖2.4.3 頂層程序仿真波形圖圖 2-9 頂層程序的仿真波形圖首先,介紹一下總體程序中各個引腳的作用及硬件連接情況:輸入 clk1 是一個頻率較小的時鐘信號,在進(jìn)行硬件下載時它與實(shí)驗(yàn)箱上 clock0 模塊的 16hz 頻率相連,它決定著樂曲演奏的快慢;輸入 clk2 是一個頻率較大的時鐘信號,因?yàn)橐獙λM(jìn)行多次不同的分頻,下載時它與實(shí)驗(yàn)箱上 clock9 模塊的

24、12mhz 頻率相連;輸入 d13.0是當(dāng)手動演奏時自己確定的音符,下載時它與實(shí)驗(yàn)箱上的按鍵6、5、4、3 相連;輸入 rst 和 cs 分別是整體復(fù)位端和演奏方式選擇端,它們分別與實(shí)驗(yàn)箱上的按鍵 2、1 相連;輸出 code 和 code1 分別用來顯示音譜與高中低音,它們分別與實(shí)驗(yàn)箱上的數(shù)碼管 1 和 2 相連(提示:選擇工作模式為模式 5) ;輸出spks 要與實(shí)驗(yàn)箱上的喇叭相連,用來發(fā)出聲音。其次,頂層電路的仿真波形圖是否正確依賴于各個子模塊的功能是否完善,同時頂層電路的功能實(shí)現(xiàn)又驗(yàn)證了各個子模塊的正確性,二者相互依存。3 結(jié)論(1) 本次簡易樂曲演奏器的設(shè)計(jì)經(jīng)過了整體分析、模塊化分析、整體與模塊的仿真分析這樣三個步驟,硬件實(shí)現(xiàn)了整體復(fù)位、按鍵選擇演奏方式、循環(huán)演奏以及數(shù)碼管顯示樂譜的功能。(2) 在做數(shù)控分頻器模塊的仿真時一定要處理好時序問題。(3) 本次設(shè)計(jì)可以說達(dá)到了設(shè)計(jì)要求,但尚有需要改進(jìn)的地方。隨著樂

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論