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: 
Highlighted
Adventurer
Adventurer
398 Views
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?

Thanks.

0 Kudos
3 Replies
Moderator
Moderator
294 Views
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
Teacher
288 Views
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

https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultrascale-trm.pdf

 

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

https://www.xilinx.com/support/documentation/user_guides/ug575-ultrascale-pkg-pinout.pdf

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

for instance this file

https://www.xilinx.com/support/packagefiles/zuppackages/xczu4cgsfvc784pkg.txt

and you will see for instance

AG15  PS_MIO0

 

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
Scholar
216 Views
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 :

2019-10-14_17-28-53.jpg

To the package diagram from UG1075:

2019-10-14_17-30-02.jpg

-Joe G.

 

0 Kudos