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: 
Observer drbyte
Observer
1,789 Views
Registered: ‎03-07-2011

Microblaze and AXI Interrupt Controller vs Generic Interrupt Controller request

Jump to solution

Hi all,
in a my design based on Artix FPGA I've a Microblaze and a UART Lite IP block for serial communication.

Following the source code "xuartlite_intr_example.c" provided by VIVADO 2016.1 suite at the following path:
  C:\Xilinx\SDK\2016.1\data\embeddedsw\XilinxProcessorIPLib\drivers\uartlite_v3_2\examples
I was able to perform the TX and RX task with the interrupt approach.


Looking the other code example with name "xuartlite_intr_tapp_example.c" seems to me simular to the "xuartlite_intr_example.c", the only difference is that the first source code implement a conditional compilation basing on the interrupt controller type (AXI or Generic) implemented into the design.

I've did some searching around the net but I need some exaplanations what can be the best approach to use from the performance and the resource utilization perspective, so when I can/must use the AXI Interrupt Controller instead of the Generic Interrupt Controller and vice-versa.

 

From my basic understanding, please correct me if I'm wrong, the AXI Interrupt Controller should be used when we have more than one pheriperal into the design that is a source for interrupts. When there is only one pheriperal that can be connected directly to the interrupt input of the Microblaze we can use the generic Interrupt Controller because we don't have to place the AXI Interrupt Controller into the design.
The AXI Interrupt Controller basically should be a glue logic mapped inside the Microblaze and managed at the processor level by means of suitable drivers and the Generic Interrupt Controller is only a abstraction sw layer used to manage the interrupt source (one external and other internal). It's correct or I'm missing the real point?

I kindly ask some help in better understanding when and why I have to use one approach (AXi Interrupt Controller) instead the Generic Interrupt Controller and what is the real difference if my understanding was not correct.

Thank!

Best regards.

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Contributor
Contributor
2,141 Views
Registered: ‎04-04-2018

Re: Microblaze and AXI Interrupt Controller vs Generic Interrupt Controller request

Jump to solution

Hi drbyte,

 

The Generic Interrupt Controller (aka "gic") is the interrupt controller for an ARM (e.g. zynq). The AXI interrupt controller is the one for the MicroBlaze. Download a copy of pg099 - it should answer most of your questions in great detail.

 

Regards,

--Scott

3 Replies
Highlighted
Contributor
Contributor
2,142 Views
Registered: ‎04-04-2018

Re: Microblaze and AXI Interrupt Controller vs Generic Interrupt Controller request

Jump to solution

Hi drbyte,

 

The Generic Interrupt Controller (aka "gic") is the interrupt controller for an ARM (e.g. zynq). The AXI interrupt controller is the one for the MicroBlaze. Download a copy of pg099 - it should answer most of your questions in great detail.

 

Regards,

--Scott

Observer drbyte
Observer
1,745 Views
Registered: ‎03-07-2011

Re: Microblaze and AXI Interrupt Controller vs Generic Interrupt Controller request

Jump to solution
Thank you Scott!
Best regards
0 Kudos
Scholar ronnywebers
Scholar
1,526 Views
Registered: ‎10-10-2014

Re: Microblaze and AXI Interrupt Controller vs Generic Interrupt Controller request

Jump to solution

PG099 talks about a 'system processor', the microblaze is barely mentioned. Can this unit be used in a Zynq too? or is that not usefull at all, and should we directly connect axi irq's to the IRQ_F2P lines of the PS?

** kudo if the answer was helpful. Accept as solution if your question is answered **
0 Kudos