隨著集成電路設(shè)計(jì)技術(shù)和深亞微米制造技術(shù)的發(fā)展,,集成電路已進(jìn)入了片上系統(tǒng)時(shí)代。由于SoC結(jié)構(gòu)極其復(fù)雜,,對(duì)于設(shè)計(jì)者而言,,數(shù)百萬(wàn)門(mén)規(guī)模的系統(tǒng)級(jí)芯片設(shè)計(jì)不可能一切從頭開(kāi)始,隨著集成電路設(shè)計(jì)技術(shù)的發(fā)展,,IP核的開(kāi)發(fā)己成為不可忽視的發(fā)展趨勢(shì),,它的出現(xiàn)為SoC的實(shí)現(xiàn)和發(fā)展提供了基礎(chǔ)。IP稱(chēng)之為知識(shí)產(chǎn)權(quán),,它可以認(rèn)為是封裝在硬件設(shè)計(jì)中的可重復(fù)利用的軟件,,就功能而言,IP核可以定義為SoC的基本電路功能塊又稱(chēng)為內(nèi)核,,可由用戶(hù)或?qū)S肐C公司或獨(dú)立的公司開(kāi)發(fā)而成,,IP核的顯著特點(diǎn)是具有重用性。鑒于SoC系統(tǒng)設(shè)計(jì)者很難獨(dú)自開(kāi)發(fā),、維護(hù)和移植所有必須的IP核,,所以在Soc設(shè)計(jì)中必然要用到第3方的 IP核,當(dāng)IP核被轉(zhuǎn)移到用戶(hù)設(shè)計(jì)與制造工藝中時(shí),,IP核被重復(fù)利用了,,具有自主知識(shí)產(chǎn)權(quán)的IP核的復(fù)用是Soc設(shè)計(jì)中解決設(shè)計(jì)層次、產(chǎn)品成本,、設(shè)計(jì)周期和降低風(fēng)險(xiǎn)的關(guān)鍵環(huán)節(jié)是SoC設(shè)計(jì)中的關(guān)鍵技術(shù),。IP核重復(fù)利用可以提高設(shè)計(jì)能力,節(jié)省設(shè)計(jì)人員可以縮短上市時(shí)間,,更好的利用現(xiàn)有的工藝技術(shù),,降低成本?;诖斯P者設(shè)計(jì)了基于SoC的音頻接口IP模塊,。
1 APB與IIS總線
APB(Advanced Peripheral Bus)是AMBA(Advanced Microcontrollel Bus Architectrure)組成部分,是用于低功耗和減少接口復(fù)雜度而設(shè)計(jì)的,。APB用于帶寬,,低速,低性能要求,,無(wú)管線操作的外圍設(shè)備,。APB總線操作包括Setup和Enable兩個(gè)狀態(tài)。其中APB讀操作只需在Enable狀態(tài)數(shù)據(jù)有效,寫(xiě)操作要求寫(xiě)數(shù)據(jù)在整個(gè)寫(xiě)操作期間保持有效,。
APB協(xié)議規(guī)定每個(gè)傳輸只與時(shí)鐘上升沿相關(guān),。這就使APB外圍設(shè)備很容易被集成在設(shè)計(jì)之中,特點(diǎn)如下:
(1)在高頻操作的性能改進(jìn),;
(2)獨(dú)立的脈沖時(shí)鐘,;
(3)靜態(tài)時(shí)鐘分析比較簡(jiǎn)單,因?yàn)橛脝螘r(shí)鐘沿觸發(fā),;
(4)自測(cè)試邏輯插入沒(méi)有特別的條件需要考慮,;
(5)在ASIC庫(kù)中有性能很好的上升沿寄存器;
APB狀態(tài)機(jī),,如圖1所示,。
APB這3個(gè)狀態(tài)描述如下:
IDLE:默認(rèn)初始狀態(tài)。
Setup:當(dāng)有一個(gè)傳輸請(qǐng)求,,總線將進(jìn)入Setup狀態(tài),,當(dāng)PSELx,信號(hào)被選擇,??偩€只在Setup狀態(tài)停留一個(gè)周期,并將在時(shí)鐘的上升沿進(jìn)入Enable狀態(tài),。
Enable:在Enable狀態(tài)中,,PEnable有效,地址信號(hào),,讀寫(xiě)信號(hào),,選擇信號(hào)將保持穩(wěn)定,當(dāng)狀態(tài)從Setup到Enable狀態(tài),。 Enable狀態(tài)僅僅維持一個(gè)時(shí)鐘,,如果沒(méi)有傳輸發(fā)生,系統(tǒng)將回到IDLE,,如果有傳輸發(fā)生,,系統(tǒng)狀態(tài)將進(jìn)入Setup狀態(tài)。當(dāng)從Enable狀態(tài)到 Setup狀態(tài)時(shí)允許有短脈沖干擾,。
IIS總線:在飛利浦公司的IIS標(biāo)準(zhǔn)中,,既規(guī)定了硬件接口規(guī)范,也規(guī)定了數(shù)字音頻數(shù)據(jù)的格式,。IIS總線擁有3條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸:數(shù)據(jù)傳輸線 (DS),,選擇線(WS),時(shí)鐘線(SCK),。在數(shù)據(jù)傳輸過(guò)程中,,發(fā)送端(Transmitter)和接收端(Receiver)具有相同的時(shí)鐘信號(hào),發(fā)送端作為主導(dǎo)裝置(Master)時(shí),,產(chǎn)生位時(shí)鐘信號(hào),、命令(聲道)選擇信號(hào)和數(shù)據(jù)。在綜合的系統(tǒng)中,,可能具有幾個(gè)發(fā)送端和接收端,,使識(shí)別發(fā)送端比較困難。在這樣的系統(tǒng)中,,可以設(shè)置一個(gè)控制器(Controller)來(lái)作為系統(tǒng)的主導(dǎo)裝置來(lái)識(shí)別多路的數(shù)字音頻信號(hào)的數(shù)據(jù)流,,此時(shí)發(fā)送端成為在外部時(shí)鐘控制下的從屬裝置(Stave),系統(tǒng)的主導(dǎo)裝置也可以與發(fā)送端或接收端相結(jié)合,,這需要通過(guò)對(duì)硬件或軟件的設(shè)置來(lái)激活,。它擁有3種模式,如圖2所示,。
IIS有時(shí)序信號(hào)圖,,如下所述。串行時(shí)鐘信號(hào)(SCK):即對(duì)應(yīng)數(shù)字音頻的每一位數(shù)據(jù),,SCK對(duì)應(yīng)1個(gè)脈沖,。SCK的頻率=2×采樣頻率×采樣位數(shù)。
聲道選擇信號(hào)(WS):用于切換左右聲道的數(shù)據(jù),。WS的頻率等于采樣頻率,。
串行數(shù)據(jù)信號(hào)(SD):就是用二進(jìn)制補(bǔ)碼表示的音頻數(shù)據(jù)。
典型時(shí)序,,如圖3所示,。
IIS格式的信號(hào)無(wú)論有多少位有效數(shù)據(jù),數(shù)據(jù)的最高位總是被最先傳輸,,在WS變化,,也就是一幀開(kāi)始后的第2個(gè)SCK脈沖處,因此最高位擁有固定的位置,,而最低位的位置則是依賴(lài)于數(shù)據(jù)的有效位數(shù),。也就使得接收端與發(fā)送端的有效位數(shù)可以不同。如果接收端能處理的有效位數(shù)少于發(fā)送端,,可以放棄數(shù)據(jù)幀中多余的低位數(shù)據(jù),,如果接收端能處理的有效位數(shù)多于發(fā)送端,可以自行補(bǔ)足剩余的位(常補(bǔ)足為零),。這種同步機(jī)制使得數(shù)字音頻設(shè)備的互連更加方便,,而且不會(huì)造成數(shù)據(jù)錯(cuò)位。為了保證數(shù)字音頻信號(hào)的正確傳輸,,發(fā)送端和接收端應(yīng)該采用相同的數(shù)據(jù)格式和長(zhǎng)度,。對(duì)IIS格式來(lái)說(shuō)數(shù)據(jù)長(zhǎng)度可以不同,。
2 音頻IP模塊設(shè)計(jì)
音頻IP模塊,完成APB總線協(xié)議到IIS協(xié)議的轉(zhuǎn)換,,實(shí)現(xiàn)音頻的輸出,,并根據(jù)任務(wù)要求,設(shè)置各種寄存器和中斷輸出,。音頻輸出模塊(APB_IIS)示意框圖,,如圖4所示。
APB_IIS模塊由以下5個(gè)模塊組成:APB接口模塊,,APB接口模塊主要是遵守AMBA協(xié)議,,完成讀寫(xiě)數(shù)據(jù)的譯碼。符合APB協(xié)議完成寄存器讀寫(xiě),,實(shí)現(xiàn)寄存器register_t的配置,,狀態(tài)讀寫(xiě)。
寄存器模塊(register_t),,完成各種功能寄存器的設(shè)置,。register_t模塊,包含配置寄存器模塊(tx_config),,屏蔽寄存器 (tx_intmask),,狀態(tài)寄存器(tx_instate),頻率配置寄存器模塊(tx_frequency),,F(xiàn)IFO寫(xiě)數(shù)據(jù)地址 (fifo_data),。
FIFO模塊(fifo_t),的功能是從一個(gè)高速時(shí)鐘域到低速時(shí)鐘域數(shù)據(jù)的緩沖,,并產(chǎn)生標(biāo)志信號(hào),,用于中斷產(chǎn)生。
IIS接口模塊(i2s_t),,i2s_t模塊遵守IIS協(xié)議,,并完成數(shù)據(jù)的輸出。
本模塊符合以下功能要求:
(1)傳輸音頻(Transmitter)模塊,;
(2)主模式,,由時(shí)鐘由外部提供(12 M);
(3)支持時(shí)序兩種模式音頻輸出,;
(4)分頻器實(shí)現(xiàn)8/11/12/16/22.059/24./32/44.11/48(kHz)頻率數(shù)據(jù)傳輸,;
(5)內(nèi)部記數(shù)器完成16音頻數(shù)據(jù)的記數(shù);
(6)數(shù)據(jù)的并串轉(zhuǎn)換,。
中斷模塊(interrupt_generate),,中斷信號(hào)是通過(guò)FIFO模塊的標(biāo)志信號(hào)和屏蔽寄存器(tx_intmask)信號(hào)產(chǎn)生中斷信號(hào)給系統(tǒng)的中斷控制器。
3 仿真結(jié)果
圖5為APB接口邏輯讀寫(xiě)時(shí)序和IIS輸出時(shí)序的局部波形仿真,。時(shí)序仿真證明符合規(guī)范和功能要求,。
4 結(jié)束語(yǔ)
文中根據(jù)協(xié)議和實(shí)際需求設(shè)計(jì)一個(gè)APB轉(zhuǎn)IIS的模塊,,具體描述了協(xié)議,功能規(guī)范,,完成RTL代碼描述和功能驗(yàn)證,,得出正確可移植的音頻IP模塊。由于模塊是有各個(gè)分立的模塊單元組成,,所以再根據(jù)實(shí)際需求修改模塊是非常容易的。