Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

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!

Klaus

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

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

    Klaus
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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