UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor mrsouth
Visitor
13,945 Views
Registered: ‎08-21-2014

How to add "Manage IP" project's customized IPs to Block Design

After creating a Manage IP project and customized several IPs (mostly following UG939 Lab 2), I couldn't find a way to add the customized IPs to my block design. I have tried the following methods:

 

* Add the Manage IP project's directory to the IP repositories, but it reports that there are not IPs in the directory.

* Use "Project Manager -> Add Sources -> Add Exisiting IP" and points to Manage IP project's directory. It does add the IPs in the "Design Sources" tree, but then what? I still have no way of putting them into my block design. (Can't find them in the "Add IP" window.)

 

I tried Google for a long time, but didn't find any solution. Would some one give a hint? Thanks in advance.

 

14 Replies
Xilinx Employee
Xilinx Employee
13,935 Views
Registered: ‎02-16-2014

Re: How to add "Manage IP" project's customized IPs to Block Design

Hi,

 

Can you try following steps?

 

Once you customized your IP's in Manage IP project, package them using below steps.

 

Tools -> Create and Package IP 

 

It will open Create and Package IP pop-up window. 

 

Move forward and give the IP location as below.

 

ip1.PNG

 

 

 

Now in your project where you want to use this customized IP in your block design follow below steps.

 

Select Project Settings -> IP -> Add Repository  and give the your packaged IP location.

 

ip2.PNG

 

Now in the block design -> Click on Add IP , Now you will be able to see this IP.

 

ip3.PNG

0 Kudos
Visitor mrsouth
Visitor
13,928 Views
Registered: ‎08-21-2014

Re: How to add "Manage IP" project's customized IPs to Block Design

Thanks for the quick reply. but it still does not work as I would like. First let me be clear on what I have tried (in case there's steps are not actually what you have described.):

 

* With my Manage IP project opened in Vivado (2014.2), I used "Tools -> Create and Package IP -> Package a specified directory" (the "Package your current project" was grayed out, as expected).

* When asked for IP location, pointed to one of the subdirectory under my Manage IP project hosting the customized IP.

* Then Vivado created a "Edit in IP Packager" project and package the directory into an IP automatically.

 

The rest was standard adding IP repository and adding IP to my block design.

 

OK, so here are the problems I had with this approach:

 

* The Create and Package IP does not preserve my customization. For example, I have changed a few IP parameters from its default values, but the re-packaged IP shows all the old defaults when inserted to the block design.

* One of my customized IPs is AXI-DMA v7.1, but the output of Create and Package IP was a wrong one (blk_mem_gen_generic_cstr_v1_0). My guess is that it picked up the wrong top-level design because this blk_mem_gen_generic_cstr guy is in the AXI-DMA directory.

 

What I want to achieve is:

a) to have customized IPs ready for use without repeat the customization every time I create a new project.

b) to pre-synthesis some IPs to get out-of-context .dsp files, so that I can save some time when synthesis the big project. (I still don't know how to use the .dsp files to save time yet, but one step at a time.)

 

Using Manage IP flow seems to be a good way if I can figure out how it works, but I'm open to any suggestions to achieve my goals. Much appreciated.

 

Visitor mrsouth
Visitor
13,893 Views
Registered: ‎08-21-2014

Re: How to add "Manage IP" project's customized IPs to Block Design

OK, here's a quick update on my problem with a partial solution.

Correct me if I'm wrong, but it looks like that it's not possible to have pre-customized or OOC (out-of-context) pre-synthesis IPs under a block design, but I still be able to work out a partial solution to achieve my goals.

Once the block design is done, that is you won't change anything at this level, and all you are going to do is to hack the internal of the individual IPs without changing the interfaces, do the followings.

  • Create HDL wrapper for the block design (should be done already, but just in case.)
  • Remove the wrapper HDL and the block design file (BD) from the project, but do NOT delete the files on the hard-disk!
  • Add all the IPs under the "<project>/<project>.srcs/sources_1/bd/<design name>/ip/" to the project. Those are the IPs used by the block design. They will be dangling at the top level of the project source tree because no design is using them yet, but with a solid block before their icons, indicating they are OOC IPs!
  • Add the HDL files under "<project>/<project>.srcs/sources_1/bd/<design name>/hdl/" to the project. Those are the wrapper HDL generated for the block design. Now all the imported IPs should move back under the wrapper HDLs.
  • (Very important) If you have a Processor IP (such as Zyqn), right click on it and disable the OOC using "Set Out-Of-Context settings". This IP is special and must not be OOC, or a lot of errors will pop up during synthesis. (Not sure if there are any other special IPs, but in my design that was it.)
  • Now run synthesis. OOC synthesis runs for the IPs will be automatically generated and started. By default they are run one-by-one. You can cancel it and manually launch them with more parallel jobs to utilize multi-core CPUs. But most of them are going to run only once (they are OOC), so no big deal.


From now on, the synthesis will only happen to your modified IPs and top-level HDL. It reduces my synthesis time from 10 min to 2 min for a small design.

Hope this will be helpful to someone.

0 Kudos
Moderator
Moderator
13,875 Views
Registered: ‎01-16-2013

Re: How to add "Manage IP" project's customized IPs to Block Design

0 Kudos
Visitor mrsouth
Visitor
13,866 Views
Registered: ‎08-21-2014

Re: How to add "Manage IP" project's customized IPs to Block Design

Thanks for pointing to the document, I think I had skim through it before when trying to find a solution. Although it did help me understand some concept of vivado's dealing with IPs, but did not exactly solve my problem.

 

I didn't find information anywhere on how to start with a block design, and then add customized IPs or make the IPs OOC. All the examples I've seen are starting with pure HDLs with no block design, and then intantiate the customize/OOC IPs by copy and paste the intantiate template.

0 Kudos
Moderator
Moderator
13,859 Views
Registered: ‎01-16-2013

Re: How to add "Manage IP" project's customized IPs to Block Design

Ok.. let me try if i find any info i will update.

Thanks,
Yash
0 Kudos
Xilinx Employee
Xilinx Employee
13,669 Views
Registered: ‎09-20-2012

Re: How to add "Manage IP" project's customized IPs to Block Design

Hi @mrsouth 

 

The factory is aware of this request (allow adding "Manage IP" XCI files to block design) and this is in road map.

 

Thanks,

Deepika.

Thanks,
Deepika.
--------------------------------------------------------------------------------------------
Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)
0 Kudos
Highlighted
Visitor krzychosz
Visitor
10,664 Views
Registered: ‎11-21-2015

Re: How to add "Manage IP" project's customized IPs to Block Design

Deepika,

It has passed a few months. I'm now using Vivado 2015.3 and this request isn't done yet. do you have any news on when it will be done?
Thanks
Chris
0 Kudos
Scholar ronnywebers
Scholar
9,186 Views
Registered: ‎10-10-2014

Re: How to add "Manage IP" project's customized IPs to Block Design

 Hello @vemulad,

 

is there any update on this (for Vivado 2015.4)? 

 

I haven't used a Manage IP project so far, but do I get it clear that IP customizations that were created through manage IP projects (and saved somewhere in a central repository for re-use in multiple projects), cannot be used as blocks in a IPI (block design) 'as is' ?

 

Do I get it correctly that you would need to package each IP customiziation before you can do this? 

** kudo if the answer was helpful. Accept as solution if your question is answered **
0 Kudos
Visitor jnievesr
Visitor
4,835 Views
Registered: ‎07-26-2016

Re: How to add "Manage IP" project's customized IPs to Block Design

Any update for this issue in Vivado latest version 2016.2? 

 

Regards

0 Kudos
Observer kkrizka
Observer
1,771 Views
Registered: ‎03-23-2018

Re: How to add "Manage IP" project's customized IPs to Block Design

Any update for this issue in Vivado latest version 2017.4? 

0 Kudos
Xilinx Employee
Xilinx Employee
1,738 Views
Registered: ‎07-22-2008

Re: How to add "Manage IP" project's customized IPs to Block Design

For Vivado 2015.4:

 - You cannot use any pre-generated/customized IP core in an IP integrator Block Design (BD).

 - Yes, in order to add the customized IP core to a BD you would have to package the customized core (creating a new User IP definition) and then add an instance of this user IP to the BD.

 

In later versions of Vivado, module reference was added.  Depending on the IP, you could add an RTL file that instantiates the pre-generated/customized IP core using module reference.  Note that when module reference was first added, it would not allow an instantiated IP core.  With subsequent releases, more IP are being added to a white list of IP cores that can be instantiated in a module reference RTL file.

Scholar ronnywebers
Scholar
1,719 Views
Registered: ‎10-10-2014

Re: How to add "Manage IP" project's customized IPs to Block Design

thanks @howardp, is this procedure to add customized IP through module referencing described somewhere in the doc and/or a tutorial?

** kudo if the answer was helpful. Accept as solution if your question is answered **
0 Kudos
Xilinx Employee
Xilinx Employee
1,710 Views
Registered: ‎07-22-2008

Re: How to add "Manage IP" project's customized IPs to Block Design

See Page 20 and Chapter 12 of https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_4/ug994-vivado-ip-subsystems.pdf

 

Module reference was added in Vivado 2016.1.  However, with that release no IP cores could be instantiated in the RTL module.

0 Kudos