cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
diverger
Adventurer
Adventurer
1,213 Views
Registered: ‎06-22-2018

Will Vivado do some 'optimization' when "place I/O ports in an I/O bank"

Jump to solution

When do I/O planning, you can use 'place I/O ports in an I/O bank' to place multiple ports in designated bank. But sometimes the ports Vivado chosen is separated far away from each other, even there are free ports next to each other. I wonder if there are some rule when Vivado choosing ports for you? Will Vivado do some 'optimization' when choosing ports location, or it just allocate them randomly? 

Tags (2)
0 Kudos
Reply
1 Solution

Accepted Solutions
marcb
Moderator
Moderator
1,226 Views
Registered: ‎05-08-2012

Hi @diverger. The I/O Placers main goal is to find a valid I/O placement. To do this, it must make sure that no I/O compatibility rules are violated, such as conflicting IOSTANDARDs. It also must make sure that global clocks are on clock capable pins, and the I/O logic such as I/ODDR, and I/OSERDES have their I/O placed in package pins that have the required resources for that device.

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------

View solution in original post

4 Replies
drjohnsmith
Teacher
Teacher
1,187 Views
Registered: ‎07-09-2009

vivado IO auto placement,  seems to work on the basis of spreading the ports out,

Im guessing to minimise interference / ground bounce and  to spread rooting.

 

Basically, it not of much use to real layout, but useful for a first test of , does it fit.

 

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Reply
marcb
Moderator
Moderator
1,227 Views
Registered: ‎05-08-2012

Hi @diverger. The I/O Placers main goal is to find a valid I/O placement. To do this, it must make sure that no I/O compatibility rules are violated, such as conflicting IOSTANDARDs. It also must make sure that global clocks are on clock capable pins, and the I/O logic such as I/ODDR, and I/OSERDES have their I/O placed in package pins that have the required resources for that device.

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------

View solution in original post

diverger
Adventurer
Adventurer
1,114 Views
Registered: ‎06-22-2018

Actually, when create the IO ports, I only set the 'Direction' and 'I/O Standard', and no other limitations (it seems there not so many options in the 'create port' dialog).  Sometimes (if not always), Vivado places the port far away each other, though there exist free pins next to each other.

0 Kudos
Reply
drjohnsmith
Teacher
Teacher
1,106 Views
Registered: ‎07-09-2009

yep

 

auto placer just spreads the IO around the chip to sites that work.

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Reply