element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet & Tria Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
ZedBoard Hardware Design AXI GPIO routing
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 1 reply
  • Subscribers 352 subscribers
  • Views 462 views
  • Users 0 members are here
Related

AXI GPIO routing

Former Member
Former Member over 11 years ago

I am using Vivado 2014.3.1.
I have a 32 bit wide output-only AXI GPIO port routed to my Verilog top module by instantiation.  I used the IP Integrator to create the AXI GPIO peripheral and made the GPIO port external.  It appears to be functioning as I can send bit values from the PS to turn on or off LEDs that are connected to the PL of the Zedboard.  But, this only works if the registers are written to in the top module.

  If I route the signal from the AXI GPIO port to a different module as follows:

Register the AXI GPIO output from the PS into the top module.->
Place the name of the register attached to the AXI GPIO into the instantiation for the module to which I want to send the signal.

Then no signal reaches the module where the signal is needed.  This is true whether the signal is connected to an LED or my logic->DAC.  No error messages indicate that the registers are trimmed as I have set
(* dont_touch = "true" *) to prevent trimming of these connections.

Creating a wire and using an assign statement between the register that is connected to the AXI GPIO port and the instantiation for the module in which the signal is needed produces a warning indicating that the wire has no driver and that, as a result, the register in the module where I need to use the information has the un-driven pin tied to 0.

Is there a list of rules as to how to route signals originating in the PS that I have missed?

Any suggestions will be appreciated.

Thank you,
Aaron


  • Sign in to reply
  • Cancel
Parents
  • drozwood90
    0 drozwood90 over 11 years ago

    Aaron,

    Hi.  I'm a bit unclear about what you are doing, let me try to recap and see if we can get this straight between us, so we can get you going.

    You are working with a Block Design?

    On the block design page:
    PS AXI Pin ->AXI GPIO -> output (declared as external)
    -or- is it that you are NOT using a Block Design and you just took the AXI-GPIO instantiation code and placed it in your TOP .v file itself?
    I get the feeling that you are using a block design, since you said you declared the pins as external.  Traditionally, when you call out the port map INPUTs and OUTPUTs, the names that match the pin assignments in the .xdc will be assumed as external (since you declared it in the constraint file!)

    Whichever one you chose, this works.

    Then, you took the instantiation code for the AXI GPIO out of the Verilog file and moved it to a file that is declared inside the TOP?

    Did I recap that correctly?

    If you did that, you cannot declare the outputs as external, since they are embedded INSIDE a .v file that is inside of your TOP.  If this is what you did, you will need to do one of two things.
    1. ROUTE the registers FROM the inside .v file to the TOP
    or
    2. route the GPIO from the AXI GPIO block UP to TOP, where you can connect them as external connections (either declaring them in a Block Design, or if you are not using a Block Design, just calling out the proper names in the XDC).

    If you are not using a Block design, is there a reason?  I find it much faster / easier to use this to connect all the logic blocks together and get a good visual about what is connected to what and going where.

    --Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • drozwood90
    0 drozwood90 over 11 years ago

    Aaron,

    Hi.  I'm a bit unclear about what you are doing, let me try to recap and see if we can get this straight between us, so we can get you going.

    You are working with a Block Design?

    On the block design page:
    PS AXI Pin ->AXI GPIO -> output (declared as external)
    -or- is it that you are NOT using a Block Design and you just took the AXI-GPIO instantiation code and placed it in your TOP .v file itself?
    I get the feeling that you are using a block design, since you said you declared the pins as external.  Traditionally, when you call out the port map INPUTs and OUTPUTs, the names that match the pin assignments in the .xdc will be assumed as external (since you declared it in the constraint file!)

    Whichever one you chose, this works.

    Then, you took the instantiation code for the AXI GPIO out of the Verilog file and moved it to a file that is declared inside the TOP?

    Did I recap that correctly?

    If you did that, you cannot declare the outputs as external, since they are embedded INSIDE a .v file that is inside of your TOP.  If this is what you did, you will need to do one of two things.
    1. ROUTE the registers FROM the inside .v file to the TOP
    or
    2. route the GPIO from the AXI GPIO block UP to TOP, where you can connect them as external connections (either declaring them in a Block Design, or if you are not using a Block Design, just calling out the proper names in the XDC).

    If you are not using a Block design, is there a reason?  I find it much faster / easier to use this to connect all the logic blocks together and get a good visual about what is connected to what and going where.

    --Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube