關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 高速圖像處理系統中DDR2-SDRAM接口的設計

        高速圖像處理系統中DDR2-SDRAM接口的設計

        作者: 時間:2011-07-22 來源:網絡 收藏


        2.1 時鐘生成模塊
        時鐘生成模塊主要負責整個系統的所有時鐘,包括DDR2控制器所需要的時鐘,外部所需的時鐘。全部由DCM來產生。
        2.2 數據模塊
        數據模塊主要是負責不同數據之間格式的轉換,這個模塊主要是考慮到輸入端的數據的不同格式,必須經過格式轉換才能符合DDR2位寬的數據。
        2.3 輸入/輸出緩存模塊
        輸入/輸出緩存模塊是采用V5器件的DRAM來實現FIFO的,輸入緩存是由兩個DRAM來完成的,DRAM配置為12×1 024,12為數據寬度,1 024為存儲深度,這個配置是根據具體的位寬和每行的像素點來設定的。在這里暫定的源是標準的VGA圖像,其大小為800×600。數據源每寫入一行數據(800個數),然后讀出一行數據。考慮到系統的穩定性,采用兩個FIFO交替的讀/寫數據,也就是所謂的乒乓操作,如圖4所示,當一個FIFO在讀時,另一個FIFO就寫,然后交替讀/寫。在每一個FIFO讀完數據后,對其清零。這樣就保證每一次寫入的數據不相互干擾,保證了系統的穩定性。其中的輸入/輸出選擇單元是通過判斷VGA圖像的行數來判斷寫和讀哪個FIFO的。


        除了緩存數據,FIFO在本模塊的另一個重要的作用就是時鐘域的轉換。外部的輸入數據和輸出數據的時鐘都是40 MHz,而DDR2的讀/寫數據時鐘是100 MHz的,這樣就存在著時鐘域的轉換問題,由于FIFO的讀/寫可以用不同的時鐘。在輸入端,就可以用40 MHz的時鐘把數據寫入FIFO,然后用100 MHz的時鐘從FIFO讀出數據。在輸出端可以用100 MHz的時鐘把從DDR2讀出的數據送入FIFO,然后再用40 MHz的時鐘從FI-FO中讀出數據,送到VGA顯示。但是由于讀入與寫出的時鐘頻率不一樣,很容易出現FIFO讀空和寫滿的問題。該問題的一般解決方法是利用FIFO的ALMOSTFULL和ALMOSTEMPTY來解決。在這個系統中,考慮到輸入的數據源和VGA顯示的時鐘頻率都是40 MHz,所以采用VGA數據有效信號來控制FIFO的寫,行消隱信號來控制輸入FIFO的讀,即每來一行數據才讀一行數據,這樣就保證了輸入FIFO不會讀空。而輸出FIFO的寫是通過DDR2內部的讀數據有效位來控制的,因為DDR2內部的操作是寫1行,讀1行,所以在寫入FIFO一行數據后,要等到下一行到來后,才會往輸出FIFO寫入數據,所以也就解決了輸出FIFO寫滿的問題。
        2.4 控制模塊
        的讀/寫控制是整個系統的關鍵。由于要緩存圖像,所以就必須在DDR2里面開辟兩個大小相同的存儲單元。這兩個存儲單元的大小是根據一幀圖像的大小來開辟的,其大小為800×600個存儲單元。對DDR2的存儲操作為先向第一個存儲單元寫入第一行數據,讀出第二個存儲單元的第一行數據。當寫滿第一個存儲單片后,第二個存儲單元也被讀空,這時候交換讀/寫地址,讀一個存儲單元,寫第二個存儲單元,依次輪換。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 江山市| 肇州县| 泽州县| 吴忠市| 遂平县| 舞阳县| 共和县| 胶南市| 凤翔县| 扎鲁特旗| 婺源县| 蒙阴县| 福泉市| 泽库县| 土默特右旗| 杭锦旗| 新密市| 临邑县| 讷河市| 磴口县| 纳雍县| 中牟县| 肥东县| 新平| 丹江口市| 阿克| 奉新县| 新绛县| 壤塘县| 东乌珠穆沁旗| 嘉义县| 襄城县| 梁河县| 芜湖县| 吴川市| 眉山市| 美姑县| 平武县| 景泰县| 阳春市| 丹巴县|