利用FPGA實(shí)現(xiàn)異步FIFO設(shè)計(jì)
發(fā)布時(shí)間:2008/5/27 0:00:00 訪問次數(shù):1041
    
    
    利用fpga實(shí)現(xiàn)異步fifo設(shè)計(jì)
    作者:賈龍
    
    目前數(shù)據(jù)采集系統(tǒng)朝著高速和高精度的方向發(fā)展。隨著fpga的集成度和運(yùn)行速度的提高,可以滿足高速數(shù)據(jù)采集系統(tǒng)的需求。fpga內(nèi)部具有豐富的存儲(chǔ)單元,易于實(shí)現(xiàn)各種存儲(chǔ)器(如fifo、雙口ram等);另外,基于查找表的邏輯單元可用于實(shí)現(xiàn)各種數(shù)字信號(hào)處理(如濾波等),以輔助dsp處理器做各種預(yù)處理。
    
    ti公司推出的高性能數(shù)字信號(hào)處理芯片tms320c6000系列,工作頻率最高可達(dá)到1ghz,具有處理速度快、靈活、精確和可靠性高等優(yōu)點(diǎn),作為數(shù)據(jù)采集系統(tǒng)中的主處理器,可以滿足實(shí)時(shí)性的要求;谝陨峡紤],北京合眾達(dá)公司開發(fā)了采用tms320c6416和fpga的高速高精度雙通道數(shù)據(jù)采集系統(tǒng),每個(gè)通道的采樣率為3msps,最高可達(dá)10msps,采樣精度為14b。系統(tǒng)主要包括以下幾部分:高速a/d轉(zhuǎn)換、fifo數(shù)據(jù)緩存和edma數(shù)據(jù)傳輸,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
    
    ad9243及轉(zhuǎn)換控制
    
    設(shè)計(jì)中采用的模數(shù)轉(zhuǎn)換器芯片是ad9243。ad9243是adi公司生產(chǎn)的14位、3msps高性能模數(shù)轉(zhuǎn)換器。ad9240與ad9243完全兼容,因此系統(tǒng)的最高采樣率可兼容到10msps。
    
    模數(shù)轉(zhuǎn)換器ad9243的時(shí)序控制與傳統(tǒng)的a/d有所不同,完全依靠時(shí)鐘控制采樣、轉(zhuǎn)換和數(shù)據(jù)輸出,在第一個(gè)時(shí)鐘的上升沿開始采樣轉(zhuǎn)換,第四個(gè)時(shí)鐘上升沿到來時(shí),數(shù)據(jù)將出現(xiàn)在d1~d14端口上。本文采用系統(tǒng)自通電時(shí)起,a/d和時(shí)鐘電路始終處于工作狀態(tài),對(duì)數(shù)據(jù)不停進(jìn)行轉(zhuǎn)換,以減少誤碼率,提高采樣精度。
    
    fifo的實(shí)現(xiàn)及控制
    
    設(shè)計(jì)中采用fpga來實(shí)現(xiàn)雙通道數(shù)據(jù)的緩存和數(shù)據(jù)傳輸?shù)倪壿嬁刂。spartan3e是一款高性能低價(jià)格的可編程邏輯器件,具有豐富的邏輯單元和存儲(chǔ)單元。其內(nèi)部的blockram可以配置為大小不同的各種類型存儲(chǔ)器,如單口ram、雙口ram和同步fifo,其中fifo更適合作為a/d 采樣數(shù)據(jù)高速寫入的存儲(chǔ)器。fifo存儲(chǔ)器就像數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入、從另一頭流出,先進(jìn)入的數(shù)據(jù)先流出。fifo具有兩套數(shù)據(jù)線而無地址線,可在其一端寫操作而在另一端進(jìn)行讀操作,數(shù)據(jù)在其中順序移動(dòng),從而達(dá)到很高的傳輸速度和效率,且由于省去了地址線,有利于pcb板布線。
    
    采用fifo構(gòu)成高速a/d采樣緩存時(shí),由于轉(zhuǎn)換速度較快,如果直接將adc采樣后的數(shù)據(jù)存儲(chǔ)到fifo中,對(duì)時(shí)序配置要求非常嚴(yán)格,如果兩者時(shí)序關(guān)系配合不當(dāng),就會(huì)發(fā)生數(shù)據(jù)存儲(chǔ)出錯(cuò)或者掉數(shù)。利用fpga可以方便地控制時(shí)序和數(shù)據(jù)傳輸,簡(jiǎn)單、可靠地實(shí)現(xiàn)采樣和存儲(chǔ)是選用fpga的優(yōu)點(diǎn)。該數(shù)據(jù)采集系統(tǒng)中只采用了一個(gè)外部時(shí)鐘源,直接輸入到fpga,經(jīng)dcm分頻后作為fifo和adc的時(shí)鐘源。
    
    在軟件設(shè)計(jì)中,采用ise開發(fā)環(huán)境開發(fā)fpga時(shí),調(diào)用core generator來構(gòu)造fifo,可以設(shè)置fifo的參數(shù),如深度和寬度;設(shè)置fifo的各種標(biāo)志和控制位,如空滿、半滿全滿、半空全空、可編程滿和可編程空等標(biāo)志位;寫使能、讀使能等控制位,以便實(shí)現(xiàn)與高速a/d和dsp的邏輯接口。fifo的輸入輸出引腳如表所示:其中wr_en由dsp的gpio 口引出,控制數(shù)據(jù)是否寫入到fifo中,輸出引腳中只用到了prog_full即可與dsp進(jìn)行數(shù)據(jù)傳輸。
    
    fpga的作用除了構(gòu)造fifo以實(shí)現(xiàn)數(shù)據(jù)通道復(fù)用外,還可以作為協(xié)處理器進(jìn)行實(shí)時(shí)要求性高的數(shù)據(jù)預(yù)處理(如插值、取平均、fir濾波等),以減少dsp處理的數(shù)據(jù)量。設(shè)計(jì)中采用分布式算法的fir濾波,首先對(duì)adc轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行fir濾波,然后存入fifo中以等待dsp的讀取。 fpga代替asic和dsp作為前端數(shù)字信號(hào)處理的運(yùn)算,在規(guī)模、重量和功耗方面都有所降低,而且吞吐量更高,開發(fā)成本進(jìn)一步縮小。
    
    fpga設(shè)計(jì)中,需提供外部閃存來存儲(chǔ)fpga的下載文件,上電后數(shù)據(jù)會(huì)自動(dòng)下載到fpga內(nèi)部,以對(duì)fpga進(jìn)行配置。fpga有多種配置方式,包括主串、從串、主并、從并、spi、bpi,以及jtag等方式。串行方式即逐位串行配置,接線簡(jiǎn)單,但速度比較慢,并行方式即8位同時(shí)傳輸,速度快,但接線復(fù)雜。串行方式和并行方式都需要外加閃存作為配置文件的存儲(chǔ)器。設(shè)計(jì)中本文采用c6416的多通道緩存串行口(mcbsp)以spi方式對(duì)fpga進(jìn)行配置。
    
    
    
    利用fpga實(shí)現(xiàn)異步fifo設(shè)計(jì)
    作者:賈龍
    
    目前數(shù)據(jù)采集系統(tǒng)朝著高速和高精度的方向發(fā)展。隨著fpga的集成度和運(yùn)行速度的提高,可以滿足高速數(shù)據(jù)采集系統(tǒng)的需求。fpga內(nèi)部具有豐富的存儲(chǔ)單元,易于實(shí)現(xiàn)各種存儲(chǔ)器(如fifo、雙口ram等);另外,基于查找表的邏輯單元可用于實(shí)現(xiàn)各種數(shù)字信號(hào)處理(如濾波等),以輔助dsp處理器做各種預(yù)處理。
    
    ti公司推出的高性能數(shù)字信號(hào)處理芯片tms320c6000系列,工作頻率最高可達(dá)到1ghz,具有處理速度快、靈活、精確和可靠性高等優(yōu)點(diǎn),作為數(shù)據(jù)采集系統(tǒng)中的主處理器,可以滿足實(shí)時(shí)性的要求;谝陨峡紤],北京合眾達(dá)公司開發(fā)了采用tms320c6416和fpga的高速高精度雙通道數(shù)據(jù)采集系統(tǒng),每個(gè)通道的采樣率為3msps,最高可達(dá)10msps,采樣精度為14b。系統(tǒng)主要包括以下幾部分:高速a/d轉(zhuǎn)換、fifo數(shù)據(jù)緩存和edma數(shù)據(jù)傳輸,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
    
    ad9243及轉(zhuǎn)換控制
    
    設(shè)計(jì)中采用的模數(shù)轉(zhuǎn)換器芯片是ad9243。ad9243是adi公司生產(chǎn)的14位、3msps高性能模數(shù)轉(zhuǎn)換器。ad9240與ad9243完全兼容,因此系統(tǒng)的最高采樣率可兼容到10msps。
    
    模數(shù)轉(zhuǎn)換器ad9243的時(shí)序控制與傳統(tǒng)的a/d有所不同,完全依靠時(shí)鐘控制采樣、轉(zhuǎn)換和數(shù)據(jù)輸出,在第一個(gè)時(shí)鐘的上升沿開始采樣轉(zhuǎn)換,第四個(gè)時(shí)鐘上升沿到來時(shí),數(shù)據(jù)將出現(xiàn)在d1~d14端口上。本文采用系統(tǒng)自通電時(shí)起,a/d和時(shí)鐘電路始終處于工作狀態(tài),對(duì)數(shù)據(jù)不停進(jìn)行轉(zhuǎn)換,以減少誤碼率,提高采樣精度。
    
    fifo的實(shí)現(xiàn)及控制
    
    設(shè)計(jì)中采用fpga來實(shí)現(xiàn)雙通道數(shù)據(jù)的緩存和數(shù)據(jù)傳輸?shù)倪壿嬁刂。spartan3e是一款高性能低價(jià)格的可編程邏輯器件,具有豐富的邏輯單元和存儲(chǔ)單元。其內(nèi)部的blockram可以配置為大小不同的各種類型存儲(chǔ)器,如單口ram、雙口ram和同步fifo,其中fifo更適合作為a/d 采樣數(shù)據(jù)高速寫入的存儲(chǔ)器。fifo存儲(chǔ)器就像數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入、從另一頭流出,先進(jìn)入的數(shù)據(jù)先流出。fifo具有兩套數(shù)據(jù)線而無地址線,可在其一端寫操作而在另一端進(jìn)行讀操作,數(shù)據(jù)在其中順序移動(dòng),從而達(dá)到很高的傳輸速度和效率,且由于省去了地址線,有利于pcb板布線。
    
    采用fifo構(gòu)成高速a/d采樣緩存時(shí),由于轉(zhuǎn)換速度較快,如果直接將adc采樣后的數(shù)據(jù)存儲(chǔ)到fifo中,對(duì)時(shí)序配置要求非常嚴(yán)格,如果兩者時(shí)序關(guān)系配合不當(dāng),就會(huì)發(fā)生數(shù)據(jù)存儲(chǔ)出錯(cuò)或者掉數(shù)。利用fpga可以方便地控制時(shí)序和數(shù)據(jù)傳輸,簡(jiǎn)單、可靠地實(shí)現(xiàn)采樣和存儲(chǔ)是選用fpga的優(yōu)點(diǎn)。該數(shù)據(jù)采集系統(tǒng)中只采用了一個(gè)外部時(shí)鐘源,直接輸入到fpga,經(jīng)dcm分頻后作為fifo和adc的時(shí)鐘源。
    
    在軟件設(shè)計(jì)中,采用ise開發(fā)環(huán)境開發(fā)fpga時(shí),調(diào)用core generator來構(gòu)造fifo,可以設(shè)置fifo的參數(shù),如深度和寬度;設(shè)置fifo的各種標(biāo)志和控制位,如空滿、半滿全滿、半空全空、可編程滿和可編程空等標(biāo)志位;寫使能、讀使能等控制位,以便實(shí)現(xiàn)與高速a/d和dsp的邏輯接口。fifo的輸入輸出引腳如表所示:其中wr_en由dsp的gpio 口引出,控制數(shù)據(jù)是否寫入到fifo中,輸出引腳中只用到了prog_full即可與dsp進(jìn)行數(shù)據(jù)傳輸。
    
    fpga的作用除了構(gòu)造fifo以實(shí)現(xiàn)數(shù)據(jù)通道復(fù)用外,還可以作為協(xié)處理器進(jìn)行實(shí)時(shí)要求性高的數(shù)據(jù)預(yù)處理(如插值、取平均、fir濾波等),以減少dsp處理的數(shù)據(jù)量。設(shè)計(jì)中采用分布式算法的fir濾波,首先對(duì)adc轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行fir濾波,然后存入fifo中以等待dsp的讀取。 fpga代替asic和dsp作為前端數(shù)字信號(hào)處理的運(yùn)算,在規(guī)模、重量和功耗方面都有所降低,而且吞吐量更高,開發(fā)成本進(jìn)一步縮小。
    
    fpga設(shè)計(jì)中,需提供外部閃存來存儲(chǔ)fpga的下載文件,上電后數(shù)據(jù)會(huì)自動(dòng)下載到fpga內(nèi)部,以對(duì)fpga進(jìn)行配置。fpga有多種配置方式,包括主串、從串、主并、從并、spi、bpi,以及jtag等方式。串行方式即逐位串行配置,接線簡(jiǎn)單,但速度比較慢,并行方式即8位同時(shí)傳輸,速度快,但接線復(fù)雜。串行方式和并行方式都需要外加閃存作為配置文件的存儲(chǔ)器。設(shè)計(jì)中本文采用c6416的多通道緩存串行口(mcbsp)以spi方式對(duì)fpga進(jìn)行配置。
    
上一篇:開關(guān)電源的抗干擾問題
熱門點(diǎn)擊
- Xtreme PCB軟件允許多位工程師同時(shí)布
- ALLEGRO布線缺點(diǎn)之我見
- PCB LAYOUT技術(shù)大全---初學(xué)者必看
- RGB信號(hào)走表層還是地層?
- VHDL中Loop動(dòng)態(tài)條件的可綜合轉(zhuǎn)化
- 利用FPGA實(shí)現(xiàn)異步FIFO設(shè)計(jì)
- 統(tǒng)一的電路仿真驗(yàn)證平臺(tái)的設(shè)計(jì)
- 多芯片封裝:高堆層,矮外形
- PowerPCB修改整體文字大小
- 用等效性檢查驗(yàn)證連續(xù)改變
推薦技術(shù)資料
- 泰克新發(fā)布的DSA830
- 泰克新發(fā)布的DSA8300在一臺(tái)儀器中同時(shí)實(shí)現(xiàn)時(shí)域和頻域分析,DS... [詳細(xì)]
- 超低功耗角度位置傳感器參數(shù)技術(shù)
- 四路輸出 DC/DC 降壓電源
- 降壓變換器和升降壓變換器優(yōu)特點(diǎn)
- 業(yè)界首創(chuàng)可在線編程電源模塊 m
- 可編程門陣列 (FPGA)智能 電源解決方案
- 高效先進(jìn)封裝工藝
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究