樂曲硬件演奏電路的EDA設(shè)計(jì) 曹圣潔_第1頁
樂曲硬件演奏電路的EDA設(shè)計(jì) 曹圣潔_第2頁
樂曲硬件演奏電路的EDA設(shè)計(jì) 曹圣潔_第3頁
樂曲硬件演奏電路的EDA設(shè)計(jì) 曹圣潔_第4頁
樂曲硬件演奏電路的EDA設(shè)計(jì) 曹圣潔_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、樂曲硬件演奏電路的 eda 設(shè)計(jì) - i - 摘 要 可編程邏輯器件(簡(jiǎn)稱 pld)是一種由用戶編程來實(shí)現(xiàn)某種邏輯功能的新 型邏輯器件,主要包括 fpga 和 cpld 兩大類。fpga 和 cpld 分別是現(xiàn)場(chǎng)可編程 門陣列和復(fù)雜可編程邏輯器件的簡(jiǎn)稱。fpga/cpld 最明顯的特點(diǎn)是高集成度、 高速度和高可靠性,其時(shí)鐘延時(shí)可小至納秒級(jí),集合器并行工作方式,在超高 速應(yīng)用領(lǐng)域和實(shí)時(shí)測(cè)控方面有著非常廣闊的應(yīng)用前景。在高可靠領(lǐng)域,如果設(shè) 計(jì)的得當(dāng),將不會(huì)存在類似于 mcu 的復(fù)位不可靠和 pc 的可能跑飛等問題。 fpga/cpld 的高可靠性還表現(xiàn)在幾乎可將整個(gè)系統(tǒng)下載于同一芯片中,實(shí)現(xiàn)所 謂

2、的片上系統(tǒng),從而大大的縮小的體積,易于管理和屏蔽。硬件的樂曲演奏電 路是用 fpga 將 50m 時(shí)鐘進(jìn)行分頻,兩路的分頻分別產(chǎn)生節(jié)拍和音調(diào)。隨著時(shí)間 的推移節(jié)拍計(jì)數(shù)信號(hào)會(huì)記錄當(dāng)前在樂譜中的位置,根據(jù)當(dāng)前的位置會(huì)將音調(diào)控 制的信號(hào)數(shù)組置成樂譜上的音調(diào),掛載信號(hào)數(shù)組上面的音調(diào)發(fā)生器會(huì)產(chǎn)生相應(yīng) 的音調(diào),其中為增加音樂的效果信號(hào)數(shù)組上掛載了一個(gè) 8 個(gè) led 控制器,不同 的音調(diào)燈的亮滅的組合會(huì)各不同會(huì)產(chǎn)生看似隨機(jī)的等組合實(shí)際燈亮的組合根據(jù) 音調(diào)的確定是固定的。此現(xiàn)場(chǎng)可編程門陣列的程序是演奏生日快樂的樂曲的。 下面會(huì)有他的樂譜。 關(guān)鍵詞 fpga,cpld, 樂曲演奏電路,音樂節(jié)拍發(fā)生器,音樂譯碼

3、電路,可 編程邏輯器件分頻器。 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - ii - abstract programmable logic devices (hereinafter referred to as pld) is a kind of programming by the user to achieve a certain logic function of the new logic devices, including two kinds of fpga and cpld. fpga and cpld were field programmable gate array and com

4、plex programmable logic device referred to as. fpga/cpld the most obvious characteristic is high integration, high speed and high reliability, the clock time delay can be small to nanosecond level, collector parallel work way, in the ultra high speed applications and real-time measurement and contro

5、l aspects has a very broad application prospects. in the field of high reliability, if the design is proper, there will not be similar to the mcu reset is not reliable and pc can be run problems such as fly. fpga/cpld high reliability as well as in almost the whole system can be download from the sa

6、me chip, so as to realize the so-called chip system, thus greatly reduced volume, easy to management and shielding. the music of hardware circuit is playing with fpga will fifty m clock for crossover, two-way crossover respectively produce rhythm and tone. with the passage of time beat count signal

7、will record the current position of the music, according to the current position will tone control signal array set to music on the tones, mount signal array the tone generator can produce corresponding tones, the music to increase the effect of array signal on mount a eight led controller, differen

8、t tones lamp light out of the different combination will can produce a seemingly random combined the actual combination of light according to determine the tone is fixed. the field programmable gate array program is playing the music of happy birthday. below will have his music. keywords fpga, fpga,

9、 cpld, music performance, music beat generator circuit, music decoding circuit, programmable logic devices frequency divider. 樂曲硬件演奏電路的 eda 設(shè)計(jì) - iii - 目 錄 摘摘 要要.i abstract .ii 1 引言引言.1 1.1eda 技術(shù)的發(fā)展.1 1.2 硬件描述語言的產(chǎn)生 .1 1.3 vhdl 語言特點(diǎn) .1 1.4 eda 的發(fā)展趨勢(shì).1 2 樂曲演奏系統(tǒng)設(shè)計(jì)原理分析樂曲演奏系統(tǒng)設(shè)計(jì)原理分析.3 2.1 樂曲演奏基本要求 .3 2.2 樂

10、曲演奏原理 .3 3 系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì).6 3.1現(xiàn)場(chǎng)可編程門陣列(fpga).6 3.1.1 fpga的基本結(jié)構(gòu).6 3.1.2 altera 公司的 fpga.6 3.2 flex 系列的結(jié)構(gòu)特點(diǎn).7 3.2.1 概述.7 3.2.1 flex的特點(diǎn).7 4 樂曲硬件演奏電路的樂曲硬件演奏電路的 vhdl 實(shí)現(xiàn)實(shí)現(xiàn) .8 4.1 音樂節(jié)拍的生成.8 4.2 樂譜的生成.8 4.3 音調(diào)的生成 .10 4.4 樂曲硬件演奏電路完整硬件電路程序設(shè)計(jì)和仿真.11 總總 結(jié)結(jié).16 致致 謝謝.17 參考文獻(xiàn)參考文獻(xiàn).18 樂曲硬件演奏電路的 eda 設(shè)計(jì) - 1 - 1 引言 1.1ed

11、a 技術(shù)的發(fā)展技術(shù)的發(fā)展 人類社會(huì)已經(jīng)進(jìn)入到高度發(fā)達(dá)的信息化社會(huì),信息社會(huì)的發(fā)展離不開電子 產(chǎn)的進(jìn)步?,F(xiàn)在電子產(chǎn)品在性能上的提高、復(fù)雜度增大的同時(shí),價(jià)格卻一直呈 下降趨勢(shì),而且產(chǎn)品更新?lián)Q代的步伐也越來越快,實(shí)現(xiàn)這種進(jìn)步的主要因數(shù)是 生產(chǎn)制造技術(shù)和電子設(shè)計(jì)技術(shù)的發(fā)展,前者以細(xì)微的加工技術(shù)為代表,目前已 經(jīng)發(fā)展到深微米階段,可以在幾平方厘米的芯片上集成數(shù)萬個(gè)晶體管,后者的 核心就是 eda 技術(shù)。 1.2 硬件描述語言的產(chǎn)生 隨著半導(dǎo)體技術(shù)可計(jì)算機(jī)技術(shù)的飛速發(fā)展,集成電路的設(shè)計(jì)方法發(fā)生了深 刻的變化。設(shè)計(jì)的自動(dòng)化程度越來越高,系統(tǒng)也越來越龐大,越來越復(fù)雜。硬 件描述語言應(yīng)運(yùn)而生,他的出現(xiàn)標(biāo)志著電路

12、設(shè)計(jì)領(lǐng)域的一次重大的變革。采用 硬件描述語言設(shè)計(jì)硬件電路可以增加設(shè)計(jì)的自由度和靈活度,節(jié)省人力和物力, 縮短開發(fā)周期,與傳統(tǒng)的原理圖設(shè)計(jì)方法相比,有眾多優(yōu)勢(shì),大量采用 asic,asic 芯片與硬件描述語言的關(guān)系十分密切,二者相輔相成,相互促進(jìn)。 1.3 vhdl 語言特點(diǎn) vhdl 能夠成為標(biāo)準(zhǔn)化的硬件描述語言并獲得廣泛應(yīng)用,正是因?yàn)樗哂腥缦?優(yōu)點(diǎn)。 (1)功能強(qiáng)大和設(shè)計(jì)靈活; (2)與具體期間無關(guān)。 (3)很強(qiáng)的移植能力。 (4)強(qiáng)大的硬件描述能力。 (5)語法規(guī)范、易于共享。 1.4 eda 的發(fā)展趨勢(shì) (1)超大規(guī)模集成電路的集成度和工藝水平不斷提高,深亞微米工藝,如 0.13gm、

13、90nm 已經(jīng)走向成熟,在一個(gè)芯片上完成系統(tǒng)級(jí)的集成已成為可能。 (2)由于工藝線寬的不斷減小,在半導(dǎo)體材料上的許多寄生效應(yīng)已經(jīng)不能簡(jiǎn) 單的被忽略,這就對(duì) eda 工具提出了更高的要求,同時(shí)也使 ic 生產(chǎn)線的投資更 為巨大??删幊踢壿嬈骷_始進(jìn)入傳統(tǒng)的 asic 市場(chǎng) (3)市場(chǎng)對(duì)電子廠品提出了更高的要求,如必須降低電子系統(tǒng)的成本、減小 系統(tǒng)的體積等,從而對(duì)系統(tǒng)的集成度不斷提出更高的要求。同時(shí)設(shè)計(jì)速度也都 成為產(chǎn)品能否成功的關(guān)鍵因數(shù),促使 eda 工具和 ip 核應(yīng)用更為廣泛。 (4)高性能的 eda 工具得到長(zhǎng)足的發(fā)展,其自動(dòng)化和智能化程度不斷提高, 為嵌入式系統(tǒng)設(shè)計(jì)提供了功能強(qiáng)大的開發(fā)環(huán)

14、境。 (5)計(jì)算機(jī)硬件平臺(tái)性能發(fā)大幅提高,為復(fù)雜的 soc 設(shè)計(jì)提供了物理基礎(chǔ)。 可以在同一個(gè)開發(fā)平臺(tái)上完成高級(jí)語言(如 c/c+等)與標(biāo)準(zhǔn) hdl 語言 (verilog hdl、vhdl)或其他更低層的描述模塊的混合仿真。 此外,隨著系統(tǒng)開發(fā)對(duì) eda 及時(shí)的目標(biāo)器件各種性能的提高,asic 可 fpga 將 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - 2 - 更大程度相互融合。這是因?yàn)殡m然標(biāo)準(zhǔn)邏輯 asic 芯片尺寸小、功能強(qiáng)大、耗電 低,但設(shè)計(jì)復(fù)雜,并且有批量生產(chǎn)的要求;可編程邏輯器件開發(fā)費(fèi)用低廉,能 在現(xiàn)場(chǎng)進(jìn)行編程,但卻體積大、功能有限,而且功耗較大。因此,fpga 和 asic 正在走到一起

15、,相互融合,取長(zhǎng)補(bǔ)短。 樂曲硬件演奏電路的 eda 設(shè)計(jì) - 3 - 2 樂曲演奏系統(tǒng)設(shè)計(jì)原理分析 2.1 樂曲演奏基本要求 樂曲的 12 平均率規(guī)定:每 2 個(gè)八度音(如簡(jiǎn)譜中的中音 1 與高音 1)之間的 頻率相差 1 倍。在 2 個(gè)八度音之間,又可分為 12 個(gè)半音,每 2 個(gè)半音的頻率比 為 122。另外,音符 a(簡(jiǎn)譜中的低音 6)的頻率為 440hz,音符 b 到 c 之間、 e 到 f 之間為半音,其余為全音。由此可以計(jì)算出簡(jiǎn)譜中從低音 l 至高音 1 之 間每個(gè)音符的頻率。設(shè)計(jì)音符查找表電路模塊,時(shí)鐘模塊,數(shù)控分頻器模塊, 音樂節(jié)拍產(chǎn)生模塊電路。任意選擇歌曲進(jìn)行設(shè)計(jì),但歌曲前奏

16、必須是中音 356352。 2.2 樂曲演奏原理 聲音的產(chǎn)生由無源蜂鳴器或揚(yáng)聲器產(chǎn)生的,由 fpga 的輸出數(shù)字邏輯電平經(jīng)過 功率放大推動(dòng)蜂鳴器或揚(yáng)聲器的發(fā)聲,其中最關(guān)鍵的技術(shù)是頻率的準(zhǔn)確控制, 控制的方法是分頻,分頻是 50m 的時(shí)鐘經(jīng) f_cnt 累加器累加到 freq 產(chǎn)生將產(chǎn)生 一個(gè)將蜂鳴器電平改變的一個(gè)信號(hào),計(jì)算方法溢出控制 freq=50m/f/2. 根據(jù)圖可 以計(jì)算出下列語句。 圖 2.1 樂曲演奏電路結(jié)構(gòu)方框圖 (1) 音名與頻率的關(guān)系 音樂的 12 平均率規(guī)定:每 2 個(gè)八度音(如簡(jiǎn)譜中的中音 1 與高音 1)之間的 頻率相差 1 倍。在 2 個(gè)八度音之間,又可分為 12 個(gè)

17、半音,每 2 個(gè)半音的頻率比 為 12/2。另外,音符 a(簡(jiǎn)譜中的低音 6)的頻率為 440hz,音符 b 到 c 之間、e 到 f 之間為半音,其余為全音。由此可以計(jì)算出簡(jiǎn)譜中從低音 l 至高音 1 之間 每個(gè)音符的頻率。如表 2-1 所示: 時(shí) 鐘 電 路 音調(diào)分頻控制 節(jié)拍分頻 樂曲表 音調(diào)選著 亮燈組合 揚(yáng)聲器 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - 4 - 表 2.1 簡(jiǎn)譜中的音名與頻率的關(guān)系 音名頻率/hz音名頻率/hz音名頻率/hz 低音 1261.3中音 1532.25高音 11046.50 低音 2293.67中音 2587.33高音 21174.66 低音 3329.63中音

18、3659.25高音 31318.51 低音 4349.23中音 4698.46高音 41396.92 低音 5391.99中音 5783.99高音 51567.98 低音 6440中音 6880高音 61760 低音 7493.88中音 7987.76高音 71975.52 由于音階頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將得到的分 頻系數(shù)四舍五入取整。若基準(zhǔn)頻率過低,則由于分頻系數(shù)過小,四舍五入取整 后的誤差較大,若基準(zhǔn)頻率過高,雖然誤碼差變小,但分頻結(jié)構(gòu)將變大。實(shí)際 的設(shè)計(jì)應(yīng)綜合考慮兩方面的因素,在盡量減小頻率誤差的前提下取舍合適的基 準(zhǔn)頻率。本例中選取 50mhz 的基準(zhǔn)頻率,若無

19、 50mhz 的時(shí)鐘頻率,實(shí)際上, 只要各個(gè)音名間的相對(duì)頻率關(guān)系不變,c 作 1 與 d 作 1 演奏出的音樂聽起來都 不會(huì)“走調(diào)” 。 各音階頻率計(jì)相應(yīng)的分頻系數(shù)如表 2-2 所示。為了減少輸出的偶次諧波分 量,最后輸出到揚(yáng)聲器的波形應(yīng)為對(duì)稱方波,因此在到達(dá)揚(yáng)聲器之前,又一個(gè) 2 分頻的分頻器。表 2-2 中的分頻系數(shù)就是從 50mhz 頻率基礎(chǔ)上計(jì)算得出的。 表 2.2 各音階頻率對(duì)應(yīng)的分頻值 音名分頻系 數(shù) 頻率 /hz 音名分頻系 數(shù) 頻率 /hz 音名分頻系 數(shù) 頻率/hz 低音 1 190840263.1中音 1 47774532.25高音 1 239121046.50 低音 2

20、170068293.67中音 2 42568587.33高音 2 212821174.66 低音 3 151515329.63中音 3 37919659.25高音 3 189611318.51 低音 4 143266349.23中音 4 35791698.46高音 4 178971396.92 低音 5 127551391.99中音 5 31888783.99高音 5 159441567.98 低音 6 113636440中音 6 28409880高音 6 142051760 低音 7 101214439.88中音 7 25309987.76高音 7 126051975 由于最大分頻系數(shù)為 1

21、90840,故采用整數(shù) 020k 的計(jì)數(shù)器已能滿足分頻 樂曲硬件演奏電路的 eda 設(shè)計(jì) - 5 - 要求。在表 2-2 中,除了給出了分頻系數(shù)外,給出了對(duì)應(yīng)于各個(gè)音階頻率值, 對(duì)于樂曲中的休止符,要將分頻系數(shù)設(shè)為 0,此時(shí)揚(yáng)聲器將不會(huì)發(fā)聲。對(duì)于不 同的音調(diào)加載不同分頻系數(shù)即可。 (2)控制音長(zhǎng)的節(jié)拍發(fā)生器 該演奏電路演奏的樂曲是“祝你生日快樂”片段,是 3/4 的,因?yàn)?1/2 拍的 音調(diào)都是相同的,所以其最小的節(jié)拍為 1 拍。將 1 拍的時(shí)長(zhǎng)定為 0.5s,只需要 一個(gè) 25m 的計(jì)數(shù)器就可以分出 0.5s 的節(jié)拍。 樂曲是循環(huán)播放的,因?yàn)闃非シ磐戤吅笥布?huì)對(duì)音符位置計(jì)數(shù)器自動(dòng) 清零,

22、又會(huì)重新開始,循環(huán)播放。 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - 6 - 3 系統(tǒng)硬件設(shè)計(jì) 音樂演奏電路主要用到了現(xiàn)場(chǎng)可編程門陣列(fpga)實(shí)現(xiàn)的。 3.1現(xiàn)場(chǎng)可編程門陣列(fpga) 現(xiàn)場(chǎng)可編程門陣列是一種由用戶自定義配置的高密度專用集成電路,他將 定制的 vlsl 電路的單片邏輯集成優(yōu)點(diǎn)和用戶和可編程邏輯器件的設(shè)計(jì)靈活、工 藝實(shí)現(xiàn)方便、產(chǎn)品上市快捷的長(zhǎng)處結(jié)合起來,已成為一類標(biāo)準(zhǔn)的產(chǎn)品。fpga 器 件在集成電路廠家按高容量高密度大批量生產(chǎn),然后由用戶在現(xiàn)場(chǎng)通過專用的 開發(fā)系統(tǒng),根據(jù)專門的應(yīng)用設(shè)計(jì)、編程。fpga 具備陣列性 pld 的優(yōu)點(diǎn),結(jié)構(gòu)又 類似掩膜可編程們整列,因而具有更高的集成度和更

23、強(qiáng)大的邏輯實(shí)現(xiàn)能力,使 設(shè)計(jì)變得更加靈活和易于實(shí)現(xiàn)。 3.1.1 fpga 的基本結(jié)構(gòu) fpga 在結(jié)構(gòu)上包含 3 類結(jié)構(gòu)可編程資源:可編程邏輯功能模塊 (configurable logic block, clb),可編程 i/o 塊(i/o block, iob)和可 編程互連(interconnect resource, ir) ??删幊踢壿嫻δ苣K是實(shí)現(xiàn)用戶功 能的基本單元,它們通常排列成一個(gè)陣列,散布于整個(gè)芯片;可編程 i/o 塊完 成芯片上邏輯與外部封裝的接口,常陣列于芯片四周,可編程內(nèi)部互聯(lián)包括各 種長(zhǎng)度的線段和編程連接開關(guān),它們將各個(gè)可編程邏輯塊或 i/o 塊連接起來, 構(gòu)成特

24、定功能的電路。不同廠家生產(chǎn)的 fpga 在可編程邏輯功能塊的規(guī)模、內(nèi)部 互連線的結(jié)構(gòu)和采用的可編程元件上存在較大的差異。較常用的是 xilinx 和 altera 公司的 fpga 器件。常見的 fpga 結(jié)構(gòu)主要有:查找表結(jié)構(gòu)、多路開關(guān)結(jié) 構(gòu)、多級(jí)與非門結(jié)構(gòu)。 3.1.2 altera 公司的 fpga altera 公司的 fpga 器件采用鋼鋁布線的先進(jìn) cmos 技術(shù),具有非常低的功 耗和相當(dāng)高的速度,而且采用連續(xù)式互連結(jié)構(gòu),提供快速的、連續(xù)的信號(hào)延遲。 altera 器件密度從 3004000000 門,能很容易的集成現(xiàn)有的各種邏輯器件,高 集成度的 fpga 提供更高的系統(tǒng)性能,更

25、高的可靠性,更高的性能價(jià)格比。 altera 公司的 fpga 產(chǎn)品有: 樂曲硬件演奏電路的 eda 設(shè)計(jì) - 7 - flex6000/8000/10k、apex20k、acex1k、mercury、excalibur 和 stratix 等系 列。 不同型號(hào)的 altera 公司的 fpga 具有不同的內(nèi)部結(jié)構(gòu),靈活邏輯單元矩陣、 acex1k 系列器件采用查找表結(jié)構(gòu)來實(shí)現(xiàn)邏輯功能;先進(jìn)可編程邏輯陣列 (apex)系列器件的結(jié)構(gòu)特征是查找表(lut)和嵌入式寄存器;mercury 系列 器件基于查找表結(jié)構(gòu),其特征是具有時(shí)鐘數(shù)據(jù)恢復(fù)和一個(gè)性能優(yōu)化的核; excalibur 的結(jié)果特征是基于

26、arm 和基于 mips 的硬核微處理器。每種器件系列 針對(duì)具體的應(yīng)用都具有各自的特點(diǎn)。 3.2 flex 系列的結(jié)構(gòu)特點(diǎn) 3.2.1 概述 flex 系列是 altera 公司推出的主流產(chǎn)品,具有高密度、在線配置、高速 度與連續(xù)式布線結(jié)構(gòu)等特點(diǎn)。它的集成度達(dá)到了 10 萬門級(jí),而且,它還是業(yè)界 首次集成了嵌入式陣列模塊 eab 的芯片。5392 個(gè)寄存器;采用 0.5umcmos sram 工藝制造;具有在系統(tǒng)可配置特性;在所有 i/o 端口中有 i/o 寄存器; 3.3v 或 5.0v 工作模式。所謂 eab,實(shí)際上是一種大規(guī)模的 sram 資源,它可 以方便地被設(shè)置為 ram、rom、f

27、ifo 以及雙口 ram 等存儲(chǔ)器。eab 的出現(xiàn) 極大地拓展了 pld 芯片的應(yīng)用領(lǐng)域。 3.2.1 flex 的特點(diǎn) (1)高密度,典型門數(shù)達(dá) 10000250000,邏輯單元數(shù)為 57612160. (2)功能更強(qiáng)大的 i/o 口引腳,每一個(gè)引腳都是獨(dú)立的三態(tài)門結(jié)構(gòu),具有可編 程的速率控制。 (3)嵌入式陣列塊(eab) ,每個(gè) eab 提供 2k 比特位,可用來作存儲(chǔ)器使用 或用來實(shí)現(xiàn)邏輯功能。 (4)邏輯單元采用查找表(lut)結(jié)構(gòu)。 (5)采用連續(xù)式的快速通道互連,可精確預(yù)測(cè)信號(hào)在器件內(nèi)部的延時(shí)。 (6)實(shí)現(xiàn)快速加法器和計(jì)數(shù)器的專用進(jìn)位鏈。 (7)實(shí)現(xiàn)高速、多輸入邏輯函數(shù)的專用級(jí)聯(lián)

28、鏈。 flex10k 系列器件提供六個(gè)專用輸入引腳,驅(qū)動(dòng)觸發(fā)器的控制輸入,以保 證高速、低擺率控制信號(hào)的有效分配。這些信號(hào)使用專用布線通道。4 個(gè)全局 信號(hào)可由 4 個(gè)專用的輸入引腳驅(qū)動(dòng),也可由內(nèi)部邏輯驅(qū)動(dòng),后者可提供分頻信 號(hào)或內(nèi)部異步清零信號(hào)。 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - 8 - 4 樂曲硬件演奏電路的 vhdl 實(shí)現(xiàn) 4.1 音樂節(jié)拍的生成 音樂的節(jié)拍是由 50m 的晶振經(jīng)過 0.5s 計(jì)數(shù)器的值為 25m 得到的。程序有敏 感信號(hào) clk 組成,其中在 clk 的上升沿計(jì)數(shù)器 cnt 會(huì)加一,直到 cnt 的值為 25m 時(shí) sta 為樂譜的位置控制信號(hào)加以,cnt 初始化清零。

29、程序如下: begin process(clk) begin if(clkevent and clk=1)then cnt=cnt+1; if(cnt=25000000)then sta=sta+1; cnt0); end if; end if; 4.24.2 樂譜的生成樂譜的生成 樂譜的生成使用查表的選擇方式,利用樂音的第幾拍的標(biāo)志信號(hào) sta 來確定, 當(dāng) sta 為一時(shí)樂譜進(jìn)入到第一拍,會(huì)將音調(diào)的只改變一次,掛載在 pitch 上的 音調(diào)發(fā)生器會(huì)改變產(chǎn)生的音調(diào),掛載在 pitch 上的 led 的跑馬燈會(huì)改變到預(yù)置 的狀態(tài),然后下一個(gè) 0.5s 后 sta 的改變會(huì)改變掛載在 pitch

30、 信號(hào)線上的設(shè)備的 狀態(tài)。最后的三行有一個(gè)硬件專門來重復(fù)樂曲播放的硬件程序,當(dāng) sta 超出樂 譜范圍時(shí),sta 狀態(tài)初始為零。樂譜如圖所示: 樂曲硬件演奏電路的 eda 設(shè)計(jì) - 9 - 圖 4.2 硬件演奏的樂譜圖 程序如下: case sta is when 1=pitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchledledledledledledledledledled

31、ledledledledled26)then sta=1; end if; 4.3 音調(diào)的生成 音調(diào)的生成是靠 50m 的晶振經(jīng)過 f_cnt 音調(diào)生成計(jì)數(shù)器的溢出分頻得到的。 樂譜發(fā)生電路改變了 pitch 信號(hào)的狀態(tài),音調(diào)的生成電路比較計(jì)數(shù)器 f_cnt 的 值與 pitch 的值相等時(shí)蜂鳴器的電平值反一次。就 f_cnt 是由 50m 的 clk 敏感 信號(hào)上升沿觸發(fā)加一的電路。就生成由 pitch 信號(hào)的溢出分頻器,經(jīng)過最后的 一句信號(hào)的端口賦值經(jīng)功率放大器推動(dòng)揚(yáng)聲器。 源程序如下: beef_process:process(clk,freq) begin if(clkevent an

32、d clk=1)then if(f_cntfreq)then f_cnt=f_cnt+1; else f_cnt0); bffreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreq=0; end case; end process beef_process; beef=bf; 4.4 樂曲硬件演奏電路完整硬件電路程序設(shè)計(jì)和仿真 樂曲的硬件的設(shè)計(jì)由 clk 兩路分頻和查表的開關(guān)電路構(gòu)成。 程序如下: library ieee; use ieee.std_logic_1164.a

33、ll; use ieee.std_logic_unsigned.all; entity div50m is 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - 12 - port(clk: in std_logic; led: out std_logic_vector(7 downto 0); beef: out std_logic ); end div50m; architecture fun of div50m is signal cnt:std_logic_vector (31 downto 0); signal sta:integer range 0 to 30; signal pitch:intege

34、r range 0 to 30; signal f_cnt:std_logic_vector (20 downto 0); signal freq:integer range 0 to 200000 ; signal bf:std_logic; begin process(clk) begin if(clkevent and clk=1)then cnt=cnt+1; if(cnt=25000000)then sta=sta+1; cnt0); end if; end if; case sta is when 1=pitchpitchpitchpitchpitchpitchpitchpitch

35、pitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchpitchledledledledledledledledledledledledledledled26)then sta=1; 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - 14 - end if; end process; beef_process:process(clk,freq) begin if(clkevent and clk=1)then if(f_cntfreq)then f_cnt=f_cnt+1; else

36、f_cnt0); bffreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreqfreq=0; end case; end process beef_process; beef=bf; end; 樂曲硬件電路仿真波形: 圖 4.8 樂曲硬件演奏電路輸出波形 圖 4.8 樂曲硬件演奏電路頻率變化輸出波形 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - 16 - 總 結(jié) 經(jīng)過兩星期的課程設(shè)計(jì),使我了解 fpga 的工作的過程。起初以為 fpga 和 單片機(jī)一樣,然后了解到 cpld/fpga 類似于組合

37、邏輯器件,特別像數(shù)子電子技 術(shù),用一些的組合邏輯電路來組成高速的穩(wěn)定的數(shù)字電路系統(tǒng)。如果許多的電 路都用數(shù)字的集成電路做能做成,但將會(huì)是很大的工程,fpga 給了這種的設(shè)計(jì) 以極大的便利,硬件只需簡(jiǎn)單很小的一個(gè)集成片,其他的工作只是用硬件的描 述語言描述你的工程的功能。非常簡(jiǎn)潔高效。 以前有一定的單片機(jī)程序的編程基礎(chǔ),經(jīng)過老師的指導(dǎo)和在圖書館產(chǎn)考了 一些與關(guān)書籍,對(duì)其中的語言方法進(jìn)行了一些的學(xué)習(xí),然后就許多的程序進(jìn)行 總結(jié)其中的結(jié)構(gòu)和習(xí)慣的表達(dá)方法,并在硬件中的編程的到了證明。先易后難, 從簡(jiǎn)單的程序開始,經(jīng)過參考一些的文獻(xiàn)可以寫出比較復(fù)雜些的程序了。這次 的的選題比較的感興趣,比較貼近生活,

38、貼近實(shí)際,設(shè)計(jì)起來也比較有思想。 其中比較困難的一部分應(yīng)該是編程環(huán)境的學(xué)習(xí),編程的環(huán)境的功能這么強(qiáng) 大,不禁感嘆軟件工程師的智慧。文件的新建,后綴名的編寫和文件的保存, 工程的編譯,引腳的設(shè)置和器件的選著,工程的仿真文件的建立和仿真,都會(huì) 有一套的規(guī)則和方法。相對(duì) c 語言來說好像 vhdl 規(guī)則較多,好多規(guī)則并不是太 好理解,或許還是要好好努力才可以學(xué)好這種語言。應(yīng)用的時(shí)候是最能體現(xiàn)哪 些語言的規(guī)則的價(jià)值的,在這次的課程設(shè)計(jì)中也鞏固了許多的語言語法。體會(huì) 了整個(gè)設(shè)計(jì)的流程。當(dāng)看到它正常工作時(shí)還是比較的高興。 樂曲硬件演奏電路的 eda 設(shè)計(jì) - 17 - 致 謝 在兩周的課設(shè)中應(yīng)該感謝學(xué)校有

39、較好的實(shí)驗(yàn)設(shè)備,能在學(xué)習(xí)了書本上的知 識(shí)后得以應(yīng)用,學(xué)習(xí)到實(shí)在的開發(fā)技術(shù)。老師毫不保留的給我們講解了開發(fā)的 方法,在我們學(xué)習(xí)中遇到困難時(shí),老師總會(huì)幫我們指點(diǎn)迷津,從中學(xué)到了許多 的知識(shí)。 在圖書館良好的環(huán)境中可以參閱許多的文獻(xiàn),學(xué)習(xí)前人的經(jīng)驗(yàn),并可以找 到開發(fā)的思路和彌補(bǔ)學(xué)習(xí)中的不足。當(dāng)實(shí)踐遇到了困難時(shí)總需要一種解釋,這 時(shí)圖書館的文獻(xiàn)可以幫助我們解開迷團(tuán),開拓思路。 許多時(shí)候看著程序也不會(huì)知道對(duì)與錯(cuò),直到上機(jī)編程的時(shí)候可以領(lǐng)會(huì)個(gè)部 分的語句中的做用,在使用軟件真正在開發(fā)時(shí)最能了解它的工作過程。從中也 可以看出 fpga 的優(yōu)點(diǎn)是并行的。實(shí)驗(yàn)箱有豐富的硬件資源和外設(shè)的資源可以方 便的做各種的功

40、能的測(cè)試,比較的方便學(xué)習(xí)??梢钥闯鰬?yīng)用是最能融合以前學(xué) 到的知識(shí)的方式。 學(xué)習(xí)中同學(xué)之間的相互支持和幫組,在許多時(shí)候也帶來了許多的便捷,發(fā) 揮各自的優(yōu)點(diǎn)和長(zhǎng)處,然后更加高效的解決問題,相互之間的學(xué)習(xí)和鼓勵(lì)使學(xué) 習(xí)的氣氛更好,更加的有信心去解決面對(duì)的困難。 在課程設(shè)計(jì)中也發(fā)現(xiàn)了自己學(xué)習(xí)中的不足,希望今后能努力完善自己的學(xué) 習(xí)中的不足,為今后工作能為為國(guó)家的現(xiàn)代化建設(shè)出一份力。 沈陽工程學(xué)院課程設(shè)計(jì)(論文) - 18 - 參考文獻(xiàn) 1 楊旭 劉盾. eda 技術(shù)基礎(chǔ)與實(shí)驗(yàn)教程. 北京:清華大學(xué)出版社.2010 2 孫延鵬.尹常永. vhd 與可編程邏輯器件應(yīng)用. 北京:航空工業(yè)出版社. 2006 3 王松武.于 鑫.武思軍. 電子創(chuàng)新設(shè)計(jì)與實(shí)踐. 北京:國(guó)防工業(yè)出版社. 2005 4 潘松.王國(guó)棟vhdl 實(shí)用教程m 四川:電子科學(xué)大學(xué)出版社.2001 5 徐志軍.徐光輝cpldfpga 的開發(fā)與應(yīng)用m.北京:電子工業(yè)出版社. 2002 6 褚振勇.翁木云fpga 設(shè)計(jì)及應(yīng)用m. 西安:西安電子

溫馨提示

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

評(píng)論

0/150

提交評(píng)論