1、介紹
本用戶指南介紹了Digilent DVI-to-RGB視頻解碼器知識(shí)產(chǎn)權(quán)。 該IP直接連接到Sink器件的DVI 1.0規(guī)范中定義的原始轉(zhuǎn)換最小化差分信號(hào)(TMDS)時(shí)鐘和數(shù)據(jù)通道輸入。 它解碼視頻流并輸出24位RGB視頻數(shù)據(jù)以及從TMDS鏈路恢復(fù)的像素時(shí)鐘和同步信號(hào)。
2、特性
?直接連接到頂級(jí)數(shù)字視頻接口(DVI)端口
?24位視頻(帶同步信號(hào)的時(shí)鐘并行視頻數(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ù)實(shí)際的FPGA部件或速度等級(jí),最大支持頻率可能較低。 如果頂層設(shè)計(jì)在IP實(shí)例內(nèi)的脈沖寬度檢查上沒有約束,TMDS_Clk需要(重新)限制到項(xiàng)目部分支持的最大頻率。 檢查FMAX_BUFIO部分的數(shù)據(jù)表,這是定時(shí)失敗的最可能原因。 TMDS_Clk應(yīng)該限制在FMAX_BUFIO / 5。 因此,這是FPGA系列和速度等級(jí)支持的最大像素時(shí)鐘頻率。
4、 概覽

IP由多個(gè)模塊構(gòu)成:一個(gè)時(shí)鐘恢復(fù)模塊,每個(gè)數(shù)據(jù)通道一個(gè)數(shù)據(jù)解碼器模塊(參見[3],[4]),一個(gè)可選的DDC(顯示數(shù)據(jù)通道)模塊和一個(gè)控制/復(fù)位模塊。
4.1、時(shí)鐘復(fù)位
時(shí)鐘通道載有一個(gè)字符速率頻率參考。 一個(gè)字符(或10比特)在每個(gè)數(shù)據(jù)信道的每個(gè)周期傳輸。 專用解串器原語(需要快速串行時(shí)鐘)將用于對(duì)串行數(shù)據(jù)流進(jìn)行采樣。 時(shí)鐘恢復(fù)模塊從時(shí)鐘通道產(chǎn)生一個(gè)串行時(shí)鐘和一個(gè)像素時(shí)鐘。 兩個(gè)時(shí)鐘之間的頻率比是5:1。
由于時(shí)鐘頻率相對(duì)較高并且恢復(fù)的時(shí)鐘具有嚴(yán)格的相位要求,因此在該塊內(nèi)部實(shí)例化專用時(shí)鐘基元。 這些可以在圖2中看到。MMCM原始設(shè)備包含一個(gè)壓控振蕩器(VCO),其具有FPGA數(shù)據(jù)手冊(cè)中指定的工作范圍。 由于沒有一組MMCM參數(shù)可將整個(gè)DVI像素時(shí)鐘頻率范圍映射到VCO范圍,因此可以使用IP定制參數(shù)來優(yōu)化預(yù)期的分辨率和像素時(shí)鐘頻率。
4.2、數(shù)據(jù)解碼
恢復(fù)的像素時(shí)鐘或串行時(shí)鐘與數(shù)據(jù)通道之間不存在相位關(guān)系。 此外,數(shù)據(jù)通道本身在它們之間允許相當(dāng)大的偏差。 所以解碼器塊需要將串行時(shí)鐘的相位與數(shù)據(jù)位對(duì)齊,并在每個(gè)數(shù)據(jù)流中找到字符邊界。 由于這必須在三個(gè)數(shù)據(jù)通道中的每一個(gè)上獨(dú)立完成,因此在保持時(shí)鐘相位固定的同時(shí)改變數(shù)據(jù)流的相位是有意義的。
4.2.1、同步
為了幫助同步,DVI協(xié)議規(guī)定了要發(fā)送的周期線索(控制令牌)。這些控制令牌與數(shù)據(jù)的其余部分充分不同,它們的繼承可用于同步。當(dāng)檢測到并恢復(fù)穩(wěn)定的時(shí)鐘時(shí),同步會(huì)自動(dòng)(重新)開始。鎖定所需的時(shí)間取決于時(shí)鐘和數(shù)據(jù)流的相位關(guān)系。它不應(yīng)該持續(xù)超過1分鐘。
DVI字符的長度為10位,因此需要對(duì)數(shù)據(jù)流進(jìn)行10:1的反序列化。這可以通過級(jí)聯(lián)DDR配置中的兩個(gè)ISERDESE2原語來實(shí)現(xiàn)。在這種配置中,主機(jī)和從機(jī)ISERDESE2接收串行數(shù)據(jù)流并在串行時(shí)鐘的兩個(gè)邊沿對(duì)其進(jìn)行采樣。因此,對(duì)于每五個(gè)串行時(shí)鐘周期,十個(gè)數(shù)據(jù)位被采樣。這個(gè)10位數(shù)據(jù)然后與一個(gè)分頻時(shí)鐘同步輸出,這是我們來自時(shí)鐘恢復(fù)模塊的像素時(shí)鐘。雖然這可以從數(shù)據(jù)流中恢復(fù)10位字,并且頻率可以傳遞給FPGA內(nèi)部的通用邏輯,但確實(shí)保證字實(shí)際上始于字符邊界,或者數(shù)據(jù)穩(wěn)定時(shí)采樣數(shù)據(jù)流。
為了找到采樣數(shù)據(jù)流的最佳時(shí)刻(即,睜眼的中間),在ISERDESE2之前插入IDELAYE2基元。該原語能夠以分接增量來延遲數(shù)據(jù)信號(hào)。在這個(gè)IP中,一個(gè)78ps的增量用于總共32個(gè)增量。對(duì)于支持的最高像素時(shí)鐘頻率(165 MHz),以7個(gè)抽頭增量覆蓋一個(gè)位周期。目標(biāo)是找到抽頭延遲值,將數(shù)據(jù)移動(dòng)到足夠的位置,以便在穩(wěn)定區(qū)域的中間進(jìn)行采樣。相位對(duì)齊模塊將10位字與四個(gè)特殊控制令牌進(jìn)行比較。如果在超時(shí)時(shí)段內(nèi)未識(shí)別出連續(xù)的令牌,則我們處于抖動(dòng)區(qū)域,并且會(huì)增加抽頭延遲。這一直重復(fù)進(jìn)行,直到控制令牌被可靠地識(shí)別并且算法穩(wěn)定在穩(wěn)定位周期(開放眼睛)的中間。一個(gè)“開放的眼睛”是由一系列最小數(shù)量的抽頭值(3)定義的,其中控制令牌可以被可靠地檢測到,并且它在兩端由一個(gè)抽頭值定界,但不能。但是,使用此定義將會(huì)漏掉開始或結(jié)束于分接延遲范圍(0或31)末端的睜眼,因?yàn)椴粫?huì)找到兩個(gè)抖動(dòng)分隔符。所以即使睜開的眼睛在四肢開始或結(jié)束,如果它足夠長(16次增量),它將被視為有效的眼睛。但是,IDELAYE2原語僅在位級(jí)別上提供了精細(xì)的相位調(diào)整,而不是覆蓋整個(gè)字符。為了找到字符邊界,需要粗略的相位調(diào)整。這是通過ISERDESE2原語的“bitslip”功能實(shí)現(xiàn)的。如果所有的分接增量都已經(jīng)嘗試過,并且控制標(biāo)記還沒有被檢測到,那么就認(rèn)為我們不在正確的字符邊界。在這種情況下,調(diào)用“bitslip”會(huì)導(dǎo)致在10位字中右移一位或在hree中左移一位。 “bitslip”完成后,相位對(duì)齊再次開始,循環(huán)通過抽頭增量。直到找到令牌。當(dāng)在所有數(shù)據(jù)通道上可靠地檢測到連續(xù)的控制令牌時(shí),認(rèn)為相位對(duì)齊完成。此時(shí)所有三個(gè)數(shù)據(jù)通道都被認(rèn)為是有效的。
然而,由于對(duì)間信道時(shí)滯不可忽略且信道獨(dú)立對(duì)齊,所恢復(fù)的數(shù)據(jù)流可能具有不同的延遲。為了消除這種偏差,通道通過在FIFO存儲(chǔ)器中緩沖并獨(dú)立保持它們直到視頻消隱周期同時(shí)在所有三個(gè)時(shí)間同時(shí)開始而被結(jié)合。在這個(gè)階段,所有三個(gè)數(shù)據(jù)通道都是有效的并且是同步的。
4.2.2、 解碼
TMDS標(biāo)準(zhǔn)對(duì)數(shù)據(jù)進(jìn)行編碼,以便串行數(shù)據(jù)流包含很少的轉(zhuǎn)換(0到1或1到0)和一個(gè)DC平衡(長時(shí)間內(nèi)相同數(shù)量的零和1)。 每個(gè)10位字符實(shí)際上封裝了8位有用數(shù)據(jù)。 這個(gè)例外是控制令牌,它封裝了2位控制數(shù)據(jù)。 數(shù)據(jù)解碼器模塊應(yīng)用DVI 1.0規(guī)范中規(guī)定的解碼算法。 在解碼之后,我們?cè)谙[期間留下控制數(shù)據(jù)或者在有效期內(nèi)保留像素?cái)?shù)據(jù)。 由于每個(gè)數(shù)據(jù)通道攜帶一種顏色,因此從IP輸出一個(gè)24位RGB像素總線。
4.3、 EDID ROM(數(shù)據(jù)顯示通道)
DDC模塊模擬包含缺省Digilent品牌擴(kuò)展顯示標(biāo)識(shí)數(shù)據(jù)(EDID)的只讀存儲(chǔ)器。 有四種變體只在首選分辨率上有所不同。 該參數(shù)是用戶可在IP自定義向?qū)е羞x擇的。 EDID在與IP捆綁在一起的src / *。data文件中定義(參見第6.4節(jié))。 合成后,對(duì)應(yīng)于首選分辨率的文件將被納入網(wǎng)表。 允許修改這些文件,只要它與DDC規(guī)范兼容即可。
5、端口描述
表1列出了DVI至VGA內(nèi)核的信號(hào)。

6、 圍繞IP核設(shè)計(jì)
6.1、 約束
TMDS時(shí)鐘輸入Clk_p / n被限制在最大DVI時(shí)鐘頻率165 MHz的IP中。 在某些體系結(jié)構(gòu)中,這可能導(dǎo)致無法實(shí)現(xiàn)。 根據(jù)應(yīng)用的不同,如果較低的像素時(shí)鐘頻率可以接受,則時(shí)鐘可以被限制在頂層,這將覆蓋IP內(nèi)部約束。
例如,要限制720p分辨率(74.25 MHz)的設(shè)計(jì),計(jì)算de clock period(13.468ns),并將以下內(nèi)容添加到項(xiàng)目XDC文件中,以約束頂層輸入端口上的時(shí)鐘:
create_clock -period 13.468 -waveform {0.000 5.000} [get_ports hdmi_rx_clk_p]
6.2、 定制
IP提供以下可自定義的參數(shù):復(fù)位信號(hào)的極性,PixelClk時(shí)鐘緩沖器類型,TMDS時(shí)鐘的頻率范圍,調(diào)試邏輯的實(shí)例化,要在捆綁的EDID中聲明的首選分辨率,DDC通道的可用性,和串行時(shí)鐘輸出。啟用DDC通道和串行時(shí)鐘將會(huì)將相應(yīng)端口添加到IP中,并可用于用戶邏輯。并行像素時(shí)鐘(PixelClk)通過使用BUFR緩沖器進(jìn)行恢復(fù)。由于BUFR僅限于一個(gè)時(shí)鐘區(qū)域,并且從內(nèi)核輸出的視頻數(shù)據(jù)與PixelClk同步,因此任何下游消耗視頻數(shù)據(jù)的邏輯也都受限于此時(shí)鐘區(qū)域。重新緩沖PixelClk的選項(xiàng)在BUFR之后引入BUFG,并將視頻數(shù)據(jù)重新注冊(cè)到BUFG域。這將允許下游邏輯放置在設(shè)備的任何位置。通過設(shè)置預(yù)期的TMDS時(shí)鐘頻率,IP可以實(shí)例化符合時(shí)鐘恢復(fù)邏輯中時(shí)序要求的FPGA原語。如果從流中恢復(fù)的實(shí)際像素時(shí)鐘落在此處設(shè)置的范圍之外,F(xiàn)PGA的VCO工作范圍可能不受尊重,并且在極端情況下,時(shí)鐘恢復(fù)可能會(huì)失敗,并且視頻流將無法正確解碼。
如果啟用了DDC通道,則可以設(shè)置首選分辨率。 此處設(shè)置的分辨率將為模擬的EDID ROM選擇正確的初始化文件。 這個(gè)EDID將被連接的數(shù)據(jù)源讀出,并可能選擇以這個(gè)分辨率傳輸。
調(diào)試模塊可以通過啟用向?qū)е械倪x項(xiàng)來實(shí)例化。 啟用它將導(dǎo)致合成兩個(gè)ILA內(nèi)核,這些內(nèi)核可用于Vivado硬件管理器來分析一些幫助調(diào)試的內(nèi)部狀態(tài)信號(hào)。
6.3、SerialClk的使用
雖然快速串行時(shí)鐘通常僅用于內(nèi)部反序列化,但在其他有限的情況下它可用并且有用。 這個(gè)限制源于這樣一個(gè)事實(shí),即該時(shí)鐘的頻率通常太大(PixelClk頻率的五倍),無法為用戶邏輯提供時(shí)鐘。 例如,1080p將導(dǎo)致742.5 MHz SerialClk。 BUFIO原語驅(qū)動(dòng)這個(gè)時(shí)鐘網(wǎng)絡(luò)以適應(yīng)大的頻率,這只能在相同的存儲(chǔ)區(qū)/時(shí)鐘區(qū)域?yàn)镮 / O列提供時(shí)鐘。 一種情況是使用此時(shí)鐘驅(qū)動(dòng)Digilent RGB2DVI內(nèi)核,共享兩個(gè)內(nèi)核之間的時(shí)鐘邏輯。
6.4、 EDID捆綁
IP帶有幾個(gè)EDID文件,每個(gè)EDID文件聲明不同的首選/原生分辨率。 名為* .data的文件包含Vivado合成可讀格式的256個(gè)字節(jié)的EDID數(shù)據(jù)。 每行只有一個(gè)二進(jìn)制格式的字節(jié)。 字節(jié)0是文件中的第一個(gè)字節(jié)。 下表總結(jié)了人類可讀格式的EDID。 您也可以在您可以在EDID編輯器工具中打開的docs /目錄中找到* .dat文件。
7、 調(diào)試
當(dāng)啟用調(diào)試模塊時(shí),將添加兩個(gè)ILA內(nèi)核,每個(gè)時(shí)鐘域一個(gè):RefClk和PixelClk。 即使TMDS接口上沒有接收到時(shí)鐘,RefClk域也包含活動(dòng)的控制邏輯。 與重置和時(shí)鐘恢復(fù)有關(guān)的信號(hào)與該ILA相關(guān)聯(lián)。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1661文章
22442瀏覽量
637498 -
壓控振蕩器
+關(guān)注
關(guān)注
10文章
176瀏覽量
30532 -
DDC
+關(guān)注
關(guān)注
2文章
99瀏覽量
38328 -
視頻解碼器
+關(guān)注
關(guān)注
0文章
93瀏覽量
20384 -
差分信號(hào)
+關(guān)注
關(guān)注
4文章
408瀏覽量
29024
發(fā)布評(píng)論請(qǐng)先 登錄
一文解讀Digilent DVI-to-RGB視頻解碼器
評(píng)論