摘 要: 介紹了基于電可擦除可編程邏輯器件 (EPLD),,用VHDL語言設計實現(xiàn)的title="TMS320C5402">TMS320C5402與SDRAM的接口電路,。
關鍵詞: 電可擦除可編程邏輯器件 數(shù)字信號處理器 同步動態(tài)隨機存儲器 接口電路 VHDL
在多媒體應用中,多媒體信息絕大部分是視頻數(shù)據(jù)和音頻數(shù)據(jù),,而數(shù)字化的視頻數(shù)據(jù)和音頻數(shù)據(jù)的數(shù)據(jù)量是非常龐大的,。為了能夠及時完整地處理前端采集的數(shù)據(jù),,一般系統(tǒng)都采用高速DSP和大容量緩沖存儲器,,且緩沖存儲器一般選用同步動態(tài)隨機存儲器(SDRAM)。由于DSP不能直接與SDRAM接口,,而且SDRAM控制時序比較復雜,,因此本文介紹如何利用電可擦除可編程邏輯器件實現(xiàn)TMS320C5402與SDRAM的接口,。
1 SDRAM結構和命令
SDRAM是一種具有同步接口的高速動態(tài)隨機存儲器,,本文選用的是Samsung公司512K×16Bit×2組的KM416S1120D。SDRAM的同步接口和內部流水線結構允許存儲外部高速數(shù)據(jù),,其內部結構框圖如圖1所示。
SDRAM的所有輸入和輸出都與系統(tǒng)時鐘CLK上升沿同步,,并且由輸入信號RAS、CAS、WE組合產(chǎn)生SDRAM控制命令,,其基本的控制命令如表1所示。
在具體操作SDRAM時,,首先必須通過MRS命令設置模式寄存器,以便確定SDRAM的列地址延遲,、突發(fā)類型、突發(fā)長度等工作模式;再通過ACT命令激活對應地址的組,,同時輸入行地址;然后通過RD或WR命令輸入列地址,,將相應數(shù)據(jù)讀出或寫入對應的地址;操作完成后用PCH命令或BT命令中止讀或寫操作,。在沒有操作的時候,每32ms必須用ARF命令刷新數(shù)據(jù)(2048行),,防止數(shù)據(jù)丟失,。
2 FLEX10K系列EPLD特點
FLEX10K系列EPLD是工業(yè)界第一個嵌入式的可編程邏輯器件,主要由嵌入式陣列塊(EAB),、邏輯陣列塊(LAB),、快速布線通道(FastTrack)和I/O單元組成,具有如下特點:
(1)片上集成了實現(xiàn)宏函數(shù)的嵌入式陣列和實現(xiàn)普通函數(shù)的邏輯陣列;
(2)具有10000~250000個可用門;
(3)支持多電壓I/O接口,遵守PCI總線規(guī)定,,內帶JTAG邊界掃描測試電路;
(4)可快速預測連線延時的快速通道連續(xù)式布線結構;
(5)多達6個全局時鐘信號和4個全局清除信號;
(6)增強功能的I/O引腳,,每個引腳都有一個獨立的三態(tài)輸出使能控制,都有漏極開路選擇,。
3 TMS320C5402和SDRAM接口設計
TMS320C5402和SDRAM接口電路方框圖如圖2所示,。命令接口主要對DSP送來的SDRAM的地址和操作命令進行解碼(命令編碼見表1);刷新控制主要對SDRAM數(shù)據(jù)刷新進行計時,確保32ms刷新2048行數(shù)據(jù);仲裁電路主要對讀寫命令和刷新命令進行仲裁,,杜絕同時操作,防止數(shù)據(jù)丟失;命令產(chǎn)生器主要用來產(chǎn)生控制SDRAM的各種時序,,完成SDRAM的讀、寫和刷新,,同時控制FIFO的讀,、寫操作;FIFO是DSP與SDRAM之間的數(shù)據(jù)通道,,深度為256,其作用是充分利用SDRAM的突發(fā)讀寫功能,,提高系統(tǒng)速度,,同時簡化DSP軟件設計,。
3.1 命令接口和刷新控制電路設計
命令接口電路主要由命令寄存器,、命令譯碼器,、SDRAM行列地址鎖存器,、模式寄存器組成,。其中命令寄存器映射為DSP的I/O空間0001H,,SDRAM行和列地址鎖存器分別映射為DSP的I/O空間0002H和0003H,,模式寄存器映射為DSP的I/O空間0004H,,具體控制命令和I/O地址分配如表2、表3所示,。DSP每次進行讀,、寫操作時,首先向其I/O空間0002H和0003H寫入SDRAM行和列地址,,然后向I/O空間0001H寫入控制命令,,命令譯碼器根據(jù)命令寄存器中命令,,譯碼后向仲裁電路發(fā)出讀寫請求。
刷新控制電路主要由1562計數(shù)器構成,。由于TMS320C5402時鐘頻率為100MHz,,SDRAM要求在32ms之內刷新2048行數(shù)據(jù),因此該計數(shù)器計數(shù)值應小于:
32ms/2048/0.01μs=1562.5,。當計數(shù)器計滿1562次時,,刷新控制電路向仲裁電路發(fā)出刷新要求,。
3.2 仲裁電路和命令產(chǎn)生器設計
仲裁電路接收命令接口模塊解碼的命令和刷新控制模塊的刷新請求,,產(chǎn)生適當?shù)目刂泼?,其中刷新請求的?yōu)先級較高。當來自DSP的命令和來自刷新控制模塊的刷新請求同時到達時,,則首先執(zhí)行刷新操作,,然后執(zhí)行來自DSP的命令,。這樣可以防止SDRAM的數(shù)據(jù)丟失,。由此可知,,仲裁電路實質上是一個優(yōu)先級選擇器,。
命令產(chǎn)生器主要產(chǎn)生SDRAM讀、寫和刷新的控制時序(具體時序可見參考文獻1)以及FIFO的讀寫控制信號,,用以對SDRAM進行各種操作,,其實質上是一個Mealy型狀態(tài)機,,利用VHDL語言可以很方便地實現(xiàn),其狀態(tài)轉移圖如圖3所示,。
3.3 FIFO設計
FIFO電路是DSP與SDRAM進行數(shù)據(jù)交換的通道,,通過FIFO電路可以很好地實現(xiàn)DSP對SDRAM的讀寫,。FIFO電路被映射為DSP的I/O空間0000H(見表2),DSP對SDRAM的每次讀或寫,,都對DSP的I/O空間0000H操作,簡化了DSP軟件設計。利用FLEX10K系列EPLD內部嵌入式陣列塊(EAB)和參數(shù)化模塊庫(LPM),,可以很快地構造出256×16的FIFO電路,,F(xiàn)IFO的設計比較簡單。VHDL描述具體如下(注意在程序開始處添加LPM庫):
FIFO256:CSFIFO
GENERIC MAP(LPM_WIDTH <= 16;LPM_NUM-
WORDS <= 256);
PORT MAP(data <= (LPM_WIDTH-1 DOWNTO 0);
wreq <= wr;rreq <= rd;
clock <= clk50;clockx2 <= clk100;
clr <= clr;sclr <= sclr;
empty <= empty;full <= full;
q<=q(LPM_WIDTH-1 DOWNTO 0));
由于EPLD通用,、高速及價廉的特點,,因此具有很好的實際應用前景,,尤其適用于需要大容量高速緩沖存儲器的多媒體應用。
參考文獻
1 Samsung CMOS SDRAM Data Book.Samsung Company,,1999
2 TMS320C54x Referense Set.TI Company,,2000
3 曾繁泰.VHDL程序設計.北京:清華大學出版社,2000
4 宋萬杰.CPLD技術及其應用.西安:西安電子科技大學出版社,,1999