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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的DVI/HDMI接口實現(xiàn)

          基于FPGA的DVI/HDMI接口實現(xiàn)

          作者: 時間:2009-05-15 來源:網(wǎng)絡(luò) 收藏

          基于ECP2M的接收功能實現(xiàn)

          本文引用地址:http://www.ex-cimer.com/article/192045.htm


          /參考設(shè)計有發(fā)送和接收功能。在接收端,ECP2M利用內(nèi)置模塊SERDES恢復(fù)T M D S信號,通過SERDES內(nèi)的時鐘和數(shù)據(jù)恢復(fù)(CDR)電路完成這個處理。CDR電路將每個串行的T M D S通道轉(zhuǎn)換至10位,并將具有同步時鐘的數(shù)據(jù)傳送至,然后在中進行數(shù)據(jù)處理達到同步。這要求有三個級別的同步,分別是在本文中稱為“字節(jié)對齊”的10位同步、通道調(diào)整、多通道對齊。文章的后面討論這些步驟。接下來是自動檢測正在運行的數(shù)據(jù)流的分辨率(480p、720p、1080p或1080i),并調(diào)整物理編碼子層(PCS)參數(shù)。當(dāng)在這些分辨率之間動態(tài)切換時,應(yīng)保證優(yōu)化運行。針對發(fā)送端,沒有必要進行字節(jié)和通道對齊。10位模式的PCS是用來使數(shù)據(jù)串行化,并與液晶顯示屏通信。


          ECP2M/ECP3的CML SERDES輸入(見圖3的接收信號流)收到T M D S三個通道的信號(0、1,和2)數(shù)據(jù)。由于/的信號不采用標(biāo)準(zhǔn)的8B/10B編碼,SERDES后面的PCS設(shè)置成10位模式(旁路)。T M D S信號傳輸使用對本協(xié)議唯一的四個對齊的字符(不同于8B/10B方式)。串行器與SERDES的CDR傳遞10位的原始數(shù)據(jù),進行字節(jié)對齊。/鏈路連接能以多個不同的頻率發(fā)送數(shù)據(jù),自動檢測邏輯被用來檢測正在傳送的是哪種分辨率,并配置PCS以便在SERDES鎖相環(huán)中實現(xiàn)鎖定。

          基于FPGA的DVI/HDMI接口實現(xiàn)
          圖3:HDMI/DVI鏈路的原理框圖。


          接收同步


          一旦10位數(shù)據(jù)在FGPA中,執(zhí)行上述定義的三個步驟(字節(jié)對齊、通道對齊、多通道對齊)是必須的 。字節(jié)對齊:設(shè)計確定在數(shù)據(jù)流的哪里是10位數(shù)據(jù)字節(jié)的開始和結(jié)束。在FPGA結(jié)構(gòu)中使用有限狀態(tài)機(FSM)來完成這一任務(wù)。把數(shù)據(jù)流的第一個和第二個10位組合在一起,形成一個20位的總線;然后分解至9位、10位總線。在這一階段,數(shù)據(jù)與對齊的字符進行比較,當(dāng)字符順序發(fā)生了8次(稱為單通道對齊),同步信號有效。狀態(tài)圖如圖4所示。

          基于FPGA的DVI/HDMI接口實現(xiàn)
          圖4:接收同步的狀態(tài)圖。


          同步檢測之后,對齊數(shù)據(jù)的字節(jié)寫入FIFO。當(dāng)所有三個通道都完成了“通道對齊”,就可以寫入FIFO,至此通道對齊的任務(wù)就結(jié)束了。在這一階段, FPGA將等待直到FIFO處于半滿狀態(tài),并在同一時間(多通道對齊)對三個FIFO進行讀操作 。這將保證三個通道對齊,并同步。



          關(guān)鍵詞: FPGA HDMI DVI 接口

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();