01-15-2020 02:57 AM
I'm using the QDMA sub-system in IP integrator. The IP defines some new interface types (<install>/data/ip/xilinx/qdma_v3_0/interfaces) but they are not listed in the IP Catalog even though the qdma_v3_0 IP itself is listed. How can I make Vivado aware of the QDMA specific interface definitions so I can use them in my own custom IP?
Using Vivado 2019.2
01-17-2020 06:06 AM
This question is not related to the QDMA IP specifically but more on how to create your custom IP and integrate interfaces that you have seen with the QDMA IP. I am going to move this to our Design Entry board as this would be best handled there.
In the meantime I would recommend thay you ensure that you have reviewed the following documents as they provided a lot of detail on designing with IP and custom IP flows. The following documents can be found in Doc Nav or on the Xilinx.com page.
UG896, Vivado Design Suite User Guide: Designing with IP
UG939, Vivado Design Suite Tutorial: Designing with IP
UG1118, Vivado Design Suite User Guide: Creating and Packaging Custom IP
UG1119, Vivado Design Suite Tutorial: Creating and Packaging Custom IP
01-20-2020 01:58 AM
Thanks for the reply, yes I guess this is a more general issue and not QDMA specific. The documents you suggest do not seem to have an answer for this issue. The problem is that when an interface is being edited in IP Packager, the interfaces defined in $install/data/ip/interfaces are available in the Interface Definition Chooser, but the interfaces defined in $install/data/ip/$vendor/$ip/interfaces are not. The interfaces defined for the qdma_v3 IP are not present in the shared $install/data/ip/interfaces folder and are not available to the Interface Definition Chooser. This may be intentional or it may be a bug? The work-around is to create an interface with any Interface Definition and then use the IP Bus Interface Properties pane to edit the Bus type and Abstraction type properties to the required values. It seems odd that Vivado will not offer interface definitions in the Interface Definition Chooser, but will recognise them if they are set as properties on an interface.
01-27-2020 11:54 AM
firstname.lastname@example.org Can you articulate which interface you are trying to connect to in your own IP? I was looking and it seems all the QDMA interfaces are defined in the IP interfaces directory but perhaps I missed something.
In general, as long as you have the same port names in your IP RTL and the IP interface is known by Vivado, you will be able to connect.
You can also check the Create_Interface_Port to see a list of all known interfaces to VIvado.
02-19-2020 02:07 PM
I have encountered the same issue with the "DMA/Bridge Subsystem for PCI Express (PCIe)" module. The "xdma_status_ports" interface is already defined inside the ip repository, as Vivado does not allow me to redefine this interface inside "new interface definition" window. On the other hand, when I try to add the interface for my custom module, I cannot find it in the "Add Bus Interface" window.
02-19-2020 02:18 PM
You would need to edit the bus interface to enable it to work in your own IP.
Tools -> Create Interface Definition
Then choose extend from. And select the the one you want to edit. You will need to make it optional on both master and slave so that your IP can use that interface.