基于單晶片CMOS語音合成的ASIC設(shè)計
引言
近年語音集成電路獲得迅速發(fā)展,其應(yīng)范圍越越廣,自動售貨機(jī)、ATM柜員機(jī),部直通電話機(jī)以及玩具等方面應(yīng)量語音合成芯片。該芯片部采脈寬調(diào)制,數(shù)字信號確還原成模擬信號,從而使得電路輸出端不需接D/A轉(zhuǎn)換;同時使芯片能夠以純數(shù)字電路形式實現(xiàn),因此以方便地語音合成電路做成專集成電路(ASIC),這樣以提電路抗干擾能力,增加該系統(tǒng)工作穩(wěn)定性,同時降生產(chǎn)成本簡化板級電路復(fù)雜度。
1、語音合成芯片結(jié)構(gòu)
該語音合成芯片首先語音資料以LOGPCM編碼方式存入ROM,語音總長35秒,其分割成4個語音段,2個觸發(fā)鍵,以根據(jù)不同需求確定該芯片觸發(fā)方式,每個語音段指定不同播放速度,設(shè)定“語音組跳躍功能”現(xiàn)語音段(S1)播放完,接著播放指定語音段,并以進(jìn)步設(shè)定這個指定語音組否需無限循環(huán)播放。同樣兩個觸發(fā)鍵選擇輸入或輸出端,音頻輸出PWM1PWM2 兩個輸出端,直接驅(qū)動喇叭;頻率振蕩器有兩種選擇:部調(diào)電阻式頻率振蕩器部頻率振蕩器。該芯片總體設(shè)計框圖如圖1所示。
2、語音合成芯片工作原理
本語音合成芯片有兩個控制信號端:IO1IO2,共有四段語音容,根據(jù)設(shè)計求IO2優(yōu)先級別于IO1,通過不同輸入播放不同語音段語音信號,而且兩個控制信號IO1IO2觸發(fā)方式都采邊緣觸發(fā),語音無重觸發(fā)(段蓋段)功能,而且每觸發(fā)次輸出段語音容,循環(huán)有序輸出各段語音。芯片工作,IO2開始觸發(fā)則播放第段語音(S1),如果IO2電平時,此時IO1觸發(fā)無效;當(dāng)IO2電平時,IO1觸發(fā)則播放最段語音(S4),假如IO2繼續(xù)觸發(fā),依次循環(huán)輸出各段語音。
3.語音合成芯片設(shè)計
3.1 時序產(chǎn)生電路
這部分電路給整個語音合成芯片提供時鐘信號,該語音合成芯片只包括個時鐘,就播放速度。芯片以LOGPCM編碼方式所存儲語音信息8位,采PWM進(jìn)行調(diào)制,就需至少28倍PWM數(shù)據(jù)讀頻率進(jìn)行調(diào)制,使得PWM信號輸出占空比能實現(xiàn)256級。語音信號以8KHz采樣頻率,因此以8K×256=2M時鐘頻率進(jìn)行調(diào)制,從而實現(xiàn)芯片常播放。ASIC設(shè)計,達(dá)2MHz時鐘頻率,采環(huán)行振蕩器,該電路3個CMOS反向器,1個電容個片電阻,調(diào)節(jié)片電阻以產(chǎn)生不同頻率振蕩信號,因此以通過改變部電阻值實現(xiàn)不同播放速度。同時芯片部二分頻電路串聯(lián)實現(xiàn)28分頻。
3.2 輸入信號控制模塊電路
輸入信號控制模塊輸入信號IO1IO2ROM地址進(jìn)行端控制,確定播放語音段,該芯片設(shè)計ROM有16根地址,8根數(shù)據(jù)線,語音分割成四段,每段語音占據(jù)4000H個地址單元,第段語音存儲地址范圍從0~3FFFH,第二段語音存儲地址范圍從4000H~7FFFH,第三段語音存儲地址范圍從8000H~BFFFH,第四段語音存儲地址范圍從C000H~FFFFH。該電路設(shè)計,避免些狀態(tài)誤動作,故輸入信號IO2、IO1進(jìn)行兩級寄存,首先檢測IO2升沿,當(dāng)IO2升沿,signal輸出端口先輸出“00”信號(signal輸出端就級模塊:地址輸出模塊信號控制輸入端);使得每檢測次IO2升沿,就讓個2位計數(shù)器加1,IO2經(jīng)過寄存器,再次檢測升沿,signal輸出“01”信號。然啟動地址輸出模塊,當(dāng)IO1升沿,首先判斷IO2否電平,只有IO2電平狀態(tài),IO1才能動作,工作方式IO2樣;否則IO1無效。電路原理圖如圖2所示。
3.3 ROM地址輸出模塊
ROM地址輸出模塊接收級輸入信號控制模塊控制信號,根據(jù)不同控制信號,輸出不同地址信號讀ROM數(shù)據(jù),ROM有16根地址線,因此ROM地址輸出模塊設(shè)計16位加法計數(shù)器,首先設(shè)計個2位加法計數(shù)器,再由兩個2位加法計數(shù)器構(gòu)成個四位加法計數(shù)器,然由3個四位加法計數(shù)器構(gòu)成個12位加法計數(shù)器,最由12位加法計數(shù)器個2位加法計數(shù)器構(gòu)成14位加法計數(shù)器,14位加法計數(shù)器剛好能從0計數(shù)3FFFH,就第段語音存儲地址范圍,其各段語音存儲開始地址相當(dāng)于3FFFH相應(yīng)倍數(shù)加1,因此采倍乘,其計算:DOUT=C+MUL×(D+1),其DOUT表示輸出ROM地址;C表示14位加法計數(shù)器;MUL表示播放該語音段號減1;D常數(shù)3FFFH。電路原理圖如圖3所示。
3.4 脈沖寬度調(diào)制(PWM)模塊
該模塊存儲ROM數(shù)據(jù)進(jìn)行解碼,解碼音頻信號直接由喇叭進(jìn)行輸出,其就:連續(xù)調(diào)制信號各瞬時值脈沖載波持續(xù)時間進(jìn)行調(diào)制。實際就數(shù)字信號轉(zhuǎn)化成模擬信號,從而使聲音還原[2]。已調(diào)脈沖信號寬度隨調(diào)制信號瞬時值而,當(dāng)脈沖幅度不變時,調(diào)制信號完全由脈沖寬度表示,信號傳輸,使信號幅度失真干擾得解決,以限幅加以消除。由于語音信號采樣頻率8KHz,使得輸出信號占空比256級,則8位計數(shù)器實現(xiàn)0256計數(shù),讓輸出信號“1”時間維持相應(yīng)數(shù)據(jù)長度。而數(shù)據(jù)讀入系統(tǒng)調(diào)制時鐘(2MHz)降沿臨時開始動作,且當(dāng)8位計數(shù)器“0”時開始讀入數(shù)據(jù)。因此時個PWM調(diào)制完成,而個調(diào)制周期還沒開始時隙,只有這個時隙開始讀入數(shù)據(jù)才能不影響PWM調(diào)制[3]。最讀入數(shù)據(jù)當(dāng)8位計數(shù)器計數(shù)值進(jìn)行比較,假如計數(shù)值于當(dāng)讀入數(shù)據(jù)值,則端口1(PWM1)輸出電平“1”,否則輸出電平“0”,這樣讓輸出信號占空比根據(jù)輸入LOGPCM數(shù)據(jù)而發(fā)生,從而實現(xiàn)語音輸出功能。電路原理圖如圖4所示。
3.5 存儲語音ROM
ROM(只讀存儲器)由地址譯碼器、存儲矩陣輸出緩沖3部分組成;地址譯碼器ROM輸入16位地址碼A0、A1……A15譯碼輸出 個輸出信號W0、W1……W65535,稱字線。每條字線輸出分別應(yīng)個存儲單元地址,如W0應(yīng)0單元地址,W1應(yīng)1單元地址。利此地址從存儲矩陣選出指定單元,并其數(shù)據(jù)送至輸出端。存儲矩陣由許基本存儲單元排列而成,包含量存儲單元,存儲單元ASIC設(shè)計由MOS管構(gòu)成,作輸入 條字線作輸出8條位線(D0~D7)組成陣列。每條字線位線交叉點都個存儲單元,存放位二進(jìn)制值0或1。每個或組存儲單元應(yīng)個地址[4]。
4功能仿真及分析
從實際應(yīng)成本角度考慮,擬訂0.5um硅柵工藝進(jìn)行流片,按照nMOS管寬長比14:1,pMOS管寬長比14:1比例設(shè)置(有些地方需作適當(dāng)調(diào)整),以各個模塊進(jìn)行連接,QuartusII進(jìn)行功能仿真,仿真出波形如圖5所示:其clk_div256分頻電路輸出信號,最終輸出結(jié)果2路音頻信號PWM1、PWM2,flag0語音播放完標(biāo)志信號,flag1當(dāng)有語音信號播放時電平,播放斷送出“0”信號,D[7..0]則ROM所存語音資料, IO1“1”時則立即播放最段語音信號,當(dāng)IO2“1”時,則依次播放第至第三段語音;sig[1..0]語音段,“1”時則說明播放第至第三段某段,當(dāng)“2”時,則播放最段語音,實現(xiàn)IO2依次播放第至第三段語音,采倍乘,當(dāng)有第次IO2“1”時,倍乘mul[1..0]輸出“0”,以此類推,當(dāng)有第四次IO2“1”時,mul[1..0]重新清零。
5結(jié)束語
本文作創(chuàng)新點: 本文所研究語音合成芯片利種優(yōu)化方式,設(shè)計語音合成芯片部電路更加簡化,而且性能更加穩(wěn)定。同時脈沖寬度調(diào)制(PWM)語音信號調(diào)制解調(diào)行性進(jìn)行論證,并且FPGA硬驗證方式證明利PWM技術(shù)實現(xiàn)全數(shù)字語音合成輸出行,從而使該語音合成芯片以全數(shù)字形式實現(xiàn)。