Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
output IO register
boneswu
Contributor
‎08-25-2010 07:30 PM

Hi,

I use

       project set {Pack I/O Registers/Latches into IOBs} "For Inputs and Outputs"

to pack register in IOB.

I found some outputs cannot pack register in (check .pad and _map.mrp)

I checked my NETLIST(.vm) and confirm these output IOs abut register output.

Please help me to pack these registers in output IOB.

 

Thanks!

Add Comment
Kudo 0
danders
Xilinx Employee
‎08-25-2010 07:44 PM

First thing you must do is make sure that there is no logic between the pad and the register.  If there is then there is no way to pack the register into the IOB.  More than likely this is the issue, but you can also use the constraint IOB on the failing registers.

 

UCF and NCF Syntax
The basic syntax is:
INST "instance_name" IOB={TRUE|FALSE|FORCE};
See value definitions in VHDL Syntax above.
The following statement instructs the mapper to place the foo/bar instance into an IOB component.
INST "foo/bar" IOB=TRUE;

 

Here if you use the FORCE then it will either place them in the IOB or error out.  This way you know if it doesn't place the registers because it will not go through the tools all the way.

 

Again if this fails look to make sure there is no logic between the PAD and the register.

Add Comment
Kudo 0
boneswu
Contributor
‎08-25-2010 11:41 PM

Hi, danders,

I follow your suggestion and it also cannot pack the register in IOB.

I am sure there is no logic between the PADs and the registers.

The registers are FDCE type.

The clock pin of FDCE is clock network, but the reset  pin is a generated reset (from other register).

Is it the cause?

The registers with generated reset input cannot be pack in IOB!?

Thanks!

Add Comment
Kudo 0
gszakacs
Expert Contributor
‎08-26-2010 08:19 AM

Maybe a little more information would help.  What FPGA are you using?

Which version of ISE?

 

Did you look in the FPGA editor to see if the output of the flip-flop

routes somewhere else besides the IOB?  If so you may need to

enable register duplication to allow the flip-flop to be pushed

into the IOB, while a duplicate fabric flip-flop generates the feedback

net for internal use.

 

Finally some FPGA's have additional requirements for IOB routing

which might prevent a flip-flop from being pushed into the IOB if

the other half of the IOB pair already has too many clock or reset

nets routed to it.

 

Regards,

Gabor

Add Comment
Kudo 0
boneswu
Contributor
‎08-26-2010 09:02 AM

Hi,

I use VIRTEX-4 and VIRTEX-5.

ISE version is 10.1.03 and 11.1.

 

I checked the NETLIST and there is no logic between register and IOB.

I will check it with FPGA editor.

 

Thanks!

Add Comment
Kudo 0
drjohnsmith
Expert Contributor
‎08-26-2010 12:29 PM

Hi

 

my humble experiance is register packing in IO has always been a feature.

 

 The IOB =TRUEoption is good, it gives a warning if the register you want is not in the IOB

 

But I like the IOB=FORCE option for brute force, if it can't do it , it errors and I have to notice.

 

 

http://www.xilinx.com/support/answers/35507.htm

Add Comment
Kudo 0
bwade
Xilinx Employee
‎08-26-2010 01:30 PM

Besides logic between the register and the OBUF, look for:

 

- control set restictions

- fanout greater than 1 (must drive only OBUF)

- Hierarchy restrictions

- Area Group Restrictions

 

Try a LOC constraint to an OLOGIC site. The resulting Pack error will tell you what's wrong.

Add Comment
Kudo 0
boneswu
Contributor
‎08-30-2010 04:49 AM

Hi,

I use FPGA editor to check these IO cannot pack its register in.

Their IO and OLOGIC are connected just like register output IO.

The difference is they connected node type is "IOBINPUT" of OLOGIC, not "IOBOUTPUT" of OLOGIC as IO pack register in.

What is the difference of "IOBINPUT" and "IOBOUTPUT" of "OLOGIC"?

Thanks!

Add Comment
Kudo 0
bassman59
Expert Contributor
‎08-30-2010 10:39 AM

 


boneswu wrote:

Hi,

I use FPGA editor to check these IO cannot pack its register in.

Their IO and OLOGIC are connected just like register output IO.

The difference is they connected node type is "IOBINPUT" of OLOGIC, not "IOBOUTPUT" of OLOGIC as IO pack register in.

What is the difference of "IOBINPUT" and "IOBOUTPUT" of "OLOGIC"?

Thanks!


 

IOBINPUT goes into the IOB, and the resulting signal uses the OLOGIC to go out of the chip.

 

Chip input comes in through the ILOGIC and goes to general FPGA resources through the IOBOUTPUT.

Add Comment
Kudo 0
boneswu
Contributor
‎08-30-2010 10:20 PM

Hi,

Two questions

1. Is there only IOBINPUT in OLOGIC and IOBOUTPUT in  ILOGIC?

2. If IOB and OLOGIC are abuttment in FPGA editor, does it mean the IOB pack the register in?

    How to determine if the IOB pack the register in FPGA editor?

Thanks a lot!

Add Comment
Kudo 0