# Guidance on using VDMA interrupt

**URL:** <https://discuss.pynq.io/t/guidance-on-using-vdma-interrupt/755>\
**Category:** Support\
**Created:** [December 12, 2019, 7:23pm UTC](https://discuss.pynq.io/t/guidance-on-using-vdma-interrupt/755 "2019-12-12T19:23:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![bsi](https://avatars.discourse-cdn.com/v4/letter/b/f08c70/32.png) [@bsi](https://discuss.pynq.io/u/bsi)\
**Post date:** [December 12, 2019, 7:23pm UTC](https://discuss.pynq.io/t/guidance-on-using-vdma-interrupt/755/1 "2019-12-12T19:23:51Z")

</div>

Hi,

I am working on a ISP design (Zynq Ultrascale+ SoC) .  
I have multiple VDMA in my design in PL and I have connected their interrupt to Zynq PS  
pl\_ps\_irq port. I am getting errors.

I am new to PYNQ and hope someone from the community can guide me on how to handle VDMA interrupts in PYNQ

Thanks

---

<div class="post-metadata">

**Author:** ![patocarr](https://avatars.discourse-cdn.com/v4/letter/p/d2c977/32.png) [@patocarr](https://discuss.pynq.io/u/patocarr)\
**Post date:** [December 12, 2019, 9:30pm UTC](https://discuss.pynq.io/t/guidance-on-using-vdma-interrupt/755/2 "2019-12-12T21:30:58Z")

</div>

@bsi

It’s not clear from your message what kind of errors you’re getting, from either Vivado synthesis, implementation, or IPI validation.  
As a guide, you’d add those ports to the block design individually (Create interface port in IPI) and tag them as interrupt type ([xilinx.com](http://xilinx.com):signal:interrupt\_rtl). Then inside the block design, you’d concatenate them using xil\_concat IP and the output goes to the Zynq PS pl\_ps\_irq port.

Thanks,  
-Pat

---

<div class="post-metadata">

**Author:** ![bsi](https://avatars.discourse-cdn.com/v4/letter/b/f08c70/32.png) [@bsi](https://discuss.pynq.io/u/bsi)\
**Post date:** [December 19, 2019, 11:52pm UTC](https://discuss.pynq.io/t/guidance-on-using-vdma-interrupt/755/3 "2019-12-19T23:52:58Z")

</div>

## Hi, Thanks for your reply. I am not facing any issue with generating bit file generation. It is when i start using pynq framework and accessing vdma, i get following error

ValueError Traceback (most recent call last)  
 in ()  
2 dft = overlay.dft\_subsyst.custom\_dft  
3 #vdma\_csi2 = overlay.csi2\_raw\_subsyst.axi\_vdma\_0  
----\> 4 vdma\_h0 = overlay.vdma\_h0  
5 vdma\_h1 = overlay.vdma\_h1  
6 intc = overlay.axi\_intc

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in **getattr** (self, key)  
325 “”"  
326 if self.is\_loaded():  
 → 327 return getattr(self.\_ip\_map, key)  
328 else:  
329 raise RuntimeError(“Overlay not currently loaded”)

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in **getattr** (self, key)  
583 elif key in self.\_description[‘ip’]:  
584 ipdescription = self.\_description[‘ip’][key]  
 → 585 driver = ipdescription’driver’  
586 setattr(self, key, driver)  
587 return driver

/usr/local/lib/python3.6/dist-packages/pynq/lib/video/dma.py in **init** (self, description, framecount)  
590  
591 “”"  
 → 592 super(). **init** (description)  
593 self.framecount = framecount  
594 self.readchannel = AxiVDMA.S2MMChannel(self, self.s2mm\_introut)

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in **init** (self, description)  
515 self.\_gpio = {}  
516 for interrupt, details in self.\_interrupts.items():  
 → 517 setattr(self, interrupt, Interrupt(details[‘fullpath’]))  
518 for gpio, entry in self.\_gpio.items():  
519 gpio\_number = GPIO.get\_gpio\_pin(entry[‘index’])

/usr/local/lib/python3.6/dist-packages/pynq/interrupt.py in **init** (self, pinname)  
96 self.number = PL.interrupt\_pins[pinname][‘index’]  
97 self.parent = weakref.ref(  
—\> 98 \_InterruptController.get\_controller(parentname))  
99 self.event = asyncio.Event()  
100 self.waiting = False

/usr/local/lib/python3.6/dist-packages/pynq/interrupt.py in get\_controller(name)  
157 if con.name == name:  
158 return con  
 → 159 ret = \_InterruptController(name)  
160 \_InterruptController.\_controllers.append(ret)  
161 return ret

/usr/local/lib/python3.6/dist-packages/pynq/interrupt.py in **init** (self, name)  
189 if uiodev is None:  
190 raise ValueError('Could not find UIO device for interrupt pin ’  
 → 191 ‘for IRQ number {}’.format(number))  
192 self.parent = UioController(uiodev)  
193 self.number = 0

ValueError: Could not find UIO device for interrupt pin for IRQ number 0
