隨著集成電路設(shè)計(jì)技術(shù)和深亞微米制造技術(shù)的發(fā)展,集成電路已進(jìn)入了片上系統(tǒng)時(shí)代。由于SoC結(jié)構(gòu)極其復(fù)雜,對(duì)于設(shè)計(jì)者而言,數(shù)百萬(wà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稱之為知識(shí)產(chǎn)權(quán),它可以認(rèn)為是封裝在硬件設(shè)計(jì)中的可重復(fù)利用的軟件,就功能而言,IP核可以定義為SoC的基本電路功能塊又稱為內(nèi)核,可由用戶或?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)移到用戶設(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ù)有效,寫操作要求寫數(shù)據(jù)在整個(gè)寫操作期間保持有效。
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),讀寫信號(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脈沖處,因此最高位擁有固定的位置,而最低位的位置則是依賴于數(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é)議,完成讀寫數(shù)據(jù)的譯碼。符合APB協(xié)議完成寄存器讀寫,實(shí)現(xiàn)寄存器register_t的配置,狀態(tài)讀寫。
寄存器模塊(register_t),完成各種功能寄存器的設(shè)置。register_t模塊,包含配置寄存器模塊(tx_config),屏蔽寄存器(tx_intmask),狀態(tài)寄存器(tx_instate),頻率配置寄存器模塊(tx_frequency),F(xiàn)IFO寫數(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接口邏輯讀寫時(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í)際需求修改模塊是非常容易的。