基于FPGA的DDR3多端口讀寫存儲管理系統設計
直接結果緩存區存放直接輸出的與背景顏色無關的像素值數據;插值結果緩存區存放需要讀回對應位置的背景視頻進行插值修正的像素點的數據。插值結果寫到DDR3時,首先從視頻存儲DDR3中讀出需要修正的像素點對應位置的視頻像素值作為背景,然后用流水線處理實現插值修正,最后將修正結果寫到圖形存儲DDR3中。
本文引用地址:http://www.104case.com/article/271735.htm為了提高讀寫速度,圖形中斷處理器中先進行直接結果寫中斷處理;同時視頻中斷處理器中進行插值背景視頻讀中斷處理。同時完成后再進行插值結果寫中斷處理。流程與圖6和圖7相似。
4幀地址控制模塊設計
幀地址控制模塊主要是將DDR3空間進行劃分,同時控制幀地址的切換。為了簡化設計,將存儲器劃分為若干塊,每塊存儲一幀數據,在用戶仲裁控制模塊讀寫緩存區時只生成幀內地址,幀地址的切換由幀讀寫控制模塊實現,幀內地址結合幀地址組合成對應DDR3的內部地址值。DDR3的幀地址劃分如圖8所示。

圖8 DDR3幀地址劃分
圖形的讀寫和DVI視頻的讀寫不涉及幀速率的轉換,因此圖形存儲DDR3中的第0~1幀和視頻存儲DDR3中的第3~4幀地址控制方式相同,都是其中一幀用于將生成數據寫入到DDR3中,另一幀用于讀出數據疊加輸出,兩幀交替使用,通過乒乓操作來實現圖形數據的存儲與讀取。
視頻存儲DDR3中,第0~2幀(又稱A空間、B空間和C空間)用于PAL視頻處理后輸入幀及視頻輸出幀。由于PAL視頻幀速率為25Hz,而最終輸出DVI的幀速率為60Hz,因此需要實現幀速率轉換。常見的幀速率轉換算法[8]包括:幀復制法、幀平均法、運動補償法等,由于機載系統對實時性要求比較高,因此選用幀復制法。
設置三個幀存儲空間,其中一幀用于讀出,一幀用于寫入,還有一幀空閑,分別稱作輸入幀、輸出幀和空閑幀。用三者的切換來實現幀速率的轉換,確保輸出幀相對于當前輸入幀的延遲最小,即當前輸出幀輸出的是最新寫滿的幀。當寫入的幀存儲空間已經寫滿,而讀存儲空間還沒讀完,將下一幀的圖像數據寫到當前空閑的幀存儲空間。圖9為PAL輸入幀和輸出幀讀寫控制流程圖。以A空間為輸出幀,B空間為輸入幀,C空間為空閑幀為例。若A空間讀完,B空間寫滿,則將B空間變成輸出幀并輸出,將C空間變成輸入幀并繼續輸入;若A空間還沒有讀完,B空間已經寫滿,則將下一幀數據寫入到C空間,并繼續從A空間輸出。

圖9 PAL輸入幀和輸出幀讀寫控制流程圖
fpga相關文章:fpga是什么
存儲器相關文章:存儲器原理
評論