999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM9的AC`97控制器的電路的改進(jìn)

2008-12-31 00:00:00付行雙
電腦知識與技術(shù) 2008年34期

摘要:針對基于ARM9框架下AC`97控制器在錄放音時有噪音的不足以及在FPGA驗證下頻繁出現(xiàn)異常重啟的缺點,該文對該控制器的異步FIFO進(jìn)行改進(jìn)——重新設(shè)計FIFO狀態(tài)判斷標(biāo)志以正確地配合DMA對其進(jìn)行讀寫的時序。在對其進(jìn)行Verilog 硬件代碼的修改后,在Altera公司的StratixⅡ系列FPGA上進(jìn)行功能驗證。

關(guān)鍵詞:AC`97控制器;異步FIFO;噪聲

中圖分類號:TP331文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)34-1765-02

The Improvement of AC`97 Controller Based on the ARM9

FU Xing-shuang

(IC College, Southeast University, Nanjing 210096, China)

Abstract: In allusion of the defect that the AC`97 controller will make noses as recording and playing under ARM9 Frame, as well unconventionally restart when FPGA Validating. This text improves the Controller's asynchronous FIFO for FIFO state judgment system in order to work with DMA reading or writing in certain sequence. And also can function validating on Altera's Stratix seriesⅡ- FPGA, after revise FIFO on Verilog code.

Key words: AC`97 controller; asynchronous FIFO; nose

1 引言

在一般的ASIC教程中,大家接觸的都是同步時鐘的設(shè)計,即單時鐘的設(shè)計。但在實際工程中,純粹單時鐘設(shè)計的情況很少,特別是設(shè)計模塊與外圍芯片的通訊過程中,跨時鐘域的情況經(jīng)常不可避免。作者在SEP5020(基于ARM9的芯片G6P)工程中遇到的一系列問題中就有因為是異步FIFO的問題而導(dǎo)致需要處理的數(shù)據(jù)溢出,從而在錄放音時產(chǎn)生噪聲。該文就是著重解決這個問題。

2 電路改進(jìn)的實現(xiàn)方法

2.1 AC`97控制器在芯片G6P中所處的位置

本款芯片是基于ARM926EJ內(nèi)核的,其在芯片中的位置如圖1。

2.2 AC`97控制器結(jié)構(gòu)及其工作原理

AC`97控制器結(jié)構(gòu)如圖2,其中包含的具體模塊有:PWM模塊,APB接口模塊,CONTROL 模塊,F(xiàn)IFO模塊。

功能如下:

PWM模塊:對控制器進(jìn)行功耗管理

APB接口模塊:通過該接口與DMA進(jìn)行數(shù)據(jù)交換

CONTROL模塊:控制各個通道的數(shù)據(jù)傳輸

因為本文重點關(guān)注的是FIFO模塊,故對其具體描述如下:

APB總線對數(shù)據(jù)Fifo的存取是以Pclk為時鐘的,而AC_LINK上是以bit_clk為時鐘,二者是異步的,當(dāng)它們要對一個FIFO進(jìn)行操作時,需要以一個時鐘為標(biāo)準(zhǔn),對另一個時鐘進(jìn)行同步操作。其中不同時鐘對同一FIFO的操作如圖3所示,紅色框內(nèi)即是具體的同步操作。另外,F(xiàn)IFO中的溢出信號、讀寫完成信號也都需要進(jìn)行同步操作。

工作原理:

AC97控制器(Audio Codec97 Controller)主要是通過AC-Link實現(xiàn)與AC97 Codec的通訊(見圖4)。本模塊實現(xiàn)了AC97 Controller左右聲道放音,和Microphone或者左右聲道的錄音功能。AC97控制器與Codec之間的通訊遵循Intel AC97(Audio Codec97)協(xié)議。本設(shè)計只支持與單個AC97 Codec的通訊。其功能特性如下:

1) 支持AC97 Controller左右聲道到Codec的數(shù)據(jù)傳送;

2) 錄音通道可配,支持Codec Microphone和左右單聲道(三選一)到AC97 Controller數(shù)據(jù)傳輸;

3) 支持DMA功能,可以通過DMA實現(xiàn)數(shù)據(jù)的傳輸;

4) 支持固定采樣率和可調(diào)采樣率,最大采樣率為48KHz。

具體工作過程如下:

數(shù)據(jù)的發(fā)起必須等待SYNC變高后的第二個時鐘周期開始,SYNC的高電平將會維持16個BIT_CLK周期,稱為“tag phase”,主要傳遞一些當(dāng)前幀的狀態(tài)信息(幀信息將在后面給出)。SYNC為低的階段主要是進(jìn)行數(shù)據(jù)的傳輸,稱為“data phase”。數(shù)據(jù)發(fā)送是在BIT_CLK的上升沿開始的,接收設(shè)備在每一個時鐘的下降沿采樣發(fā)出的數(shù)據(jù)。

2.3 工程中出現(xiàn)的問題

當(dāng)初次對硬件代碼進(jìn)行功能測試時,發(fā)現(xiàn)在錄放音的過程中總是出現(xiàn)嗡嗡的雜音,經(jīng)過檢測發(fā)現(xiàn)問題出現(xiàn)在兩個異步FIFO的狀態(tài)標(biāo)志上:IN_FIFO(16bit×8),OUT_FIFO(32bit×8)。如圖5,使用空滿標(biāo)志產(chǎn)生DMA搬運(yùn)數(shù)據(jù)請求時的前仿真圖。由下面的波形圖可以看出由于DMA中斷操作的延時,codec需要數(shù)據(jù),而controller還沒接收到數(shù)據(jù),就發(fā)生了左右聲道數(shù)據(jù)下溢,產(chǎn)生中斷。該問題的解決方法將在下面給出。

2.4 噪聲問題的解決

解決此問題的一個辦法是對該控制器中的兩個異步FIFO狀態(tài)標(biāo)志邏輯進(jìn)行修改,將原來有空滿標(biāo)志請求DMA進(jìn)行數(shù)據(jù)傳輸改為現(xiàn)在的半空半滿請求DMA進(jìn)行數(shù)據(jù)傳輸。由于對IN_FIFO電路改進(jìn)和OUT_FIFO的相似,故下面僅給出對OUT_FIFO的改進(jìn)后的硬件代碼。

AC`97控制器中的OUT_FIFO部分代碼:

module AC97_outfifo( ….

out_dmareq,

out_overflowleft,

out_overflowright,

sync_out_underflowleft,

sync_out_underflowright

);

………

reg halffull_left;

reg halffull_right;

reg [3:0]wptrl;

reg [3:0]wptrr;

…….

//=======================

//generate halffull signal

//=======================

always@( posedge in_Pclk or negedge in_n_Preset)

begin

if(in_n_Preset == 0)

begin

halffull_left <= 1’b0;

halffull_right <= 1’b0;

end

else

begin

halffull_left <= (((wptrl[3] == sync_wptrl[3]) (wptrl[2] != sync_wrptrl[2] (wptrl[1] != sync_wrptrl[1]) (wptrl[0] == sync_wrptrl[0])) || ((wptrl[3] != sync_wrptrl[3]) (wptrl[2] == sync_wrptrl[2]) (wptrl[1] != sync_wrptrl[1] (wptrl[0] == sync_wrptrl[0])));

halffull_right <= (((wptrr[3] == sync_wptrr[3]) (wptrr[2] != sync_wrptrr[2] (wptrr[1] != sync_wrptrr[1]) (wptrr[0] == sync_wrptrr[0])) || ((wptrr[3] != sync_wrptrr[3]) (wptrr[2] == sync_wrptrr[2]) (wptrr[1] != sync_wrptrr[1] (wptrr[0] == sync_wrptrr[0])));(下轉(zhuǎn)第1769頁)

(上接第1766頁)

end

end

3 仿真結(jié)果

AC`97控制器的OUTFIFO模塊通過VCS仿真后波形如圖6所示。在信號ac97enable信號起來后,通過軟件配置DMA,要求其發(fā)送有規(guī)律的一組數(shù)字0,1,2,3………126,標(biāo)有紅色的信號和圖5中的信號比較可以明顯看出該FIFO未發(fā)生上下溢出的情況。在前仿通過后,我們又進(jìn)行了FPGA(StratixⅡ系列)驗證,通過播放一段PCM碼流的音頻數(shù)據(jù),并使用Cool Edit Pro 2.1對其播放的音頻數(shù)據(jù)進(jìn)行監(jiān)測,顯示的波形結(jié)果為標(biāo)準(zhǔn)的PCM波形,最后通過真人試聽來驗證改進(jìn)后的硬件電路的正確性。限于篇幅,本文未寫出INFIFO模塊的改進(jìn)代碼和仿真結(jié)果,其原理和上面的OUTFIFO模塊的改進(jìn)、驗證是一樣。

4 結(jié)束語

本文結(jié)合實際工程中遇到的問題,介紹了在某一個特定環(huán)境中正確使用異步FIFO,為如何在實際工程正確使用異步FIFO提供了一個借鑒。由于篇幅關(guān)系,本文未全面描述異步FIFO的工作原理而偏重于如何解決由FIFO引發(fā)的問題。

參考文獻(xiàn):

[1] AC`97 Component Specification Revision 2.3[S].Intel Inc.

[2] Paluch E,Synthesis Optimized Universal Synchronous/Asynchronous Generic FIFO Design[S].Sony Electronics,Inc.

[3] SEP5020操作手冊[S].東南大學(xué)ASIC工程中心.

主站蜘蛛池模板: 永久免费av网站可以直接看的 | 欧美三級片黃色三級片黃色1| 日韩精品视频久久| 一区二区三区四区在线| www精品久久| 欧美一区二区三区不卡免费| 欧美日本在线观看| 国产精品国产三级国产专业不| 二级特黄绝大片免费视频大片| 91精品综合| 毛片最新网址| 免费国产高清精品一区在线| 91精品伊人久久大香线蕉| 国产成人一级| 亚洲男人的天堂久久香蕉网| 精品国产自| 日韩经典精品无码一区二区| a欧美在线| 欧日韩在线不卡视频| 日本在线欧美在线| 国产乱子精品一区二区在线观看| 亚洲嫩模喷白浆| 国产成人亚洲精品无码电影| 国产激爽大片在线播放| 亚洲天堂.com| 中文字幕2区| 午夜爽爽视频| 狠狠做深爱婷婷综合一区| 黄色成年视频| 午夜欧美在线| 国产精品一区不卡| 国产成人一区二区| 国产成人成人一区二区| 成年网址网站在线观看| 99re视频在线| 精品国产免费人成在线观看| 久久婷婷人人澡人人爱91| 亚洲αv毛片| 欧洲亚洲欧美国产日本高清| 亚洲日本一本dvd高清| 第九色区aⅴ天堂久久香| vvvv98国产成人综合青青| 曰韩人妻一区二区三区| 无码精品国产VA在线观看DVD| 免费国产好深啊好涨好硬视频| 成人av手机在线观看| 国产精品开放后亚洲| 国产一区二区福利| 国产永久无码观看在线| 欧美日韩国产成人在线观看| 亚洲午夜天堂| 高清不卡毛片| 久久情精品国产品免费| 婷婷亚洲视频| 无码专区在线观看| 日韩成人高清无码| 免费看a级毛片| 视频二区中文无码| 午夜电影在线观看国产1区| 又爽又大又黄a级毛片在线视频| 国产中文一区a级毛片视频| 日韩无码一二三区| 亚洲精品视频网| 亚洲精品在线91| 欧美性久久久久| 免费看a毛片| 女人一级毛片| 夜夜高潮夜夜爽国产伦精品| 国产成人调教在线视频| 国产成人亚洲欧美激情| 99视频在线免费| 欧美色综合网站| 久久精品aⅴ无码中文字幕| 国产成人一区| 最近最新中文字幕在线第一页| 久久国产毛片| 国产成人亚洲精品无码电影| 免费无码又爽又刺激高| 国产综合无码一区二区色蜜蜜| AV在线天堂进入| av在线人妻熟妇| 67194亚洲无码|