Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20684 Discussions

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

Altera_Forum
Honored Contributor II
1,347 Views

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! 

Klaus
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
563 Views

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

 

Klaus
0 Kudos
Altera_Forum
Honored Contributor II
563 Views

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. 

 

Cheers, 

Klaus
0 Kudos
Reply