Altera_Forum
Honored Contributor
14 years agoUsing Avalon-ST with VIP
I'm developing various pieces of IP that act like video generators similar to the Test Pattern Generator block in the VIP suite. Right now I have a small test design to learn how to use the Avalon-ST bus in the VIP environment so we can run our custom video directly into another block, such as the Alpha Mixer.
What I've created so far appears to meet what I believe is the correct interface according to the documentation but it creates severe instability in the image. My test design includes my IP block, which produces a 640x480 block of flat data, and a TPG block of the same size both going into layers in the mixer. I have SignalTap monitoring both output Avalon-ST buses and I am looking differences. So far there aren't many. Using SOP/EOP/ACTIVE to control a counter they both seem to be putting out the same size data packet. However I added a VIP control decoder block (downloaded from the Wiki) to each path and I'm seeing major differences in what gets captured. The block snooping my custom logic frequently reports incorrect height/width values. Digging into it further it appears that the decoder block assumes that the data in the control packet is contiguous. Once it gets an SOP it captures x clocks of data into it's registers disregarding READY/ACTIVE. However signal tap is showing that my control packets are frequently being broken up by READY from the sink. The same debug module snooping the TPG shows constant resolution values and I don't see any cases where the control packet is chopped up. Should I expect my controls packets to be contiguous such that them getting chopped up is an indicator of where my problem might be or should I be looking somewhere else?