基于SoC的AC97技術硬件設計
由音頻控制器的工作原理可見,其每一個步驟都是在DSP內核控制下進行的。因此在對音頻控制器進行功能驗證時,不但要保證其本身的邏輯正確,更要保證其與內核的數據傳輸正確,這樣才有利于音頻控制器和內核的整合。由此提出通過構件SoC內核仿真環境來逼近真實內核,并在這個仿真環境中測試所設計的音頻控制器。
仿真環境的構成
SoC內核仿真環境的硬件以Xilinx公司的MICroBlaze多媒體開發電路板為基礎,其核心是Vertex II FPGA。電路板上還集成了National Semiconductor公司的AC'97 CODEC LM4549 芯片,并且提供了LINE IN/OUT、耳機以及麥克風插口。可以通過這些插口來測試音頻錄放效果,也可通過電路板上的測試點調試部分關鍵信號。SoC內核仿真環境的構成如圖2所示。本文引用地址:http://www.104case.com/article/150187.htm
圖2 SoC內核仿真環境的構成
內核模擬模塊(CORE SIM)是SOC內核仿真環境的核心,以RTL代碼形式下載到Vertex II FPGA中模擬DSP內核的單周期指令,可以實現讀寫內存、訪問音頻控制器(包括讀寫FIFO、CRBUF以及CSRS)、響應并處理中斷請求或DMA請求。其中,DIN_RAM是32位內存數據輸入總線;DIN_CTRL是32位音頻控制器數據輸入總線;DOUT是32位數據輸出總線;IRQ是音頻控制器中斷請求;DMA REQ是音頻控制器DMA請求;RST是音頻控制器異步復位。
塊內存模塊是由Vertex II FPGA中的塊內存實現的單端口內存,這種內存的時序與常規SRAM相同,可以模擬最大126KB的片上SRAM。在Xilinx集成開發環境(ISE)中調用CORE Generator,就可以生成
這種靜態內存。如果運用Memory Eidtor工具生成cgf和coe文件(塊內存的配置文件),就可以在為FPGA下載BIT文件的同時給塊內存賦初始值。基于FPGA這項強大的功能,就可以將從個人電腦上提取出來的PCM音頻碼下載到塊內存中,然后在內核模擬模塊的控制下,通過音頻控制器傳送到音頻編解碼器中,由此實現音頻播放。
時鐘發生模塊(CLOCK GENERATOR)可發出27MHz、54MHz以及108MHz三種時鐘,并且產生音頻控制器異步復位信號RST。MICroBlaze開發電路板上的晶振發出27MHz和50MHz的占空比1:1的方波信號作為時鐘發生模塊的輸入,調用數字鎖相環硬核模塊(CLOCKGEN.v和CLOCKGEN.ucf)可輸出各倍頻時鐘(本設計用108MHz)以及異步復位信號RST。AC'97 CTRL是以RTL形式下載到Vertex II FPGA中的音頻控制器邏輯。AC'97 CODEC是National Semiconductor公司的LM4549 AC'97 CODEC芯片。
內核模擬模塊的實現原理
RTL代碼模擬的都是流水線中的指令執行級,是音頻控制器和內核直接交互數據的級別。根據DSP內核在指令執行級的行為和接口特性,可以靈活地改變內核模擬模塊的接口和內部信號(通過改變RTL代碼),形成不同的仿真環境。測試在新的仿真環境中音頻控制器與內核的工作是否協調穩定,如果結果不理想,就應更改音頻控制器的設計。這樣就能使音頻控制器的特性也能和內核達到最好的協調。
基于SoC內核仿真環境的放音實例
下面給出基于SoC內核仿真環境播放音頻的實例。音頻來源于Windows2000操作系統初始安裝后winnt/media目錄下的Utopia Windows Start.wav(153KB,16位單聲道的wave文件),提取出文件中的PCM音頻碼后下載到Vertex II的塊內存中。音頻控制器在SoC內核仿真環境中控制音頻編解碼器工作,連接耳機到MicroBlaze開發電路板的耳機插口,可以聽到維持將近3秒鐘的音頻信號,和原音頻文件的聲音基本一致。使用音頻分析軟件Audicity來分析音頻播放效果,原始音源與開發板播放的音頻略有不同,其原因有以下3點。(1)電腦聲卡錄音起點和原音頻的放音起點不同; (2)由于塊內存的最大容量為126KB,所以所錄波形文件只截取了原文件(153KB)的前2/3部分。(3)經過SoC內核仿真環境放音,并由電腦聲卡錄音得到的音頻與原音頻的幅度必然不同。第1、2兩個因素引起兩個波形在時間軸方向上的偏差,因素3引起幅度軸方向上的偏差。盡管存在這些差異,但完全可以說明在SoC內核仿真環境中,所設計的音頻控制器邏輯功能正確,與內核能夠協調工作。
總結
本文根據所設計的音頻控制器的結構詳細介紹了構建SOC內核仿真環境來測試音頻控制器的思想和實現方法。基于這個仿真環境,不但可以測試音頻控制器實際錄放音的效果和性能,更重要的是可以及時反映其與內核的協調程度。這樣就可避免孤立設計音頻控制器而不考慮其與SoC系統協調的弊端,明顯提高后期整合SoC系統的效率。
評論