<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 利用FPGA實(shí)現異步FIFO設計

利用FPGA實(shí)現異步FIFO設計

作者: 時(shí)間:2006-10-24 來(lái)源:網(wǎng)絡(luò ) 收藏

目前數據采集系統朝著(zhù)高速和高精度的方向發(fā)展。隨著(zhù)的集成度和運行速度的提高,可以滿(mǎn)足高速數據采集系統的需求。內部具有豐富的存儲單元,易于實(shí)現各種存儲器(如、雙口RAM等);另外,基于查找表的邏輯單元可用于實(shí)現各種數字信號處理(如濾波等),以輔助DSP處理器做各種預處理。

TI公司推出的高性能數字信號處理芯片TMS320C6000系列,工作頻率最高可達到1GHz,具有處理速度快、靈活、精確和可靠性高等優(yōu)點(diǎn),作為數據采集系統中的主處理器,可以滿(mǎn)足實(shí)時(shí)性的要求?;谝陨峡紤],北京合眾達公司開(kāi)發(fā)了采用TMS320C6416和的高速高精度雙通道數據采集系統,每個(gè)通道的采樣率為3Msps,最高可達10Msps,采樣精度為14b。系統主要包括以下幾部分:高速A/D轉換、數據緩存和EDMA數據傳輸,系統結構框圖如圖1所示。

AD9243及轉換控制

設計中采用的模數轉換器芯片是AD9243。AD9243是ADI公司生產(chǎn)的14位、3Msps高性能模數轉換器。AD9240與AD9243完全兼容,因此系統的最高采樣率可兼容到10Msps。

模數轉換器AD9243的時(shí)序控制與傳統的A/D有所不同,完全依靠時(shí)鐘控制采樣、轉換和數據輸出,在第一個(gè)時(shí)鐘的上升沿開(kāi)始采樣轉換,第四個(gè)時(shí)鐘上升沿到來(lái)時(shí),數據將出現在D1~D14端口上。本文采用系統自通電時(shí)起,A/D和時(shí)鐘電路始終處于工作狀態(tài),對數據不停進(jìn)行轉換,以減少誤碼率,提高采樣精度。

的實(shí)現及控制

設計中采用FPGA來(lái)實(shí)現雙通道數據的緩存和數據傳輸的邏輯控制。Spartan3E是一款高性能低價(jià)格的可編程邏輯器件,具有豐富的邏輯單元和存儲單元。其內部的BlockRam可以配置為大小不同的各種類(lèi)型存儲器,如單口RAM、雙口RAM和同步FIFO,其中FIFO更適合作為A/D 采樣數據高速寫(xiě)入的存儲器。FIFO存儲器就像數據管道一樣,數據從管道的一頭流入、從另一頭流出,先進(jìn)入的數據先流出。FIFO具有兩套數據線(xiàn)而無(wú)地址線(xiàn),可在其一端寫(xiě)操作而在另一端進(jìn)行讀操作,數據在其中順序移動(dòng),從而達到很高的傳輸速度和效率,且由于省去了地址線(xiàn),有利于PCB板布線(xiàn)。

采用FIFO構成高速A/D采樣緩存時(shí),由于轉換速度較快,如果直接將ADC采樣后的數據存儲到FIFO中,對時(shí)序配置要求非常嚴格,如果兩者時(shí)序關(guān)系配合不當,就會(huì )發(fā)生數據存儲出錯或者掉數。利用FPGA可以方便地控制時(shí)序和數據傳輸,簡(jiǎn)單、可靠地實(shí)現采樣和存儲是選用FPGA的優(yōu)點(diǎn)。該數據采集系統中只采用了一個(gè)外部時(shí)鐘源,直接輸入到FPGA,經(jīng)DCM分頻后作為FIFO和ADC的時(shí)鐘源。

在軟件設計中,采用ISE開(kāi)發(fā)環(huán)境開(kāi)發(fā)FPGA時(shí),調用Core Generator來(lái)構造FIFO,可以設置FIFO的參數,如深度和寬度;設置FIFO的各種標志和控制位,如空滿(mǎn)、半滿(mǎn)全滿(mǎn)、半空全空、可編程滿(mǎn)和可編程空等標志位;寫(xiě)使能、讀使能等控制位,以便實(shí)現與高速A/D和DSP的邏輯接口。FIFO的輸入輸出引腳如表所示:其中WR_EN由DSP的GPIO 口引出,控制數據是否寫(xiě)入到FIFO中,輸出引腳中只用到了PROG_FULL即可與DSP進(jìn)行數據傳輸。

FPGA的作用除了構造FIFO以實(shí)現數據通道復用外,還可以作為協(xié)處理器進(jìn)行實(shí)時(shí)要求性高的數據預處理(如插值、取平均、FIR濾波等),以減少DSP處理的數據量。設計中采用分布式算法的FIR濾波,首先對ADC轉換后的數據進(jìn)行FIR濾波,然后存入FIFO中以等待DSP的讀取。 FPGA代替ASIC和DSP作為前端數字信號處理的運算,在規模、重量和功耗方面都有所降低,而且吞吐量更高,開(kāi)發(fā)成本進(jìn)一步縮小。

FPGA設計中,需提供外部閃存來(lái)存儲FPGA的下載文件,上電后數據會(huì )自動(dòng)下載到FPGA內部,以對FPGA進(jìn)行配置。FPGA有多種配置方式,包括主串、從串、主并、從并、SPI、BPI,以及JTAG等方式。串行方式即逐位串行配置,接線(xiàn)簡(jiǎn)單,但速度比較慢,并行方式即8位同時(shí)傳輸,速度快,但接線(xiàn)復雜。串行方式和并行方式都需要外加閃存作為配置文件的存儲器。設計中本文采用C6416的多通道緩存串行口(McBSP)以SPI方式對FPGA進(jìn)行配置。


圖1:系統結構框圖

接口和控制電路的設計

系統的接口和控制電路主要包括以下兩個(gè)部分:

1. ADC與FIFO的接口電路

利用FPGA構造了兩個(gè)完全一樣的FIFO,將兩路A/D轉換數據分別送入兩個(gè)FIFO中,實(shí)現雙通道采樣數據的緩存和傳輸。設計中A/D 轉換時(shí)鐘和FIFO寫(xiě)時(shí)鐘為同一時(shí)鐘源,自上電起,A/D和時(shí)鐘電路一直處于工作狀態(tài),不停的進(jìn)行數據的轉換,但數據是否寫(xiě)入到FIFO中,由FIFO的寫(xiě)使能信號來(lái)決定,當DSP發(fā)出寫(xiě)使能信號有效時(shí),轉換數據才能存儲到FIFO中。從前面的A/D時(shí)序電路中可知,A/D轉換數據的輸出和轉換時(shí)鐘有一定的相位差,在FPGA內部可通過(guò)延時(shí)或時(shí)鐘管理器來(lái)滿(mǎn)足建立時(shí)間和保持時(shí)間,保證數據不失碼地傳輸到FIFO中。

2. FIFO與C6416的接口電路

C6416有兩個(gè)EMIF口,即EMIFA和EMIFB,其中EMIFA的總線(xiàn)寬度支持64b、32b、16b和8b,尋址空間為 1024Mb;EMFIB的總線(xiàn)寬度支持16b和8b,尋址空間為256Mb。本文采用EMIFB作為與FIFO的接口,其總線(xiàn)寬度配置為16b。 EMIFB可以與各種外部存儲器實(shí)現無(wú)縫接口,如SBSRAM、SDRAM、異步設備(包括SRAM、ROM和FIFO)和外部共享存儲設備等。設計中 EMFIB和FIFO的接口采用異步讀的方式,實(shí)現數據的可靠傳輸,即通過(guò)由/ARE和地址來(lái)實(shí)現對兩個(gè)同步FIFO的異步讀,其控制接口信號的連接關(guān)系為:

RD_CLK=/ARE

RD_EN1=A20

RD_EN2=A19


表1:FIFO的輸入輸出引腳定義

設計中將兩個(gè)FIFO的存儲空間都映射到EMIFB的BCE2中,當FIFO的可編程滿(mǎn)信號PROG_FULL有效時(shí),引發(fā)外部中斷,觸發(fā)EDMA 以實(shí)現數據的快速傳輸。由于FIFO不需要地址線(xiàn),可以通過(guò)簡(jiǎn)單的接口來(lái)產(chǎn)生EDMA的讀地址,實(shí)現EDMA分時(shí)讀兩個(gè)FIFO。異步讀FIFO必須滿(mǎn)足下列時(shí)序關(guān)系:


異步讀時(shí)序如圖2所示,其中EMFIB的時(shí)鐘可以是外部時(shí)鐘源,也可以是由CPU時(shí)鐘分頻獲得。設計中使用外部時(shí)鐘源,其頻率為133MHz,可以根據EMIFB的讀寫(xiě)控制寄存器配置Setup、Strobe和Hold的值。


圖2:異步讀時(shí)序圖

本文小結

本文系統地介紹了一種由數字信號處理器TMS320C6416、可編程邏輯器件Spartan3E構成的高速系統。實(shí)驗表明,系統具有抗干擾強、可靠性高、失碼率低等優(yōu)點(diǎn)。設計中采用了FPGA來(lái)構造FIFO,可根據不同的應用場(chǎng)合對FPGA編程以滿(mǎn)足設計要求,因此靈活性較大,是一種較好的高速數據采集方案。此外,采用了EDMA傳輸,適于在實(shí)時(shí)性要求較高的各種高速數據采集系統中應用。該數據采集卡采用標準擴展總線(xiàn)接口,可以與合眾達公司的DEC6000系列開(kāi)發(fā)板連接。

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: FPGA FIFO

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>