引言
做圖像處理沒有顯示怎么能行,所以用兩章來介紹HDMI的協(xié)議以及編碼實(shí)現(xiàn)。HDMI的編碼,仿真和調(diào)試會(huì)花費(fèi)較長(zhǎng)時(shí)間,特別是第一次在windows環(huán)境下部署UVM環(huán)境,對(duì)于剛剛?cè)腴TUVM的我來說,這塊也花費(fèi)了很長(zhǎng)時(shí)間。截止目前設(shè)計(jì)和仿真的代碼都已經(jīng)做完。所以這章主要介紹HDMI的協(xié)議以及設(shè)計(jì)的架構(gòu),之后再用一章來介紹HDMI的實(shí)現(xiàn)和驅(qū)動(dòng)編寫。
HDMI協(xié)議簡(jiǎn)介
HDMI包含物理層和鏈路層結(jié)構(gòu),物理層定義了信號(hào)的物理接口,以及物理層物理層編碼方式。鏈路層定義了幀格式,包含了圖像,聲音,和控制信息。
1)物理層信號(hào)
TMDS Data:采用差分傳輸,共有三路。
TMDS Data shield:
TMDS clock:A類型的時(shí)鐘頻率小于55MHz,即最大傳輸165M pixels/sec。
TMDS clock shield:
SCL:串口通信時(shí)鐘。
SDA:串口通信數(shù)據(jù)通路。
CEC:用戶可以通過CEC協(xié)議對(duì)設(shè)備進(jìn)行控制。
Hot Plug Detect:對(duì)供電電源進(jìn)行檢測(cè)信號(hào),提示電源超過或者不足。
圖1.1 物理層信號(hào)定義
2)鏈路層結(jié)構(gòu)
鏈路層主要包含如下信息:
圖1.2 鏈路層包含信息
整個(gè)傳輸?shù)膸瑫r(shí)序結(jié)構(gòu)如圖1.3:其中HSYNC、VSYNC是圖像同步信號(hào),都為高電平,表示是有效圖像數(shù)據(jù)。Preamble用于區(qū)分?jǐn)?shù)據(jù)類型,具體如圖1.4。video數(shù)據(jù)以2bit的leading gurad band開頭,之后是連續(xù)的一行圖像數(shù)據(jù)。Data island用于傳輸聲音信息,一些音視頻描述信息等。Data island被放置于非有效video圖像區(qū)域。這部分不是必須的,我們進(jìn)行圖像處理僅僅用于顯示處理,所以不進(jìn)行data island字段設(shè)計(jì)。這部分介紹略過。
內(nèi)容
圖1.4 preamble結(jié)構(gòu)
3)物理層編碼
控制信號(hào)包括HSYNC、VSYNC以及CTL0……2。其具體映射到物理傳輸線上為:
Case(D1, D0):
0, 0: q = 10b1101010100;
0, 1: q = 10b0010101011;
1, 0: q = 10b0101010100;
1, 1: q = 10b1010101011;
Endcase
Video數(shù)據(jù)8bit被編碼為10bit,這樣可以降低TMDS物理路徑上電位轉(zhuǎn)變次數(shù)。算法如下:
圖1.5 video data物理層編碼
HDMI設(shè)計(jì)架構(gòu)
HDMI設(shè)計(jì)中不包含data island的結(jié)構(gòu)解析,因?yàn)閮H僅用于顯示。整體結(jié)構(gòu)如圖2.1。包含兩大部分:
1)hdmi_link
用于從ddr中獲得圖像數(shù)據(jù),并封裝成鏈路層格式。其中cfg是通過arm端實(shí)現(xiàn)寄存器配置,包括圖像的起始地址,大小,圖像長(zhǎng)寬,blank的大小等。Ctrl是實(shí)現(xiàn)對(duì)HDMI的整體控制,包括使能HDMI發(fā)送,處理hotplug以及產(chǎn)生HDMI傳輸中斷等。Img_reader通過axi總線從DDR中獲得圖像數(shù)據(jù),pack是完成鏈路層格式的打包,并發(fā)送到物理層。
2)hdmi_phy
這層主要是將鏈路層幀結(jié)構(gòu)進(jìn)行物理編碼,并轉(zhuǎn)換為串行數(shù)據(jù)發(fā)送出去。Encoder就是對(duì)幀結(jié)構(gòu)進(jìn)行編碼,每8bit轉(zhuǎn)換為10bit數(shù)據(jù)。Serial中用到了芯片的SERDERS,將并行10bit數(shù)據(jù)轉(zhuǎn)化為高速串行數(shù)據(jù)。
3)PLL
產(chǎn)生兩種時(shí)鐘信號(hào):一種用于鏈路層數(shù)據(jù)打包和讀取等,而tmds_clk是高速串行時(shí)鐘。用于提供給物理接口。
圖2.1 HDMI設(shè)計(jì)結(jié)構(gòu)
驗(yàn)證架構(gòu)
這部分用UVM來實(shí)現(xiàn)的,利用了UVM的基本架構(gòu)。大致如圖3.1。
1)img_seq,img_drv
產(chǎn)生圖像并通過axi發(fā)送給DUT,同時(shí)將數(shù)據(jù)發(fā)送給img_monitor用于產(chǎn)生對(duì)比數(shù)據(jù)。
2)sw config
模擬軟件行為,配置寄存器數(shù)據(jù)。
3)img_monitor
獲取原始img數(shù)據(jù)產(chǎn)生對(duì)比文件,然后拉取DUT中l(wèi)ink層和phy層數(shù)據(jù),進(jìn)行對(duì)比。輸出對(duì)比結(jié)果。
圖3.1 UVM驗(yàn)證架構(gòu)
總結(jié)
簡(jiǎn)單介紹了HDMI協(xié)議,并設(shè)計(jì)了HDMI顯示架構(gòu)。完成了設(shè)計(jì)和仿真代碼。下一章將會(huì)介紹仿真和調(diào)試過程。
編輯:hfy
-
HDMI
+關(guān)注
關(guān)注
32文章
1710瀏覽量
151971 -
圖像處理
+關(guān)注
關(guān)注
27文章
1292瀏覽量
56764
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論