Forum Discussion

gyuunyuu's avatar
gyuunyuu
Icon for Contributor rankContributor
6 years ago

Slow clock domain peripheral generating interrupt for a fast clock domain Nios takes too long to clear.

​A Qsys custom peripheral is running at 33MHz and generates an interrupt that goes to a Nios runnign at 99 MHz. The Nios then has to clear the interrupt by writing to a register in the custom component. However, it will take several 99MHz clock cycles before the interrupt source is deasserted as it is running at a slow clock. This can cause the ISR to be reexecuted sometimes. What is the solution to this problem in Qsys?

1 Reply

  • Ahmed_H_Intel1's avatar
    Ahmed_H_Intel1
    Icon for Frequent Contributor rankFrequent Contributor

    Hi,

    I see you can create an external block like an RTL block running at high clock frequency to be as a bridge between them to take the interrupt from your custom peripheral and send to NIOS, once the NIOS execute the interrupt and writes to the register the RTL block de-assert the interrupt as it is running in a high clock frequency.

    You can also check the VIC Victor Interrupt controller IP in Qsys.

    Regards,