關 閉

        新聞中心

        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的存儲操作為先向第一個存儲單元寫入第一行數據,讀出第二個存儲單元的第一行數據。當寫滿第一個存儲單片后,第二個存儲單元也被讀空,這時候交換讀/寫地址,讀一個存儲單元,寫第二個存儲單元,依次輪換。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 出国| 青神县| 洛宁县| 化德县| 喀什市| 濮阳市| 临沧市| 萨迦县| 平定县| 临汾市| 阿拉善左旗| 海口市| 全州县| 永春县| 青冈县| 酉阳| 昆明市| 夏邑县| 乌拉特中旗| 葫芦岛市| 台中县| 宜君县| 仙居县| 裕民县| 博罗县| 呼玛县| 达孜县| 荥阳市| 香格里拉县| 平舆县| 遵义县| 黄浦区| 峨眉山市| 福鼎市| 西林县| 彝良县| 静海县| 沁水县| 柳河县| 太仆寺旗| 虹口区|