RFDC version mismatch with pynq drivers

Hello

I am using vivado 2020.1 in order to create a rfdc overlay
and pynq image version 2.5

but i get that error after trying to download the overlay :

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py:83: UserWarning: IP usp_rf_data_converter_0 is of type xilinx.com:ip:usp_rf_data_converter:2.3 and driver found for [xilinx.com:ip:usp_rf_data_converter:2.1]. Use ignore_version=True to use this driver. warnings.warn(message, UserWarning)

Thanks
Shalom

The PYNQ 2.5 image is tested with Vivado 2019.1. As you are using a different version of Vivado, you are using a different version of the RF IP. If there have been major changes, the IP may not work with the existing PYNQ driver.
You can go back to 2019.1, or try use ignore_version=True if you want to try with the existing driver.

Cathal

Thank you
After applying your suggestion its work and
I call the following :

ol?
then get the
IP Blocks
usp_rf_data_converter_0 : xrfdc.RFdc

So after trying to use the following :

ol.usp_rf_data_converter_0?
i get this error :
Object ol.usp_rf_data_converter_0 not found.

do you have any idea why ? is it because mismatch on driver version?

Thanks
Shalom

Here is the error when i call the following:

ol.usp_rf_data_converter_0


KeyError Traceback (most recent call last)
in ()
1
2
----> 3 ol.usp_rf_data_converter_0

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in getattr(self, key)
335 “”"
336 if self.is_loaded():
→ 337 return getattr(self._ip_map, key)
338 else:
339 raise RuntimeError(“Overlay not currently loaded”)

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in getattr(self, key)
735 elif key in self._description[‘ip’]:
736 ipdescription = self._description[‘ip’][key]
→ 737 driver = ipdescription’driver’
738 setattr(self, key, driver)
739 return driver

/usr/local/lib/python3.6/dist-packages/xrfdc/init.py in init(self, description)
243
244 def init(self, description):
→ 245 super().init(description)
246 if ‘parameters’ in description:
247 from .config import populate_config

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in init(self, description)
600 self._gpio = {}
601 for interrupt, details in self._interrupts.items():
→ 602 setattr(self, interrupt, Interrupt(details[‘fullpath’]))
603 for gpio, entry in self._gpio.items():
604 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)
175 “”"
176 self.name = name
→ 177 self.mmio = MMIO(PL.ip_dict[name][‘phys_addr’], 32)
178 self.wait_handles = [ for _ in range(32)]
179 self.event_number = 0

KeyError: ‘’

The PYNQ interrupt infrastructure expects all interrupts in IP that you want to use be connected to an AXI interrupt controller - the exact details are here.

Peter

OK i will check that , thank you !