劉 杰,賽景波
(北京工業(yè)大學電控學院,北京100022)
?
基于DDR2 SDRAM乒乓雙緩沖的高速數(shù)據(jù)收發(fā)系統(tǒng)設計
劉杰,賽景波*
(北京工業(yè)大學電控學院,北京100022)
摘要:在高速數(shù)據(jù)收發(fā)系統(tǒng)設計中,首先需要解決的問題是實時數(shù)據(jù)的高速緩存,然而FPGA內部有限的存儲資源無法滿足海量數(shù)據(jù)緩存的要求。為了解決系統(tǒng)中海量數(shù)據(jù)的緩存問題,系統(tǒng)創(chuàng)新提出了一種基于DDR2 SDRAM的乒乓雙緩沖設計方案。方案設計了兩路基于DDR2 SDRAM的大容量異步FIFO,通過FPGA內部選擇邏輯實現(xiàn)兩條通路間的乒乓操作,從而實現(xiàn)數(shù)據(jù)的高速緩存。實驗結果表明,基于DDR2 SDRAM的數(shù)據(jù)收發(fā)系統(tǒng)實現(xiàn)了每路512 Mbit的緩存空間和200 MHz的總線速率,解決了海量數(shù)據(jù)的高速緩存問題。
關鍵詞:高速數(shù)據(jù)收發(fā);乒乓雙緩沖; DDR2 SDRAM技術;異步FIFO
高速數(shù)據(jù)傳輸是現(xiàn)代信號處理的基礎,在雷達、通信、遙測遙感等技術應用領域得到了廣泛的應用。隨著信息科學的飛速發(fā)展,人們面臨的信號處理任務越來越繁重,對高速數(shù)據(jù)傳輸?shù)囊笠苍絹碓礁?。尤其在?shù)據(jù)傳輸量巨大,數(shù)據(jù)傳輸速率很高的數(shù)據(jù)收發(fā)系統(tǒng)中,由于上位機的抖動會對數(shù)據(jù)傳輸?shù)倪B續(xù)性造成極其嚴重的影響,所以如何對海量的高速數(shù)據(jù)實時數(shù)據(jù)流進行高速緩存成為高速數(shù)據(jù)收發(fā)系統(tǒng)設計中需要解決的關鍵問題。
高速緩存(Cache Memory)是一種具有極快的讀寫速度的存儲芯片,它是大容量固定存儲介質和外界接口之間的緩沖器,緩沖器的大小與速度直接影響高速數(shù)據(jù)收發(fā)系統(tǒng)的傳輸速度[1]。作為數(shù)據(jù)緩存,異步FIFO和雙口RAM被廣泛應用于不同時鐘域之間的高性能數(shù)據(jù)傳輸?shù)认到y(tǒng)中。然而FPGA內部的存儲器資源有限,無法滿足海量數(shù)據(jù)緩存的要求,并且出于價格和性能方面的考慮,大容量的異步FIFO和雙口RAM芯片并非這類設計的最佳選擇。相比于異步FIFO和雙口RAM而言,DDR2 SDRAM具有工作頻率高、容量大、功耗低、成本低廉等特點,被廣泛應用于高速實時數(shù)據(jù)傳輸系統(tǒng)中。但是DDR2 SDRAM只有一套數(shù)據(jù)、地址和控制總線,這就意味著一片DDR2 SDRAM在某一時刻只能進行讀或寫一種操作。所以,如果要利用DDR2 SDRAM構成高速緩沖系統(tǒng),就需要對系統(tǒng)進行相應的雙工設計。
針對上述問題及原因,本文提出了一種基于DDR2 SDRAM的乒乓雙緩沖設計方案。通過對兩路并接的DDR2 SDRAM進行“乒乓操作”來完成高速實時數(shù)據(jù)的高速緩存。
高速數(shù)據(jù)收發(fā)系統(tǒng)中,為了給恒速的內部數(shù)據(jù)處理與變速的外部數(shù)據(jù)傳輸過程之間提供適應通道,高速緩存電路的設計是必不可少的。乒乓雙緩沖是一種常常應用于數(shù)據(jù)流控制的處理技巧。實現(xiàn)乒乓雙緩沖結構的關鍵是輸入、輸出數(shù)據(jù)選擇單元以及數(shù)據(jù)緩沖模塊的設計。本設計通過如下系統(tǒng)模型,實現(xiàn)了乒乓雙緩沖設計目標。系統(tǒng)模型如圖1所示。
圖1 乒乓雙緩沖
圖1中,輸入的數(shù)據(jù)流是通過“輸入數(shù)據(jù)選擇單元”將數(shù)據(jù)等時分配到兩個數(shù)據(jù)緩沖模塊,再通過“輸出數(shù)據(jù)選擇單元”以乒乓操作的方式將數(shù)據(jù)輸出,完成高速實時數(shù)據(jù)的乒乓雙緩沖。
1.1輸入輸出選擇單元
乒乓雙緩沖最大特點是通過“輸入數(shù)據(jù)選擇單元”和“輸出數(shù)據(jù)選擇單元”按節(jié)拍、相互配合的切換,實現(xiàn)數(shù)據(jù)的不間斷傳輸。因此,乒乓雙緩沖模塊需要解決的關鍵問題是“輸入數(shù)據(jù)選擇單元”和“輸出數(shù)據(jù)選擇單元”之間的無縫切換。
本設計通過判斷數(shù)據(jù)緩沖模塊的將空、將滿情況來實現(xiàn)輸入輸出選擇單元的相互切換。在第一個緩沖周期,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊1上,當數(shù)據(jù)緩存模塊1存滿后,第一個緩沖周期結束;在第二個緩沖周期,通過輸入數(shù)據(jù)選擇單元的切換,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊2,同時,將數(shù)據(jù)緩沖模塊1緩存的第一個周期的數(shù)據(jù)通過輸出數(shù)據(jù)選擇單元的選擇,送到32路IO口輸出;在第3個緩沖周期,再次切換數(shù)據(jù)的輸入與輸出緩沖模塊。如此循環(huán),周而復始。
1.2數(shù)據(jù)緩沖模塊
數(shù)據(jù)緩沖模塊由DDR2 SDRAM組成。由于DDR2 SDRAM并沒有將空、將滿標志位,所以為了避免造成數(shù)據(jù)溢出,需要時刻對DDR2 SDRAM的內部存儲量進行有效的判斷。本文參照異步FIFO的內部結構,設計出了基于DDR2 SDRAM的大容量異步FIFO,作為乒乓雙緩沖的數(shù)據(jù)緩沖模塊。
數(shù)據(jù)緩沖模塊主要由兩塊片上FIFO、時鐘產生模塊、FIFO控制模塊、DDR2 SDRAM控制器模塊和外部的DDR2 SDRAM構成。數(shù)據(jù)緩沖模塊的設計模型如圖2所示。
圖2 數(shù)據(jù)緩沖模塊
數(shù)據(jù)緩沖模塊的工作原理:當寫入使能有效為高電平時,輸入數(shù)據(jù)DATA_IN在寫入時鐘的上升沿觸發(fā)下寫入FIFO_IN中。系統(tǒng)首先進入等待狀態(tài),對FIFO_IN和FIFO_OUT的空滿信號進行判斷;當FIFO控制器檢測到FIFO_IN將滿時,開始讀取FIFO_IN中的數(shù)據(jù),同時按照地址順序遞增的方式通過DDR2 SDRAM控制器寫入到DDR2 SDRAM 中;直到FIFO_IN被取空,系統(tǒng)回到等待狀態(tài)對下一步的操作進行判斷;當FIFO控制器檢測到FIFO_ OUT將空時,通過DDR2 SDRAM控制器按照地址順序遞增讀取DDR2 SDRAM中的數(shù)據(jù),寫入到FIFO_OUT中,直到FIFO_OUT被寫滿為止。數(shù)據(jù)緩沖模塊的狀態(tài)流程圖如圖3所示。
圖3 數(shù)據(jù)緩沖模塊的狀態(tài)流程圖
DDR2 SDRAM僅有一組地址總線。因此,需要分別記錄讀寫操作的地址,對DDR2 SDRAM的地址總線進行分時復用。當數(shù)據(jù)從FIFO_IN寫入到DDR2 SDRAM時,寫地址總線開始遞增尋址,同樣當數(shù)據(jù)從DDR2 SDRAM讀出到FIFO_OUT時,讀地址總線開始遞增尋址。由于寫地址總線和讀地址總線是相互獨立的,對DDR2 SDRAM的讀操作快于寫操作,必須加入一定限制保證讀地址總是小于寫地址,以保證輸出的數(shù)據(jù)有效[2]。同時,為了乒乓操作對數(shù)據(jù)緩存模塊的空滿情況進行有效的判斷,本設計引用FIFO_OUT的空滿標志信號作為數(shù)據(jù)緩存模塊的空滿標志信號。
1.3流水線操作
把乒乓雙緩沖模塊當作一個整體,站在這個模塊的兩端看數(shù)據(jù),輸入數(shù)據(jù)流和輸出數(shù)據(jù)流都是連續(xù)不斷的,沒有任何停頓,因此非常適合對數(shù)據(jù)流進行流水線操作,以高效完成海量實時數(shù)據(jù)的無縫緩沖和傳輸。
流水線設計是用于提高所設計系統(tǒng)運行速度的一種有效的方法。為了保障數(shù)據(jù)的快速傳輸,必須使系統(tǒng)運行在盡可能高的頻率上,但由于乒乓操作復雜的邏輯功能的完成需要較長的延時,就會使系統(tǒng)很難運行在高的頻率上。在這種情況下,需要使用流水線技術,即在長延時的邏輯功能模塊中插入觸發(fā)器,使復雜的邏輯操作分步完成,減少每個部分的處理延時,從而使系統(tǒng)的運行頻率得以提高。
本設計所采用的流水線設計實際上就是把規(guī)模較大、層次較多的組合邏輯電路分為幾級,在每一級插入寄存器組暫存中間數(shù)據(jù)[3]。組合邏輯方式和流水線方式的對比結構如圖4所示。
如圖4所示,DDR2 SDRAM的寫操作和讀操作過程分別包括兩級延遲:
寫操作過程:
(1)對FIFO_IN的讀操作T1;
(2)對DDR2 SDRAM的寫操作T2。
圖4 組合邏輯方式和流水線方式的對比結構
讀操作過程:
(1)對DDR2 SDRAM的讀操作T3;
(2)對FIFO_OUT的寫操作T4。
在組合邏輯方式設計中,寫操作過程和讀操作過程分別都是串行操作的,通過該組合邏輯得到穩(wěn)定的輸出數(shù)據(jù),需要等待的傳輸延遲τ為:
在流水線方式設計中,寫操作過程和讀操作過程分別都是并行操作的,在操作過程和讀操作過程的每一級插入寄存器后,流水線設計的第一級寄存器所具有的總的延遲為T1與T2時延中的最大值。同樣,第二級寄存器延遲為T3與T4時延中的最大值。采用流水線設計得到穩(wěn)定的輸出數(shù)據(jù),需要等待的傳輸延遲τ為:
通過組合邏輯方式和流水線方式傳輸延遲τ的對比,可以得出系統(tǒng)運行速度通過運用流水線方式得到了顯著提高,從而有效的實現(xiàn)了對傳輸數(shù)據(jù)的高速緩沖。
為了實現(xiàn)高速數(shù)據(jù)收發(fā)系統(tǒng)對不同速率的數(shù)據(jù)流進行分時復用處理,需要系統(tǒng)能夠產生對應的時鐘頻率以實現(xiàn)多速率數(shù)據(jù)傳輸?shù)淖杂汕袚Q。
DCM(Digital Clock Manager)作為時鐘產生模塊,被廣泛應用于高速數(shù)據(jù)收發(fā)系統(tǒng)中以產生所需的各種時鐘頻率。DCM的配置方式可以分為簡單的靜態(tài)配置方式和復雜的動態(tài)重配置方式兩種:靜態(tài)配置是指DCM的輸出頻率是事先確定好的,在系統(tǒng)的整個運行過程中不會改變;而動態(tài)重配置是指系統(tǒng)運行過程中,通過發(fā)送指令便可以實時地通過改變DCM屬性來產生特定需要的時鐘頻率[4]。
通過對系統(tǒng)性能的考慮,本系統(tǒng)采用了DCM靜態(tài)配置和動態(tài)配置相結合的方法,來實現(xiàn)數(shù)據(jù)流的多速率切換。
如圖5所示,多速率切換模塊首先通過靜態(tài)配置的方法,利用DCM_BASE產生系統(tǒng)內部各模塊所需的時鐘和復位信號,同時將100 MHz的系統(tǒng)時鐘經(jīng)過5分頻得到20 MHz的輸出時鐘CLK_DV,作為動態(tài)配置的驅動時鐘DCLK傳給動態(tài)重配置引腳控制器。
動態(tài)重配置引腳控制器不斷地輸入DCLK頻率采樣時鐘等級值,通過SPEED_MODE[3: 0]信號可以進行最多16種不同時鐘頻率的設定,當SPEED_ MODE[3: 0]有有效地輸入并且速率切換使能信號SPEED_EN為高電平時,動態(tài)重置引腳控制器開始產生對應的DCM_ADV重配置輸入?yún)?shù)DADDR[6: 0],DI[15: 0],DWE,DEN和DCLK等[5]。
圖5 多速率切換模塊
DCM_ADV根據(jù)重配置參數(shù)來動態(tài)的產生所需的時鐘頻率,并向動態(tài)重置引腳控制器反饋動態(tài)重配置就緒信號和動態(tài)重配置數(shù)據(jù)輸出信號,從而為下一次的時鐘配置做好就緒準備。DCM_ADV模塊的CLKFX _ DRP是動態(tài)重配置后的輸出時鐘,LOCKED信號指示DCM時鐘輸出是否有效,即是否輸出正確的頻率。這樣只需改變輸入的時鐘模式值而不需其他改動,便可產生所需的時鐘頻率CLKFX _DRP,將此時鐘信號作為數(shù)據(jù)流的輸入輸出時鐘,從而實現(xiàn)系統(tǒng)的多速率切換。基于此種設計的多速率切換模塊具有較高的靈活性和適應性。
為了驗證所設計的高速收發(fā)系統(tǒng)是否能實現(xiàn)預期的邏輯功能,就需要對整個系統(tǒng)進行FPGA板級的下載測試,以確保系統(tǒng)設計的可行性與可靠性。
3.1系統(tǒng)測試環(huán)境搭建
整個系統(tǒng)采用Verilog HDL語言的輸入方式,在Xilinx ISE 13.3平臺上完成設計,并用該公司的Virtex-5系列的XC5VLX110T芯片配合Micron公司的DDR2 SDRAM內存MT47H32M16實現(xiàn)。
為了對整個系統(tǒng)的性能進行更可靠地驗證,本文采用NI公司的PXIe-6544數(shù)字波形發(fā)生器作為整個數(shù)據(jù)收發(fā)系統(tǒng)的外部測試環(huán)境。PXIe-6544數(shù)字波形發(fā)生器可以準確的產生和采集32路的各種速率的數(shù)據(jù),對系統(tǒng)的測試環(huán)境達到了最佳效果。針對多速率收發(fā)系統(tǒng)所設計的系統(tǒng)測試環(huán)境如圖6所示。
圖6 高速收發(fā)系統(tǒng)的系統(tǒng)測試環(huán)境
數(shù)據(jù)采集通道:通過采用NI公司的PXIe-6544數(shù)字波形發(fā)生器,向FPGA開發(fā)板的IO口發(fā)送數(shù)據(jù),利用ISE自帶的Chipscope軟件對經(jīng)過數(shù)據(jù)采集通道,將要發(fā)送給上位機的數(shù)據(jù)進行捕捉。
數(shù)據(jù)發(fā)送通道:通過上位機驅動產生模擬數(shù)據(jù),經(jīng)過數(shù)據(jù)發(fā)送通道傳給FPGA開發(fā)板的IO口將數(shù)據(jù)傳出,利用NI公司的PXIe-6544數(shù)字波形發(fā)生器完成數(shù)據(jù)的采集。
3.2系統(tǒng)測試結果及分析
數(shù)據(jù)收發(fā)系統(tǒng)的完全功能驗證相對來說比較困難,我們采用輸出通道和采集通道分別測試的辦法,分別對系統(tǒng)的多速率切換與數(shù)據(jù)乒乓緩存兩大重要功能進行了驗證。下面結合系統(tǒng)功能對測試結果作一下分析。圖7和圖8為數(shù)據(jù)采集通道的讀寫測試結果。
圖7 PXIE-6544的輸出數(shù)據(jù)
圖8 上位機的采集數(shù)據(jù)
通過對圖7和圖8的比較可以看出,PXIE-6544發(fā)送的數(shù)據(jù)經(jīng)過數(shù)據(jù)采集通道,可以實現(xiàn)準確的采集要求。圖9和圖10為數(shù)據(jù)輸出通道的讀寫測試結果。
圖9 上位機的輸出數(shù)據(jù)
圖10 PXIE-6544的采集數(shù)據(jù)
通過對圖9和圖10的比較可以看出,上位機輸出的數(shù)據(jù)經(jīng)過數(shù)據(jù)輸出通道,可以被PXIE-6544準確的采集。經(jīng)實際測試,通過乒乓雙緩沖系統(tǒng)可以實現(xiàn)的最高讀寫時鐘為200 MHz,在200 MHz的工作頻率下,DDR2 SDRAM的數(shù)據(jù)傳輸率最高可達3.2 Gbit/s。
采用DCM動態(tài)重配置設計的多速率切換模塊測試結果如圖11所示。
圖11 多速率切換測試結果
觀察測試結果可知,CLK_FX_DRP時鐘信號在速率切換使能SPEED_EN為1時,按照速率選擇信號SPEED_MODE[3: 0]為0011和0101的要求,分別實現(xiàn)了30 MHz和60 MHz時鐘速率的切換。
本文主要介紹了系統(tǒng)的FPGA實現(xiàn)過程,詳細分析了各模塊的設計思想。并通過PXIe-6544對系統(tǒng)功能進行了板級測試,測試結果表明,系統(tǒng)可以實現(xiàn)的最高讀寫時鐘達到200 MHz,數(shù)據(jù)傳輸率最高可達 3.2Gbit/s,很好的滿足了系統(tǒng)的性能指標。同時對系統(tǒng)動態(tài)時序的分析表明,乒乓雙緩沖模塊和多速率切換模塊準確的完成了數(shù)據(jù)的緩沖及與接口傳輸數(shù)據(jù)率匹配的功能,進一步驗證了系統(tǒng)功能的正確性。在實際工程中具有良好的參考和應用價值。
參考文獻:
[1]王哲,劉金國,王亞軍.高速數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)流無縫緩存技術[J].微計算機信息,2008,24(11) : 93-95.
[2]庾志衡,葉俊明,鄧迪文.基于FPGA與DDR2 SDRAM的大容量異步FIFO緩存設計[J].微型機與應用,2011,30(4) :34-40.
[3]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,2008: 149-155.
[4]方火能,邢開宇,曹曉曼.基于Virtex-4的DCM動態(tài)重配置設計[J].電子科技,2012,25(5) : 108-110.
[5]周盛雨,孫輝先,陳曉敏.基于模塊化設計方法實現(xiàn)FPGA動態(tài)部分重構[J].微計算機信息,2008,2(2) : 164-166.
[6]Cadenas,Oswaldo,Megson,et al.A Clocking Technique for FPGA Pipelined Designs[J].Journal of Systems Architecture,2004,50 (11) : 687-696.
[7]張焱,余海龍,羅迸川.超高速數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn)[J].安徽大學學報,2006,30(4) : 44-47.
[8]衛(wèi)杰,溫俊峰.高速大容量數(shù)據(jù)采集板卡的SDRAM控制器設計[J].電子設計應用,2004,2(1) : 76-78.
劉 杰(1990-),男,漢族,河北人,北京工業(yè)大學碩士研究生,主要研究方向為無線通信及嵌入式系統(tǒng),liujie_ahuan1986@ 163.com;
賽景波(1964-),男,漢族,黑龍江人,北京工業(yè)大學副教授,主要研究方向為無線通信,移動IP及嵌入式系統(tǒng),saijingbo @ bjut.edu.cn。
Research on Accuracy and Stability of Smart Substation Clock Synchronization*
SHEN Xin*,CAO Min,WANG Xin,LIU Qingchan
(Electric Power Institute of Yunnan Electric Power Research Institute(Group) Co. Ltd; Kunming 650217,China)
Abstract:Aiming at the existence of smart substation clock synchronization problem such as clock switching,time jump,long-term stability,these is developed appropriate research work.Design of the GPS and Beidou source switching strategy,it put forward to punctual time clock source switching,tracking satellite logic thoughts,to ensure the continuity and stability of the system time; The scheme was optimized the pair of abnormal fault tree and the pair defect in protection mis-operation fault tree structure,the probability of the whole system for synchronous operation reduces two orders of magnitude,it obviously improves the reliability and accuracy.The results show that the scheme is feasible,and effectively improves the stability and reliability of synchronous clock system.
Key words:smart substation; clock synchronization; GPS source; Beidou source
中圖分類號:TN919.6
文獻標識碼:A
文章編號:1005-9490(2015) 03-0650-05
收稿日期:2014-07-16修改日期: 2014-08-18
doi:EEACC: 837510.3969/j.issn.1005-9490.2015.03.037