




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、可編程邏輯可編程邏輯期末設(shè)計期末設(shè)計題題 目:簡易電子琴制作目:簡易電子琴制作學(xué)學(xué) 院:信息工程學(xué)院院:信息工程學(xué)院年年 級:級:20092009 級級完成時間完成時間 :20122012 年年 2 2 月月 2727 日日可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計目錄目錄1、課程設(shè)計目的.32、課程設(shè)計要求.32.1、基礎(chǔ)部分.32.2、發(fā)揮部分.33、設(shè)計(課程)基本內(nèi)容.43.1、EDA技術(shù)/VHD語言.44、電子琴設(shè)計原理及過程.54.1、設(shè)計規(guī)劃.54.2、基礎(chǔ)部分原理.54.3、簡易電子琴的設(shè)計流程.55、課程設(shè)計的程序模塊.65.1、樂曲演奏模塊(
2、PS2SCAN).65.1.1、模塊說明.65.1.2、樂曲演奏模塊文本程序.75.2、音調(diào)發(fā)生模塊.115.2.1、模塊說明.115.2.2、音調(diào)發(fā)生模塊文本程序: .125.3、數(shù)控分頻模塊.135.3.1、模塊說明.135.3.2、數(shù)控分頻模塊文本程序.145.4、音符存儲模塊.175.4.1、模塊說明.175.4.2、音符存儲模塊的源程序.176、頂層模塊設(shè)計.196.1、模塊說明.196.2、頂層模塊文本程序.206.3、綜合設(shè)計原理圖(完善).227、系統(tǒng)程序仿真和編譯.227.1、程序編譯.227.1.1、編譯過程.228、設(shè)計中遇到問題以及設(shè)計小結(jié).258.1、 遇到的問題(分
3、析).258.2、設(shè)計小結(jié)(總結(jié)).26可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計1 1、課程設(shè)計目的、課程設(shè)計目的1) 利用數(shù)控分頻器設(shè)計一個電子琴硬件電路和音樂發(fā)生器,設(shè)計達(dá)到演奏時可以選擇是手演奏(鍵盤輸入) ,或自動演奏已存入的樂曲,并且能自動演奏。2) 鞏固和運(yùn)用所學(xué)課程,理論聯(lián)系實際,提高分析、解決計算機(jī)技術(shù)實際問題的獨(dú)立工作能力,通過對一個簡易的14音符電子琴的設(shè)計,進(jìn)一步加深對計算機(jī)原理以及數(shù)字電路應(yīng)用技術(shù)方面的了解與認(rèn)識,進(jìn)一步熟悉數(shù)字電路系統(tǒng)設(shè)計、制作與調(diào)試的方法和步驟。鞏固所學(xué)課堂知識,理論聯(lián)系實際,提高分析、解決計算機(jī)技術(shù)實際問題的獨(dú)立工
4、作能力。為了進(jìn)一步了解計算機(jī)組成原理與系統(tǒng)結(jié)構(gòu),深入學(xué)習(xí)EDA技術(shù),用VHDL語言去控制將會使我們對本專業(yè)知識可以更好地掌握。3) 提高學(xué)生對eda軟件實踐操作能力和工程設(shè)計能力,對eda技術(shù)和fpga應(yīng)用的相關(guān)知識進(jìn)行了系統(tǒng)的介紹,內(nèi)容包括eda技術(shù)的基本知識,fpga的基本原理,quartus ii的使用方法與使用技巧,主流硬件描述語言vhdl的語法規(guī)則介紹及實例說明,常用的控制或通信功能模塊的設(shè)計方法實例,以及采用vhdl語言描述的fpga綜合實例。2 2、課程設(shè)計要求、課程設(shè)計要求2.12.1、基礎(chǔ)部分、基礎(chǔ)部分1) 當(dāng)鍵盤輸入 123456789abcde 是對應(yīng)響應(yīng)的頻率2) 演奏
5、時在 8 段數(shù)碼管顯示對應(yīng)音符2.22.2、發(fā)揮部分、發(fā)揮部分3) 具有存儲功能存儲 20 個音符4) 當(dāng)鍵盤上某一個鍵(如 v)時,自動重放存儲區(qū)音符可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計3 3、設(shè)計(課程)基本內(nèi)容、設(shè)計(課程)基本內(nèi)容內(nèi)容包括eda技術(shù)的基本知識,fpga的基本原理,quartus ii的使用方法與使用技巧,主流硬件描述語言vhdl的語法規(guī)則介紹及實例說明,常用的控制或通信功能模塊的設(shè)計方法實例,以及采用vhdl語言描述的fpga綜合實例設(shè)計。本書由淺入深,從易到難,既讓初學(xué)者輕松入門,又讓有經(jīng)驗的設(shè)計者得到有價值的參考信息。3.13.
6、1、edaeda 技術(shù)技術(shù)/vhd/vhd 語言語言隨著基于cpld的eda技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入,eda技術(shù)在電子信息、通信、自動控制用計算機(jī)等領(lǐng)域的重要性日益突出。EDA技術(shù)就是以計算機(jī)為工具,設(shè)計者在EDA軟件平臺上,用硬件描述語言HDL完成設(shè)計文件,然后由計算機(jī)自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可操作性,減輕了設(shè)計者的勞動強(qiáng)度。利用EDA工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子系統(tǒng),大量工作可以通過計算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)
7、計、性能分析到設(shè)計出IC版圖或PCB版圖的整個過程的計算機(jī)上自動處理完成。此次設(shè)計主要是基于vhdl文本輸入法設(shè)計樂曲演奏電路,運(yùn)用vhdl語言對簡易電子琴的各個模塊進(jìn)行設(shè)計,并使用eda 工具對各模塊進(jìn)行仿真驗證。該系統(tǒng)基于計算機(jī)中時鐘分頻器的原理,采用自頂向下的設(shè)計方法來實現(xiàn),通過按鍵輸入來控制音響或者自動演奏已存入的歌曲。系統(tǒng)由樂曲自動演奏模塊、音調(diào)發(fā)生模塊和數(shù)控分頻模塊三個部分組成。系統(tǒng)實現(xiàn)是用硬件描述語言vhdl按模塊化方式進(jìn)行設(shè)計,然后進(jìn)行編程、時序仿真、電路功能驗證,奏出美妙的樂曲(當(dāng)然由于條件限制,暫不進(jìn)行功能驗證,只進(jìn)行編程和時序仿真) 。該設(shè)計最重要的一點(diǎn)就是通過按鍵控制不
8、同的音調(diào)發(fā)生,每一個音調(diào)對應(yīng)不同的頻率,從而輸出對應(yīng)頻率的聲音。可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計4 4、電子琴設(shè)計原理及過程、電子琴設(shè)計原理及過程4.14.1、設(shè)計規(guī)劃、設(shè)計規(guī)劃根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)設(shè)計采用自頂向下的設(shè)計方法,它由樂曲自動演奏模塊、音調(diào)發(fā)生模塊和數(shù)控分頻模塊,存儲模塊四部分組成4.24.2、基礎(chǔ)部分原理、基礎(chǔ)部分原理本課程設(shè)計目的在于靈活運(yùn)用 eda 技術(shù)編程實現(xiàn)一個簡易電子琴的樂曲演奏,它要求在實驗箱上構(gòu)造一個電子琴電路,不同的音階對應(yīng)不同頻率的正弦波。按下每個代表不同音階的按鍵時,能夠發(fā)出相對應(yīng)頻率的聲音。故系統(tǒng)可分為樂曲自動演奏
9、模塊(ps2scan)、音調(diào)發(fā)生模塊(tonetaba)和數(shù)控分頻模塊(speakera)三部分。4.34.3、簡易電子琴的設(shè)計流程、簡易電子琴的設(shè)計流程根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)該系統(tǒng)基于計算機(jī)中時鐘分頻器的原理,設(shè)計采用自頂向下的設(shè)計方法,通過按鍵輸入來控制音響或者自動演奏已存入的歌曲。它由樂曲自動演奏模塊、音調(diào)發(fā)生模塊和數(shù)控分頻模塊三部分組成。用 vhdl 語言設(shè)計電路的流程:1.使用文本編輯器輸入設(shè)計源文件。2.使用編譯工具編譯源文件:vhdl 的編譯語言。3.功能仿真。 4.綜合。綜合的目的是在于將設(shè)計的源文件由語言轉(zhuǎn)換為實際的電路。這一部分最終目的是生成門電路級的網(wǎng)表(netlist)
10、。5.框圖布局、布線。這一步的目的是生成用于編程文件。先將各個設(shè)計中的門根據(jù)網(wǎng)表的內(nèi)容和器件的結(jié)構(gòu)放在器件的特定部位。然后,在根據(jù)網(wǎng)表中提供的各門的連接,把各個門的輸入輸出連接起來。6.編譯完成,下載。可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計5 5、課程設(shè)計的程序模塊、課程設(shè)計的程序模塊5.15.1、樂曲演奏模塊(、樂曲演奏模塊(ps2scanps2scan)5.1.15.1.1、模塊說明、模塊說明樂曲自動演奏模塊的作用是產(chǎn)生 14 位發(fā)生控制輸入信號。當(dāng)進(jìn)行自動演奏時,由存儲在此模塊的 8 位二進(jìn)制數(shù)作為發(fā)聲控制輸入,從而自動演奏樂曲。該模塊的 vhdl 源
11、程序主要由 3 個 process(clk)工作進(jìn)程組成, 第一個 process(clk)的作用是根據(jù)鍵盤輸入(自動演奏)的值(0 或 1)來判斷計數(shù)器 count 以及脈沖 clk 的輸出值。部分源程序如下:部分源程序如下: process(clk) -工作進(jìn)程開始 begin if clkevent and clk = 1 then 時鐘輸入信號為 1 kbclkreg = kbclk; kbclkfall dispdisp=0010; 該模塊最主要的用途就是將輸入二進(jìn)制數(shù)轉(zhuǎn)化為發(fā)聲控制輸入,是產(chǎn)生音符的重要步驟, ps2scan 模塊的源程序符號編輯圖如圖圖 5-1-1:ps2scan
12、 模塊的符號編輯在此程序中自動模塊輸出的音符數(shù)據(jù),經(jīng)過翻譯后將輸出到數(shù)控分頻模塊為其提供分頻系數(shù)的初始值, 5.1.25.1.2、樂曲演奏模塊文本程序、樂曲演奏模塊文本程序-程序名稱:ps2scan.vhd-程序功能:采用 vhdl 語言編程產(chǎn)生 14 位發(fā)聲控制輸入信號library ieee; use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity ps2scan is port ( clk,kbclk,kbdata:in std_logic; -系統(tǒng)時鐘信號/鍵盤輸入演奏信號 /鍵盤輸入信號 disp : out std_l
13、ogic_vector(3 downto 0); -音符顯示信號(時鐘輸出) auto : out std_logic - -音頻信號(鍵盤輸入信號)end entity;architecture rtl of ps2scan is signal kbclkreg, kbclkfall : std_logic; 可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計 signal datacoming : std_logic:=0; signal cnt : integer range 0 to 9; signal shiftdata,kbcodereg : std_log
14、ic_vector(7 downto 0);- -輸入 8 位控制信號 signal delay:std_logic:=0; signal count: integer range 0 to 10000; -定義信號計數(shù)器, 10000 個信號元素begin process(clk) -工作進(jìn)程開始 begin if clkevent and clk = 1 then kbclkreg = kbclk; kbclkfall = kbclkreg and (not kbclk); end if; end process; process(clk) begin if clkevent and cl
15、k = 1 then-鍵盤輸入為 1 if kbclkfall = 1 and datacoming = 0 and kbdata = 0 then datacoming = 1;cnt = 0; elsif kbclkfall = 1 and datacoming = 1 then if cnt = 9 then if kbdata = 1 then datacoming = 0;end if; cnt = 0;kbcodereg=shiftdata; else shiftdata = kbdata & shiftdata(7 downto 1); cnt dispdispdispd
16、ispdispdispdispdispdispdispdispdispdispdispdispdispdelaydelaydelaydelaydelaydelaydelaydelaydelaydelaydelaydelaydelaydelaydelaydelay=0; end case; end if;if clkevent and clk = 1 then count = count + 1;else null;end if;if count=1000 and delay=1 then count=0; auto=1;else if count = 1000 and delay=0 then
17、 count=0; auto tone=01100000101 ; -code tone=11111111111 ; -code tone=01100000101 ; -code tone=01110010000 ; -code tone=11111111111 ; -code tone=01100000101 ; -code tone=01110010000 ; -code tone=10000001100 ; -code tone=10001011100 ; -code tone=10010101101 ; -code tone=10100001010 ; -code tone=10101
18、011100 ; -code tone=10110000010 ; -code tone=10111001000 ; -code tone=11000000110 ; -code tone=11000110110 ; -code tone=11001010110 ; -code tone=11010000100 ; -code tone=11010011100 ; -code null; end case; end process;end5.35.3、數(shù)控分頻模塊、數(shù)控分頻模塊5.3.15.3.1、模塊說明、模塊說明數(shù)控分頻模塊是對時基脈沖進(jìn)行分頻,得到與1、2、3、4、5、6、7、8、9、a
19、、b、c、d、e 這 14 個音符相對應(yīng)的頻率。speakera 模塊的源程序符號編輯圖如圖。圖 5-3-1:speakera 模塊的符號編輯圖該模塊主要由 3 個工作進(jìn)程(divideclk,genspks,delayspks)組成。首先,根據(jù)系統(tǒng)時鐘信號的輸入得到時基脈沖以及計數(shù)器的值,而時鐘信號在 auto 模塊中便已給出,兩者之間的設(shè)置關(guān)系類似于 auto 模塊中第一個工作進(jìn)程的設(shè)置。第二個 process 是此模塊的核心,即由時基脈沖值轉(zhuǎn)化為音符的頻率。可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計部分源程序如下:部分源程序如下:genspks : pro
20、cess(preclk, tone)- 11 位可預(yù)置計數(shù)器 variable count11 : std_logic_vector (10 downto 0);最后一個 process 則是用來設(shè)置揚(yáng)聲器輸出信號的,揚(yáng)聲器信號由 0 和 1 控制,當(dāng)且僅當(dāng)前一個 process 中的 fullspks 輸出為 1 時,揚(yáng)聲器才有輸出,再根據(jù)計數(shù)器取值來確定輸出是 1 還是 0。部分源程序如下:部分源程序如下:if fullspksevent and fullspks = 1 then count2 := not count2; -揚(yáng)聲器音頻信號為 1 if count2 = 1 then s
21、pks = 1; -揚(yáng)聲器輸出為 1 else spks = 0; end if; 5.3.25.3.2、數(shù)控分頻模塊文本程序、數(shù)控分頻模塊文本程序-程序名稱:speakera.vhd-程序功能:采用 vhdl 語言編程實現(xiàn)發(fā)生器的數(shù)控分頻library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity speakera is port ( clk : in std_logic;-系統(tǒng)時鐘信號 tone : in std_logic_vector (10 downto 0); -音符分頻系數(shù) spks
22、 : out std_logic ); -驅(qū)動揚(yáng)聲器的音頻信號end;architecture one of speakera is -定義時基脈沖信號可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計 signal preclk, fullspks : std_logic;begin divideclk : process(clk) variable count4 : std_logic_vector (3 downto 0); begin preclk 11 then preclk = 1; count4 := 0000; elsif clkevent and cl
23、k = 1 then count4 := count4 + 1; -時鐘信號為 1時 -判斷計數(shù)器取值為 1 end if; end process;genspks : process(preclk, tone) -此進(jìn)程按照 tone1 輸入的分頻系數(shù)對 8mhz 的脈沖再次分頻,得到所需要的音符頻率 variable count11 : std_logic_vector (10 downto 0);begin if preclkevent and preclk = 1 then if count11 = 16#7ff# then count11 := tone ; fullspks = 1
24、; -若計數(shù)器 11 值小于音符信號 1,計數(shù)器加 1,音頻信號為 1 else count11 := count11 + 1; fullspks = 0; end if; end if; end process;-音頻信號輸出進(jìn)程開始delayspks : process(fullspks)- 此進(jìn)程對 fullspks 進(jìn)行 2 分頻,展寬脈沖,使揚(yáng)聲器有足夠功率發(fā)音 variable count2 : std_logic; -定義變量頻率計數(shù)器 2可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計begin if fullspksevent and fullspk
25、s = 1 then count2 := not count2; -揚(yáng)聲器音頻信號為 1 if count2 = 1 then spks = 1; -揚(yáng)聲器輸出為 1 else spks = 0; end if; end if; end process;end;以上三個模塊組裝的整體組裝設(shè)計原理圖如圖 5-3 所示。 圖 5-3 基礎(chǔ)發(fā)音系統(tǒng)的整體組裝設(shè)計原理圖可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計由于設(shè)計分模塊組成,每個單獨(dú)的模塊都是一個完整的源程序,分別實現(xiàn)不同性質(zhì)的功能,但是每個模塊又是緊密關(guān)聯(lián)的,前一個模塊的輸出很可能是后一模塊的輸入。如 ps2sc
26、an 模塊的音符信號輸出就是 tonetaba 模塊的音符信號輸入。另外,時鐘脈沖信號在本課程設(shè)計中用的最多,用處也最大,一般情況下時鐘信號處上升沿有效,判斷和控制各個計數(shù)器計數(shù)多少。(此框圖編譯完成的功能為:當(dāng)按下一個鍵時,有相應(yīng)的樂音發(fā)出,同時用指示燈顯示樂音,用數(shù)碼管顯示音符)。5.45.4、音符存儲模塊、音符存儲模塊5.4.15.4.1、模塊說明、模塊說明此模塊將根據(jù)自己編制的音符順序存入電子琴,演奏時可選擇鍵盤輸入樂曲或者已存入的樂曲。樂曲存儲模塊產(chǎn)生節(jié)拍控制和音階選擇信號,即在此模塊中可存放一個樂曲曲譜真值表,由一個計數(shù)器來控制此真值表的輸出,而由計數(shù)器的計數(shù)時鐘信號作為樂曲節(jié)拍控
27、制信號。5.4.25.4.2、音符存儲模塊的源程序、音符存儲模塊的源程序-程序名稱:save.vhd-程序功能:采用 vhdl 語言編寫,參與主程序調(diào)用 3 個子程序,實現(xiàn)音符存儲演奏的功能library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity save is port ( inter,clks:in std_logic; input: in std_logic_vector(3 downto 0); disp: out std_logic_vector(3 downto 0) - led : out s
28、td_logic_vector(3 downto 0)可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計 );end entity;architecture rtl of save is type ram_array is array (0 to 30) of std_logic_vector(3 downto 0); signal a: ram_array;- signal i : integer range 0 to 30; signal b : integer range 0 to 30;- signal cnt : integer range 0 to 9;si
29、gnal count: integer range 0 to 3; -計數(shù)器寬度 - variable result : inter:=1;-變量賦初值beginprocess(inter) begin if interevent and inter = 1 then i=i+1;if i=20 then i=0; end if; end if; end process;-以上程序類似于中斷響應(yīng),即來一次數(shù)據(jù)便存一次,數(shù)組進(jìn)入下一個process(inter) beginif input=xf then -數(shù)據(jù)回放disp=a(b); if clksevent and clks = 1 the
30、ncount = count + 1; -計數(shù)器來做延時,時鐘為 8hzif count=3 thencount=0;可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計 b=b+1; if b=20 then b=0;end if;end if;end if; else a(i)=input;disp=a(i);-數(shù)據(jù)通過數(shù)組存儲end if;- disp=a(i); end process; end rtl;6 6、頂層模塊設(shè)計、頂層模塊設(shè)計6.16.1、模塊說明、模塊說明該 music_ram 模塊是整個電子琴設(shè)計的核心,也是 vhdl 程序的主程序,前面 3 個源
31、程序都是作為子程序分別實現(xiàn)電子琴的某一功能,而 music_ram 模塊則通過調(diào)用子程序最終實現(xiàn)樂曲演奏的目的,奏出美妙的樂曲。利用 vhdl 語言 component 將三個模塊組合起來,其中 3 個模塊和 music_ram 模塊的輸入輸出是一一對應(yīng)的,比如 disp 對應(yīng)musicin,auto 對應(yīng) auto,musicout 對應(yīng) index 等,該模塊的符號編輯圖如圖 3-4??删幊踢壿嬈谀┐笞鳂I(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計圖:6-1:music_ram 系統(tǒng)模塊的符號編輯圖該圖描述的是 music_ram 模塊輸入輸出的變量表示,整個系統(tǒng)的整體組裝設(shè)計原
32、理圖就是這 4 幅編輯圖按輸入輸出關(guān)系順序連接而成的。6.26.2、頂層模塊文本程序、頂層模塊文本程序-程序名稱:music_ram.vhd-程序功能:采用 vhdl 語言編寫主程序調(diào)用 3 個子程序,實現(xiàn)樂曲演奏(存/放)的功能。library ieee;-use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity music_ram is port (musicin:in std_logic_vector(3 downto 0); -系統(tǒng)時鐘信號 auto,c
33、lk :in std_logic; -auto=1:read ,0=write -鍵盤輸入/自動演奏信號 musicout: out std_logic_vector(3 downto 0) -音符顯示信號 );end music_ram;architecture behavioral of music_ram is-subtype word is std_logic_vector(3 downto 0);type memory is array (20 downto 0) of std_logic_vector(3 downto 0); signal musram : memory; - s
34、ignal addr: integer range 0 to 20; -存儲 20 個音符signal ptr: integer range 0 to 20;-signal count: integer range 0 to 3;-計數(shù)范圍 0 到 3beginprocess(auto) -引入 kbclk 元件begin 可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計if autoevent and auto=1 then -鍵盤輸入為 1ptr=ptr+1; -計數(shù)器值為 1,時鐘信號幅值為 1if ptr=20 then ptr=0; end if;end i
35、f;end process;-auto is a flag of signal process (clk,musicin)beginif musicin=1111 then -如果輸入字母 f,-調(diào)用存儲的音符自動演奏musicout=musram(addr);if clkevent and clk = 1 then -時鐘信號為 1count = count + 1; -計數(shù)器來做延時,時鐘為 8hzif count=3 thencount=0;addr=addr+1; if addr=20 then addr=0;end if;end if;end if;else musram(ptr)=
36、musicin; musicout=musram(ptr);end if;end process;可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計end behavioral;6.36.3、綜合設(shè)計原理圖(完善)、綜合設(shè)計原理圖(完善)將 tonetaba,speakera,music_ram,和 ps2scan 四個模塊連接在一起形成完整的電子琴發(fā)音系統(tǒng),將繪制好的原理圖保存,確保無誤后運(yùn)行進(jìn)行引腳搭配,編譯,和下載。圖 6-3:系統(tǒng)的整體組裝設(shè)計原理圖7 7、系統(tǒng)程序仿真和編譯、系統(tǒng)程序仿真和編譯系統(tǒng)仿真是在實際系統(tǒng)上進(jìn)行實驗研究比較困難時適用的必不可少的工具,它
37、是指通過系統(tǒng)模型實驗去研究一個已經(jīng)存在或正在設(shè)計的系統(tǒng)的過程,通俗地講,就是進(jìn)行模型實驗。因而,系統(tǒng)仿真的結(jié)果決定整個課程設(shè)計任務(wù)完成的到位程度。7.17.1、程序編譯、程序編譯7.1.17.1.1、編譯過程、編譯過程1)建立頂層設(shè)計文件夾 top在硬盤適當(dāng)位置建立 top 文件夾中。可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計注意:該文件夾的路徑中不能包含漢字。路徑中的所有目錄和子目錄的名稱都必須符合vhdl 的語法規(guī)則。2)子模塊文件的設(shè)計打開 quartusii 新建五個.vhd 文件,tonetaba.vhd、speakera.vhd、save.vhd 和
38、ps2scan.vhd),輸入所有的子模塊源程序后保存在 top 文件夾下,并進(jìn)行查錯操作。3)頂層模塊文件設(shè)計打開 quartusii,新建一個 music.bdf 文件,輸入源程序后進(jìn)行保存、查錯、編譯、功能和時序仿真等相關(guān)操作。4)設(shè)計原理框圖 top.bdf,并將 top.bdf 設(shè)置為頂層步驟:在頂層文件夾中選擇 top.bdf,單擊右鍵,選擇 set as top-level entity 5)編譯在菜單欄選擇圖標(biāo),full complication was successful 時候完成編譯。6)下載輸入程序并且編譯無誤,并且仿真無誤后,便進(jìn)行引腳鎖定及程序下載,在進(jìn)行引腳鎖定時必須對照引腳鎖定圖進(jìn)行鎖定可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子琴設(shè)計簡易電子琴設(shè)計引腳配置如圖:引腳鎖定/編譯后的框圖:可編程邏輯期末大作業(yè)可編程邏輯期末大作業(yè)- -簡易電子
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 能源規(guī)劃編制管理辦法
- 自制施工機(jī)具管理辦法
- 自治區(qū)津補(bǔ)貼管理辦法
- 舟山漁業(yè)渠道管理辦法
- 藥品注冊管理辦法程序
- 藥品經(jīng)營認(rèn)證管理辦法
- 藥品采購監(jiān)測管理辦法
- 藥品銷毀處理管理辦法
- 菏澤草坪管理辦法細(xì)則
- 蒙城農(nóng)村綠化管理辦法
- IPC-A-610國際標(biāo)準(zhǔn)中英文對照(doc 17)
- JJF(建材)110-2019水泥雷氏夾膨脹測定儀校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 《納尼亞傳奇》閱讀交流(課堂PPT)
- 某航空公司教學(xué)材料之十八案例
- 縣級課題研究過程記錄
- 預(yù)制場(梁場)建設(shè)方案
- 專業(yè)課程融入思政工作的教學(xué)設(shè)計理念與方法(課堂PPT)
- 安川CDBR系列 制動單元 用戶手冊_圖文
- 公司空白財務(wù)報表格模板
- 長沙不動產(chǎn)登記申請書
- 鍋爐拆除施工方案(最新)
評論
0/150
提交評論