1、介紹
本用戶指南介紹了Digilent DVI-to-RGB視頻解碼器知識產(chǎn)權(quán)。 該IP直接連接到Sink器件的DVI 1.0規(guī)范中定義的原始轉(zhuǎn)換最小化差分信號(TMDS)時鐘和數(shù)據(jù)通道輸入。 它解碼視頻流并輸出24位RGB視頻數(shù)據(jù)以及從TMDS鏈路恢復(fù)的像素時鐘和同步信號。
2、特性
?直接連接到頂級數(shù)字視頻接口(DVI)端口
?24位視頻(帶同步信號的時鐘并行視頻數(shù)據(jù))輸出
?帶有內(nèi)置EDID ROM的顯示數(shù)據(jù)通道接口
?支持的分辨率:1920x1080 / 60Hz至800x600 / 60Hz(148.5 MHz - 40 MHz)
?EDID中可選的首選分辨率
?使用Xilinx接口:IIC,vid_io
?使用Digilent接口:TMDS
3、性能
IP將TMDS_Clk限制在165 MHz,這是DVI 1.0規(guī)范中列出的最大頻率。 但是,根據(jù)實際的FPGA部件或速度等級,最大支持頻率可能較低。 如果頂層設(shè)計在IP實例內(nèi)的脈沖寬度檢查上沒有約束,TMDS_Clk需要(重新)限制到項目部分支持的最大頻率。 檢查FMAX_BUFIO部分的數(shù)據(jù)表,這是定時失敗的最可能原因。 TMDS_Clk應(yīng)該限制在FMAX_BUFIO / 5。 因此,這是FPGA系列和速度等級支持的最大像素時鐘頻率。
4、 概覽
IP由多個模塊構(gòu)成:一個時鐘恢復(fù)模塊,每個數(shù)據(jù)通道一個數(shù)據(jù)解碼器模塊(參見[3],[4]),一個可選的DDC(顯示數(shù)據(jù)通道)模塊和一個控制/復(fù)位模塊。
4.1、時鐘復(fù)位
時鐘通道載有一個字符速率頻率參考。 一個字符(或10比特)在每個數(shù)據(jù)信道的每個周期傳輸。 專用解串器原語(需要快速串行時鐘)將用于對串行數(shù)據(jù)流進行采樣。 時鐘恢復(fù)模塊從時鐘通道產(chǎn)生一個串行時鐘和一個像素時鐘。 兩個時鐘之間的頻率比是5:1。
由于時鐘頻率相對較高并且恢復(fù)的時鐘具有嚴(yán)格的相位要求,因此在該塊內(nèi)部實例化專用時鐘基元。 這些可以在圖2中看到。MMCM原始設(shè)備包含一個壓控振蕩器(VCO),其具有FPGA數(shù)據(jù)手冊中指定的工作范圍。 由于沒有一組MMCM參數(shù)可將整個DVI像素時鐘頻率范圍映射到VCO范圍,因此可以使用IP定制參數(shù)來優(yōu)化預(yù)期的分辨率和像素時鐘頻率。
4.2、數(shù)據(jù)解碼
恢復(fù)的像素時鐘或串行時鐘與數(shù)據(jù)通道之間不存在相位關(guān)系。 此外,數(shù)據(jù)通道本身在它們之間允許相當(dāng)大的偏差。 所以解碼器塊需要將串行時鐘的相位與數(shù)據(jù)位對齊,并在每個數(shù)據(jù)流中找到字符邊界。 由于這必須在三個數(shù)據(jù)通道中的每一個上獨立完成,因此在保持時鐘相位固定的同時改變數(shù)據(jù)流的相位是有意義的。
4.2.1、同步
為了幫助同步,DVI協(xié)議規(guī)定了要發(fā)送的周期線索(控制令牌)。這些控制令牌與數(shù)據(jù)的其余部分充分不同,它們的繼承可用于同步。當(dāng)檢測到并恢復(fù)穩(wěn)定的時鐘時,同步會自動(重新)開始。鎖定所需的時間取決于時鐘和數(shù)據(jù)流的相位關(guān)系。它不應(yīng)該持續(xù)超過1分鐘。
DVI字符的長度為10位,因此需要對數(shù)據(jù)流進行10:1的反序列化。這可以通過級聯(lián)DDR配置中的兩個ISERDESE2原語來實現(xiàn)。在這種配置中,主機和從機ISERDESE2接收串行數(shù)據(jù)流并在串行時鐘的兩個邊沿對其進行采樣。因此,對于每五個串行時鐘周期,十個數(shù)據(jù)位被采樣。這個10位數(shù)據(jù)然后與一個分頻時鐘同步輸出,這是我們來自時鐘恢復(fù)模塊的像素時鐘。雖然這可以從數(shù)據(jù)流中恢復(fù)10位字,并且頻率可以傳遞給FPGA內(nèi)部的通用邏輯,但確實保證字實際上始于字符邊界,或者數(shù)據(jù)穩(wěn)定時采樣數(shù)據(jù)流。
為了找到采樣數(shù)據(jù)流的最佳時刻(即,睜眼的中間),在ISERDESE2之前插入IDELAYE2基元。該原語能夠以分接增量來延遲數(shù)據(jù)信號。在這個IP中,一個78ps的增量用于總共32個增量。對于支持的最高像素時鐘頻率(165 MHz),以7個抽頭增量覆蓋一個位周期。目標(biāo)是找到抽頭延遲值,將數(shù)據(jù)移動到足夠的位置,以便在穩(wěn)定區(qū)域的中間進行采樣。相位對齊模塊將10位字與四個特殊控制令牌進行比較。如果在超時時段內(nèi)未識別出連續(xù)的令牌,則我們處于抖動區(qū)域,并且會增加抽頭延遲。這一直重復(fù)進行,直到控制令牌被可靠地識別并且算法穩(wěn)定在穩(wěn)定位周期(開放眼睛)的中間。一個“開放的眼睛”是由一系列最小數(shù)量的抽頭值(3)定義的,其中控制令牌可以被可靠地檢測到,并且它在兩端由一個抽頭值定界,但不能。但是,使用此定義將會漏掉開始或結(jié)束于分接延遲范圍(0或31)末端的睜眼,因為不會找到兩個抖動分隔符。所以即使睜開的眼睛在四肢開始或結(jié)束,如果它足夠長(16次增量),它將被視為有效的眼睛。但是,IDELAYE2原語僅在位級別上提供了精細(xì)的相位調(diào)整,而不是覆蓋整個字符。為了找到字符邊界,需要粗略的相位調(diào)整。這是通過ISERDESE2原語的“bitslip”功能實現(xiàn)的。如果所有的分接增量都已經(jīng)嘗試過,并且控制標(biāo)記還沒有被檢測到,那么就認(rèn)為我們不在正確的字符邊界。在這種情況下,調(diào)用“bitslip”會導(dǎo)致在10位字中右移一位或在hree中左移一位。 “bitslip”完成后,相位對齊再次開始,循環(huán)通過抽頭增量。直到找到令牌。當(dāng)在所有數(shù)據(jù)通道上可靠地檢測到連續(xù)的控制令牌時,認(rèn)為相位對齊完成。此時所有三個數(shù)據(jù)通道都被認(rèn)為是有效的。
然而,由于對間信道時滯不可忽略且信道獨立對齊,所恢復(fù)的數(shù)據(jù)流可能具有不同的延遲。為了消除這種偏差,通道通過在FIFO存儲器中緩沖并獨立保持它們直到視頻消隱周期同時在所有三個時間同時開始而被結(jié)合。在這個階段,所有三個數(shù)據(jù)通道都是有效的并且是同步的。
4.2.2、 解碼
TMDS標(biāo)準(zhǔn)對數(shù)據(jù)進行編碼,以便串行數(shù)據(jù)流包含很少的轉(zhuǎn)換(0到1或1到0)和一個DC平衡(長時間內(nèi)相同數(shù)量的零和1)。 每個10位字符實際上封裝了8位有用數(shù)據(jù)。 這個例外是控制令牌,它封裝了2位控制數(shù)據(jù)。 數(shù)據(jù)解碼器模塊應(yīng)用DVI 1.0規(guī)范中規(guī)定的解碼算法。 在解碼之后,我們在消隱期間留下控制數(shù)據(jù)或者在有效期內(nèi)保留像素數(shù)據(jù)。 由于每個數(shù)據(jù)通道攜帶一種顏色,因此從IP輸出一個24位RGB像素總線。
4.3、 EDID ROM(數(shù)據(jù)顯示通道)
DDC模塊模擬包含缺省Digilent品牌擴展顯示標(biāo)識數(shù)據(jù)(EDID)的只讀存儲器。 有四種變體只在首選分辨率上有所不同。 該參數(shù)是用戶可在IP自定義向?qū)е羞x擇的。 EDID在與IP捆綁在一起的src / *。data文件中定義(參見第6.4節(jié))。 合成后,對應(yīng)于首選分辨率的文件將被納入網(wǎng)表。 允許修改這些文件,只要它與DDC規(guī)范兼容即可。
5、端口描述
表1列出了DVI至VGA內(nèi)核的信號。
6、 圍繞IP核設(shè)計
6.1、 約束
TMDS時鐘輸入Clk_p / n被限制在最大DVI時鐘頻率165 MHz的IP中。 在某些體系結(jié)構(gòu)中,這可能導(dǎo)致無法實現(xiàn)。 根據(jù)應(yīng)用的不同,如果較低的像素時鐘頻率可以接受,則時鐘可以被限制在頂層,這將覆蓋IP內(nèi)部約束。
例如,要限制720p分辨率(74.25 MHz)的設(shè)計,計算de clock period(13.468ns),并將以下內(nèi)容添加到項目XDC文件中,以約束頂層輸入端口上的時鐘:
create_clock -period 13.468 -waveform {0.000 5.000} [get_ports hdmi_rx_clk_p]
6.2、 定制
IP提供以下可自定義的參數(shù):復(fù)位信號的極性,PixelClk時鐘緩沖器類型,TMDS時鐘的頻率范圍,調(diào)試邏輯的實例化,要在捆綁的EDID中聲明的首選分辨率,DDC通道的可用性,和串行時鐘輸出。啟用DDC通道和串行時鐘將會將相應(yīng)端口添加到IP中,并可用于用戶邏輯。并行像素時鐘(PixelClk)通過使用BUFR緩沖器進行恢復(fù)。由于BUFR僅限于一個時鐘區(qū)域,并且從內(nèi)核輸出的視頻數(shù)據(jù)與PixelClk同步,因此任何下游消耗視頻數(shù)據(jù)的邏輯也都受限于此時鐘區(qū)域。重新緩沖PixelClk的選項在BUFR之后引入BUFG,并將視頻數(shù)據(jù)重新注冊到BUFG域。這將允許下游邏輯放置在設(shè)備的任何位置。通過設(shè)置預(yù)期的TMDS時鐘頻率,IP可以實例化符合時鐘恢復(fù)邏輯中時序要求的FPGA原語。如果從流中恢復(fù)的實際像素時鐘落在此處設(shè)置的范圍之外,F(xiàn)PGA的VCO工作范圍可能不受尊重,并且在極端情況下,時鐘恢復(fù)可能會失敗,并且視頻流將無法正確解碼。
如果啟用了DDC通道,則可以設(shè)置首選分辨率。 此處設(shè)置的分辨率將為模擬的EDID ROM選擇正確的初始化文件。 這個EDID將被連接的數(shù)據(jù)源讀出,并可能選擇以這個分辨率傳輸。
調(diào)試模塊可以通過啟用向?qū)е械倪x項來實例化。 啟用它將導(dǎo)致合成兩個ILA內(nèi)核,這些內(nèi)核可用于Vivado硬件管理器來分析一些幫助調(diào)試的內(nèi)部狀態(tài)信號。
6.3、SerialClk的使用
雖然快速串行時鐘通常僅用于內(nèi)部反序列化,但在其他有限的情況下它可用并且有用。 這個限制源于這樣一個事實,即該時鐘的頻率通常太大(PixelClk頻率的五倍),無法為用戶邏輯提供時鐘。 例如,1080p將導(dǎo)致742.5 MHz SerialClk。 BUFIO原語驅(qū)動這個時鐘網(wǎng)絡(luò)以適應(yīng)大的頻率,這只能在相同的存儲區(qū)/時鐘區(qū)域為I / O列提供時鐘。 一種情況是使用此時鐘驅(qū)動Digilent RGB2DVI內(nèi)核,共享兩個內(nèi)核之間的時鐘邏輯。
6.4、 EDID捆綁
IP帶有幾個EDID文件,每個EDID文件聲明不同的首選/原生分辨率。 名為* .data的文件包含Vivado合成可讀格式的256個字節(jié)的EDID數(shù)據(jù)。 每行只有一個二進制格式的字節(jié)。 字節(jié)0是文件中的第一個字節(jié)。 下表總結(jié)了人類可讀格式的EDID。 您也可以在您可以在EDID編輯器工具中打開的docs /目錄中找到* .dat文件。
7、 調(diào)試
當(dāng)啟用調(diào)試模塊時,將添加兩個ILA內(nèi)核,每個時鐘域一個:RefClk和PixelClk。 即使TMDS接口上沒有接收到時鐘,RefClk域也包含活動的控制邏輯。 與重置和時鐘恢復(fù)有關(guān)的信號與該ILA相關(guān)聯(lián)。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603375 -
壓控振蕩器
+關(guān)注
關(guān)注
10文章
133瀏覽量
29292 -
DDC
+關(guān)注
關(guān)注
2文章
90瀏覽量
37096 -
視頻解碼器
+關(guān)注
關(guān)注
0文章
78瀏覽量
19671 -
差分信號
+關(guān)注
關(guān)注
3文章
378瀏覽量
27685
發(fā)布評論請先 登錄
相關(guān)推薦
評論