cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
toddmcc
Adventurer
Adventurer
4,589 Views
Registered: ‎09-01-2015

Can't create PL interrupt

Jump to solution

Vivado 2106.2

I am trying to connect a fabric interrupt from a custom IP to the PS but when I export it to SDK it does not recognize the connection.  I can simulate the design and have checked the bd tcl files and everything seems ok.  I don't understand what I am missing when generating the BSP files.  As you can see in the block_diagram.jpg my design connects both an AXI timer and a custom IP to the PL-PS interrupt fabic through a concat block.  Once I export it into SDK, I run a BSP on it and check the xparameters file which only shows a connection to the timer irq and not the custom block.  What step am I missing? 

block_diagram.jpg
xparameters.jpg
0 Kudos
1 Solution

Accepted Solutions
toddmcc
Adventurer
Adventurer
7,946 Views
Registered: ‎09-01-2015
So I was able to resolve this (no thanks to xilinx support) and will post the resolution to help alleviate the pain someone will have with this in the future. I can't find any documentation or mention of this in any AR or forum records but when you connect a signal to the PL fabric interrupts on the Zynq, it has to be defined as an interrupt at the source for the PS to recognize it when a BSP is generated. So if it comes from custom IP, you need to "auto infer" the port as an interrupt, or if it comes from off board it has to be defined as an interrupt during the port creation. Another wonderful undocumented Vivado feature.

View solution in original post

new_custom_irq.jpg
port_irq.jpg
3 Replies
toddmcc
Adventurer
Adventurer
7,947 Views
Registered: ‎09-01-2015
So I was able to resolve this (no thanks to xilinx support) and will post the resolution to help alleviate the pain someone will have with this in the future. I can't find any documentation or mention of this in any AR or forum records but when you connect a signal to the PL fabric interrupts on the Zynq, it has to be defined as an interrupt at the source for the PS to recognize it when a BSP is generated. So if it comes from custom IP, you need to "auto infer" the port as an interrupt, or if it comes from off board it has to be defined as an interrupt during the port creation. Another wonderful undocumented Vivado feature.

View solution in original post

new_custom_irq.jpg
port_irq.jpg
darpandamani93
Visitor
Visitor
4,533 Views
Registered: ‎01-26-2016

Hi, thanks for posting this solution, it really helped.

I am also developing a similar kind of application. I have created an axi slave where I am performing some processing. After this processing is completed, I want to make interrupt pin high so ARM knows about it and reads particular memory location.

I have tested in debug in vivado, that interrupt pin gets high whenever that process is completed, but I dont know how to use GIC functions provided in xcugic.h to connect this interrupt.

When we try to use GPIO interrupt or Timer interrupt, many functions are provided to initialise them and access them, but I dont understand how to actually use this interrupt in my C program.

It would be very great if you could help me out in how to link this interrupt with GIC, and how to actually use it ?

 

Thanks a lot

0 Kudos
muh_ali
Adventurer
Adventurer
1,997 Views
Registered: ‎09-18-2009

@toddmcc

 

Helped me too. Thanks for sharing the solution.

 

Best,

0 Kudos