EDA技術是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行電子產品的自動設計。對于傳統的電子設計是一種突破和變革,一種“自上而下”的設計理念讓電路的設計變得相對簡單而且高效。本文采用Altera Cyclone ||系列FPGA 實現可選擇音頻發生器,以實現聲樂中的幾種不同頻率的聲音。 聲音的產生是由于發聲物體以一定的頻率振動,帶動周圍的空氣振動,使動耳朵內的聽小骨一起振動,這些振動被轉換為微弱的電子腦波,它就使我們覺察到了聲音。不同的發聲物體(聲源)音色不同。聲源振動的快慢不一樣即產生的頻率不一樣,故有高音、低音、中高音、中低音等區分。由于聲源振動的幅度大小不一樣,所以我們聽到的聲音有大小的區分。本文主要通過對輸入的時鐘頻率按不同的分頻比進行分頻,以達到產生不同頻率的聲音。 1 音頻發生器基本原理及頂層設計 音頻發生是基于聲音的發生原理,利用外部晶振輸入固定的頻率(12MHz),由內部進行不同的分頻得到,由于從數控分頻器出來的信號是脈沖極窄的脈沖信號,為了能有效的驅動揚聲器,需要外加一個D觸發器以便于均衡占空比,這樣出來的信號的頻率就只有原信號的一半(6MHz)。 本音頻發生器主要實現兩個功能,通過按鍵選擇。功能一可以通過按鍵讓喇叭發出不同頻率的聲音,功能二可以預播放預設置的音頻。 2 底層模塊設計 圖1 音頻發生器頂層各模塊連接圖 2.1 按鍵模塊 由于本模塊可以實現13個不同的音調(7個低音,6個高音),所以在按鍵模塊有13個撥碼開關輸入,采用編碼的方式把13中不同的編碼轉換為4為的數據輸出。為了同步于自動播放的模塊,本模塊與自動模塊采用同一時鐘信號(8Hz),以上升沿觸發的形式觸發得到按鍵的輸入。 2.2 信號選擇模塊 由于本模塊可以實現自動播放于手動輸入音調的功能,為此為了能實現單一的信號輸入,必須在音頻信號處理之前對輸入的信號給予選擇。此模塊有三個信號輸入,一個信號選擇短,兩個輸入信號。還有一個信號輸出端,對于選中的信號直接輸出。 2.3 自動信號產生模塊 由于本模塊可以實現自動播放內置歌曲的功能,所以必須要有一個模塊來產生播放信號,此模塊由8Hz 時鐘輸入,以計時器的方式產生4位的信號輸出。 2.4 譯碼模塊 此模塊的輸入由選擇器的輸出的得,由于選擇的輸出是4位數據,所以需要由此模塊進行譯碼以判斷輸出的高音/ 低音,也便把輸入的數據輸出顯示,并且的到分頻比以便于用于下一模塊的分頻。 2.5 分頻模塊 此模塊有輸入12MHz時鐘頻率,由輸入的4位總線型數據控制對12MHz的信號進行不同比例的分頻,然后經D觸發器進行脈沖展寬,使揚聲器有足夠的功率發音。 如:將PreCLK為CLK的16分頻 DivideCLK : PROCESS(clk) VARIABLE Count4 : STD_ LOGIC_VECTOR (3 DOWNTO 0) ; BEGIN PreCLK 11 THEN PreCLK |