Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi,
If possible, what is the correct way to add a Vivado user IP repository path
to the build configuration for a USRP project?
Currently I have just patched "viv_generate_ip.tcl" to hard-code an
additional path to my repo, but this is not a great solution.
Many thanks, Kevin
Hi Kevin,
have you tried giving your IP directory via the `--include-dir` argument of the rfnoc_image_builder? That’s usually the way to include OOT modules.
Or does your IP need to be generated first and you want this to be part of the overall bitfile generation process?
The rfnoc_image_builder uses a gnu-make based build tooling, so you might be able to add your path to one of the makefile related files, depending on what they are and what should be done with them.
It looks like the `viv_generate_ip.tcl` script you gets called via the `build_vivado_ip` function that usually gets called from the respective IP’s makefile in the targets ip directory, e.g. x4xx ip.
If you had a similar makefile in your repo and added a link to it, e.g. in the Makefile.inc, so that make can find it, that might also work.
It is definitely not the recommended way, but if it works for you, it might be sufficient.
Regards,
Niels
Hi Niels,
Thanks for your reply.
As you mention, the issue I have is my module needs to generate an instance of an IP core I create using other tools first.
From browsing “viv_generate_ip” and the other scripts it seems that there is no place where user paths get added to the IP repo list, although I did find one reference in “viv_generate_bd.tcl” which calls “set ip_repos $::env(BD_IP_REPOS);# Any supporting IP repos”.
I could probably add something like that to “viv_generate_ip”.
Actually, if that works it will be better than hard-coding paths.
Kind regards, Kevin
From: niels.steffen.garibaldi--- via USRP-users usrp-users@lists.ettus.com
Sent: Friday, 27 June 2025 14:14
To: usrp-users@lists.ettus.com
Subject: [EXTERNAL][USRP-users] Re: adding a user ip repo
Hi Kevin,
have you tried giving your IP directory via the --include-dir
argument of the rfnoc_image_builder? That’s usually the way to include OOT modules.
Or does your IP need to be generated first and you want this to be part of the overall bitfile generation process?
The rfnoc_image_builder uses a gnu-make based build tooling, so you might be able to add your path to one of the makefile related files, depending on what they are and what should be done with them.
It looks like the viv_generate_ip.tcl
script you gets called via the build_vivado_ip
function that usually gets called from the respective IP’s makefile in the targets ip directory, e.g. x4xx ip https://url.za.m.mimecastprotect.com/s/ZtWKC0gp77igE2phwfWh9GqeY?domain=github.com .
If you had a similar makefile in your repo and added a link to it, e.g. in the Makefile.inc https://url.za.m.mimecastprotect.com/s/nPYHCg5KEEcwglDuohKh4YoC7?domain=github.com , so that make can find it, that might also work.
It is definitely not the recommended way, but if it works for you, it might be sufficient.
Regards,
Niels