UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor jmunozaeq
Visitor
1,342 Views
Registered: ‎09-24-2018

Video crosspoint

Hi everyone,

 

I need to do a video crosspoint in a FPGA Spartan6, I have 4 video clock inputs (clk0, clk1, clk2 and clk3) and 4 video clock outputs (clko0, clko1, clko2 and clko3), and I have 4 selection inputs (sel0, sel1, sel2 and sel3) one for each video output

 

The funcionality I would like to have is:

 

sel0 = 0: clko0 = clk0

sel0 = 1: clko0 = clk1

sel0 = 2: clko0 = clk2

sel0 = 3: clko0 = clk3

 

sel1 = 0: clko1 = clk0

sel1 = 1: clko1 = clk1

sel1 = 2: clko1 = clk2

sel1 = 3: clko1 = clk3

 

sel2 = 0: clko2 = clk0

sel2 = 1: clko2 = clk1

sel2 = 2: clko2 = clk2

sel2 = 3: clko2 = clk3

 

sel3 = 0: clko3 = clk0

sel3 = 1: clko3 = clk1

sel3 = 2: clko3 = clk2

sel3 = 3: clko3 = clk3

 

I don't know how I can do it with bufgmux, could anyone help me with this issue?

 

Thank you

 

Best regards

 

Jose

0 Kudos
11 Replies
Scholar drjohnsmith
Scholar
1,340 Views
Registered: ‎07-09-2009

Re: Video crosspoint

whats your programming language ?

 

whats the video clock frequency, and format ( LVDS , LVCMOS etc ? )

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Visitor jmunozaeq
Visitor
1,312 Views
Registered: ‎09-24-2018

Re: Video crosspoint

I work with VHDL and my video inputs are 3G/HD/SD-SDI

 

if I use external deserializers for each input (GS2971) the video clock has a frecuency of 148.5Mhz

 

If I use Xilinx transceivers the input frecuency is 3Gbps for 1080p60

 

I don't know the best way to do my solution

 

Thank you

0 Kudos
Scholar drjohnsmith
Scholar
1,274 Views
Registered: ‎07-09-2009

Re: Video crosspoint

well, 

 

the code can only work on the parallel data, be that after the on chip PHY on an external PHY,

 

then its a simple set of case statements to make three MUX's, one for each out put 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Visitor jmunozaeq
Visitor
1,260 Views
Registered: ‎09-24-2018

Re: Video crosspoint

I can do 4 mux with 4 inputs and 4 outputs each one (all mux with same data inputs) 

 

But I don't know the way I can do 4 mux with 4 clock inputs and four clock outputs, all mux with same clock inputs

 

I need 3 bufgmux for each clock mux, for 4 clock mux I need 12 bufgmux

 

Spartan6 has 16 bufgmux but I don't know the way I can connect each bufgmux because there are hw constraints between global clocks pins and bufgmux inputs

 

Please see attached

 

Thank you

0 Kudos
Scholar drjohnsmith
Scholar
1,255 Views
Registered: ‎07-09-2009

Re: Video crosspoint

sorry , missed that

 

you don't want a mux,

 

you receive video on serial links ?

   these then get deseralised. 

 

you then launder them to an internal system clock, 

      

when they are all on the same system clock, then you can mux, 

 

and then seralise again,

 

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Visitor jmunozaeq
Visitor
1,243 Views
Registered: ‎09-24-2018

Re: Video crosspoint

The 4 video input clocks have different frequency, for example, one clock can be 148.5Mhz (1080p50) and other one 13.5Mhz (SD525)... they don't have the same frequency and they aren't synchronized

 

I need to do a crosspoint or mux between different video clocks

 

I think I need to use bufgmux but I don't know the way because I have errors of bufgmux placement when I sinthetize

 

In this moment I use external deserializer so I have 4 clock pins in my design

 

I don't know if I can do this with Spartan

 

Thank you 

 

 

0 Kudos
Scholar drjohnsmith
Scholar
1,238 Views
Registered: ‎07-09-2009

Re: Video crosspoint

Ok,

 

you want to switch clocks , 

   now thats a bit more difficult.

 

suggest you start a new project, just with the clocks you want, and test where they can be put on the chip, 

    sorry can't remember , which Spartan you got ?

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Visitor jmunozaeq
Visitor
1,191 Views
Registered: ‎09-24-2018

Re: Video crosspoint

I use Spartan 6 SLX100

 

I have a project only with clocks inputs, clock outputs and inputs of selection but there is no way to sintethize the solution

0 Kudos
1,184 Views
Registered: ‎06-21-2017

Re: Video crosspoint

Are you getting a synthesis error or a placer error?  I think this should be syntesizable.  The limited number of inputs to each clock tile on the S6 may make it impossible to place & route. 

0 Kudos
Visitor jmunozaeq
Visitor
871 Views
Registered: ‎09-24-2018

Re: Video crosspoint

I have a placer error when I do 4 clock inputs and 4 clock outputs

 

I tried a new code and it works when I have four clock inputs and two clock outputs (4:2)

 

But I don't know the way to add two more output clocks, perhaps I need to use BUFIO2, but I don't know if pins clocks can go to one bufgmux input and to one BUFIO2 input

 

This code works (4 clock inputs and 2 clock outputs) but I need to add two more clocks

 

-- mux0

U00: bufgmux port map(o => clk0_01, i0 => clk0, i1 => clk1, s => sel0(0));
U01: bufgmux port map(o => clk0_23, i0 => clk2, i1 => clk3, s => sel0(0));
U02: bufgmux port map(o => clk0sel_i, i0 => clk0_01, i1 => clk0_23, s => sel0(1));

 

-- mux1
U03: bufgmux port map(o => clk1_01, i0 => clk1, i1 => clk0, s => sel1(0));
U04: bufgmux port map(o => clk1_23, i0 => clk3, i1 => clk2, s => sel1(0));
U05: bufgmux port map(o => clk1sel_i, i0 => clk1_01, i1 => clk1_23, s => sel1(1));


-- out
U06: ODDR2 port map(clk0sel, clk0sel_i, not clk0sel_i, '1', '1', '0', '0', '0');
U07: ODDR2 port map(clk1sel, clk1sel_i, not clk1sel_i, '1', '1', '0', '0', '0');

0 Kudos
Visitor jmunozaeq
Visitor
829 Views
Registered: ‎09-24-2018

Re: Video crosspoint

I did the 4x4 crosspoint at the end, I need to use 12 bufgmux and 4 bufio2

 

With that configuration the issue is that I can't add more clocks to do other things, Spartan6 only has 16 bufgmux

 

Thank you to everybody