Showing results for 
Search instead for 
Did you mean: 
Valued Contributor III

Avalon-ST video conversion from 2-symbols per beat to 2-symbols per beat

Good evening, 


I`m having trouble converting the output from an HDMI video input core to a suitable signal for my video pipeline. 


If I keep all components in 2 pixels per beat mode (1 pixel = 24 bit RGB = 3 x 8-bit symbols), everything is working fine. 

However some components like the Scaler only work with 1 pixel per beat. 


I tried two solutions to convert my 2 beats per clock stream to a one clock per beat stream. 



Solution 1: QSYS component that uses the following components 


clocked video data from HDMI -> 

clocked video input (2 pixels per beat) -> 

avalon-st timing adapter (ready latency 1 to 0) -> 

avalon-st data format adapter (6 symbols per beat to 3 symbols per beat) -> 

timing adapter (ready latency 0 to 1) -> 

video monitor component 1 -> 

frame buffer -> 

video monitor 2 


Result: data arrives at monitor 1, but most of it is invalid. error: waiting for sink. but downstream framebuffer is verified to be working alright. 



Solution 2: 


Verilog component that puts the 2-pixels-per-clock clocked video input with dual clock frame buffer: 


2-1-symbol.v is attached. 


Result: works in some cases (e.g. direct output to monitor or direct loop-back to HDMI output,butnot reliably. especially if i try to apply scaling after this module, the whole pipeline pretty much stops working. 



This should be a pretty common problem, maybe it's trivial and I just don't see it. Any idea is highly appreciated. 


Thank you! 

0 Kudos
2 Replies
Valued Contributor III

Sorry, I mistakenly posted this question in the wrong forum area. It seems not possible to erase posts. I reposted this in General. 


0 Kudos
Valued Contributor III

Hi, I just wanted to write, that I managed to solve the problem. The QSYS solution described above does not work. The conversion using my Verilog code works. 


I made one significant mistage though: I was using the wrong clock to read out the data from my HDMI input. I needed to use a PLL to create an exact double-frequency clock from the HDMI clock input. If I use that to drive the output from my symbol converter and input to the pipeline, things work ok. 



0 Kudos