SDRAM文件結(jié)構(gòu)存儲控制的FPGA實現(xiàn)
O 引言
面對不同的應(yīng)用場景,原始采樣數(shù)據(jù)可能包含多種不同樣式的信號,這給傳統(tǒng)基于連續(xù)存儲方式的數(shù)據(jù)緩存系統(tǒng)帶來了挑戰(zhàn)。除此之外,由于對不同信號的處理往往需要不同的數(shù)據(jù)幀結(jié)構(gòu),緩存系統(tǒng)的設(shè)計需要保存原始采樣數(shù)據(jù)并能夠?qū)崿F(xiàn)數(shù)據(jù)的重組幀,以滿足不同處理需求。針對以上問題,本文提出了一種基于文件結(jié)構(gòu)存儲方式的數(shù)據(jù)緩存系統(tǒng),該系統(tǒng)利用FPGA設(shè)計結(jié)構(gòu)化狀態(tài)機實現(xiàn)對SDRAM的控制,完成了對數(shù)據(jù)的緩存與重組幀,具有速度快、可靠性高、靈活性強和功能可擴展等優(yōu)點。
1 系統(tǒng)總體設(shè)計
在系統(tǒng)設(shè)計上,采樣的數(shù)據(jù)都會采用數(shù)據(jù)幀結(jié)構(gòu),一般的設(shè)計大多是基于幀頭加數(shù)據(jù)的格式。在幀頭中包含一些數(shù)據(jù)的特征信息,其中最常見的有數(shù)據(jù)到達時間和數(shù)據(jù)結(jié)束時間。
傳統(tǒng)緩存系統(tǒng)的設(shè)計一般是采用幀頭加數(shù)據(jù),幀頭加數(shù)據(jù)的連續(xù)存儲方式,系統(tǒng)發(fā)讀命令將幀頭和數(shù)據(jù)連續(xù)讀出送往后端,后端處理系統(tǒng)通過識別幀頭信息判斷該數(shù)據(jù)幀的長度,然后把該長度的數(shù)據(jù)做進一步處理。這種設(shè)計在單一的信號環(huán)境下具有結(jié)構(gòu)簡單,控制容易的優(yōu)點,但是它僅適應(yīng)于單一處理模式的系統(tǒng),擴展性和移植性較差。
面對不同的應(yīng)用場景,傳統(tǒng)設(shè)計已經(jīng)不能滿足不同的處理需求,因為單次采樣的原始數(shù)據(jù)可能包含多種不同信號樣式的信號,對不同信號的處理往往也需要不同的數(shù)據(jù)幀結(jié)構(gòu),如不同的抽取,不同的數(shù)據(jù)幀長等。而連續(xù)存儲結(jié)構(gòu)很難在緩存系統(tǒng)中實現(xiàn)對數(shù)據(jù)的靈活操作及數(shù)據(jù)的重組幀,只能把重組幀任務(wù)放在后端系統(tǒng)來處理,加重了后端系統(tǒng)的負(fù)擔(dān)。基于此,本文提出了一種基于文件結(jié)構(gòu)的存儲方式,并且在緩存系統(tǒng)中實現(xiàn)了數(shù)據(jù)重組幀的任務(wù),減輕了后端的負(fù)擔(dān)。
整個系統(tǒng)的設(shè)計以FPGA為核心控制器來組織工作,它由系統(tǒng)總控System Master與SDRAM驅(qū)動控制器SDRAM Controller組成。System Mas-ter接收高層控制指令,向SDRAM Controller發(fā)出命令,SDRAM Controller將命令翻譯為底層SDRAM芯片的讀寫指令字精確控制其完成讀寫操作。系統(tǒng)主要解決的問題是基于文件結(jié)構(gòu)的數(shù)據(jù)存儲,數(shù)據(jù)重組幀和數(shù)據(jù)事后讀取。系統(tǒng)整體框圖如圖1所示。
2 系統(tǒng)工作原理
2.1 文件結(jié)構(gòu)的存儲方式
所謂文件結(jié)構(gòu)指的是,將幀頭與其所對應(yīng)的數(shù)據(jù)分區(qū)存儲,在存儲時將存儲數(shù)據(jù)的首地址添加到幀頭信息中,在讀出時,先讀取幀頭找到數(shù)據(jù)的首地址,然后加上系統(tǒng)給定的偏移地址算出讀取的起始地址,從該地址開始順序讀取要求長度(小于等于幀長)的數(shù)據(jù),在送往后端系統(tǒng)時更新幀頭信息,后端系統(tǒng)收到數(shù)據(jù)無需做預(yù)處理直接進行計算即可。圖2是2種存儲結(jié)構(gòu)的比較。
評論