# Problem with AXILITE VVC and Interrupts

**URL:** <https://forum.uvvm.org/t/problem-with-axilite-vvc-and-interrupts/486>\
**Category:** Bitvis VIP AXI-Lite\
**Created:** [April 8, 2025, 12:38pm UTC](https://forum.uvvm.org/t/problem-with-axilite-vvc-and-interrupts/486 "2025-04-08T12:38:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![AlexK](https://avatars.discourse-cdn.com/v4/letter/a/91b2a8/32.png) [@AlexK](https://forum.uvvm.org/u/AlexK)\
**Post date:** [April 8, 2025, 12:38pm UTC](https://forum.uvvm.org/t/problem-with-axilite-vvc-and-interrupts/486/1 "2025-04-08T12:38:20Z")

</div>

I use the Axi4Lite VVC as a master to access an AXI slave in the DUT from two different processes. One of the processes is checking on and interrupt coming from the DUT/slave indicating an arriving data. How do I make sure to not miss the edge detection of the interrupt and carry out the axi access from one process and wait for it to complete to start the same time the AXI access in the other process. Is there any which handles this communicatio or how are interrupts handled with VVCs in UVVM?

---

<div class="post-metadata">

**Author:** ![Marius](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.uvvm.org/marius/32/43_2.png) [@Marius](https://forum.uvvm.org/u/Marius)\
**Post date:** [April 10, 2025, 2:45pm UTC](https://forum.uvvm.org/t/problem-with-axilite-vvc-and-interrupts/486/2 "2025-04-10T14:45:26Z")

</div>

Hi, just so I understand your setup; you have one process (p1) that trigger an axi access when an interrupt is detected, and another process (p2) that shall trigger another axi access as soon as the axi access in p1 is finished, allowing for p1 to continue monitoring the interrupt?

---

<div class="post-metadata">

**Author:** ![AlexK](https://avatars.discourse-cdn.com/v4/letter/a/91b2a8/32.png) [@AlexK](https://forum.uvvm.org/u/AlexK)\
**Post date:** [April 11, 2025, 8:01am UTC](https://forum.uvvm.org/t/problem-with-axilite-vvc-and-interrupts/486/3 "2025-04-11T08:01:18Z")

</div>

Yes, exactly. How do I handle the communication of the VVC here? There is only one VVC. Also, is there a way to pipeline the transction with VVC config instead of using the await\_completion command after every transaction?

---

<div class="post-metadata">

**Author:** ![Marius](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.uvvm.org/marius/32/43_2.png) [@Marius](https://forum.uvvm.org/u/Marius)\
**Post date:** [April 11, 2025, 1:42pm UTC](https://forum.uvvm.org/t/problem-with-axilite-vvc-and-interrupts/486/4 "2025-04-11T13:42:34Z")

</div>

Hi,

The VVCs have command queues, so passing multiple commands to them should not be a problem as long as they are sent in the correct order. If p1 simply waits for an interrupt, executes an AXI access, and then goes back to monitoring interrupts, you might not need to explicitly wait for the VVC to finish the command—unless you expect a new interrupt to occur while the VVC is still handling the previous one.

One approach is to use a synchronizer signal: p1 can drive this signal once its AXI access is completed (e.g. `gen_pulse(axi_sync_signal, 0 ns);` ), and p2 can wait for that signal before issuing the second AXI access.

Alternatively, is there any particular reason why you cannot combine both accesses into the same process (p1)?
