當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化

摘 要: 為了滿足高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)對(duì)所采集海量數(shù)據(jù)進(jìn)行緩存的要求,通過(guò)研究FIFO的基本工作原理,利用FPGA和DDR2 SDRAM設(shè)計(jì)了一種高速大容量異步FIFO。使用Xilinx提供的存儲(chǔ)器接口生成器(MIG)實(shí)現(xiàn)FPGA與DDR2的存儲(chǔ)器接口,并結(jié)合片上FIFO和相應(yīng)的控制模塊完成FIFO的基本框架結(jié)構(gòu)。詳細(xì)介紹了各個(gè)組成模塊的功能和原理,并設(shè)計(jì)了專門的測(cè)試模塊。
關(guān)鍵詞: 高速大容量異步FIFO; MIG; FPGA; DDR2 SDRAM

 異步FIFO作為數(shù)據(jù)緩存被廣泛應(yīng)用于高速實(shí)時(shí)數(shù)據(jù)采集、不同時(shí)鐘域之間的高性能數(shù)據(jù)傳輸以及多機(jī)處理等系統(tǒng)中[1]。如在視頻系統(tǒng)中用于視頻信號(hào)轉(zhuǎn)換、視頻分割和畫中畫電視[2]。在高速傳感信號(hào)實(shí)時(shí)檢測(cè)處理系統(tǒng)中用于數(shù)據(jù)緩存等。隨著微電子技術(shù)的發(fā)展,F(xiàn)IFO芯片也在向著高速、大容量、小體積、低成本的方向發(fā)展。特別是Xilinx FPGA 提供的FIFO IP核已經(jīng)能夠達(dá)到500 MHz的速率和4 MB的容量。這些都為FIFO的實(shí)際工程應(yīng)用提供了廣闊的空間。但是在某些價(jià)格敏感、要求海量數(shù)據(jù)緩存的高速系統(tǒng)中,出于價(jià)格和性能方面的考慮,大容量異步FIFO芯片并非這類設(shè)計(jì)的最佳選擇。FPGA具有工作速度高、可配置性強(qiáng)、靈活性好等突出優(yōu)點(diǎn),使用Xilinx FPGA 提供的免費(fèi)MIG IP核可以很容易實(shí)現(xiàn)FPGA與外部存儲(chǔ)器之間的接口,而DDR2 SDRAM具有單位空間存儲(chǔ)容量大、高數(shù)據(jù)帶寬、價(jià)格便宜等優(yōu)點(diǎn)。因此根據(jù)FIFO的基本原理,通過(guò)采用Xilinx FPGA器件和Micron公司的256MB DDR2 SDRAM MT4HTF3264HY-667設(shè)計(jì)并實(shí)現(xiàn)了一種異步FIFO。該FIFO具有價(jià)格相對(duì)便宜、高數(shù)據(jù)帶寬、容量大、數(shù)據(jù)位寬可以根據(jù)需要進(jìn)行相應(yīng)靈活配置等特點(diǎn),具有較高的工程實(shí)用價(jià)值。
1 大容量異步FIFO系統(tǒng)方案設(shè)計(jì)
設(shè)計(jì)主要由兩塊片上FIFO、兩塊數(shù)據(jù)位寬轉(zhuǎn)換模塊、FIFO控制器、DDR2 SDRAM控制器、時(shí)鐘模塊和外部的DDR2 SDRAM構(gòu)成[3]。其整體結(jié)構(gòu)框圖如圖1所示。

基本工作機(jī)理是當(dāng)WR_EN有效為高電平,輸入數(shù)據(jù)DIN[N:0]在WR_CLK的上升沿觸發(fā)下經(jīng)過(guò)“數(shù)據(jù)位寬轉(zhuǎn)換模塊1”之后輸出位寬為128 bit的數(shù)據(jù)寫入到位寬為128 bit,深度為2 K的“片上FIFO1”中。當(dāng)FIFO控制器檢測(cè)到“片上FIFO1”快滿時(shí),開始讀取其中的數(shù)據(jù),按照地址順序遞增的方式通過(guò)DDR2 SDRAM控制器寫入到DDR2 SDRAM中,直到“片上FIFO1”被取空。當(dāng)FIFO控制器檢測(cè)到“片上FIFO2”快空時(shí),通過(guò)DDR2 SDRAM控制器按照地址順序遞增讀取DDR2 SDRAM中的數(shù)據(jù),寫入到“片上FIFO2”中,直到“片上FIFO2”被寫滿為止。DDR2 SDRAM只有一組地址總線,而在該項(xiàng)設(shè)計(jì)中需要對(duì)DDR2 SDRAM進(jìn)行獨(dú)立的讀寫操作。為此,在FIFO控制器中定義了兩組地址總線用于分別記錄讀寫操作地址,當(dāng)FIFO控制器處于寫DDR2 SDRAM狀態(tài)時(shí),選通寫地址總線(wr_addr)與DDR2 SDRAM的地址總線(ddr2_addr)互聯(lián)。當(dāng)FIFO控制器處于讀DDR2 SDRAM狀態(tài)時(shí),選通讀地址總線(rd_addr)與DDR2 SDRAM的地址總線(ddr2_addr)互聯(lián)。另外為了保證讀數(shù)據(jù)有效,在FIFO控制器中設(shè)計(jì)有相應(yīng)的限制語(yǔ)句,只有當(dāng)讀地址(rd_addr)小于寫地址(wr_addr)時(shí),才允許讀DDR2 SDRAM中的數(shù)據(jù)。“片上FIFO2”的空滿標(biāo)志信號(hào)作為所設(shè)計(jì)的FIFO的空滿標(biāo)志信號(hào)。從外部看,該設(shè)計(jì)是一個(gè)具有標(biāo)準(zhǔn)接口的大容量異步FIFO,而不用關(guān)心其內(nèi)部操作。而且只需要對(duì)數(shù)據(jù)轉(zhuǎn)換模塊中的相關(guān)參數(shù)進(jìn)行簡(jiǎn)單的改動(dòng),便可以改變?cè)摯笕萘慨惒紽IFO的位寬(THE WIDTH)。
2 高速大容量異步FIFO設(shè)計(jì)
如圖1所示,設(shè)計(jì)主要集中在FPGA部分,包括數(shù)據(jù)位寬轉(zhuǎn)換模塊、FIFO控制器、時(shí)鐘模塊、DDR2 SDRAM控制器設(shè)計(jì)以及片上FIFO的定制。
2.1 DDR2 SDRAM控制器設(shè)計(jì)
存儲(chǔ)器控制器需要對(duì)包括存儲(chǔ)器控制狀態(tài)機(jī)在內(nèi)的所有構(gòu)建模塊加以集成??刂破鳡顟B(tài)機(jī)必須按正確順序發(fā)出命令,同時(shí)還要考慮存儲(chǔ)器器件的時(shí)序要求。而且存儲(chǔ)器控制器狀態(tài)機(jī)因存儲(chǔ)器架構(gòu)(DDR、DDR2、QDRII、RLDRAM等)、組數(shù)(BANK)、數(shù)據(jù)總線寬度、存儲(chǔ)器器件的寬度和深度、組和行存取算法等變量的不同而異。因此,創(chuàng)建存儲(chǔ)器控制器是一項(xiàng)極其復(fù)雜、精細(xì)的任務(wù)。
使用MIG(Memory Interface Generation)軟件工具[4]可以生成一個(gè)完整的設(shè)計(jì),減少了設(shè)計(jì)人員的工作量,簡(jiǎn)化了系統(tǒng)設(shè)計(jì)。設(shè)計(jì)人員通過(guò)在MIG GUI中設(shè)置系統(tǒng)和存儲(chǔ)器參數(shù),整個(gè)過(guò)程不用一分鐘,MIG工具即可生成存儲(chǔ)控制器有關(guān)的RTL和UCF文件。MIG設(shè)計(jì)流程如圖2所示。

設(shè)計(jì)采用Xilinx提供的免費(fèi)IP核 MIG2.3來(lái)設(shè)計(jì)DDR2 SDRAM控制器。所用FPGA為Virtex-5 FPGA XC5vlx110T??刂破髟砜驁D如圖3所示。

其中時(shí)鐘&復(fù)位模塊(Infrastructure)用于生成控制器所需要的各類時(shí)鐘和復(fù)位信號(hào),它的輸入時(shí)鐘可根據(jù)用戶需求選擇單端或差分時(shí)鐘信號(hào)輸入。延時(shí)控制單元(Idelay_ctrl)用于同步校準(zhǔn)設(shè)計(jì)中的延時(shí)單元以減少功耗。狀態(tài)控制單元(Ctrl)是控制器中的最關(guān)鍵單元,它生成DDR2 存儲(chǔ)器接口和用戶接口所必需的所有控制信號(hào)。物理層控制單元(Phy_top)是設(shè)計(jì)的物理層接口的頂層模塊,它封裝了FPGA 與 DDR2 SDRAM的物理接口信號(hào)。用戶接口單元(Usr_top)作為設(shè)計(jì)中的用戶接口,用于接收和存儲(chǔ)用戶數(shù)據(jù)、命令和地址信息。最終將復(fù)雜的DDR2 SDRAM訪問(wèn)操作封裝成簡(jiǎn)單的讀寫兩種操作。設(shè)計(jì)采用的Micron DDR2 SDRAM SODIMM MT4HTF3264HY-667容量為256MB、帶寬5.3 GB/S、數(shù)據(jù)位寬64 bit、含10位列地址線、13位行地址線和2位BANK地址線。上述MIG控制器右側(cè)信號(hào)端口用于連接DDR2 SDRAM物理引腳,右側(cè)信號(hào)端口用于連接輸入時(shí)鐘和來(lái)自FIFO控制器的數(shù)據(jù)和控制信號(hào)線。這些端口類型和位寬剛好與所選定的MT4HTF3264HY-667相匹配。
2.2 片上FIFO設(shè)計(jì)
所設(shè)計(jì)的FIFO數(shù)據(jù)輸入/輸出端與外界的數(shù)據(jù)傳輸、FPGA與DDR2 SDRAM間的通信分別屬于不同的時(shí)鐘域,設(shè)計(jì)中通過(guò)采用兩塊小容量片上FIFO[5]作為緩沖來(lái)實(shí)現(xiàn)他們之間的跨時(shí)鐘域數(shù)據(jù)傳輸。根據(jù)所選定DDR2 SDRAM的性能參數(shù),兩塊片上FIFO的數(shù)據(jù)位寬設(shè)置為128 bit,深度1 kHz。
2.3 FIFO控制器設(shè)計(jì)
FIFO控制器用于控制兩塊片上FIFO與DDR2 SDRAM之間的數(shù)據(jù)通信,其狀態(tài)轉(zhuǎn)移圖如圖4所示。由于DDR2 SDRAM具有很高的數(shù)據(jù)帶寬,MT4HTF3264-667的帶寬為5.3 GB/S。遠(yuǎn)大于FIFO1輸入/輸出端的數(shù)據(jù)帶寬。所以FIFO控制器根據(jù)兩塊片上FIFO的數(shù)據(jù)量狀況,對(duì)DDR2 SDRAM總線進(jìn)行分時(shí)復(fù)用。

該狀態(tài)機(jī)工作過(guò)程為:
(1)系統(tǒng)上電或復(fù)位后,狀態(tài)機(jī)進(jìn)入空閑狀態(tài)(idle),在該狀態(tài)下輸入端片上FIFO1讀使能信號(hào)(rd_en_wrfifo)、輸出端片上FIFO2寫使能信號(hào)(wr_en_rdfifo),DDR2 SDRAM控制器的用戶地址FIFO使能信號(hào)(app_af_wren),用戶數(shù)據(jù)FIFO使能信號(hào)(app_wdf_wren)均無(wú)效。
(2)在空閑狀態(tài)下,當(dāng)檢測(cè)到輸入端片上FIFO1幾乎滿,并且DDR2 SDRAM控制器初始化完畢,控制器發(fā)送寫DDR2 SDRAM命令(cmd =3’b000)。將讀到的數(shù)據(jù)直接寫入DDR2 SDRAM由于DDR2 SDRAM控制器突發(fā)長(zhǎng)度為4,地址總線按4累加。當(dāng)檢測(cè)到片上FIFO1被取空時(shí),回到空閑狀態(tài)。
(3)在空閑狀態(tài),當(dāng)檢測(cè)到輸出端片上FIFO2幾乎空,并且沒(méi)有檢測(cè)到輸入端片上FIFO1幾乎滿時(shí),開始讀DDR2 SDRAM中的數(shù)據(jù),并將讀出的數(shù)據(jù)寫入到輸出端片上FIFO2。待FIFO2寫滿后,回到空閑狀態(tài)。
2.4 時(shí)鐘模塊設(shè)計(jì)
控制器所需要的系統(tǒng)時(shí)鐘(sys_clk)和200 MHz時(shí)鐘(idly_clk_200)由外部33 MHz時(shí)鐘信號(hào)通過(guò)FPGA的全局時(shí)鐘網(wǎng)絡(luò)后,分別輸入到兩個(gè)定制好的DCM后輸出生成。
2.5 數(shù)據(jù)位寬轉(zhuǎn)換模塊設(shè)計(jì)
該模塊用于匹配N位的輸入/輸出數(shù)據(jù)位寬和兩個(gè)片上FIFO的128 bit數(shù)據(jù)位寬,實(shí)現(xiàn)所設(shè)計(jì)的大容量異步FIFO位寬可配置功能。輸入端數(shù)據(jù)位寬轉(zhuǎn)換模塊的基本工作機(jī)理是將在WR_CLK時(shí)鐘作用下連續(xù)輸入的128/N個(gè)數(shù)據(jù)按先后順序由高到低組成128 bit數(shù)據(jù)輸出到片上FIFO1的數(shù)據(jù)輸入端口,同時(shí)生成一個(gè)時(shí)鐘上升沿作為FIFO1的寫時(shí)鐘,將該128 bit寬數(shù)據(jù)寫入到片上FIFO1中。輸出端數(shù)據(jù)位寬轉(zhuǎn)換模塊將從片上FIFO2讀到的128 bit寬數(shù)據(jù)是由高到低依次拆分為128/N個(gè)N位寬數(shù)據(jù),并且在RD_CLK上升沿先后輸出這些數(shù)據(jù)。當(dāng)這些數(shù)據(jù)輸出完畢后,該模塊輸出一個(gè)上升沿脈沖作為輸出端片上FIFO2的讀時(shí)鐘信號(hào),讀取下一個(gè)128 bit寬的數(shù)據(jù)。
3 實(shí)驗(yàn)測(cè)試
為了測(cè)試系統(tǒng)的性能,設(shè)計(jì)了專門的測(cè)試系統(tǒng)對(duì)所設(shè)計(jì)的FIFO進(jìn)行測(cè)試,如圖5所示。

基本工作機(jī)理是,在FPGA內(nèi)部定制一塊存有4KB已知數(shù)據(jù)的嵌入式ROM。該ROM在時(shí)鐘CLK和循環(huán)地址計(jì)數(shù)器的作用下輸出數(shù)據(jù)流,該數(shù)據(jù)流經(jīng)過(guò)待驗(yàn)證的FIFO緩存后,通過(guò)串口發(fā)送到上位機(jī)上顯示。通過(guò)比較上位機(jī)接收到的數(shù)據(jù)與ROM中存儲(chǔ)的數(shù)據(jù)是否一致,便可以判斷系統(tǒng)設(shè)計(jì)是否正確。
分別對(duì)不同位寬的FIFO,通過(guò)改變ROM的時(shí)鐘CLK模擬生成FIFO的高低速率輸入數(shù)據(jù)流,進(jìn)行反復(fù)的實(shí)驗(yàn)測(cè)試,結(jié)果表明上位機(jī)上接收到的數(shù)據(jù)與ROM中存儲(chǔ)的數(shù)據(jù)是一致的。
參考文獻(xiàn)
[1] 金明,羅飛路,朱霞飛.FIFO芯片在高速系統(tǒng)中的應(yīng)用[J].電子技術(shù)應(yīng)用,1998,24(3):61-62.
[2] 郭照南,李儒峰.FIFO 芯片AL422B在視頻系統(tǒng)中的應(yīng)用[J].湖南工程學(xué)院學(xué)報(bào), 2002,12(1):37-38.
[3] 徐欣,周舟,李楠,等.基于DDR2 SDRAM的高速大容量異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)測(cè)試,2009,35(6):34-37.
[4] Memory interface solutions user guide. http://www.xilinx.com/support/documentation/ip_documentation/ug086.pdf.
[5] LogiCORE? IP FIFO Generator v6.2. http://www.xilinx.com/support/documentation/ip_documentation/fifo_generator_ug175.pdf.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉