We have created Avalon MM Slave with AV Interrupt Interface using Qsys. The IRQ sender from the Slave device (form AV Interrupt Interface ) was connected to IRQ Receiver of NIOS II as shown in attached image.
The Slave configuratin in system.h file as as below.
/* reg16_component configuration */ #define ALT_MODULE_CLASS_reg16_component reg16_component #define REG16_COMPONENT_BASE 0x81008 #define REG16_COMPONENT_IRQ 0 #define REG16_COMPONENT_IRQ_INTERRUPT_CONTROLLER_ID 0 #define REG16_COMPONENT_NAME "/dev/reg16_component" #define REG16_COMPONENT_SPAN 2 #define REG16_COMPONENT_TYPE "reg16_component"
Also the ISR was registered as follows,
alt_ic_isr_register(REG16_COMPONENT_IRQ_INTERRUPT_CONTROLLER_ID, REG16_COMPONENT_IRQ, (alt_isr_func)handle_interrupt, 0, 0x0);
Now whenever the interrupt is generated, ISR is not invoked.
PIO components also generate interrupts. There are several tutorials you can find on the Net to see how interrupts are implemented. By exchanging the PIO component with your component, or the pio nios-II democode to your code, you can narrow down your search.
I recommend using Vector Interrupt Controller VIC to interrupt and replicate one of the reference designs in INTEL's design store.