2014-04-02 13:55:22周三
DownScaling記錄:
RX:FHD120,UHD30,UHD60。每組LVDS的輸出是480X1080X4, 960X2160X4, 480X2160X8
TX:FHD120,FHD30,FHD60。每組LVDS的輸出是480X1080X2, 1920X1080X1, 960X1080X2
當RX-FHD120進行無FRC處理得到TX-FHD60時,輸出的是960X540X2,叫540P半屏是一幀。
FPGA的LVDS OUT接6509屏時, 要注意輸出線上要有12V的電壓,TCON打開后才能顯示。
FPGA板子C與E的8個LED燈位置不一致。
當不知道R,B的組合是什么顏色時,可以借用PC上的顏色管理器查看,GOOD!
Altera Arria5板子的DownScaling test,特別注意Xilinx和Altera的LVDS格式對應不同,因此在提取和合並LVDS的數據時,要注意DE/V/H的位置。
Altera中LVDS格式排列:28位和35位一致。
| RX4 |
34 |
33 |
32 |
31 |
30 |
29 |
28 |
| RX3 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
| RX2 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
| RX1 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
| RX0 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Xilinx中LVDS格式排列: 35位
| RX4 |
4 |
9 |
14 |
19 |
24 |
29 |
34 |
| RX3 |
3 |
8 |
13 |
18 |
23 |
28 |
33 |
| RX2 |
2 |
7 |
12 |
17 |
22 |
27 |
32 |
| RX1 |
1 |
6 |
11 |
16 |
21 |
26 |
31 |
| RX0 |
0 |
5 |
10 |
15 |
20 |
25 |
30 |
Xilinx中LVDS格式排列: 28位
| RX3 |
3 |
7 |
11 |
14 |
18 |
22 |
27 |
| RX2 |
2 |
6 |
10 |
13 |
17 |
21 |
26 |
| RX1 |
1 |
5 |
9 |
12 |
16 |
20 |
25 |
| RX0 |
0 |
4 |
8 |
14 |
15 |
19 |
24 |
來源:F:\2014\2014_task\Xilinx\Spartan6\downscaling_rx4_tx2_2\doc
和F:\2014\2014_task\Xilinx\Spartan6\downscaling_rx4_tx2_3
這兩個工程都已經測試通過了,實現的功能是
輸入信號源可能是CMI屏中兩種信號(UHD30和FHD120)和CSOT屏中一種信號(UHD60),要做到可以自動識別這三種信號且做相應的DownScaling功能。
一、CMI屏的特點是
80板子上--需要外接轉接線板子。。
1、4K2K@30HZ 做DownScaling到FHD@30HZ
4K2K@30HZ相關參數是4 組LVDS INPUT 960*2160
FHD@30HZ相關參數是1組LVDS INPUT 1920*1080
行上像素少一半,場上行少一半。。。
1、 FHD@120HZ 直接做LVDS Bypass兩路到工廠的儀器K-2715上,該儀器能識別到且可以FRC到FHD@60HZ的HDMI輸出。
FHD@120HZ相關參數是4組LVDS INPUT 480*1080
2、 FHD@120HZ做DownScaling到FHD@60HZ,而沒有做FRC功能。
場上行少一半,幀上場少一半。。。體現在1080P到540P,半屏是一幀。。
二、CSOT屏的特點是
81板子上Source (input) 2580進入CSOT的工廠模式。。。
818板子出來的時鍾只有72MHZ左右,達不到74.25MHZ。。。主要是H_Total只有533。時鍾是如何計算了。。。。
4K2K@60HZ 做DownScaling到FHD@60HZ
UHD60---4K2K@60的相關參數是8組LVDS INPUT 480*2160。。。
//CSOT V_TOTAL 此時HDMI子板不支持,分析原因是單組LVDS的H_TOTAL只有533,而一般FHD60要達到550.
parameter H_SYNC=11,H_FRONT=22,H_BACK=20,H_VISIBLE=480;// 4K2K@60Hz---8 lvds groups
parameter V_SYNC=10, V_FRONT=8,V_BACK=72,V_VISIBLE=2160;//2160--2250
1、4K2K@60HZ有8路LVDS,LVDS1234和LVDS5678
LVDS1234的數據格式是1-2-3-4,5-6-7-8,9-10-11-12,。。。
LVDS5678的數據格式是1990+ 1-2-3-4,5-6-7-8,9-10-11-12,。。。
2、LVDS的格式中沒有V,H的參數,V,H始終為低電平。。。。
調試方案一:
FPGA板子信號出來直接接PANEL,不經過LVDS轉HDMI子板。因為PANEL對行消隱區沒那么嚴格(一般變動范圍比較大)。確實如我所想的。因為我當初在FPGA內部觀察信號都正確,可是HDMI子板出來的信號不對,就覺得是行消隱區為奇數的影響。
后面驗證外部接信號源,出現顏色不對的現象,RX的信號源是10bit的JEATA格式,而PANEL端是8bit的VESA格式。因此需要進行LVDS格式轉換。。。
由於8bit的VESA是采用LVDS 4組格式,因此我仍然用LVDS 5組格式,最高兩位會被丟掉。分析結果是正確的。。終於將這路打通了,不容易啊!!!!其實也可以采用LVDS 5組進行發送,只要5組中的4組是嚴格按照LVDS 4組的信號格式發送的就好。
問題解決:
由於8組LVDS外部信號是通過兩個獨立的芯片進來的,因此數據會不同步,1234與5678(1990+1234)的數據需要同步處理,采用DE來判斷。。。當5678組LVDS的數據是(1990+1,2,3,4)時,需要進行Conv處理,
LVDS的TX只能位於BANK0或者BANK2,而LVDS的RX可以位於任何BANK。
2012-12-13 周四 晴
今天開始研究LVDS的TX和RX均采用外部PLL的情況。
2012-10-23 周二 晴
今天用ArriaV開發板調試1080P的PANEL,需要用到2組4通道7位的LVDS,RGB分別是8位。由於原理圖的原理有很多組線的信號需要取反。有時我自己也搞暈了。對於LVDS_TX的測試一直都沒有輸出,我也覺得無計可施,后來Master說你可以將DE所在通道賦給其他通道,即所有通道都選用DE的通道,這樣至少可以先保證DE、HD、VD這些關鍵信號是正確的。我覺得很有道理,因此也嘗試了下結果就真的能輸出了,只是屏幕顯示的東西可能不是如你所願。現在要分析原因了。
后面才發現我用的是8組5通道7位的LVDS,RGB分別是10位。這樣要轉化成組4通道7位的LVDS,RGB分別是8位時,需要注意DATA[34:0]與DATA[27:0]間的對應關系。即LVDS在4通道和5通道的映射是不同的。
鍵盤上Alt+-->可以返回上一層。(在PDF文件中方便用)
在signal_gen中當R=G=3FF,B=000時,對應的35位數據是6F7BD8C3D
1、工程名:ArriaV_lvds_tx_1g,在lvds_tx_5ch_1中接收到的5ch_7bit對應如下:14,1d,0f,1b,1d,14,19。時序仿真波形如下所示:由於《arriav_handbook.pdf》第157/426頁可知差分信號在時鍾的上升沿開始輸出,而在PANNEL中LVDS是從第三個小時鍾才開始輸出。因此,在Ronnie的建議下,我采用了他的方,即將輸出時鍾也當成一個通道來傳輸,只是給定的數據是(4:3)7'b1100011或者(3:4)7'b1100001,此時就不需要tx_outclock信號。這個想法非常好,我也想不到的。學習了。


2、工程名:ArriaV_lvds_tx2_1g,在lvds_tx_5ch_2中采用洪鴻榕的方案,得到的時序仿真波形如下所示:時序仿真結果正確!!


3、2組LVDS_TX時序仿真情況:綜合后占用一個PLL

4、4組LVDS_TX時序仿真情況及綜合情況:


3、8組LVDS_TX出現如下錯誤信息:
出現下圖錯誤的原因是我將發送模塊的時鍾端口直接與FPGA上的27MHZ引腳鎖定,如果不鎖定該引腳就可以編譯通過,解決這個問題的方案還在思考中。

在這步進行了好久,由於一直找不到原因。因此,我改變了想法。從8組LVDS_RX到8組ALT_FIFO再送給8組的LVDS_TX的工程。在編寫完整個工程后,我對它進行功能仿真可以出結果,進行時序仿真時發現DPA信號鎖不住,結果不對。
這步出錯的主要原因是因為我在寫激勵文件時,都是發送同一個35位數據,應該使發送的35位數據有變化,這樣DPA信號才可以鎖住。其實頂層模塊是沒錯的。難怪自己找不到原因。不過不明白要發送不同數據的我,也是對文檔研究的不夠導致的,要吸取這個教訓。
我發現它跟我直接將一組的ArriaV_lvds_rx2tx復用8次所有進行的動作一樣。因此,我又卡在這邊了。后來,我就想這么說8組的LVDS_TX可以編譯通過了,這才反應過來還開心了一會兒。后面我就針對這個8組LVDS_TX編寫了個激勵文件,這個文件結合的8組signal_gen來實現的。在功能仿真和時序仿真上,我都遇到一個很奇怪的問題,是關於庫的編譯順序,還是Ronnie幫我解決的。我覺得他很有想法,也很有調試手段,他能沉得住。發現signal_gen編譯時,一定要將work庫放在第一個,否則會提示找不到它的端口。嗯,后來洪鴻榕說將signal_gen重新命名試下,我也試了,不過我還發現我程序中有個端口是[4:0],而我寫成[34:0],這是復制而欠缺思考的下場。在百般克服之下,我順利地測試了8組LVDS_TX程序。
還有我晚上跟他們(rain and ronnie)調試了4K2K PANNEL,很厲害,居然將變化的參數穩住了。現在就看明天別人的答復。如果55寸的PANNEL能點亮,我覺得大家都會很開心的。
Dear KEVIN:
針對下方的第一個問題:在編寫了8組的LVDS_RX2TX程序,編譯可以通過且功能仿真可以出來,但時序仿真中DPA鎖不住即時序仿真不通過。
這個問題出錯的原因是我在寫頂層模塊的激勵時,發現差分信號的輸入必須是變化的,不能一直都是同一個35位數據,否則DPA會鎖不住。
針對下方的第一個問題:單獨的8組LVDS_TX程序在編譯時卻出現PLL方面的錯誤。
這個問題出錯的原因是8組LVDS_TX的PLL輸入時鍾不能直接鎖定到時鍾引腳上,必須通過中間信號才可以。
目前,我想實現8組LVDS_TX的PLL輸入時鍾直接鎖定到時鍾引腳上,應該如何做才能實現?
能否請您再幫忙確認下LVDS外部來的數據差分對能否對換。按照我們的理解是LVDS的差分對電氣性能一樣,因此可以進行對調。時鍾差分對不能對換是可以理解的。
還有一個問題是LVDS_RX在功能仿真上是將7位拆分成4-3,而在時序仿真上卻是拆分成3-4,導致需要調整的位數不一致,想請您幫忙確認下哪種才是對的,為什么會出現這種現象?
期待您的回復,謝謝!
PS:附件是當LVDS_TX的PLL輸入時鍾鎖定在時鍾引腳上時,超過4組就會報錯的工程。如果LVDS_TX的PLL輸入時鍾不鎖定在時鍾引腳上時,可以滿足8組的需求。但我們需要的是鎖定在時鍾引腳上且達到8組的情況,能否幫忙解答。
