Hi,
So if you have one instance (with one HD and one SD input and one output), then the system works perfectly. But if you add another instance (which is completely independent form the first instance), then neither instances work correctly? I am asking just to be sure I understand your system and the problems you have been seeing.
If you look at the CVI registers while it is not working as expected (not flowing SD data), can you see that it at least recognises the input video stream? Is the resolution correct? Is it outputting data (is bit 0 of the status register set?). If it is outputting data, and you still see nothing on the output, then the input FIFO in the CVI should overflow. Use SignatTap to look at the video output of each block in the chain, starting at the CVI.
Something else you might look at is the operation of the Switch component. The Switch component only switches between input streams on packet boundaries. I am not 100% sure what it would do if it is initially set to the HD path, but never receives a packet on the HD path before you command it to switch to the SD path. Maybe it assumes that it will always have video present on both inputs and it waits for an end of packet on the HD channel before switching. Change the SoPC system so that SD channel is the default for the switch (i.e. you do not have to change the switch to allow thr SD channel through). See if it will then pass through the SD stream before using the HD stream.
I have had some problems with the CVI block myself in the past. I presume you use two clock domains - the BT656 input clock (27MHz) and your SoPC system clock? What I have seen is tht the CVI can misbehave if you do not provide it with a nice clean contant video input clock. If you abrubtly remove the input clock, or it glitches as it is enabled or disabled, then the state machines in the CVI can enter invalid states. It seems as if there is a fair amount of logic running of the video input clock and if this clock glitches, timing is violated in this logic. If I had to write a CVI I would put no / absolute minimum logic in the video clock domain, immediately go through a dual clock FIFO and do all work in the system clock domain. If I remember correctly (it was some time ago), my biggest problem was that if you suddenly take away the video input (data an clock), the CVI does not recognise that the input is gone and the registers still indicate that stable video is present. I also had other strange behavour until I changed the design to always feed a clock to the CVI. I am not sure if this is a possibility in your system - just be aware that the CVI needs a video clock input to work correctly.
Regards,
Niki