日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于FPGA的樂曲發(fā)生器設(shè)計

出處:agua4auto 發(fā)布于:2007-04-06 14:18:30

概 述
隨著EDA技術(shù)的進展,基于可編程ASIC的數(shù)字電子系統(tǒng)設(shè)計的完整方案越來越受到人們的重視,并且以EDA技術(shù)為的能在可編程ASIC上進行系統(tǒng)芯片集成的新設(shè)計方法,也正在快速地取代基于pcb板的傳統(tǒng)設(shè)計方式。

與利用微處理器(CPU或MCU)來實現(xiàn)樂曲演奏相比,以純硬件完成樂曲演奏電路的邏輯要復(fù)雜得多,如果不借助于功能強大的EDA工具和硬件描述語言,僅憑傳統(tǒng)的數(shù)字邏輯技術(shù),即使簡單的演奏電路也難以實現(xiàn)。如何使用EDA工具設(shè)計電子系統(tǒng)是人們普遍關(guān)心的問題,本設(shè)計在美國ALTERA公司MAX + plusⅡ的EDA軟件平臺上,使用層次化設(shè)計方法,實現(xiàn)了樂曲發(fā)生器的設(shè)計。樂曲選取《梁祝》中化蝶部分,其簡譜如圖1所示。

2音符與頻率的關(guān)系

我們知道,組成樂曲的每個音符的發(fā)音頻率值及其持續(xù)的時間是樂曲能連續(xù)演奏所需的2個基本要素,首先讓我們來了解音符與頻率的關(guān)系。

樂曲的12平均率規(guī)定:每2個八度音(如簡譜中的中音1與高音1)之間的頻率相差1倍。在2個八度音之間,又可分為12個半音,每2個半音的頻率比為12√2。另外,音符A(簡譜中的低音6)的頻率為440Hz,音符B到C之間、E到F之間為半音,其余為全音。由此可以計算出簡譜中從低音l至高音1之間每個音符的頻率,如表1所示。

產(chǎn)生各音符所需的頻率可用一分頻器實現(xiàn),由于各音符對應(yīng)的頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將計算得到的分頻數(shù)四舍五入取整。若分頻器時鐘頻率過低,則由于分頻系數(shù)過小,四舍五入取整后的誤差較大;若時鐘頻率過高,雖然誤差變小,但會增加分頻器的分頻級數(shù)。實際的設(shè)計應(yīng)綜合考慮兩方面的因素,在盡量減小頻率誤差的前提下取合適的時鐘頻率。本文設(shè)計的樂曲發(fā)生器選取6MHz的基準(zhǔn)頻率。若無6MHz的時鐘頻率,則可以先分頻得到6MHz或換一個新的基準(zhǔn)頻率。實際上,只要各個音符間的相對頻率關(guān)系不變,演奏出的樂曲聽起來都不會"走調(diào)"。

化蝶簡譜中各音符對應(yīng)的分頻系數(shù)如表2所示。為了減小輸出的偶次諧波分量,輸出到揚聲器的波形應(yīng)為對稱方波,因此在到達揚聲器之前,有一個二分頻的分頻器。表2中的分頻系數(shù)是從6MHz頻率二分頻得到的3MHz頻率基礎(chǔ)上計算得出的。由于的分頻系數(shù)為9101,故采用14位二進制計數(shù)器已能滿足分頻要求。

每個音符持續(xù)的時間是樂曲能連續(xù)演奏所需的另一個基本要素。化蝶的的節(jié)拍為1/4拍,將1拍的時間長度定為1s,則只需要再提供一個4Hz的時鐘頻率即可產(chǎn)生1/4拍的時長。演奏的時間控制通過記錄來完成,對于占用時間較長的節(jié)拍(一定是1/4拍的整數(shù)倍,如2/4拍),只需將該音符連續(xù)記錄2次即可。

3 層次化設(shè)計

我們在美國AI。TERA公司MAX + plusⅡ的EDA軟件平臺上,使用層次化設(shè)計手段,實現(xiàn)了化蝶樂曲發(fā)生器的設(shè)計。圖2為化蝶樂曲發(fā)生器的頂層電路。

音符的頻率可以由PUI。SE元件的輸出SPEAK獲得,這是一個數(shù)控分頻器,由其CLK 6MHz端輸入6MHz脈沖信號,分頻比由預(yù)置輸入端D[13..0]決定。輸出為方波信號,其頻率為3 000 000/(1+D[13..0]),單位為Hz。

音符的持續(xù)時間需根據(jù)樂曲的速度及每個音符的節(jié)拍數(shù)來確定,TABLE元件首先是為PULSE元件提供決定所發(fā)音符的分頻預(yù)置數(shù),而此數(shù)停留的時間即為此音符的節(jié)拍值。在TABLE元件中設(shè)置了一個8位二進制計數(shù)器(計數(shù)值為138),這個計數(shù)器的計數(shù)頻率選為4 Hz,所以每一計數(shù)值的停留時間為0.25s,即四四拍的4分音符持續(xù)時間。例如,化蝶樂曲的個音符?quot;低音3"(1拍),停留的時間需用4個計數(shù)時鐘節(jié)拍,即1s。相應(yīng)地,所對應(yīng)的"低音3"音符分頻預(yù)置值為9 100,其值在AF[13..0]輸出端停留了1s。隨著TABLE元件中的計數(shù)器按4Hz的時鐘速率作加法計數(shù)時,化蝶樂曲就開始連續(xù)自然地演奏起來了。

底層元件的VHDL邏輯描述如下:

--PULSE元件
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY pulse IS
PORT(clk:INSTD_LOGIC; 一一待分頻時鐘
d:IN STD_LOGIC_VECTOR(13 DOWNTO 0);
--分頻預(yù)置數(shù)輸入
fout:OUTSTD_LOGIC); 一一發(fā)音輸出
END pulses
ARCHITECTURE behav OF pulse IS
SIGNAL count : STD_LOGIC-VECTOR(13DOWNTO 0);
SIGNAL cao,caoo1,cao2,load:STD_LOGIC'
BEGIN
PROCESS(clk,load,d)
BEGIN
IF clk'EVENT AND clk='l'THEN
IF load='1'THEN count<=d;
ELSE count<=count一1;
END IF;
END IF;
END PROCESS;
PROCESS(count)
BEGIN
IF count=0 THEN cao<='l';
ELSE cao<='0'; END IF;
load<=cao;
END PROCESS;
PROCESS(clk) --去毛刺
BEGIN
IF clk'EVENT ANDclk='1'THEN
caol<=cao;
END IF;
END PROCESS;
PROCESS(cao1)
BEGIN
IF cao1'EVENT AND cao1='1'THEN
ca02<=NOT cao2;
END IF
fout<=cao2;
END PROCESS;
END behav;
一一TABLE元件
IBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY table IS
PORT(clk:IN STD_LOGIC;
af:OUT INTEGER RANGE 0 TO 16#3FFF#)
一一14位二進制數(shù)
END;
ARCHITECTURE one OF table IS
CONSTANT 1ow_3:INTEGER:=9100;
CONSTANT 1ow_5;INTEGER:=7652;
CONSTANT 1ow_6:INTEGER:=6817;
CONSTANT 1ow_7:INTEGER:=6073;
CONSTANT mid_1:INTEGER;=5732;
CONSTANT mid_2:INTEGER:=5107;
CONSTANT mid_3:INTEGER:=4550;
CONSTANT mid_5:INTEGER:=3826;
CONSTANT mid_6:INTEGER:=3408;
CONSTANT highl:INTEGER: =2866
CONSTANT stop:INTEGER:=0;
--休止符分頻系數(shù)
SIGNAL counter:INTEGER RANGE 0 TO 138;
BEGIN
PROCESS(clk)
BEGIN
IF counter=138 THEN counter<=0;
ELSIF(clk'EVENT AND clk='l')THEN
counter<=counter+1;
END IF;
END PROCESS;
PROCESS(counter)
BEGIN
CASE counter IS
WHEN 00=>af<=low_3; --低音3
WHEN 01=>af<=low_3;
WHEN 02=>af<=low_3;
WHEN 03=>af<=low_3;
WHEN 04?gt;af<=low_5;
WHEN 05=>af<=low_5;
WHEN 06=>af<=low_5;
WHEN 07=>af<=low_6;
WHEN 08=>af<=low_1;
WHEN 09=>af<=low_1;
WHEN 10=>af<=low_1;
WHEN 11=>af<=low_2;
……
WHEN 134=>af<=low_5;
WHEN 135=>>af<=low_5;
WHEN 136=>>af<=stop;
WHEN 137=>af<=stop;
WHEN 138=>>af<=stop;
WHEN OTHERS=>NULL;
END CASE;
END PROCESS;
END;

4 實驗驗證

需要說明的是不同的數(shù)字系統(tǒng)其引腳鎖定是不一樣的,為了便于在實驗系統(tǒng)上驗證設(shè)計結(jié)果,必須按照實驗系統(tǒng)的結(jié)構(gòu)對輸入和輸出引腳進行鎖定。本設(shè)計采用的是杭州康芯電子有限公司生產(chǎn)的GW48-CK實驗系統(tǒng),F(xiàn)PGA目標(biāo)芯片的型號為EPFl0K10LC84。芯片配置成功后即可進行硬件測試:選擇實驗電路結(jié)構(gòu)圖NO.6,使CLK 6MH2與C10ck9相接(接受6MHz時鐘頻率),CLK 4Hz與Clock2相接(接受4Hz時鐘頻率),發(fā)音輸出接SPEAK,當(dāng)樂曲一遍演奏完成后,樂曲發(fā)生器能自動從頭開始循環(huán)演奏。


  

參考文獻:

[1]. pcb datasheet http://www.hbjingang.com/datasheet/pcb_1201640.html.
[2]. PULSE datasheet http://www.hbjingang.com/datasheet/PULSE_1195545.html.


關(guān)鍵詞:基于FPGA的樂曲發(fā)生器設(shè)計2866340838263MHZ455051075732607368176MHZ765291009101ALTERACA02CASECLOCK2COUNTERFPGAPLUSPORTPROCESSPULSE

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

RY3408?5.5V?1A?1.5MHz?同步降壓調(diào)節(jié)器
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!