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

          新聞中心

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

          基于FPGA的DisplayPort設(shè)計與實現(xiàn)

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

          MicroBlaze 處理器發(fā)揮核心作用

          賽靈思推出的 Source Policy Maker Controller 可與內(nèi)核配合使用,這樣其功能在很大程度上和 ASSP 源端設(shè)備一樣。我們建議您使用MicroBlaze 嵌入式或外部處理器來正確初始化和維持該鏈路。XAPP 包含的Policy Maker Reference Design 預(yù)配置版本在 內(nèi)的 MicroBlaze 處理器中實施,可幫助用戶立刻將設(shè)計方案轉(zhuǎn)換成硬件。正式供貨時的參考設(shè)計將包含設(shè)計人員可以修改的源代碼。

          Source Policy Maker Controller設(shè)計的“邏輯”部分位于 MicroBlaze處理器之上,并使用 I2C 命令來控制內(nèi)核配合使用,控制器即可在 外部實施(即在外部處理器中實施)。

          設(shè)計人員可使用支持賽靈思Platform Studio (EDK) 的賽靈思嵌入式硬件設(shè)計套件或具有 SDK 的賽靈思嵌入式軟件設(shè)計套件,對 XAPP 設(shè)計進行修改。通常情況下, 設(shè)計人員使用 EDK,而軟件開發(fā)人員則使用SDK。

          EDK 流會生成一個中間網(wǎng)絡(luò)文件 (NGC),您可以在實施設(shè)計之前,將其整合在項級 ISE 項目中。NGC文件包含構(gòu)成 BRAM 初始化一部分的MicroBlaze 代碼。

          如果用戶修改過軟件,EDK 流通常會占用較長的時間。不過,用戶一旦生成了網(wǎng)絡(luò)列表,就不再需要 EDK或者 SDK 了。SDK 流可修改 FPGA比特流,因此僅需更新 BRAM 中的MicroBlaze 代碼內(nèi)容。該 SDK 流能夠為軟件修改提供更快的轉(zhuǎn)換時間,但在這種情況下,用戶必須每生成一個比特流就使用一次 SDK。有關(guān)本專題的 XAPP 白皮書涵蓋了如何使用賽靈思FPGA 嵌入式軟件開發(fā)套件運行該設(shè)計的詳盡說明。

          該“入門指南”涵蓋豐富信息,其中包括訂購與許可、仿真、全系統(tǒng)硬件評估,以及技術(shù)支持等。此外,其還包含用戶可用于生成范例設(shè)計的腳本文件,以及如何使用范例測試臺與范例模式生成器進行仿真的說明。

          用戶可將該設(shè)計與從 TED Spartan-6FPGA 消費類視頻套件中下載的完整版或評估版賽靈思 LogiCORE以及 FPGA Mezzanine Card卡配合使用(http://www.xilinx.com/products/devkits/TB-6S-CVK.htm)。

          源端的 Policy Maker 內(nèi)含一個狀態(tài)機,可通過 AMBA?APB 端口或采用AMBA 至 PLB 橋的 32 位 PLBv46 總線連接至處理器接口。賽靈思在 BlockRAM 中存儲了用戶可修改的指令集。賽靈思用來調(diào)訓(xùn) (train) 該鏈路的 C++代碼不但是采用 GNU C++ 編譯器編譯的,并且還在采用賽靈思 EDK PlatformStudio 處理器設(shè)計套件的 FPGA 內(nèi)部實施的軟 MicroBlaze 處理器上進行了全面測試。參考設(shè)計包含完整的賽靈思 SDK項目。范例測試臺可將一個 135MHz的時鐘連接至 VID 時鐘,并將一個100MHz 的時鐘連接至 APB 時鐘。賽靈思對所有輸入是否連接正確進行檢查。此外,頂級模塊還提供復(fù)位功能。

          擴展顯示識別

          DisplayPort 一個特別重要的特性是,能夠通過 VESA 的增強顯示識別2010年 夏季刊37手把手課堂:FPGA 101數(shù)據(jù) (EDID) 結(jié)構(gòu)與不同的設(shè)備進行接口相連。EDID 并不是什么新事物。實際上多年以來設(shè)計人員一直在使用各種視頻接口讀取 EDID 的宿端設(shè)備參數(shù),從而與設(shè)備進行接口連接。不過這些早期的 EDID 及相關(guān)接口 技術(shù)通常不包含高級可配置通信通道。如今借助 DisplayPort,VESA 為系統(tǒng)增添了智能性,不但能在源端(如機頂盒、DVD 播放器或 PC 圖形卡)與宿端設(shè)備(如顯示監(jiān)控器)之間進行功能協(xié)調(diào),而且還可優(yōu)化通信參數(shù)。DisplayPort v1.1a 可協(xié)調(diào)的變量包括通道數(shù)量(1、2 或者 4)、每信道數(shù)據(jù)速率(1.62 或 2.7Gbps)、電壓擺幅(0.2、0.6、0.8、1.2 V)、4 個級別的通道預(yù)加重以及鏈路時鐘向下擴散。

          由 CORE Generator 生成,并與LogiCORE 一道提供的接收宿端范例設(shè)計可提供范例 EDID(見圖 3),以便滿足 EDID 源端設(shè)備的讀取需求,確保用戶的最佳視覺體驗。

          圖3 DisplayPort 接收高級方框圖

          圖3 DisplayPort 接收高級方框圖

          宿端范例設(shè)計在 FPGA 內(nèi)部的BRAM 中實施了 EDID 數(shù)據(jù)結(jié)構(gòu)。DisplayPort 的源代碼可通過 AUX 通道實現(xiàn) I2C 協(xié)議。圖 3 和圖 4 顯示了連接至源端的 DisplayPort 宿端的方框圖。宿端的 Link 與 Stream Policy Maker屬于宿端內(nèi)核的組成部分,不過源端的 LinkPolicy Maker 具有更高的復(fù)雜性,將作為源代碼隨參考設(shè)計提供。EDID 通過I2C 接口與接受宿端進行接口連接。

          I2C 協(xié)議非常適合針對 EDID 數(shù)據(jù)結(jié)構(gòu)的連接,并常常用于這種類型的應(yīng)用。I2C 控制器負責定位與管理在EDID 中發(fā)現(xiàn)的數(shù)據(jù),并通過串行接口與 I2C 接口協(xié)議(通過 AUX 通道)將數(shù)據(jù)傳輸至宿端內(nèi)核。在工作模式下,用戶無需知曉 EDID 是否正被訪問。用戶可通過檢測 I2C 總線來監(jiān)控 ROM 的內(nèi)容。在調(diào)試模式下,用戶能夠修改I2C 控制器,覆蓋 EDID ROM 提供的 3位內(nèi)容。I2C 提供控制信號,在與適當?shù)拈_集輸出相連時,可提供 I2C 主接口。

          宿端內(nèi)含名為“DisplayPort 配置數(shù)據(jù)(DPCD)”的數(shù)據(jù)結(jié)構(gòu),可以存儲配置數(shù)據(jù)并作為宿端與源端都可讀寫的通信郵箱使用。源端一般使用跨 AUX 通道的 DPCD 內(nèi)容(參見圖 3 和圖 4)。

          Policy Maker 鏈路調(diào)訓(xùn)

          在 DisplayPort 鏈路上建立通信的過程稱為“鏈路調(diào)訓(xùn)”。在鏈路調(diào)訓(xùn)的過程中,內(nèi)核在通信啟動時將著力于最大限度降低錯誤的同時,優(yōu)化鏈路速度與功耗。如果在數(shù)據(jù)傳輸中出現(xiàn)問題,內(nèi)核將自動重復(fù)鏈路調(diào)訓(xùn),以適應(yīng)不斷變化的條件。源端與宿端信息包之間的通信通過雙向半雙工 1Mbps AUX 通道進行。視頻與音頻數(shù)據(jù)通過主鏈路信道(1、2 或 4)進行傳輸,其是從源端到宿端的高速千兆位級收發(fā)器通道。

          內(nèi)核的鏈路調(diào)訓(xùn)工作分兩步執(zhí)行:時鐘恢復(fù)、信道均衡;符號鎖定(symbol lock)、信道間對準。步驟一,接收器的 PLL 鎖定至進入的信號,并恢復(fù)鏈路時鐘。步驟二,系統(tǒng)對通道均衡與信道間對準進行優(yōu)化。

          下面是源端與宿端的 PolicyMakers 的典型工作順序:

          1. Tx Link Policy Maker 可監(jiān)控熱拔插檢測情況,如果檢測到有熱拔插,則向 Stream Source Policy Maker 發(fā)送通知。Stream Source Policy Maker 通過 AUC 通道讀取宿端 EDID;

          2. Tx Link Policy Maker 通過AUX 通道讀取來自宿端的 DisplayPort配置數(shù)據(jù)。根據(jù)源端與宿端的功能配置情況,它可為宿端 DPCD 的鏈路配置字段編寫配置參數(shù),并通過寫入到宿端 DPCD 的“TRAINING_PATTERN_SET”字節(jié)啟動鏈路調(diào)訓(xùn),隨即對調(diào)訓(xùn)模式的發(fā)送進行初始化;

          3. Tx Link Policy Maker 根據(jù)來自 Rx Link Policy Maker 的反饋,通過調(diào)節(jié)電壓擺幅以及在必要時調(diào)節(jié)比特率,來控制時鐘恢復(fù)順序。一旦內(nèi)核完成時鐘恢復(fù),鏈路調(diào)訓(xùn)就進入通道均衡階段。在該階段,如果調(diào)用 Rx LinkPolicy Maker,即對預(yù)加重進行調(diào)節(jié)。此外,接收器還將在本階段完成符號鎖定與信道間的對準;

          4. 一旦內(nèi)核通過鏈路調(diào)訓(xùn)( 即系統(tǒng)完成位鎖定與符號鎖定),就會在 DPCD 中予以提示。Tx Link PolicyMaker 可向 Tx Stream Policy Maker 報告調(diào)訓(xùn)狀況,以在進行流屬性數(shù)據(jù)傳輸?shù)耐瑫r實現(xiàn)同步流。

          Policy Maker 的附加功能

          除了參與鏈路調(diào)訓(xùn)外,Tx Link Policy Maker 還可利用來自接收器的IRQ HPD 信號監(jiān)控宿端事件通知,并可檢查 DPCD 的鏈路狀態(tài)字段,了解中斷的原因。如果Tx Link Policy Maker檢測到鏈路失去鎖定,就必須重新訓(xùn)練鏈路。如果接收器調(diào)用,其還可重新配置鏈路,增加或者減少主鏈路信道數(shù)。

          此外,Link Policy Maker 還可決定多個 AUX 請求事物處理的順序,因為每個事物處理結(jié)束于另一個事物處理開始之前。由于宿端的答復(fù)可以是 NACK或者 DEFER,Policy Maker 必須決定針對這兩種情況的后續(xù)工作。AUX 事物處理僅限于 16 字節(jié)的數(shù)據(jù),因此Policy Maker 必須將較大的事務(wù)處理分成多個不超過 16 字節(jié)的事物處理。

          由于 DisplayPort 能夠協(xié)商和優(yōu)化鏈路設(shè)置,因而能夠在不斷變動的條件下實現(xiàn)最佳結(jié)果。Link 與 Stream Policy Maker是進行流程協(xié)調(diào)的控制功能,能夠?qū)崿F(xiàn)現(xiàn)代高速視頻與音頻的傳輸。采用 MicroBlaze 嵌入式系統(tǒng)的賽靈思Source Policy Maker Controller 系統(tǒng)參考設(shè)計經(jīng)過精心設(shè)計,可幫助您充分發(fā)揮這些全新功能的所有優(yōu)勢,向市場推出功能豐富的顯示產(chǎn)品。賽靈思DisplayPort LogiCORE 可提供高度靈活的源端與宿端解決方案,具有可下載到TED Spartan-6 消費類視頻套件中的范例 EDID 及源代碼。免費提供該 IP 的評估版本。

          fpga相關(guān)文章:fpga是什么



          上一頁 1 2 下一頁

          關(guān)鍵詞: DisplayPort FPGA

          評論


          相關(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); })();