采用FPGA實現(xiàn) DisplayPort
不過, 對于開發(fā)這些電視或連接至這些電視的電子產(chǎn)品的設(shè)計工程師來說,所有這些最新特性都意味著需要非常高的帶寬。例如,一部具備 800 萬像素的四聲道 4Kx2K 高清電視(可為家庭提供數(shù)字影院效果)需要的帶寬是當(dāng)前頂級電視和顯示器在理想工作狀態(tài)下所需帶寬的四倍,這意味著在機(jī)頂盒與高清電視之間存在巨大的數(shù)據(jù)吞吐量。
這種對更高帶寬的需求并不單單來自消費產(chǎn)品市場,為了滿足 MRI 和 CT掃描、命令與控制、菊花鏈顯示、電子公告牌與 DNA 3D渲染、航空器、天氣以及人體構(gòu)造等眾多應(yīng)用領(lǐng)域的顯示需要,廣播設(shè)備、數(shù)字顯示、科研以及醫(yī)療市場也在不斷加大對帶寬的要求。
為了在控制成本的同時還能有助于滿足這種帶寬需求,視頻電子標(biāo)準(zhǔn)協(xié)會 (Video Electronics Standards Association) 于 2007 年向市場推出了DisplayPort,并隨后積極與合作伙伴展開合作,對 DisplayPort 進(jìn)行優(yōu)化。如今,VESA DisplayPort 1.1a 已能夠在單根線纜內(nèi)支持多達(dá) 4 個通道且每通道最高 2.7Gbps 的數(shù)據(jù)率,而 DisplayPort1.2 又將支持的數(shù)據(jù)數(shù)率翻了一番,達(dá)到5.4Gbps(足以在單顯示器應(yīng)用中支持3,840 x 2,400 像素 (60Hz),或 4 臺顯示器應(yīng)用中的 1,920x1,200 像素,或 2,560x 1,600 像素的 3D 顯示 (120Hz))。DisplayPort 可同時支持兩種嵌入式顯示,如筆記本電腦的顯示器,以及視頻“源端”設(shè)備(機(jī)頂盒、DVD 播放機(jī)、PC 圖形卡以及筆記本電腦)和獨立顯示設(shè)備(HDMI 與 DisplayPort 標(biāo)準(zhǔn)文檔中所稱的“宿端”設(shè)備)之間的盒至盒連接 (box-to-box connection)。
一些芯片制造商已針對上述應(yīng)用推出了現(xiàn)成的標(biāo)準(zhǔn)發(fā)送器和接收機(jī),而賽靈思推出了名為 Xilinx LogiCORETM DisplayPort v1.1(v1.2 將在 IDS 12.1中配套提供) 的靈活可編程 VESA DisplayPort v.1.1a 解決方案。該 IP 可隨時提供給賽靈思的客戶,但在用戶展開設(shè)計之前,建議先了解與該標(biāo)準(zhǔn)的部分關(guān)鍵功能有關(guān)的其它背景信息,如Policy Maker,以及如何使用我們即將推出的 XAPP“使用 MicroBlazeTM 嵌入式系統(tǒng)實施 DisplayPort Source PolicyMaker 控制系統(tǒng)參考設(shè)計”在東京電子設(shè)備 (TED) 提供的 Spartan-6 消費類視頻套件上完成實施工作。
Policy Maker — 關(guān)鍵性差異
對于顯示市場來說,DisplayPort協(xié)議標(biāo)志著連接技術(shù)的重大變革。這次轉(zhuǎn)型的意義不亞于在 Intel 主導(dǎo)的 PC 市場上從并行 PCI 總線升級至串行 PCI Express。在顯示市場上,VESA 通過DisplayPort 引領(lǐng)著從 VGA、DVI 以及HDMI 等協(xié)議成功升級至高速串行收發(fā)器、基于包的層架構(gòu)協(xié)議。與并行協(xié)議不同,串行分組協(xié)議在實現(xiàn)和維持連接或鏈路方面要多一層復(fù)雜性。在 VESA DisplayPort 1.1a 規(guī)范中,控制功能被劃分為 Link Policy Maker 和 Stream Policy Maker。Link Policy Maker 可管理鏈路,并負(fù)責(zé)保持鏈路同步。其任務(wù)包括發(fā)現(xiàn)鏈路、對鏈路進(jìn)行初始化和維護(hù)。Stream Policy Maker 可管理傳輸初始化,并通過底層硬件對行動序列施加控制來維護(hù)同步流。
Policy Maker 的上述要素需根據(jù)特定的實施來決定,而且可在操作系統(tǒng)、軟件驅(qū)動程序、固件或者 FPGA 邏輯中進(jìn)行配置。為簡化使用,許多商用DisplayPort IC 將 Link 和 Stream PolicyMaker 對設(shè)計人員隱藏。如果用戶的顯示要求恰與套裝的 DisplayPort ASSP相匹配,則其價格和易用性確實無可爭辯。但是,想要讓產(chǎn)品在競爭中脫穎而出的設(shè)計人員則傾向于采用 FPGA。
圖2 DisplayPort Source Policy Maker Controller System Reference Design 與 LogiCORE 源端高層結(jié)構(gòu)圖
Source Policy Maker參考設(shè)計
DisplayPort Source Policy Maker控制系統(tǒng)參考設(shè)計采用MicroBlaze嵌入式系統(tǒng)來實施與商用套裝 DisplayPort 芯片類似的功能,且具備可進(jìn)行源代碼定制的額外優(yōu)勢。通過使用 Source Policy Maker Controller System Reference Design 的應(yīng)用手冊,用戶不必對 Policy Maker 進(jìn)行詳細(xì)了解即可順利啟動設(shè)計工作,僅需簡單地將范例設(shè)計連接起來。
除了上述源代碼設(shè)計之外,DisplayPort 的傳輸 (Tx) 或源端內(nèi)核也配套提供了用于實現(xiàn)有限狀態(tài)機(jī) (FSM)控制器的額外范例設(shè)計。
DisplayPort Tx FSM 控制器范例設(shè)計(其頂級文件名為 dport_tx_fsm_cntrl)配套提供 DisplayPort LogiCORE 源端設(shè)計范例。該款簡單的概念驗證設(shè)計內(nèi)含基于 RTL 的有限狀態(tài)機(jī),以實施可演示正確啟動流程的簡單Policy Maker。與其他范例設(shè)計相比,dport_tx_fsm_cntrl 設(shè)計范例的優(yōu)勢在于可以顯著縮短仿真時間。
Source Policy Maker 控制系統(tǒng)參考設(shè)計采用擬將于 5 月下旬推出的MicroBlaze 嵌入式系統(tǒng) XAPP,其頂級ISE 項目名稱為“dport_source_ref_design.xise“。該設(shè)計使用戶能夠根據(jù)自己的需要對 Source Policy Maker Controller的源代碼進(jìn)行修改。此外,其還能夠與 DisplayPort LogicCORE v1.2 (IDS12.1) 版和 Spartan-6 TED 消費類視頻套件協(xié)同運(yùn)行。
上述兩種范例設(shè)計都包含了可實現(xiàn)內(nèi)核設(shè)置及鏈路和流維護(hù)的基本流程。請注意,TED Spartan-6 消費類視頻套件沒有提供 DisplayPort 線纜。
功能概述
源端、宿端/ 視頻規(guī)范都會采用 Policy Maker,但在 DisplayPortLogiCORE 中,賽靈思對它們進(jìn)行了差別實施。與源(發(fā)送)端的 Policy Maker 功能相比, 宿( 接收) 端的Policy Maker 功能要簡單得多。賽靈思LogiCORE 在 LogiCORE 內(nèi)實施了大部分宿端 Policy Maker 功能?;?RTL的宿端控制器可提供剩余部分的功能。由于源端 Policy Maker 的功能復(fù)雜得多,因而可采用源代碼參考設(shè)計的方式提供。
讓我們來深入了解源端Policy Maker,其使設(shè)計人員能夠最大限度地提高功能靈活性與實施靈活性。頂級范例設(shè)計包含內(nèi)核的兩個高級組件示例:XAPP 使用 MicroBlaze 嵌入式系統(tǒng)實施 DisplayPort Source Policy Maker 控制系統(tǒng)參考設(shè)計;以及 DisplayPort 內(nèi)核源端(發(fā)送)設(shè)計。賽靈思將內(nèi)核的實施分成原子鏈路功能,分別稱為主鏈路 (Main Link)、二級通道 (Secondary Channel) 以及 AUX 通道協(xié)議。主鏈路可實現(xiàn)主視頻流的交付。二級通道可在消隱期內(nèi)將音頻信息的交付集成到主鏈路中。賽靈思將在未來發(fā)布的內(nèi)核中提供二級通道。同時,AUX 通道可為宿端通信通道建立專用源端(參見圖 2)。
賽靈思為用戶數(shù)據(jù)接口新增了線路緩存器,使用戶能夠在 FPGA(參見圖 2、3 和 4)中便捷實施范例設(shè)計。圖 3 中宿端的 Policy Maker 與 Device Controller 都是 CORE GeneratorTM 所提供宿端設(shè)計范例的組成部分。
MicroBlaze 處理器發(fā)揮核心作用
賽靈思推出的 Source Policy Maker Controller 可與內(nèi)核配合使用,這樣其功能在很大程度上和 ASSP DisplayPort源端設(shè)備一樣。我們建議您使用MicroBlaze 嵌入式或外部處理器來正確初始化和維持該鏈路。XAPP 包含的Policy Maker Reference Design 預(yù)配置版本在 FPGA 內(nèi)的 MicroBlaze 處理器中實施,可幫助用戶立刻將設(shè)計方案轉(zhuǎn)換成硬件。正式供貨時的參考設(shè)計將包含設(shè)計人員可以修改的源代碼。
Source Policy Maker Controller設(shè)計的“邏輯”部分位于 MicroBlaze處理器之上,并使用 I2C 命令來控制內(nèi)核配合使用,控制器即可在 FPGA 外部實施(即在外部處理器中實施)。
設(shè)計人員可使用支持賽靈思Platform. Studio (EDK) 的賽靈思嵌入式硬件設(shè)計套件或具有 SDK 的賽靈思嵌入式軟件設(shè)計套件,對 XAPP 設(shè)計進(jìn)行修改。通常情況下,F(xiàn)PGA 設(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ā)套件運(yùn)行該設(shè)計的詳盡說明。
該“入門指南”涵蓋豐富信息,其中包括訂購與許可、仿真、全系統(tǒng)硬件*估,以及技術(shù)支持等。此外,其還包含用戶可用于生成范例設(shè)計的腳本文件,以及如何使用范例測試臺與范例模式生成器進(jìn)行仿真的說明。
用戶可將該設(shè)計與從 TED Spartan-6FPGA 消費類視頻套件中下載的完整版或*估版賽靈思DisplayPort LogiCORE以及 DisplayPort FPGA Mezzanine Card卡配合使用。
源端的 Policy Maker 內(nèi)含一個狀態(tài)機(jī),可通過 AMBA?APB 端口或采用AMBA 至 PLB 橋的 32 位 PLBv46 總線連接至處理器接口。賽靈思在 BlockRAM 中存儲了用戶可修改的指令集。賽靈思用來調(diào)訓(xùn) (train) 該鏈路的 C++代碼不但是采用 GNU C++ 編譯器編譯的,并且還在采用賽靈思 EDK PlatformStudio 處理器設(shè)計套件的 FPGA 內(nèi)部實施的軟 MicroBlaze 處理器上進(jìn)行了全面測試。參考設(shè)計包含完整的賽靈思 SDK項目。范例測試臺可將一個 135MHz的時鐘連接至 VID 時鐘,并將一個100MHz 的時鐘連接至 APB 時鐘。賽靈思對所有輸入是否連接正確進(jìn)行檢查。此外,頂級模塊還提供復(fù)位功能。
擴(kuò)展顯示識別
DisplayPort 一個特別重要的特性是,能夠通過 VESA 的增強(qiáng)顯示識別2010年 夏季刊37手把手課堂:FPGA 101數(shù)據(jù) (EDID) 結(jié)構(gòu)與不同的設(shè)備進(jìn)行接口相連。EDID 并不是什么新事物。實際上多年以來設(shè)計人員一直在使用各種視頻接口讀取 EDID 的宿端設(shè)備參數(shù),從而與設(shè)備進(jìn)行接口連接。不過這些早期的 EDID 及相關(guān)接口 技術(shù)通常不包含高級可配置通信通道。如今借助 DisplayPort,VESA 為系統(tǒng)增添了智能性,不但能在源端(如機(jī)頂盒、DVD 播放器或 PC 圖形卡)與宿端設(shè)備(如顯示.)之間進(jì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ù)加重以及鏈路時鐘向下擴(kuò)散。
由 CORE Generator 生成,并與LogiCORE 一道提供的接收宿端范例設(shè)計可提供范例 EDID(見圖 3),以便滿足 EDID 源端設(shè)備的讀取需求,確保用戶的最佳視覺體驗。
圖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 接口與接受宿端進(jìn)行接口連接。
I2C 協(xié)議非常適合針對 EDID 數(shù)據(jù)結(jié)構(gòu)的連接,并常常用于這種類型的應(yīng)用。I2C 控制器負(fù)責(zé)定位與管理在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 提供控制信號,在與適當(dāng)?shù)拈_集輸出相連時,可提供 I2C 主接口。
宿端內(nèi)含名為“DisplayPort 配置數(shù)據(jù)(DPCD)”的數(shù)據(jù)結(jié)構(gòu),可以存儲配置數(shù)據(jù)并作為宿端與源端都可讀寫的通信郵箱使用。源端一般使用跨 AUX 通道的 DPCD 內(nèi)容(參見圖 3 和圖 4)。
圖4 VESA DisplayPort v1.1a 主鏈路
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 通道進(jìn)行。視頻與音頻數(shù)據(jù)通過主鏈路信道(1、2 或 4)進(jìn)行傳輸,其是從源端到宿端的高速千兆位級收發(fā)器通道。
內(nèi)核的鏈路調(diào)訓(xùn)工作分兩步執(zhí)行:時鐘恢復(fù)、信道均衡;符號鎖定(symbol lock)、信道間對準(zhǔn)。步驟一,接收器的 PLL 鎖定至進(jìn)入的信號,并恢復(fù)鏈路時鐘。步驟二,系統(tǒng)對通道均衡與信道間對準(zhǔn)進(jìn)行優(yōu)化。
下面是源端與宿端的 PolicyMakers 的典型工作順序:
1. Tx Link Policy Maker 可監(jiān)控?zé)岚尾鍣z測情況,如果檢測到有熱拔插,則向 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ā)送進(jìn)行初始化;
3. Tx Link Policy Maker 根據(jù)來自 Rx Link Policy Maker 的反饋,通過調(diào)節(jié)電壓擺幅以及在必要時調(diào)節(jié)比特率,來控制時鐘恢復(fù)順序。一旦內(nèi)核完成時鐘恢復(fù),鏈路調(diào)訓(xùn)就進(jìn)入通道均衡階段。在該階段,如果調(diào)用 Rx LinkPolicy Maker,即對預(yù)加重進(jìn)行調(diào)節(jié)。此外,接收器還將在本階段完成符號鎖定與信道間的對準(zhǔn);
4. 一旦內(nèi)核通過鏈路調(diào)訓(xùn)( 即系統(tǒng)完成位鎖定與符號鎖定),就會在 DPCD 中予以提示。Tx Link PolicyMaker 可向 Tx Stream Policy Maker 報告調(diào)訓(xùn)狀況,以在進(jì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是進(jìn)行流程協(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 的*估版本。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論