解放軍92785部隊 劉宗福
?
片上FLASH存儲器接口的設計
解放軍92785部隊 劉宗福
【摘要】DSP片內(nèi)有限的存儲容量限制了其信息處理能力,針對這一特點,本文設計了外部存儲器接口,使DSP具有了和FLASH等異步存儲器的無縫接口,用戶可以方便的外接存儲器芯片來擴展存儲空間。文章中給出了設計思路與實現(xiàn),并進行了RTL級驗證,設計的外部存儲器接口在功能和時序上符合各種存儲器技術規(guī)范,達到了預定目標。
【關鍵詞】數(shù)字信號處理器;FLASH存儲器;外部存儲器接口;有限狀態(tài)機
基于DSP的末制導雷達信息處理對存儲空間的要求較高,以滿足雷達數(shù)據(jù)實時回傳與存儲的要求。尤其在做導引頭飛行試驗或防空反導訓練時,需要外接存儲器來擴展DSP的存儲空間,用于記錄試驗訓練數(shù)據(jù)。目前用于DSP的存儲器芯片有ROM、Flash、SBSRAM、SDRAM等。然而,該類存儲器件的對外接口復雜,無法與DSP芯片進行無縫對接,給基于DSP的雷達信號處理分機設計帶來很多不便之處。因而本文設計的DSP中,片上集成了外部存儲器接口(EMIF),支持Flash等多種存儲器,可以使DSP芯片實現(xiàn)和FLASH存儲器芯片的無縫連接。
在系統(tǒng)的設計中,在DSP片上集成了外部存儲器接口EMIF。圖1是EMIF部件的框圖。CPU經(jīng)由程序總線(P總線)讀取片外存儲器中的程序,經(jīng)由數(shù)據(jù)總線讀寫外存中的數(shù)據(jù), DMA總線用來進行片內(nèi)和片外之間的大量數(shù)據(jù)傳輸。所有的讀寫外存的請求按優(yōu)先級進行仲裁,每次選擇一個送到存儲器控制模塊,譯碼后送給相應的控制器:FLASH存儲控制器、SBSRAM控制器、SDRAM控制器,本文主要介紹FLASH存儲控制器的設計。
圖1 EMIF的框圖
Flash存儲器接口也支持ROM、異步SRAM存儲器等,這類存儲器讀寫不需要時鐘。設計該類接口主要有兩個作用,一是為了加載程序,在DSP加電后,引導加載器可通過FLASH控制器接口將片外程序加載到DSP片上存儲器,另外,F(xiàn)LASH存儲器可以永久保存末制導雷達的部分數(shù)據(jù),供飛行試驗或訓練結(jié)束后進行事后數(shù)據(jù)分析。
圖2 FLASH存儲控制器的讀狀態(tài)機
讀時序的過程如下所示(寫操作流程類似):
(1)建立時間期間
首先,給出片選信號,選中指定的FLASH存儲器開始工作;其次,輸出使能信號有效,允許指定的FLASH存儲芯片根據(jù)要求對外輸出數(shù)據(jù);第三,給出字節(jié)使能信號,標明要訪問的字節(jié)的數(shù)量與位置;建立時間的最后,給出地址信號,發(fā)送要訪問的地址信號到FLASH存儲芯片。
(2)選通時間期間
首先,給出讀選通信號,開始進入讀選通時間;其次,在CPU的時鐘上升沿采樣數(shù)據(jù),該操作恰好領先于讀選通信號的上升;最后,進入讀選通信號上升沿,讀選通時間終止。
(3)保持時間的停止
字節(jié)使能線變?yōu)闊o效;地址線變?yōu)闊o效;輸出使能信號上升,釋放芯片的輸出使能信號。
(4)擴展保持時間期間
在保持時間結(jié)束后,需要插入擴展保持周期,使FLASH存儲控制器發(fā)出的輸出使能信號和片選信號無效。加入擴展保持時間,主要是考慮到在下一次訪問外部存儲空間時,F(xiàn)LASH存儲控制器可能會在不同的片選(CE)空間之間進行切換,或者改變數(shù)據(jù)的傳輸方向。
3.1 FLASH讀寫控制器的構(gòu)成
FLASH存儲控制器由計數(shù)器、有限狀態(tài)機FSM與數(shù)據(jù)通路三個功能模塊構(gòu)成。其中,整體的結(jié)構(gòu)設計思想為FSM-D組合,以有限狀態(tài)機模塊為核心。FSM模塊控制狀態(tài)機的翻轉(zhuǎn),同時輸出FLASH存儲控制器的狀態(tài)信號,控制進行指令譯碼與數(shù)據(jù)裝配。計數(shù)器模塊保存FLASH存儲器的讀寫時序參數(shù),根據(jù)FSM模塊的命令開始減1計數(shù)過程,計數(shù)結(jié)束后向FSM發(fā)出定時中斷,數(shù)據(jù)通路模塊根據(jù)FSM的當前狀態(tài),定時輸出數(shù)據(jù)信號、地址,同時負責讀寫數(shù)據(jù)內(nèi)容的裝配。
3.2 計數(shù)器模塊
該模塊實現(xiàn)若干個計數(shù)器,記錄FLASH存儲器所有的讀寫時序參數(shù),與讀操作有關的計數(shù)器變量如表1所示。FSM模塊給出讀寫控制信號,在進入對應狀態(tài)的同時,啟動計數(shù)器從規(guī)定的初始數(shù)值開始遞減,當計數(shù)結(jié)束后,告知狀態(tài)機進行翻轉(zhuǎn)。
表1 FLASH存儲控制器中的讀時序計數(shù)器
3.3 FSM模塊
FSM模塊接收來自EMIF控制模塊的指令,若其他存儲控制器與外部Hold請求(外部設備發(fā)出申請EMIF放棄控制存儲器的請求)未占用總線,啟動計數(shù)器模塊開始計時,根據(jù)計數(shù)器模塊的定時結(jié)果,發(fā)出中斷信號改變FSM狀態(tài)。FSM不僅要輸出FLASH存儲控制器的狀態(tài)信號,而且要根據(jù)FSM的當前所在狀態(tài),給出讀寫操作使能信號以及外部總線的輸出使能信號。本文以讀操作為例,設計了FSM的流程,如圖2所示。
(1)空閑狀態(tài),當接收到讀FLASH存儲器的請求后,在等待其他存儲器(SDRAM等)空閑或外設HOLD請求結(jié)束后,立即進入讀操作建立時間狀態(tài)。
(2)讀操作建立時間狀態(tài),開始計數(shù),當該狀態(tài)結(jié)束后進入讀選通時間狀態(tài)。
(3)讀選通時間狀態(tài),若不采樣FLASH存儲器的ARDY信號,則當讀選通時間狀態(tài)結(jié)束后,對FLASH存儲器數(shù)據(jù)采樣,然后跳轉(zhuǎn)到第6步判斷讀保持時間計數(shù)器,若采樣ARDY信號則進入下一步完成ARDY信號采樣。
(4)在讀操作選通時間結(jié)束前的第3個CPU時鐘上升沿采樣ARDY,若信號電平為低,進入讀選通操作的擴展等待時間,等到ARDY為高時進入下一步(讀數(shù)據(jù)采樣);若在讀操作選通時間結(jié)束前的第3個CPU時鐘上升沿采樣ARDY為高,直接進入下一步(讀數(shù)據(jù)采樣)。
(5)計數(shù)3個CPU時鐘周期,在讀操作選通時間的末尾(最后一個CPU時鐘上升沿)對數(shù)據(jù)采樣,進入下一步(讀保持狀態(tài))。
(6)若讀保持時間計數(shù)器Rhold_Count為零,如有同一CE空間的讀請求,進入第1步(重新開始讀操作),若沒有進入第8步(讀擴展保持時間);如果Rhold_Count不為零,進入下一步(讀保持時間狀態(tài))。
(7)讀保持時間狀態(tài),Rhold_Count計數(shù)結(jié)束后,若有同一CE空間的讀請求,進入第1步(重新開始讀操作),若無進入下一步(讀擴展保持時間)。
(8)讀擴展保持時間狀態(tài),若有同一CE空間的讀請求到來,進入讀建立時間狀態(tài),若無同一CE空間的讀請求,繼續(xù)進行擴展保持狀態(tài)遞減計時,若擴展保持時間計數(shù)器結(jié)束,進入IDLE(空閑)狀態(tài)。
寫操作的流程和讀操作時類似的,將讀寫操作組合,構(gòu)成FLASH存儲控制器的整個狀態(tài)機。
3.4 數(shù)據(jù)通路模塊
該模塊主要根據(jù)FLASH存儲器的位寬度與讀寫時序計數(shù)器的當前數(shù)值,對地址信號、字節(jié)使能信好和寫數(shù)據(jù)進行譯碼。在DSP讀FLASH存儲器的數(shù)據(jù)時,要根據(jù)存儲器的位寬度和讀寫時序計數(shù)器的數(shù)值,將要讀的數(shù)據(jù)組裝后發(fā)送給DSP。
本文采用Modelsim仿真工具(主要用于模塊級與部件級模擬)與Ncverilog(后期用于系統(tǒng)級模擬)仿真工具,外接FLASH存儲器的軟核,對FLASH存儲控制器進行功能驗證,以DMA總線訪存來測試,依次測試了8b、16b、32b的異步存儲器,給出的示例為不采樣ARDY,寫32b的數(shù)據(jù)F00FFF0F的情況,如圖3所示,其中EA為地址信號,BE為字節(jié)使能信號,CE位片選信號,AOE為FLASH存儲器的輸出使能信號,AWE為寫選通信號,ED_OUT為FLASH存儲控制器對外輸出的數(shù)據(jù)。
圖3 DMA向8位的FLASH存儲器寫32位的數(shù)據(jù)
本文設計的FLASH存儲器接口,在一定程度上解決了DSP片內(nèi)存儲空間的不足,用戶可以借助于FLASH存儲器接口,構(gòu)建高速度、大容量的片外存儲空間。在具體的結(jié)構(gòu)設計方面,F(xiàn)LASH存儲器接口掛在總線上,盡量滿足IP核的可重用設計,即不需要對結(jié)構(gòu)做大的改動,就可以重構(gòu)一個滿足不同需求的片上外部存儲器接口,只需要替換總線接口模塊為其他類型的片上總線即可。
參考文獻
[1]彭啟琮等.TMS320VC55x系列DSP的CPU與外設[M].北京:清華大學出版社,2005.
[2]夏宇聞.Verilog 數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,2008.
[3]劉宗福.FT-C55 LP外部存儲器接口的設計與實現(xiàn)[D].國防科技大學碩士論文,2009.
[4]顧菘,等.TMS320C67系列EMIF與異步FIFO存儲器的接口設計[J].電子工程師,2005,31(5):53-55.
[5]周順燕,吳丹.TMS320C6713 DSP的高速EMIF數(shù)據(jù)接口設計與實現(xiàn)[J].計算機測量與控制,2010,18(7):1654-1656.
劉宗福(1984—),山東高密人,碩士研究生,工程師,主要從事雷達信號處理工作。
作者簡介: