基于FPGA的MIMO視頻緩存器的設(shè)計與實現(xiàn)
隨著高速處理器的不斷發(fā)展,嵌入式系統(tǒng)應(yīng)用的領(lǐng)域越來越廣泛,高速大容量緩存器被廣泛應(yīng)用于音視頻系統(tǒng)中,然而專用的高速大容量緩存芯片價格過于昂貴,傳統(tǒng)SDRAM在帶寬上已經(jīng)逐漸無法滿足應(yīng)用要求,特別是對于多路數(shù)據(jù)多進多出時,兩者都無法很好的滿足要求,這里提出一種利用雙沿隨機動態(tài)存儲器(DDR SDRAM)結(jié)合外加專用電路的設(shè)計方案。
本文引用地址:http://m.butianyuan.cn/article/272881.htm設(shè)計應(yīng)用在基于DVB-C的EOAM調(diào)制器系統(tǒng)中,該系統(tǒng)的基本要求能夠緩存集合多路視頻TS流的千兆IP數(shù)據(jù),并對IP數(shù)據(jù)進行多路高速分發(fā);輸入為2個千兆網(wǎng)口,輸出至RF射頻接口的數(shù)百個數(shù)據(jù)分發(fā)通道。
在以往系統(tǒng)設(shè)計中,有人提出使用普通SDRAM芯片作為物理緩存單元,但是由于該類芯片工作速度限制,在基本位寬條件下,達不到上述系統(tǒng)的高帶寬要求。若不提高芯片速度,單純提高位寬,由于各位數(shù)據(jù)的延時不同,且SDRAM采用的3.3 V電壓的上升下降沿過渡較寬,將導致芯片數(shù)據(jù)采樣的穩(wěn)定時間窗變窄,數(shù)據(jù)傳輸可靠性下降;同時由于位寬增大,引腳變多,造成設(shè)計復(fù)雜度的直線上升。本文使用DDR SDRAM作為存儲單元,在不改變系統(tǒng)時鐘的情況下,利用時鐘雙沿傳輸數(shù)據(jù),將同頻率芯片的傳輸帶寬在SDRAM基礎(chǔ)上提高了一倍,很好地滿足了高帶寬緩存的需要。
1 DDR存儲器簡介
DDR存儲器即雙數(shù)據(jù)率同步動態(tài)隨機訪問存儲器,它和早期的單數(shù)據(jù)率同步動態(tài)隨機訪問存儲器一樣,內(nèi)部存儲單元采用電容充電來保存數(shù)據(jù),因此必須不斷地對電容充電以保持數(shù)據(jù),這就是所謂的“刷新”。SDRAM的數(shù)據(jù)總線在每個時鐘的上升沿存取數(shù)據(jù),而DDR SDRAM則在每個時鐘的上升沿和下降沿都存取數(shù)據(jù),這樣在數(shù)據(jù)總線寬度和時鐘頻率不變的條件下數(shù)據(jù)總線帶寬得到了一倍的提升。
2 系統(tǒng)設(shè)計
設(shè)計采用Xilinx公司的Sptan3a-dsp 1800a作為主控制器,使用Micron公司的MT64V32X16芯片作為存儲介質(zhì),最大存儲容量為512M。本系統(tǒng)的邏輯部分由仲裁模塊、輸入緩存模塊、調(diào)度判決模塊、地址轉(zhuǎn)換模塊和DDR接口控制模塊等部分組成,結(jié)構(gòu)框圖如圖1所示。
核心控制器中的仲裁模塊產(chǎn)生相應(yīng)的控制命令。完成上電后的初始化復(fù)位,并在系統(tǒng)運行過程中,針對工作優(yōu)先級,發(fā)出刷新指令、寫操作指令和讀操作指令;DDR接口控制模塊根據(jù)DDR芯片操作的基本時序,實現(xiàn)核心控制器指令的針對物理芯片的信息傳輸;南于DDR芯片具有不可實時操作特性,必須使用內(nèi)部輸入緩存RAM進行基本的實時數(shù)據(jù)緩沖;而地址轉(zhuǎn)換模塊、調(diào)度判決模塊則和內(nèi)部輸入緩存RAM配合,完成對DDR芯片內(nèi)部存儲空間的映射工作。
3 DDR核心控制器設(shè)計
DDR存儲器是一種指令相對復(fù)雜的高速存儲芯片,它在上電后必須完成初始化才能進行其它操作;而且不支持單周期讀寫操作,只支持周期為2、4、8突發(fā)讀寫操作。另外,DDR芯片由于其電容特性,數(shù)據(jù)保存在其中是不穩(wěn)定的,需要在一定時間周期內(nèi)對其進行刷新操作,以保證數(shù)據(jù)不會丟失,因此,在DDR操作過程中有數(shù)十條指令。但在本設(shè)計中DDR接口控制器采用的是Xilinx提供的DDR IP,這樣核心控制器中的仲裁模塊只需要使用空閑、初始化、讀操作和寫操作等4個指令就可以完成對DDR-SDRAM的操作,大大降低了設(shè)計難度。由于設(shè)計目的在于消除來自網(wǎng)絡(luò)對IP數(shù)據(jù)的抖動,并且最終要將IP數(shù)據(jù)分發(fā)至512個通道,大大超出了以往設(shè)計對DDR的使用需求,因此本文在這里提出圖1所示設(shè)計,即可完成DDR存儲器對高速大容量多通道的設(shè)計應(yīng)用:
(1)輸入緩存模塊
輸入緩存器由一個RAM加外部邏輯電路構(gòu)成,緩沖已輸入但還沒來得及寫到DDR中的TS分組凈荷。待仲裁模塊發(fā)出允許寫入的信號后,再將輸入緩存中的數(shù)據(jù)包傳遞給仲裁模塊,并且釋放相應(yīng)的存儲空間。根據(jù)DDR的工作模式和DVB-C特性,輸入緩存的數(shù)據(jù)傳輸以TS包為單位,實現(xiàn)192個字節(jié)連續(xù)突發(fā)傳輸。
(2)調(diào)度判決模塊
調(diào)度判決模塊接收讀請求隊列信息,實現(xiàn)讀數(shù)據(jù)時將同一個bank內(nèi)數(shù)據(jù)量最大的FIFO進行調(diào)度出隊列的判決。該模塊保存各個通道FIFO當前的數(shù)據(jù)包數(shù)量。
(3)地址轉(zhuǎn)換模塊
地址轉(zhuǎn)換模塊負責實現(xiàn)通道號和DDR SDRAM芯片內(nèi)部存儲空間的映射。該模塊中保存的變量包括各個通道在DDR SDRAM中的塊起始地址、塊終止地址、FIFO頭偏移量、FIFO尾偏移量。
(4)仲裁模塊
仲裁模塊產(chǎn)生相應(yīng)控制命令,針對工作優(yōu)先級,發(fā)出空閑指令、初始化指令、寫操作指令和讀操作指令。
4 資源消耗結(jié)構(gòu)的改進
4.1 標準的MIMO結(jié)構(gòu)的緩存器
針對多路數(shù)據(jù)的緩存,設(shè)計了多進多出的緩存結(jié)構(gòu),對物理通道輸入的數(shù)據(jù)流首先進行識別與分發(fā),給每一路節(jié)目流配置一個輸入緩存FIFO和一個輸出緩存FIFO,結(jié)構(gòu)如圖2所示。
這種結(jié)構(gòu)的優(yōu)點在于,對每一路節(jié)目,都有單獨的緩存空間對其進行緩存,各路節(jié)目相對獨立,互不干擾;在節(jié)目路數(shù)較少的情況下,該結(jié)構(gòu)效率較高,便于擴展。
但上述結(jié)構(gòu)存在的問題在于,如果節(jié)目路數(shù)過多,輸入數(shù)據(jù)流量過大,會導致FPGA內(nèi)部緩存數(shù)量成幾何上升,極大的消耗FPGA資源,降低運行時鐘頻率,造成系統(tǒng)綜合后速度下降。
4.2 端口固定的MIMO結(jié)構(gòu)緩存器
由于標準的MIMO結(jié)構(gòu)存在的問題,難以達到本文所需的應(yīng)用要求,因此存這里提出的一種改進型設(shè)計。這種設(shè)計不像標準的MIMO那樣對DDR進行邏輯結(jié)構(gòu)上的緩存,而是通過固定DDR高位地址,采用物理結(jié)構(gòu)緩存的方式進行快速存儲,如圖3所示。
在這種結(jié)構(gòu)中,外部流處理模塊先將數(shù)據(jù)流與該數(shù)據(jù)流存儲的通道號分發(fā)至緩存RAM和地址轉(zhuǎn)換模塊,再由調(diào)度模塊調(diào)度轉(zhuǎn)換后的對應(yīng)地址指針,將其發(fā)送到DDR上對應(yīng)的物理存儲空間而在輸出端口也以同樣的方式只針對物理輸出端口,這就要求有一個讀請求隊列,以便將要讀的目的通道提前發(fā)送。在這里調(diào)度模塊能夠?qū)崟r檢測各個通道使用情況,并將數(shù)據(jù)流快速分發(fā)。這種結(jié)構(gòu)對于EQAM這種一個物理IP端口輸入幾百路流的設(shè)備,可以極大地降低FPGA內(nèi)部RAM的消耗,且對DDR影響也較小,不會過多降低系統(tǒng)性能。而且在前端數(shù)據(jù)緩存中直接使用RAM而不使用FIFO更有利于同步數(shù)據(jù)流和對應(yīng)地址。
5 系統(tǒng)測試
為了測試本設(shè)計止確性,將上述模塊嵌入EQAM系統(tǒng)后,接收來至網(wǎng)絡(luò)的IP視頻數(shù)據(jù),通過碼流分析儀檢測數(shù)據(jù)結(jié)果后發(fā)現(xiàn),經(jīng)DDR緩存后數(shù)據(jù)流包計數(shù)器沒有錯誤,沒有出現(xiàn)丟包情況,碼流分析儀自帶播放器能夠清晰連續(xù)播放節(jié)日,如圖3所示。但在節(jié)目轉(zhuǎn)換過程中由于節(jié)目不同會產(chǎn)生PAT錯誤,該錯誤不影響節(jié)目正常播放。
6 結(jié)束語
本文在這里提出了一種改進MIMO結(jié)構(gòu)DDR緩存器,并對核心控制模塊實現(xiàn)功能進行了描述,討論了改進后的設(shè)計對系統(tǒng)的影響。最終測試結(jié)果也表明,本設(shè)計完全可以應(yīng)用于多通道大容量的視頻設(shè)備的緩存中。
fpga相關(guān)文章:fpga是什么
存儲器相關(guān)文章:存儲器原理
塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理
評論