element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Members
    Members
    • Achievement Levels
    • Benefits of Membership
    • Feedback and Support
    • Members Area
    • Personal Blogs
    • What's New on element14
  • Learn
    Learn
    • eBooks
    • Learning Center
    • Learning Groups
    • STEM Academy
    • Webinars, Training and Events
  • Technologies
    Technologies
    • 3D Printing
    • Experts & Guidance
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Arduino Projects
    • Design Challenges
    • element14 presents
    • Project14
    • Project Groups
    • Raspberry Pi Projects
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Or 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
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • 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
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
MicroZed Hardware Design PS interrupt PL
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Avnet Boards Forums requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 10 replies
  • Subscribers 176 subscribers
  • Views 343 views
  • Users 0 members are here
Related

PS interrupt PL

raymadigan
raymadigan over 7 years ago

I am working with some legacy vhdl components and I need to find a way to coordinate the PS and the PL.  Is there a way to send general interrupts from the PS to the PL.

I am using DMA interrupts from the PL to the PS, but haven't found a way to signal activity from he PS to the PL.  The main problem is the vhdl starts up immediately and files queues before the PS can get started. 

  • Sign in to reply
  • Cancel
  • jafoste4
    0 jafoste4 over 7 years ago

    Hello Raymadigan,

    Just to double check, are you using a zynq device? If so, open you Vivado Block Design, double click on the Zynq IP block, then go to Interrupts > PS-PL Interrupt ports. There you will see quite a few PS to PL interrupt ports. If none of these fit your requirements, you could use a PS GPIO to drive the VHDL input.

    There isn't much you can do about the PL starting up before the PS gets to your code. I would suggest that you devise some sort of "hold off" signal to your VHDL code. You could probably use the default level of a PS GPIO until the PS code is up and running.

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • raymadigan
    0 raymadigan over 7 years ago in reply to jafoste4

    I got the IRQ_P2F_GPIO setup in the processor.  I connect this line as an input signal to the module that I wrote that throws away the data until the interrupt occurs.  

    In my ps code I don't know how to turn on this interrupt.  The GPIO functionality provides a mechanism to turn on the interrupt.

    I am using the GPIO to turn on and off the onboard led, but that is a physical pin, I don't know how to change the interrupt to a pin?  I don't even know if that makes sense.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jafoste4
    0 jafoste4 over 7 years ago

    Hello Raymadigan,

    So you want a way to monitor if your interrupt is working correct? And your idea is to use a physical pin on your board from my understanding correct?

    Instead of doing this, you could use a ila core in you Vivado Block Design and monitor it in the Vivado Hardware Manager. If you need an example, you could refer to the Zynq Hardware Speedway we have.

    http://zedboard.com/course/developing-zynq%C2%AE-7000-all-programmable-soc-hardware-vivado-20133-201441-20152-and-20162

    Specifcally Lab 7, where we setup the ila core, and then to lab 8 in which we go over how to use the Hardware Manager within Vivado

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • raymadigan
    0 raymadigan over 7 years ago in reply to jafoste4

    No, I can't figure out how to send the interrupt from my PS application.  I have looked at all of the examples in the SDK.  I can't seem to figure out what the register I write to and what value to write to the register to signal the IRQ_PTF_GPIO interrupt.  I know how to monitor if the interrupt occurs.

    I looked in xparameters.h and can't find a reference to this interrupt, I looked in xscugic.h and can't find anything either.  I know I am missing something, but I can't find it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jafoste4
    0 jafoste4 over 7 years ago

    Hello Raymadigan,

    I see what you mean. You are trying to determine which is the Interrupt Parameter within SDK. I have two suggestions which may be of some help.

    1. Refer to the Zynq HW Speedways we have, specifcally lab 8. In lab 8, in SDK we use our interrupt parameter in SDK to run one of our applications. I just went and located the interrupt parameter in the xparameters.h file. I would imagine that it is in that file if everything was ported properly from Vivado to SDK.In my case it is called :  "#define XPAR_FABRIC_PWM_W_INT_0_INTERRUPT_OUT_INTR". So take another look in that file.  

    http://zedboard.org/course/developing-zynq%C2%AE-7000-all-programmable-soc-hardware-vivado-20133-201441-20152-and-20162

    2. If you can still not locate that Interrupt parameter located in that file, I have another suggestion. I ran into this issue when I was updating the labs above from Vivado 2015.2 to Vivado 2016.2. I was unable to locate that Interrupt parameter when I was porting over my hardware to SDK(same issue you are having). The cause of this issue in my case was in my Custom IP that I was creating in the IP Packager in Lab 7. My interrupt was labeled as undefined thus it was not passing to SDK properly. You can see how I corrected this by looking in Lab 7 Page 25 Step 16. 

    Hope this helps!

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • raymadigan
    0 raymadigan over 7 years ago in reply to jafoste4

    I really appreciate your help, thank you very much.

    I looked at the lab 8 and I think you meant lab 10.  That project sets up an interrupt service routine in the PS for an interrupt that occurs in the PL.  I need to go the other way.  I tried to find a similar reference to the GPIO interrupt IRQ_PTF_GPIO and can't find anything.  There is some magic somewhere and I am unable to figure it out.  

    I have search the xilinx forum and there are references to doing it, but nothing that will give me a clue to how to excite that interrupt.  There has to be a mask somewhere.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jafoste4
    0 jafoste4 over 7 years ago

    Hello Raymadigan,

    Have you looked at the MicroZed Chronicles by chance? Theres a few articles about interrupts that you may find useful. Specifically issues 12, 13, 38, 51, 105, 105, 107.

    http://zedboard.org/content/microzed-chronicles

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • raymadigan
    0 raymadigan over 7 years ago

    I couldn't find anything useful so I decided I would use a gpio line and connect it to the control pin.  In the ui I just write to the gpio pin and it works well enough.

    I submitted a post to the xilinx zynq forum and they didn't answer with anything useful either.  Just suggesting I use the gpio technique that I already found on their forum.

    Really, thanks for your help.  I do appreciate the effort you went through to assist.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
  • renlong_bh
    0 renlong_bh over 6 years ago

    I also want to trigger an interrupt from ps to pl.But I can't find anything usefull in forums and UG585. Is there someone knowing how to use IRQ_P2F_GPIO? It is better to supply an example or some usefull datasheet. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jafoste4
    0 jafoste4 over 6 years ago

    Hello Renlong_bh,

    Take a look at this post : https://forums.xilinx.com/t5/Zynq-All-Programmable-SoC/PS-to-PL-interrupt/td-p/726280

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
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 © 2023 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