FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5952 Discussions

VIP Alpha Blending Mixer Problem

Honored Contributor II

I'm trying to use the Alpha Blending Mixer. Layer 0 is a plain black background supplied by a TPG. Layers 1 and 2 are video and text overlay (respectively), with a smaller frame size than the background. The idea is to get a black frame surrounding my video and overlay. 


After a reset, I configure and enable the Mixer and layers 1 and 2. The TPG immediately outputs a control packet and an entire frame of data, which the Mixer happily accepts and pushes through to a Clocked Video Ouput module, which sends it out of the chip. The TPG then puts out another control packet, which the Mixer accepts, and then the first word of a data packet, at which point the Mixer deactivates the ready line on layer 0. 


The ready lines for layers 1 and 2 are high this whole time, but no data is coming through yet. 


Some time later, video and overlay data start coming in on layers 1 and 2. The Mixer receives the first couple of words of the control packets (on the data channels) and the data packets (on the alpha channels), and then deactivates the ready lines for those channels. 


And leaves them there for ever and ever. 


Does anyone have a clue as to what might be happening here? Do I need to force the TPG to hold off until the video and overlay data are available? 


I am writing to register addresses 0-7 (these are the addresses that appear on the Mixer inputs, on the main Avalon bus they are 0x0-0x1C); do I have the addresses wrong? I can see the write strobes and chip select going active, and avalon_readdata is changing to match the value that has just been written. (I am doing this with a custom configuration module that is a write-only Avalon-MM master.) 


Any insights would be appreciated. 


0 Kudos
3 Replies
Honored Contributor II

Hello Joe, 


It is not so clear what else the design contains? Like if you have a triple frame buffer after the video source or before the clocked video output? 


My first advice is to replace the video source with additional TG configured to supply color bars. 

This will simplify the design since 2 x TG + text overly (is it from Frame Reader?) inputs are all flexible and can send data when needed to the Alpha blending mixer. 


Let us see how this works? 


Honored Contributor II

Thanks for that suggestion. I implemented it on Monday and have been working with it ever since trying to debug what is going on. 


Part of the problem has been with a module I designed that feeds data into the mixer. It decodes part of the data stream to create the data and alpha streams for one of the layers, and it wasn't flexible enough to accommodate the way the mixer acts during it's initial startup. I think I have that part worked out now. 


The other part of the problem is that I am using the Avalon-ST Splitter IP module to split my alpha and data streams to two different mixers. The data stream appears to be OK, but on the alpha stream, the Splitter allows only the header word of the data packet through, and then drops its ready line even though the devices downstream from it have their ready lines high. My guess is that the mixer is looking at the data streams and is expecting a control packet, even though the documentation says it just passes on whatever it receives. I am working on my own way to split the alpha stream so I don't have to use the splitter there. 



Honored Contributor II


Thank you for your updata.