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!

Showing results for 
Search instead for 
Did you mean: 
Registered: ‎05-18-2018

How do I verify that my MIO is assigned to a certain package pin?

I am using Vivado 2019.1 and a Zynq Ultrascale+ SoC.

How can I verify that a given MIO is routed to a specific package pin?

  • In the PS recustomization screen, you can assign peripherals to ranges of MIO and EMIO.
  • In the Implementation flow, you can assign package pins to the block design ports.

I recustomized my PS to have GPIO set up to use a range of MIO, and I see that my package pins in the Implementation flow are (apparently) correctly assigned to the port names from my block design.

But I don't see where the MIO range explictly links my block design ports to package pin numbers. Does Vivado do this automatically, and is there some way I can verify that the assignments are correct? If it's not automatic, how to I make these assignments?


0 Kudos
3 Replies
Registered: ‎09-12-2007

Re: How do I verify that my MIO is assigned to a certain package pin?

Bank 0 = 0 - 25 (MIO 0 - 25)
Bank 1 = 26 - 51 (MIO 26 - 51)
Bank 2 = 52 - 77 (MIO 52 - 77)
Bank 3 = 78 - 109 (EMIO 0 - 32)
Bank 4 = 110 - 141 (EMIO 33 - 64)
Bank 5 = 142 - 173 (EMIO 65 - 95)
So, take a  particular scenario (using 1 bit GPIO via EMIO), the pin would be base_gpio + offset, or 338 + 78 = 416.
To test, use can use the commands below to toggle the LED:
echo 416 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio416/direction
echo 1 > /sys/class/gpio/gpio416/value
echo 0 > /sys/class/gpio/gpio416/value
echo 416 > /sys/class/gpio/unexport

0 Kudos
Teacher drjohnsmith
Registered: ‎07-09-2009

Re: How do I verify that my MIO is assigned to a certain package pin?

When you defined the SOC capabilities,

    you selected which pin to use on that package.

     its fixed, but flexible in the spftware. i.e. a particular pin could be MIO or say a MOSI pin...

chapter 27 and 28



what you then need is the ascii pin tables, chapter 3


Find your device / package , and yo have a link to the ascii table of that device.

for instance this file


and you will see for instance



so the MIO 0 is on pin AG15,

   and the functoin of MIO 0 is defined in your software


There HAS to be a simpler way than this,

    but I've only done this a few times, and htis way works for me, so I stick with it when I make the schematic symbols.









<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Scholar jg_bds
Registered: ‎02-01-2013

Re: How do I verify that my MIO is assigned to a certain package pin?


MIO assignments of Zynq Ultrascale devices are beyond automatic: they're fixed. They cannot be changed.

For a given die in a given package, 1 MIO goes to 1 pin. That's it. It doesn't go anywhere else.

Here's a completely arbitrary example.

Compare this listing from https://www.xilinx.com/support/packagefiles/zuppackages/xczu4cgsfvc784pkg.txt :


To the package diagram from UG1075:


-Joe G.


0 Kudos