基于FPGA的DDR3多端口讀寫存儲管理系統(tǒng)設計
3 DDR3用戶接口仲裁控制模塊設計
本文引用地址:http://2s4d.com/article/271735.htm每片DDR3只有一組控制、地址和數據總線,因此同一時刻只能有一個設備在訪問。常見的總線切換方式有兩種:一種是輪詢機制,軟件實現簡單,但實時性不高;一種是仲裁機制,設備發(fā)送中斷請求,從而進行總線切換。由于視頻圖形顯示系統(tǒng)對實時性要求高,因此選擇仲裁機制。
DDR3用戶接口仲裁控制框圖如圖5所示。為了提高并行速度,將圖形和視頻分別進行中斷處理。將設備中斷請求解析成多個子請求,進行優(yōu)先級判斷,每個子請求對應一個中斷處理邏輯。

圖5 DDR3 用戶接口仲裁控制設計框圖
3.1視頻處理寫請求中斷處理器設計
由于視頻處理寫請求不涉及到圖形中斷處理,所以對應一個子請求:視頻處理寫子請求。
視頻處理模塊將采集到的視頻經過縮放、旋轉等操作后存儲在緩存區(qū)中,當緩存區(qū)滿時發(fā)送視頻處理模塊寫請求。視頻處理寫中斷處理主要是從視頻處理模塊的緩存區(qū)中將地址和數據取出,寫入到視頻存儲DDR3中。

圖6 視頻處理寫請求中斷處理流程圖
視頻處理寫請求中斷處理流程圖如圖6所示。當視頻處理模塊寫請求信號有效時,生成子中斷請求信號,若總線空閑則響應該中斷。當命令接收就緒(app_rdy=1)且數據接收就緒(app_wdf_rdy=1)時,從視頻處理緩存區(qū)中讀取地址和數據,同時發(fā)送寫命令、寫地址和寫數據。若緩存區(qū)為空,說明全部寫完,視頻處理寫中斷結束。
3.2疊加輸出讀請求中斷處理器設計
疊加輸出模塊需要從DDR3中將待輸出的圖形數據和視頻數據存儲到行緩存中,因此分為兩個子請求:視頻輸出讀請求和圖形輸出讀請求。由于兩者分別在圖形中斷處理和視頻中斷處理中完成,因此可以同時進行。
視頻輸出讀中斷處理主要從視頻存儲DDR3中讀取1行視頻數據寫入到疊加輸出模塊的視頻緩存區(qū)中,流程圖如圖7所示。本系統(tǒng)中突發(fā)長度為BL=8,即每個用戶時鐘周期對應接收同一行地址中相鄰的8個存儲單元的連續(xù)數據。輸出視頻分辨率為cols×rows,則地址系統(tǒng)需要發(fā)送cols/8個突發(fā)讀命令。數據系統(tǒng)接收讀數據時,若讀數據有效(app_rd_data_valid=1),則將讀到的數據存儲到疊加輸出模塊的視頻緩存區(qū)中,同時讀數據個數加1.當讀數據個數為cols/8時,所有讀命令對應的讀數據全部接收,視頻輸出讀中斷處理結束。

圖8 視頻輸出讀中斷處理流程圖
圖形輸出讀中斷處理包含兩個步驟:從圖形存儲DDR3中讀取1行圖形數據寫到疊加輸出模塊的圖形緩存區(qū)中;將剛剛搬移數據到圖形緩存區(qū)的DDR3存儲空間清零。前者與視頻輸出讀中斷的處理過程類似。
圖形數據寫入DDR3時只寫入有圖形的位置,而不是全屏掃描,如果不進行清屏操作會導致下一幀圖形畫面上殘留上一幀的圖形數據。清屏操作指圖形輸出后將DDR3中對應地址的存儲空間全部寫入數值0,從而將當前圖形數據清除。
3.3圖形生成寫請求中斷處理器設計
圖形生成是接收CPU的圖形命令并進行光柵化,將結果先存儲在直接結果緩存區(qū)和插值結果緩存區(qū)中,從而存入到DDR3中。當一幀圖形全部繪制完成后發(fā)送圖形生成模塊寫請求。圖形生成寫請求分為三個子請求:直接結果寫中斷請求、插值背景讀中斷請求、插值結果寫中斷請求。
fpga相關文章:fpga是什么
存儲器相關文章:存儲器原理
評論