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 wtl121
Visitor
635 Views
Registered: ‎06-07-2018

why iddr placement is so far from its pad

I used IDDR in my design,simultaneity,IDDR input signal was connected to registers.

these registers used ILOGIC adjacent to PAD, IDDR is too far from  PAD. in result ,the signals is not completely rout.

 

why iddr placement is so far from its pad,how to design my XDC file.

0 Kudos
6 Replies
Historian
Historian
626 Views
Registered: ‎01-23-2009

Re: why iddr placement is so far from its pad

I don't understand your question. Maybe some images would help.

 

The IDDRs are (and can only be) in the ILOGIC - in fact, the ILOGIC is simply a boundary for containing the IDDR and the ISERDES. Furthermore, the only legal connection to the D input of the IDDR is the O output of the IBUF it is adjacent to - there is no other legal connection. So, by definition, the IDDR is always close to its PAD - it cannot be anywhere else...

 

Avrum

0 Kudos
Visitor wtl121
Visitor
601 Views
Registered: ‎06-07-2018

Re: why iddr placement is so far from its pad

for example , pad_rb_0_in[2:0] is original signals. ss_pad_rb_0_in[2] registers pad_rb_0_in[2].

and pad_rb_0_in[2] is input signal to oddr module. 

webwxgetmsgimg (1).jpg
webwxgetmsgimg.jpg
webwxgetmsgimg (2).jpg
0 Kudos
Historian
Historian
561 Views
Registered: ‎01-23-2009

Re: why iddr placement is so far from its pad

Admittedly, I don't understand the structure shown here - maybe if we saw the code and/or a schematic.

 

But it appears that the input is being sampled in two places - one in an FDRE in an IFF (so an IOB flip-flop) and again in an IDDR. I have no idea how this is being done, since this is supposed to be structurally impossible - both the IDDR and the IOB FF are supposed to be able to be driven only by the IBUF in the same IOB (although you can drive an IDDR as well as a fabric flip-flop with the same input).

 

Avrum

0 Kudos
Visitor wtl121
Visitor
548 Views
Registered: ‎06-07-2018

Re: why iddr placement is so far from its pad

You are right,both the IDDR and the IOB FF are driven only by the IBUF in the same IOB in my design. 

 

Is there any problem with this?

 

MY CODE:

 

IOBUF iobuf_iodata(.I(iodata_mux),

                   .IO(iodata), //PAD

                   .O(iodata_buf),

                   .T(iodata_out[5]));

 

ODDR iddr_odata( .Q(iodata_mux), .C(iodata_out[6]), .CE(1), .D1(iodata_out[1]), .D2(iodata_out[3]), .R(0), .S(0));

 

IDDR iddr_idata( .Q1(iodata_in[0]) .Q2(iodata_in[1]), .C(iodata_out[6]), .CE(1), .D(iodata_buf), .R(0), .S(0));

assign iodata_in[2] = iodata_buf;

 

always@(clk)

    ss_iodata_in[2:0] <= iodata_in[2:0];

 

ss_iodata_in[2] be placed in ILOGIC,but i want IDDR to be placed in ILOGIC and ss_iodata_in[2]  be placed in slice,

 

How to design my XDC file?

thank for your replay! 

0 Kudos
Historian
Historian
541 Views
Registered: ‎01-23-2009

Re: why iddr placement is so far from its pad

So, there doesn't appear to be anything wrong with your code - it is legal for the IBUF to drive both the IOB FF/IDDR/ISERDES as well as make a connection to the fabric.

 

What is odd here is the connection from the output of the IBUF in one IOB to the input of the IDDR in another IOB. This is just illegal, and the tools should not be able to do this - this should be an unroutable connection. Did the router actually complete without error?

 

Since this situation is not supposed to be possible, I can't really advise you on how to fix it. You could try

 

set_property IOB TRUE [get_cells iddr_data]

set_property IOB FALSE [get_cells ss_iodata_in_reg[2]]

 

(The IOB property can be set on the register instead of/as well as the port).

 

But I don't know if this will make a difference...

 

Avrum

0 Kudos
Highlighted
Visitor wtl121
Visitor
501 Views
Registered: ‎06-07-2018

Re: why iddr placement is so far from its pad

The router actually complete with error.Thinks you for your explains, i get some clues.

I add negligible combination logic between ss_iodata_in_reg and PAD,This problem may be resolved?

 

I design a nand controller PHY. The ss_iodata_in_reg is a port for asynchronous opration, the IDDR is a port for synchronous opration,so their sampling clock is different.Is my design unreasonable? do you have a good idea? 
Thinks for your replay!
0 Kudos