<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于CPLD的VGA視頻顯示系統(tǒng)的設計

          基于CPLD的VGA視頻顯示系統(tǒng)的設計

          作者: 時間:2009-06-16 來源:網(wǎng)絡 收藏

            視頻DAC模塊

            ADV7123是一個三路10位輸入的高速視頻DAC,具有330MHz的最大采樣速度,與多種高精度的顯示兼容,包括RS-343A和RS-170,可以廣泛應用于如HDTV、數(shù)字視頻(1600*1200 @100Hz)、高分辨率的彩色圖片圖像處理、視頻信號再現(xiàn)等,因此能夠滿足多方面應用需求。視頻DAC(ADV7123)工作原理如圖3所示。

          ADV7123工作原理

          圖3 ADV7123工作原理

            提供Hsync(行)、Vsync(場)同步信號,直接接入15針的顯示接口連接器。在點時鐘脈沖pixel clock的作用下將3路10位的RGB信號送入數(shù)據(jù)寄存器,而后送到3個DAC模塊,復合消隱信號和復合同步信號加到紅、綠、藍模擬信號送到輸出端。

            軟件設計

            系統(tǒng)軟件設計是本文的重點,主要包括三部分內(nèi)容:SRAM讀寫狀態(tài)機的設計、與SRAM的緩沖模塊通信以及時序設計。

            SRAM讀寫狀態(tài)機的設計

            以6416為核心的圖象處理機通過外部存儲器接口向外傳送數(shù)據(jù),連接到后端的顯示系統(tǒng);但SRAM需要嚴格的通信時序確保數(shù)據(jù)的完整性,此處在內(nèi)部通過狀態(tài)機構造SRAM的讀時序和寫時序,確保了6416能夠和SRAM正常通信,也確保緩沖模塊的正常運行。讀寫SRAM的時序圖如圖4和圖5所示。

          讀周期時序圖

          圖4 讀周期時序圖

          寫周期時序圖

          圖5 寫周期時序圖

            當從SRAM中讀取數(shù)據(jù)時:首先使能片選;UB、LB時鐘處于有效狀態(tài);WE為高,時鐘處于無效狀態(tài);主要由OE的時序來控制使其符合讀時序圖,才能正確地讀出存儲器中的數(shù)據(jù)。在向SRAM中寫入數(shù)據(jù)時,同樣首先使能片選;UB、LB時鐘處于有效狀態(tài);OE為高,時鐘處于無效狀態(tài);主要由WE的時序來控制使之符合寫時序圖,才能向存儲器正確寫入數(shù)據(jù)。

            CPLD與SRAM組成的緩沖模塊的通信

            CPLD與SRAM組成的緩沖通信模塊,即如何乒乓讀寫SRAM機制。設定一個讀寫標志FLAG,當一塊SRAM寫滿一幀圖像時,F(xiàn)LAG會出現(xiàn)“1”到“0”或者“0”到“1”的跳變,同時切換數(shù)據(jù)流的流向,寫另一塊SRAM,同時切換輸出至后級DAC的數(shù)據(jù)流;如此循環(huán),軟件流程圖如圖6所示。

          緩沖模塊通信軟件流程圖

          圖6 緩沖模塊通信軟件流程圖



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();