張玉平, 葉圣江
(1. 成都工業(yè)學(xué)院 通信工程學(xué)院, 成都 611730; 2. 成都盟升科技有限公司 遙感事業(yè)部, 成都 611731)
基于FPGA的虛擬FIFO改進(jìn)設(shè)計(jì)*
張玉平1, 葉圣江2
(1. 成都工業(yè)學(xué)院 通信工程學(xué)院, 成都 611730; 2. 成都盟升科技有限公司 遙感事業(yè)部, 成都 611731)
為了降低網(wǎng)絡(luò)接口緩存設(shè)計(jì)的開(kāi)發(fā)難度和復(fù)雜度,對(duì)現(xiàn)有基于FPGA的DDR2虛擬FIFO設(shè)計(jì)進(jìn)行了改進(jìn).提出了以FPGA(EP4CGX150F672)為核心、DDR2(MT47H128M16RT-25E)為數(shù)據(jù)緩存、采用Qsys系統(tǒng)互聯(lián)及IPCORE輔助搭建設(shè)計(jì)的改進(jìn)方案,實(shí)現(xiàn)了DVB-IP分組TS流的快速緩存,平滑IP網(wǎng)絡(luò)抖動(dòng),避免了數(shù)據(jù)碼流丟失和延遲過(guò)大的問(wèn)題.該設(shè)計(jì)方案在降低傳統(tǒng)設(shè)計(jì)難度和復(fù)雜度的背景下,具有良好的存儲(chǔ)器兼容性,同時(shí)具有系統(tǒng)資源豐富、容量大、成本低和開(kāi)發(fā)周期短等優(yōu)點(diǎn),在眾多DVB行業(yè)的設(shè)備中使用后效果良好.
現(xiàn)場(chǎng)可編程門陣列; 雙倍速率; 先入先出隊(duì)列; 系統(tǒng)互聯(lián); 知識(shí)產(chǎn)權(quán)核; 網(wǎng)絡(luò)抖動(dòng); 碼流; 節(jié)目參考時(shí)鐘
目前,在DVB業(yè)界中的網(wǎng)關(guān)、加擾機(jī)、編碼機(jī)及調(diào)制解調(diào)設(shè)備等采用千兆級(jí)以太網(wǎng)作為交互接口,要完成大容量數(shù)據(jù)簡(jiǎn)單方便的緩存,大多采用板載FIFO、SRAM、SDRAM或DDR顆粒芯片的方案[1-3],而在一些對(duì)存儲(chǔ)資源要求不高但是對(duì)存儲(chǔ)響應(yīng)速度要求高的應(yīng)用中[4],大多使用FPGA內(nèi)部的存儲(chǔ)器資源.這些方案都有一個(gè)共同點(diǎn),即存儲(chǔ)容量有限,在大容量實(shí)時(shí)數(shù)據(jù)緩存的實(shí)際應(yīng)用中,其往往會(huì)成為制約性能提高的因素.以Cypress推出的板載FIFO顆粒芯片為例,現(xiàn)階段單顆芯片的容量?jī)H為72 Mb,而Micron推出的SDRAM顆粒芯片容量也僅能做到512 Mb[5].若采用容量大、成本低廉的DDR2方案,使用傳統(tǒng)的設(shè)計(jì)方法不僅開(kāi)發(fā)周期長(zhǎng),而且會(huì)增加設(shè)計(jì)難度與復(fù)雜度,從而不能使研發(fā)產(chǎn)品盡快推向并占有市場(chǎng).現(xiàn)階段Micron推出的DDR2顆粒芯片容量最大能做到4 Gb,若采用一種相對(duì)于傳統(tǒng)設(shè)計(jì)較簡(jiǎn)便的方法,便可以更快速地將DDR2應(yīng)用在DVB業(yè)界的各類產(chǎn)品中,將在很大程度上增強(qiáng)該類產(chǎn)品在行業(yè)中的競(jìng)爭(zhēng)力與生命力.因此,本文提出了一種基于FPGA Qsys的DDR2虛擬FIFO的改進(jìn)設(shè)計(jì)方案,不僅降低了設(shè)計(jì)的難度和復(fù)雜度,而且大大縮短了設(shè)計(jì)開(kāi)發(fā)周期,實(shí)際應(yīng)用效果好.
傳統(tǒng)設(shè)計(jì)方法框圖如圖1所示,通常采用Altmemphy控制器IPcore驅(qū)動(dòng)片外存儲(chǔ)芯片,數(shù)據(jù)存取協(xié)調(diào)模塊直接與Altmemphy控制器IPcore用戶接口交互的設(shè)計(jì)方法.
圖1 傳統(tǒng)DDR2虛擬FIFO的設(shè)計(jì)方法框圖
圖1中系統(tǒng)結(jié)構(gòu)框圖從左往右依次包括n通道的數(shù)據(jù)輸入緩存FIFO IPcore、數(shù)據(jù)存取協(xié)調(diào)及n通道的數(shù)據(jù)輸出緩存FIFO IPcore,在數(shù)據(jù)存取協(xié)調(diào)模塊上方是Altmemphy控制器IPcore[5-6].該種設(shè)計(jì)方法的難點(diǎn)主要在Altmemphy控制器IP和數(shù)據(jù)存取協(xié)調(diào)模塊的設(shè)計(jì),Altmemphy控制器IPcore完成片外存儲(chǔ)芯片接口到相對(duì)簡(jiǎn)單的用戶接口的轉(zhuǎn)換,數(shù)據(jù)存取協(xié)調(diào)模塊完成數(shù)據(jù)輸入、輸出緩存FIFO接口與Altmemphy控制器IPcore用戶接口間數(shù)據(jù)的協(xié)調(diào)存取.對(duì)于虛擬FIFO設(shè)計(jì)的外部接口包括專用存儲(chǔ)器IPcore接口、標(biāo)準(zhǔn)讀或?qū)慒IFO數(shù)據(jù)操作接口,因此用戶或開(kāi)發(fā)者完全可將其當(dāng)作FIFO來(lái)進(jìn)行數(shù)據(jù)緩存使用.
由以上分析可知,雖然設(shè)計(jì)難度相對(duì)較小,但是當(dāng)外部的存儲(chǔ)芯片發(fā)生替換后,設(shè)計(jì)也會(huì)隨之大做改動(dòng),包括用戶端接口和數(shù)據(jù)存取協(xié)調(diào)模塊都要做更改,兼容性與可重用性差.對(duì)傳統(tǒng)DDR2虛擬FIFO的改進(jìn)設(shè)計(jì)如圖2所示.
圖2 DDR2虛擬FIFO的改進(jìn)設(shè)計(jì)方法框圖
該方法較傳統(tǒng)設(shè)計(jì)的不同之處在于Altmemphy控制器IPcore的接口設(shè)計(jì)在Qsys環(huán)境中完成[7].對(duì)于其余類型的存儲(chǔ)芯片只需更換不同存儲(chǔ)器控制器IPcore即可,在Qsys中完成簡(jiǎn)單的互聯(lián)操作,也即是地址映射,而不對(duì)數(shù)據(jù)存取協(xié)調(diào)模塊進(jìn)行代碼級(jí)的更改,僅僅根據(jù)不同存儲(chǔ)器的位寬、容量進(jìn)行參數(shù)化的匹配設(shè)置即可,體現(xiàn)了該設(shè)計(jì)方法強(qiáng)大的存儲(chǔ)兼容性.對(duì)于前級(jí)數(shù)據(jù)發(fā)送模塊和后級(jí)數(shù)據(jù)接收模塊而言,該設(shè)計(jì)的對(duì)外用戶接口僅為通用FIFO接口,完全屏蔽了復(fù)雜、多變的外部存儲(chǔ)器芯片接口.
Altmemphy控制器IPcore、主動(dòng)寫(xiě)IPcore、主動(dòng)讀IPcore的互聯(lián)在Qsys中完成,針對(duì)不同的存儲(chǔ)器芯片配合相應(yīng)的Altmemphy控制器IPcore,主動(dòng)寫(xiě)IPcore、主動(dòng)讀IPcore能很好地兼容同一用戶接口,且在Qsys中完成Altmemphy控制器IPcore與主動(dòng)寫(xiě)IPcore、主動(dòng)讀IPcore的互聯(lián),僅僅需要在配置界面簡(jiǎn)單配置參數(shù)、連線即可[7].
對(duì)于數(shù)據(jù)輸入、輸出的處理,采用FPGA硬件存儲(chǔ)器資源完成FIFO的功能,解決了前級(jí)數(shù)據(jù)發(fā)送模塊、后級(jí)數(shù)據(jù)接收模塊與數(shù)據(jù)存取協(xié)調(diào)模塊間跨時(shí)鐘域的問(wèn)題.FPGA內(nèi)部的FIFO完全可由用戶參數(shù)實(shí)例化,接口簡(jiǎn)潔、通用,用戶可以配置最適合的接口用于設(shè)計(jì),很大程度上降低了設(shè)計(jì)的復(fù)雜度[8].
圖3為改進(jìn)設(shè)計(jì)關(guān)鍵部分框圖,結(jié)合系統(tǒng)改進(jìn)設(shè)計(jì)原理可知,關(guān)鍵的模塊是Qsys中的Altmemphy控制器IPcore、主動(dòng)寫(xiě)IPcore、主動(dòng)讀IPcore和數(shù)據(jù)存取協(xié)調(diào)的相互配合設(shè)計(jì),其中Clk和Reset模塊為Qsys系統(tǒng)互聯(lián)設(shè)計(jì)提供必要的時(shí)鐘和復(fù)位信號(hào).相對(duì)于傳統(tǒng)的設(shè)計(jì)方法,該設(shè)計(jì)的優(yōu)越性體現(xiàn)在采用了Qsys提供的強(qiáng)大系統(tǒng)互聯(lián)架構(gòu),一方面,該架構(gòu)將很大程度上簡(jiǎn)化Altmemphy控制器IPcore用戶接口與數(shù)據(jù)存取協(xié)調(diào)模塊的互聯(lián),采用了Qsys提供的avalon-MM Master IPcore完成Altmemphy控制器IPcore與存取協(xié)調(diào)模塊的橋接;另一方面,該架構(gòu)中采用avalon-MM Master IPcore具備強(qiáng)大的系統(tǒng)兼容性,用戶只需考慮IPcore與外設(shè)接口的設(shè)計(jì)以及存取協(xié)調(diào)模塊的參數(shù)化配置.該改進(jìn)設(shè)計(jì)方法可輕松移植到其他類似存儲(chǔ)器的設(shè)計(jì)中,例如PCI、PCIe、SRIO、SDRAM、SRAM及DDR等[7,9-10].
由于采用了Qsys強(qiáng)大的系統(tǒng)互聯(lián)架構(gòu)[7],很大程度上增強(qiáng)了設(shè)計(jì)的兼容性優(yōu)勢(shì),結(jié)合采用參數(shù)化設(shè)計(jì)描述數(shù)據(jù)存取的協(xié)調(diào)模塊,當(dāng)外部的存儲(chǔ)器芯片發(fā)生替換后,則只需考慮Qsys中avalon-MM Master IPcore和數(shù)據(jù)存取協(xié)調(diào)模塊的參數(shù)化
圖3 DDR2虛擬FIFO的改進(jìn)設(shè)計(jì)關(guān)鍵部分框圖
配置,且Qsys能提供功能強(qiáng)大、簡(jiǎn)明的用戶界面,很方便用戶使用.相對(duì)于傳統(tǒng)設(shè)計(jì)方法,減少了用戶對(duì)代碼的修改,保持了優(yōu)越的設(shè)計(jì)兼容性.
由以上設(shè)計(jì)系統(tǒng)分析可知,采用改進(jìn)的設(shè)計(jì)方法可獲得優(yōu)越的設(shè)計(jì)兼容性,設(shè)計(jì)方法簡(jiǎn)便、先進(jìn).改進(jìn)設(shè)計(jì)方法的重點(diǎn)在于Qsys中系統(tǒng)互聯(lián)和參數(shù)化數(shù)據(jù)存取協(xié)調(diào)模塊的設(shè)計(jì).
在Qsys設(shè)計(jì)中會(huì)用到Controller with ALTMEMPHY IPcore和avalon-MM Master IPcore,由于Controller with ALTMEMPHY IP針對(duì)不同的片外存儲(chǔ)器芯片(本設(shè)計(jì)針對(duì)DDR2,因此采用DDR2 SDRAM Controller with ALTMEMPHY IPcore)會(huì)使用不同的IPcore進(jìn)行設(shè)計(jì),沒(méi)有針對(duì)性,因此,重點(diǎn)對(duì)avalon-MM Master IPcore的Read Master做介紹說(shuō)明,Write Master類同.
avalon-MM Master IPcore的主要功能是將各類Controller with ALTMEMPHY IPcore的用戶接口統(tǒng)一為相對(duì)固定的讀寫(xiě)控制和讀寫(xiě)FIFO接口,這樣可以保持用戶邏輯接口的兼容性.將用戶關(guān)心的設(shè)計(jì)集中在用戶邏輯和Controller with ALTMEMPHY IPcore的設(shè)計(jì)上,圖4為avalon-MM Master IPcore的Read Master功能框圖.
Read Master的配置如圖5所示,該IPcore只需配置7個(gè)參數(shù),圖5右側(cè)自上而下依次是:Master Direction(對(duì)IPcore的讀、寫(xiě)工作模式進(jìn)行配置)、Data Width(對(duì)IPcore的數(shù)據(jù)位寬進(jìn)行設(shè)置)、Address Width(對(duì)IP的地址位寬進(jìn)行設(shè)置)、Burst Capable(對(duì)IPcore的突發(fā)傳輸能力進(jìn)行設(shè)置)、Maximum Burst Count(對(duì)IPcore的突發(fā)傳輸數(shù)據(jù)量進(jìn)行設(shè)置)、FIFO Depth(對(duì)IPcore的FIFO深度進(jìn)行設(shè)置)、Memory based FIFO(對(duì)IPcore的FIFO基于FPGA存儲(chǔ)器資源構(gòu)成的類型進(jìn)行設(shè)置),圖5中的參數(shù)值為本設(shè)計(jì)中所采用的配置值.同理,Write Master功能模式的配置也大致相同.Qsys系統(tǒng)互聯(lián)界面簡(jiǎn)潔直觀,極大簡(jiǎn)化了設(shè)計(jì)的復(fù)雜度,設(shè)計(jì)者只需在Qsys的引導(dǎo)下完成各模塊間的互聯(lián)即可.
圖4 Read Master功能框圖
圖5 avalon-MM Read Master配置界面
其次的關(guān)鍵是對(duì)數(shù)據(jù)協(xié)調(diào)模塊的設(shè)計(jì),設(shè)計(jì)中推薦采用參數(shù)化的設(shè)計(jì)方法,本設(shè)計(jì)的可配置參數(shù)如下:
USER_DATA_CHANNEL_AMOUNT_SQRT=3,USER_DATA_CHANNEL_AMOUNT=2**USER_DATA_CHANNEL_AMOUNT_SQRT,//數(shù)據(jù)流通道數(shù)8;
USER_FIFO_INNER_DEPTH_SQRT=8,USER_FIFO_INNER_DEPTH=2**USER_FIFO_INNER_DEPTH_SQRT,//FIFO對(duì)內(nèi)接口的數(shù)據(jù)位寬為256;
LOCAL_ADDR_WIDTH=24,//Qsys系統(tǒng)模塊地址寬度;
LOCAL_DATA_WIDTH_SQRT=6,
LOCAL_DATA_WIDTH=2**LOCAL_DATA_WIDTH_SQRT,//Qsys系統(tǒng)模塊數(shù)據(jù)寬度;
LOCAL_ADDR_INCREASE=2**(LOCAL_ADDR_WIDTH-USER_DATA_CHANNEL_AMOUNT_SQRT),
DDR2_REFRESH_COUNTER=10′d780,//DDR2刷新周期數(shù);
當(dāng)片外存儲(chǔ)器芯片發(fā)生替換時(shí),只需根據(jù)Qsys系統(tǒng)互聯(lián)架構(gòu)設(shè)計(jì)進(jìn)行改動(dòng),更改Qsys系統(tǒng)模塊地址寬度和Qsys系統(tǒng)模塊數(shù)據(jù)寬度,不會(huì)發(fā)生大部分的代碼修改即可完成兼容性設(shè)計(jì),大大提高了設(shè)計(jì)的可重用性.
數(shù)據(jù)協(xié)調(diào)模塊的設(shè)計(jì)推薦采用狀態(tài)機(jī)來(lái)描述,本設(shè)計(jì)的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖如圖6所示.由設(shè)計(jì)思路結(jié)合上圖中狀態(tài)間銜接關(guān)系可知,狀態(tài)S0為初始狀態(tài),主要完成各寄存器的初始化;狀態(tài)S1~S6完成數(shù)據(jù)輸入通道數(shù)據(jù)的緩存;狀態(tài)S7~S10主要完成已緩存數(shù)據(jù)的讀取輸出,各狀態(tài)間相互配合、銜接共同完成數(shù)據(jù)協(xié)調(diào)模塊的功能.
圖6 數(shù)據(jù)協(xié)調(diào)模塊的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖
Quartus Ⅱ中SignalTap Ⅱ Logic Analyzer抓取數(shù)據(jù)存取協(xié)調(diào)模塊與輸入、輸出緩存FIFO接口及Altmemphy控制器接口進(jìn)行數(shù)據(jù)存取交互的在線時(shí)序圖如圖7所示.由圖可知,不同通道的測(cè)試數(shù)據(jù)不斷地向虛擬FIFO通道遍歷寫(xiě)入數(shù)據(jù),然后數(shù)據(jù)存取協(xié)調(diào)模塊將各通道的數(shù)據(jù)流通過(guò)Qsys互聯(lián)和Altmemphy控制器IPcore向板載DDR2存儲(chǔ)顆粒寫(xiě)入、緩存并讀出,將讀出的數(shù)據(jù)與寫(xiě)入的數(shù)據(jù)做對(duì)比,根據(jù)對(duì)比結(jié)果來(lái)判斷設(shè)計(jì)的正確性.對(duì)比結(jié)果可通過(guò)監(jiān)測(cè)verify_ok信號(hào)的狀態(tài),若在整個(gè)存取過(guò)程中verify_ok信號(hào)為高電平,即可判斷整個(gè)設(shè)計(jì)的正確性,反之則為出現(xiàn)了數(shù)據(jù)存取錯(cuò)誤的情況.利用Quartus Ⅱ SignalTap Ⅱ Logic Analyzer的單次條件觸發(fā)功能,可通過(guò)監(jiān)測(cè)該信號(hào)對(duì)設(shè)計(jì)進(jìn)行長(zhǎng)時(shí)間測(cè)試,圖中verify_ok信號(hào)在寫(xiě)入與讀出的數(shù)據(jù)過(guò)程中一直為高電平.
圖7 抓取數(shù)據(jù)存取過(guò)程的時(shí)序概括圖
圖7(圖8、9同)中信號(hào)定義自上而下依次是:輸入FIFO讀請(qǐng)求、輸入FIFO讀數(shù)據(jù)、本地端寫(xiě)請(qǐng)求、本地端寫(xiě)數(shù)據(jù)請(qǐng)求、本地端寫(xiě)數(shù)據(jù)、本地端讀請(qǐng)求、本地端讀數(shù)據(jù)有效、本地端讀數(shù)據(jù)、本地端地址、輸出FIFO寫(xiě)請(qǐng)求、輸出FIFO寫(xiě)數(shù)據(jù)、狀態(tài)跳轉(zhuǎn)和校驗(yàn)信號(hào).
圖8、9為寫(xiě)入與讀出數(shù)據(jù)局部時(shí)序圖,為將寫(xiě)入與讀出的數(shù)據(jù)做對(duì)比,可寫(xiě)入一個(gè)數(shù)據(jù)為64′h474619C5474619C4,讀出數(shù)據(jù)也為該數(shù)據(jù),可證明數(shù)據(jù)的準(zhǔn)確性.
圖8 寫(xiě)入數(shù)據(jù)局部時(shí)序圖
圖9 讀出數(shù)據(jù)局部時(shí)序圖
圖10、11為采用該設(shè)計(jì)平滑IP網(wǎng)絡(luò)抖動(dòng)前后的實(shí)測(cè)對(duì)比圖,圖10為未采用數(shù)據(jù)緩存,經(jīng)ETHERNET傳入的DVB-IP分組TS流數(shù)據(jù)的實(shí)測(cè)截圖以及PCR抖動(dòng)直方圖,圖11為采用了設(shè)計(jì)緩存,輸入的TS流數(shù)據(jù)的實(shí)測(cè)截圖以及PCR
圖10 未采用緩存的截圖和直方圖
圖11 采用緩存的截圖和直方圖
抖動(dòng)直方圖.按照對(duì)應(yīng)的碼流速率經(jīng)碼流分析儀播放進(jìn)行對(duì)比,很明顯可見(jiàn)圖10的圖像清晰度和PCR抖動(dòng)分布均相對(duì)于圖11較差,圖10存在圖像重疊現(xiàn)象,而圖11無(wú)明顯不清晰的情況.圖10 PCR抖動(dòng)分布較圖11分散,且圖11以平均PCR精度-2優(yōu)于圖10平均精度37,在同一精度的最大IP包數(shù)中,圖11以9 114包多于圖10的6 820包.
由此可知,基于FPGA的DDR2虛擬FIFO改進(jìn)設(shè)計(jì)方法的正確性和合理性.基于目前DDR2存儲(chǔ)技術(shù)早已普及,所能提供的存儲(chǔ)容量能滿足絕大部分需大容量緩存項(xiàng)目的需要,因此將這種設(shè)計(jì)方法使用在DVB行業(yè)的眾多設(shè)備中,其強(qiáng)大的設(shè)計(jì)兼容性會(huì)得到眾多用戶、開(kāi)發(fā)者和可編程邏輯設(shè)計(jì)師的青睞.
綜上所述,隨著FPGA在實(shí)際工程應(yīng)用中的大力普及,用戶和開(kāi)發(fā)者可以選擇多種解決技術(shù)問(wèn)題的途徑.基于FPGA的DDR2虛擬FIFO改進(jìn)設(shè)計(jì)方法就是在FPGA中利用Qsys強(qiáng)大的系統(tǒng)互聯(lián)功能,對(duì)傳統(tǒng)的DDR2虛擬FIFO設(shè)計(jì)方法的改進(jìn).該改進(jìn)設(shè)計(jì)方法的可行性、兼容性相比于傳統(tǒng)的設(shè)計(jì)方法均有很大程度的提高,達(dá)到了預(yù)期的改進(jìn)設(shè)計(jì)要求,降低了整個(gè)系統(tǒng)開(kāi)發(fā)的難度.
[1]庾志衡,葉俊明,鄧迪文.基于FPGA與DDR2 SDRAM的大容量異步FIFO緩存設(shè)計(jì) [J].微型機(jī)與應(yīng)用,2011,30(4):34-36.
(YU Zhi-heng,YE Jun-ming,DENG Di-wen.A design of high speed and deep asynchronous FIFO based on FPGA and DDR2 SDRAM [J].Microcomputer & Its Applications,2011,30(4):34-36.)
[2]徐欣,周舟,李楠,等.基于DDR2 SDRAM的高速大容量異步FIFO的設(shè)計(jì)與實(shí)現(xiàn) [J].中國(guó)測(cè)試,2009,35(6):34-37.
(XU Xin,ZHOU Zhou,LI Nan,et al.Design and realization of high speed and deep asynchronous FIFO based on DDR2 SDRAM [J].China Measurement & Test,2009,35(6):34-37.)
[3]萬(wàn)鵬,楊大偉.基于FPGA的視頻疊加融合系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].電子技術(shù)應(yīng)用,2013,39(9):44-46.
(WAN Peng,YANG Da-wei.Design and implementation of video image superimposed fusion system based on FPGA [J].Application of Electronic Technique,2013,39(9):44-46.)
[4]常麗,許會(huì),孫明杰.光柵信號(hào)單譜線細(xì)分算法實(shí)現(xiàn) [J].沈陽(yáng)工業(yè)大學(xué)學(xué)報(bào),2013,35(3):323-328.
(CHANG Li,XU Hui,SUN Ming-jie.Implentation of subdivision algorithm of single spectral line for grating signal [J].Journal of Shenyang University of Technology,2013,35(3):323-328.)
[5]房國(guó)志,王康.高速視頻系統(tǒng)中一種異步FIFO緩存設(shè)計(jì) [J].哈爾濱理工大學(xué)學(xué)報(bào),2012,17(6):102-105.
(FANG Guo-zhi,WANG Kang.A kind of asynchronous FIFO buffer of high speed video system [J].Journal of Harbin University of Science and Technology,2012,17(6):102-105.)
[6]張奇山,劉安芝,劉希順.基于FPGA的FIFO設(shè)計(jì)和應(yīng)用 [J].現(xiàn)代科學(xué)技術(shù),2009,18(1):50-52.
(ZHANG Qi-shan,LIU An-zhi,LIU Xi-shun.Design of application of FIFO based on FPGA [J].Modern Electronics Technique,2009,18(1):50-52.)
[7]AET.全方位解析Qsys系統(tǒng)集成工具——幫您解決三大尖銳問(wèn)題 [J].電子技術(shù)應(yīng)用,2012,38(5):6.
(AET.Comprehensive analytical Qsys system integration tool:help you to solve the three tough problems [J].Application of Electronic Technique,2012,38(5):6.)
[8]劉少華,陳明義.基于FPGA的高速海量FIFO的設(shè)計(jì) [J].信息技術(shù),2009,33(9):95-97.
(LIU Shao-hua,CHEN Ming-yi.Design of high speed and great capacity FIFO based on FPGA [J].Information Technology,2009,33(9):95-97.)
[9]向興富,袁玉群,譚亞軍.基于FPGA的DDR2 SDRAM數(shù)據(jù)存儲(chǔ)研究 [J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,27(2):70-73.
(XIANG Xing-fu,YUAN Yu-qun,TAN Ya-jun.A design of data storage research base on FPGA DDR2 SDRAM. [J].Journal of Guizhou University(Natural Sciences),2010,27(2):70-73.)
[10]呂衛(wèi),葛長(zhǎng)寬,宋垣.基于FPGA的數(shù)字電視廣播IP網(wǎng)關(guān)設(shè)計(jì) [J].電視技術(shù),2013,37(22):37-39.
(Lü Wei,GE Chang-kuan,SONG Yuan.Design of IP gateway for digital TV broadcasting based on FPGA platform [J].Video Engineering,2013,37(22):37-39.)
(責(zé)任編輯:景勇英文審校:尹淑英)
Improved design of virtual FIFO based on FPGA
ZHANG Yu-ping1, YE Sheng-jiang2
(1. School of Communication Engineering, Chengdu Technological University, Chengdu 611730, China; 2. Remote Sensing Department, M&S Technology Co. Ltd., Chengdu 611731, China)
In order to reduce the development difficulty and complexity of network interface buffer design, the design of DDR2 virtual FIFO based on FPGA was improved. An improved scheme, which taking FPGA (EP4CGX150F672) as the core and DDR2 (MT47H128M16RT-25E) as the data cache, and adopting Qsys system interconnection and IPCORE auxiliary building design, was proposed. The fast cache of DVB-IP packet TS flow is realized, and the IP network jitter is smoothed. In addition, the loss of data code flow and the problem of too large delay can be avoided. Under the background of reducing the difficulty and complexity of traditional design, the proposed design scheme has good memory compatibility, possesses such advantages as rich system resources, large capacity, low cost and short development cycle, and exhibits good effect after being used for the numerous equipment in DVB industry.
field programmable gate array (FPGA); double data rate 2(DDR2); first input first output (FIFO); system interconnection; intellectual property core; network jitter; code stream; program clock reference (PCR)
2015-06-19.
四川省教育廳基金資助項(xiàng)目(14ZA0288).
張玉平(1976-),男,四川成都人,副教授,主要從事FPGA的數(shù)字信號(hào)處理及通信系統(tǒng)工程實(shí)踐等方面的研究.
10.7688/j.issn.1000-1646.2016.03.11
TN 914
A
1000-1646(2016)03-0298-06
*本文已于2015-12-07 16∶18在中國(guó)知網(wǎng)優(yōu)先數(shù)字出版. 網(wǎng)絡(luò)出版地址: http:∥www.cnki.net/kcms/detail/21.1189.T.20151207.1618.034.html