亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SDRAM文件結(jié)構(gòu)存儲控制的FPGA實現(xiàn)

        2010-04-12 00:00:00于躍忠,黃振,林孝康
        現(xiàn)代電子技術(shù) 2010年14期

        摘 要:面對不同應(yīng)用場景,原始采樣數(shù)據(jù)可能包含不同類型信號,而各種類型信號的處理也往往需要不同的數(shù)據(jù)幀結(jié)構(gòu)。因此,需要對原始采樣數(shù)據(jù)進行快速緩存,并根據(jù)數(shù)據(jù)處理的要求進行重組幀。在此使用可編程器件設(shè)計了結(jié)構(gòu)化狀態(tài)機對SDRAM進行讀寫控制,給出了一種便于FPGA實現(xiàn)的基于文件結(jié)構(gòu)的數(shù)據(jù)緩存與重組幀方案。該方案已應(yīng)用于某實際系統(tǒng)中,具有速度快、可靠性高的特點,并能靈活應(yīng)用于其他存儲系統(tǒng)中。

        關(guān)鍵詞:FPGA; 文件結(jié)構(gòu); 結(jié)構(gòu)化狀態(tài)機; SDRAM; 存儲控制

        中圖分類號:TN60; TP368.1 文獻標(biāo)識碼:A

        文章編號:1004-373X(2010)14-0167-04

        FPGA Implementation of File Structure Storage Control for SDRAM

        YU Yue-zhong1 , HUANG Zhen1 , LIN Xiao-kang2

        (1. Institute of Micro-electronics, Tsinghua University, Beijing 100084, China;

        2. Shenzhen Graduate School, Tsinghua University, Shenzhen 518055, China)

        Abstract:For different applications, sampled data may contain different type signals, which need varied data frame structure to be processed. Therefore, flexible storage and reconstruction of the sampled data for dada processing are needed. A structural state machine was designed for storage control of SDRAM, which is based on a file structure data cache storage program with FPGA. Likewise, a reconstruction module of data frame structure is also realized. This new design is applied in a practical system with good performance in speed and reliability, and it also can be easily used in other storage systems with its flexibility.

        Keywords:FPGA; file structure; structural state machine; SDRAM; storage control

        0 引 言

        面對不同的應(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的控制[1],完成了對數(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)的負擔(dān)?;诖?,本文提出了一種基于文件結(jié)構(gòu)的存儲方式,并且在緩存系統(tǒng)中實現(xiàn)了數(shù)據(jù)重組幀的任務(wù),減輕了后端的負擔(dān)。

        整個系統(tǒng)的設(shè)計以FPGA為核心控制器來組織工作,它由系統(tǒng)總控System Master與SDRAM驅(qū)動控制器SDRAM Controller組成。System Master接收高層控制指令,向SDRAM Controller發(fā)出命令,SDRAM Controller將命令翻譯為底層SDRAM芯片的讀寫指令字精確控制其完成讀寫操作[2]。系統(tǒng)主要解決的問題是基于文件結(jié)構(gòu)的數(shù)據(jù)存儲,數(shù)據(jù)重組幀和數(shù)據(jù)事后讀取[3]。系統(tǒng)整體框圖如圖1所示。

        圖1 系統(tǒng)結(jié)構(gòu)圖

        2 系統(tǒng)工作原理

        2.1 文件結(jié)構(gòu)的存儲方式

        所謂文件結(jié)構(gòu)[4]指的是,將幀頭與其所對應(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)的比較。

        圖2 兩種存儲結(jié)構(gòu)的比較

        基于文件結(jié)構(gòu)的存儲方式便于對數(shù)據(jù)進行管理與操作,功能擴展容易。例如有些處理只對數(shù)據(jù)的幀頭信息進行相關(guān)操作,基于文件結(jié)構(gòu)的存儲模式可以很方便地支持這種工作模式,只需對緩存介質(zhì)的幀頭區(qū)進行操作,而傳統(tǒng)的設(shè)計則很難滿足這種需求,因此新的設(shè)計極大地提高了系統(tǒng)的靈活性。

        2.2 數(shù)據(jù)重組幀的實現(xiàn)

        在設(shè)計上,用SDRAM的BANK0(BANK地址“00”)和BANK1(BANK地址“01”)存儲原始數(shù)據(jù),BANK2(BANK地址“10”)存儲要送往后端計算的數(shù)據(jù),BANK3(BANK地址“11”)存儲數(shù)據(jù)的幀頭信息。系統(tǒng)在接收到數(shù)據(jù)重組幀命令后,按照要求抽取,幀數(shù),幀長和幀間隔從低BANK區(qū)讀取原始數(shù)據(jù)送入數(shù)據(jù)重組幀模塊形成新的數(shù)據(jù)幀結(jié)構(gòu),然后將新的數(shù)據(jù)幀結(jié)構(gòu)按照文件結(jié)構(gòu)存儲到高BANK區(qū)中。其實現(xiàn)框圖如圖3所示。

        3 控制模塊的結(jié)構(gòu)化狀態(tài)機設(shè)計

        在系統(tǒng)架構(gòu)上采用了結(jié)構(gòu)化狀態(tài)機的設(shè)計方法,通過分層有限狀態(tài)機實現(xiàn)了主控狀態(tài)機與具體操作控制狀態(tài)機的分離,使設(shè)計結(jié)構(gòu)清晰,劃分合理[5-6]。降低了設(shè)計的復(fù)雜性,同時使系統(tǒng)更具有通用性。

        圖3 重組幀的實現(xiàn)

        3.1 高層工作模式主控狀態(tài)機設(shè)計

        該緩存系統(tǒng)有3種工作模式:寫模式,讀模式和數(shù)據(jù)重組幀模式。其狀態(tài)轉(zhuǎn)移圖如圖4所示。

        圖4 工作模式狀態(tài)轉(zhuǎn)移圖

        系統(tǒng)在空閑狀態(tài)等待SDRAM初始化完成,當(dāng)SDRAM完成初始化以后進入準備狀態(tài),表示系統(tǒng)可以接收命令,在收到寫命令后進入寫工作模式,低層寫輔助控制模塊激活,當(dāng)完成寫操作命令后產(chǎn)生一寫完成標(biāo)志信號,反饋回主控系統(tǒng)促使主控系統(tǒng)完成狀態(tài)跳轉(zhuǎn)回到準備狀態(tài)等待下一次命令,收到讀取命令后系統(tǒng)進入讀工作模式,低層讀輔助控制模塊開始工作當(dāng)完成讀取操作后產(chǎn)生一讀完成標(biāo)志信號,反饋回主控系統(tǒng)使其回到準備狀態(tài)等待命令,同樣系統(tǒng)收到數(shù)據(jù)重組幀命令后進入數(shù)據(jù)重組幀模式,低層重組幀輔助控制模塊開始工作完成重組幀任務(wù)后產(chǎn)生標(biāo)志信號控制主控狀態(tài)機再次回到準備狀態(tài),等待下一次命令。

        這種結(jié)構(gòu)化狀態(tài)機的設(shè)計,層次劃分合理清晰,工作模式的切換只在主控狀態(tài)機中實現(xiàn),各低層輔助控制模塊僅僅實現(xiàn)其特定的功能,完全沒有交互。因此這種設(shè)計可以很方便地進行功能擴展,以后系統(tǒng)要增加新的工作模式,只需再加入一個狀態(tài),并單獨設(shè)計其輔助控制模塊即可,無需對原有工作模式進行改動。同時,這種分層設(shè)計符合模塊化設(shè)計的思想,降低了設(shè)計的復(fù)雜性,易于調(diào)試[7-8]。

        3.2 低層寫輔助控制模塊的設(shè)計

        寫輔助控制模塊用來實現(xiàn)對原始數(shù)據(jù)和第1次計算數(shù)據(jù)基于文件結(jié)構(gòu)的存儲。為了提高系統(tǒng)效率,第1次計算所需的數(shù)據(jù)和原始數(shù)據(jù)同時存儲。其總體設(shè)計框圖如圖5所示。

        圖5 寫輔助控制模塊總體設(shè)計

        寫輔助控制模塊在主控狀態(tài)機進入寫工作模式時激活,通過將原始數(shù)據(jù)分為2路,一路進入原始數(shù)據(jù)緩存控制模塊實現(xiàn)對原始數(shù)據(jù)的緩存,當(dāng)原始數(shù)據(jù)的數(shù)據(jù)量積累到SDRAM一次突發(fā)寫所需長度時,該控制模塊發(fā)出寫標(biāo)志信號通知寫模式控制狀態(tài)機,寫模式控制狀態(tài)機響應(yīng)寫標(biāo)志信號,向SDRAM驅(qū)動控制器發(fā)出寫指令字控制SDRAM將原始數(shù)據(jù)寫入SDRAM的原始數(shù)據(jù)區(qū);另一路進入1st計算數(shù)據(jù)構(gòu)造與緩存控制模塊,該模塊用來完成1st計算數(shù)據(jù)的幀頭與數(shù)據(jù)的構(gòu)造和緩存,當(dāng)幀頭構(gòu)造完畢時,通知寫模式控制狀態(tài)機,將幀頭(包含數(shù)據(jù)存儲首地址信息)寫入到SDRAM的幀頭區(qū)中,同時當(dāng)新數(shù)據(jù)量達到一次突發(fā)寫入時,將新數(shù)據(jù)寫入SDRAM的計算數(shù)據(jù)區(qū)中,直到將所有數(shù)據(jù)都寫入到SDRAM的對應(yīng)區(qū)內(nèi),寫模式控制狀態(tài)機發(fā)出寫完成標(biāo)志信號,反饋給高層主控狀態(tài)機。

        3.3 低層讀輔助控制模塊的設(shè)計

        讀輔助控制模塊,接收讀指令字,該指令字包括幀數(shù)、幀長和偏移地址。幀數(shù)表征著本次命令要從SDRAM中讀取多少幀數(shù)據(jù),幀長表示每幀數(shù)據(jù)要讀取的長度(按采樣點數(shù)算),偏移地址控制對數(shù)據(jù)的移位讀操作。按照指令要求從SDRAM的高BANK區(qū),讀出數(shù)據(jù)送往后端。圖6是其總體設(shè)計框圖。

        讀輔助控制模塊在主控狀態(tài)機進入讀工作模式開始工作,它先控制SDRAM驅(qū)動器從SDRAM幀頭區(qū)中讀取一個幀頭,送入緩存及幀頭更新模塊,該模塊一方面按照指令字更新幀頭信息中的數(shù)據(jù)到達與結(jié)束時間,另一方面從幀頭信息中找到本幀數(shù)據(jù)的存儲首地址然后加上讀指令字中的偏移地址算出本次對數(shù)據(jù)讀操作的起始地址,該地址反饋給讀模式控制狀態(tài)機,控制SDRAM從該地址開始順序讀出數(shù)據(jù),完成一幀數(shù)據(jù)的讀取操作送往數(shù)據(jù)緩存模塊,重復(fù)以上操作直到完成讀指令任務(wù),讀模式控制狀態(tài)機發(fā)出讀完成標(biāo)志信號,反饋給高層主控狀態(tài)機。

        圖6 讀輔助控制模塊總體設(shè)計

        3.4 低層數(shù)據(jù)重組幀輔助控制模塊的設(shè)計

        數(shù)據(jù)重組幀輔助控制模塊,接收重組幀指令字,該指令字包括重組幀幀數(shù)、幀長、幀間隔以及抽取因子,控制SDRAM 讀取原始數(shù)據(jù),生成新的需要的數(shù)據(jù)幀結(jié)構(gòu),并按文件結(jié)構(gòu)將其寫到SDRAM的計算數(shù)據(jù)區(qū)中。其總體設(shè)計框圖7所示。

        圖7 重組幀輔助控制模塊總體設(shè)計

        數(shù)據(jù)重組幀輔助控制模塊在主控狀態(tài)機進入重組幀工作模式時開始工作,新數(shù)據(jù)幀結(jié)構(gòu)生成及緩存模塊先構(gòu)造第一幀數(shù)據(jù)的幀頭信息,當(dāng)幀頭構(gòu)造完畢后,它向重組幀模式控制狀態(tài)機發(fā)出幀頭完畢信號,狀態(tài)機收到信號后向SDRAM發(fā)出寫命令將新的數(shù)據(jù)幀頭寫入到幀頭區(qū)中,然后它按照重組幀指令字的要求從SDRAM的原始數(shù)據(jù)區(qū)讀出原始數(shù)據(jù)送往新數(shù)據(jù)生成模塊,當(dāng)新數(shù)據(jù)的數(shù)據(jù)量達到一次突發(fā)寫長度時,再控制SDRAM將新的數(shù)據(jù)寫入到SDRAM的重組幀數(shù)據(jù)區(qū)中,直到將一幀新的數(shù)據(jù)都存儲到SDRAM中,記錄此時的寫地址并將其作為下一幀數(shù)據(jù)的存儲首地址加入到下一幀幀頭信息中,并發(fā)出構(gòu)造第2幀幀頭的命令,等待第2幀幀頭完畢標(biāo)志,重復(fù)上面的操作,直到完成要求的重組幀指令。完成操作后重組幀模式控制狀態(tài)機發(fā)出重組幀完成標(biāo)志信號,反饋給高層主控狀態(tài)機。

        4硬件平臺及實測結(jié)果

        在xilinx的開發(fā)工具ISE環(huán)境下完成了系統(tǒng)的整體設(shè)計與仿真[9-10],利用xilinx公司的xc2v3000-4fg676 FPGA芯片和MICRONE公司的MT48LC32M16A2 SDRAM芯片搭建了硬件平臺,并進行測試。其實測結(jié)果如圖8所示。

        圖8 系統(tǒng)工作時序?qū)崪y結(jié)果

        主控狀態(tài)機接收上層的控制命令(寫命令、讀命令和重組幀命令)分別啟動寫工作模式、讀工作模式和重組幀工作模式;低層各控制模塊在完成任務(wù)時將完成標(biāo)志(寫完成標(biāo)志、讀完成標(biāo)志和重組幀完成標(biāo)志)反饋給主控狀態(tài)機控制其跳轉(zhuǎn)到就緒狀態(tài)繼續(xù)等待下次命令。結(jié)果證明該緩存系統(tǒng)實現(xiàn)了預(yù)定功能,可以對數(shù)據(jù)進行更方便的操作與管理。

        5 結(jié) 語

        本文提出一種基于文件結(jié)構(gòu)存儲方式的新數(shù)據(jù)緩存系統(tǒng),利用FPGA設(shè)計結(jié)構(gòu)化狀態(tài)機通過對SDRAM的讀寫控制,完成了具有數(shù)據(jù)重組幀功能的緩存系統(tǒng)設(shè)計。系統(tǒng)具有速度快,可靠性好,靈活性強,功能擴展容易的優(yōu)點。該系統(tǒng)已應(yīng)用于實際項目試驗,在基于實時復(fù)雜 信號處理的緩存系統(tǒng)中有很好的應(yīng)用前景。

        參考文獻

        [1]林志煌,解梅.一種簡易SDRAM控制器的設(shè)計方法[J].現(xiàn)代電子技術(shù),2008,31(16):18-20.

        [2]王強,朱名日,孫朝華.高速海量SDRAM控制器的實現(xiàn)方案[J].電子技術(shù),2007,34(11):70-73.

        [3]文豐,趙艷利,甄國涌.基于FPGA的高速數(shù)據(jù)采集存儲系統(tǒng)的設(shè)計[J].電子技術(shù),2009,36(1):18-20.

        [4]王小林,楊長留.工業(yè)工程中存儲過程數(shù)據(jù)的文件結(jié)構(gòu)設(shè)計[J].安徽工業(yè)大學(xué)學(xué)報,2005,22(3):298-300.

        [5]龔書濤,呂國強,彭良清.在FPGA中狀態(tài)機的編碼方式[J].電子工程師,2005,31(11):51-53.

        [6]徐衛(wèi)林,羅林.有限狀態(tài)機的可靠性設(shè)計研究[J].現(xiàn)代電子技術(shù),2007,30(1):93-94.

        [7][ 美] 阿森頓.VHDL設(shè)計指南[M].葛紅,黃河,吳繼明,譯.北京:機械工業(yè)出版社,2005.

        [8]曾繁泰,陳美金.VHDL程序設(shè)計[M].北京:清華大學(xué)出版社,2000.

        [9]田耘,徐文波.Xilinx FPGA開發(fā)實用教程[M].北京:清華大學(xué)出版社,2008.

        [10]黃志強.Xilinx可編程邏輯器件的應(yīng)用與設(shè)計[M].北京:機械工業(yè)出版社,2007.

        在线高清理伦片a| 日韩高清不卡一区二区三区| 亚洲人成人无码www| 熟妇人妻无乱码中文字幕| 国产精品久久久久久久久免费观看| 国产精品系列亚洲第一| 亚洲发给我的在线视频| 久久国产劲爆∧v内射| 久久综合精品国产一区二区三区无码 | 亚洲中文字幕有码av| 午夜少妇高潮在线观看视频| 精品国产综合区久久久久久| 丰满人妻被中出中文字幕| 日韩精品一区二区三区毛片| av天堂中文亚洲官网| 亚洲精品一区二区三区麻豆| 欧美性开放bbw| 亚州毛色毛片免费观看| 国产精品伦理久久一区| 潮喷失禁大喷水aⅴ无码| 久久久精品久久日韩一区综合| 国产一线视频在线观看高清| 一区二区高清视频免费在线观看| 午夜免费电影| 色窝窝免费播放视频在线| 无码 免费 国产在线观看91| 日本久久精品福利视频| 在线观看精品视频网站| 久草午夜视频| 五十路在线中文字幕在线中文字幕| 精品国产yw在线观看| 国产精品亚洲二区在线观看 | 中文字幕日韩精品美一区二区三区| 性感美女脱内裤无遮挡| 国产激情久久久久久熟女老人av| 亚洲熟女少妇一区二区 | 日本添下边视频全过程| 国产成人一区二区三区在线观看 | 国产99久久亚洲综合精品| 无码人妻少妇久久中文字幕| 国产av在线观看一区二区三区|