11-13-2014 07:51 AM
If I have a project which is just a block design what is the difference between right clicking the block design and selecting 'Package Block Design' and packaging the entire project?
11-18-2014 10:23 AM
Well, I dont know all of the differences but I can tell you one of them is that when you package a block design Vivado will honor your interface ports as defined in the BD whereas if you package a project you may have to create the interface port manually.
11-19-2014 01:38 PM
Here is my advice - don't package any of these.
Package a directory as an IP, it is the only STRUCTURED way of managing your IP. The rest of the packaging options means that you create an IP based off some files in the project or modules on the canvas, and you lose this "directory-level" IP creation structure.
Also, you lose your BD canvas if you package your BD.
11-20-2014 04:32 AM
If I understand you correctly then in the case of 'package directory' the new IP will contain a copy of all the required source as opposed to referecning it from the original project location?
Typically I use package project and make the output location be the root of the project directory.
11-20-2014 06:53 AM
Precisely. You get to package a directory that becomes a top-level folder for your IP. This is the ONLY truly structured hierarchy of directories. And it is easier to iterate over the directory structure with scripting.
09-18-2015 02:50 AM
Interesting - I wish Xilinx would explain this much better.
Q : Using 'package directory' -> can you have multiple IP versions co-existing? Does each one go into it's own folder?
09-18-2015 05:12 AM
Most likely yes, but I don't know that for sure. I am still in the habbit of using 'package project' as opposed to anything else. While 'package directory' does appear to make a copy of all the required source, which is a nice way of mainting an ip_repo, I perfer to do this:
1) Make an ip_repo folder
2) Every time I want a new IP I make a project for it and put it in its own folder in the ip_repo folder
3) I use package project, and select the project root directory as the output path.
If I want to have multiple versions then I use 'Save Project As' to make a new branch of the same project. I believe when you go to repackage the new project you need to change the major version number.
Also, I did eventually figure out what 'package block design' does besides honor your interface ports. I dont exactly recall right now, but it has something to do with how, or whether, it packages the XCI files that go along with the block diagram. Also, if you have a block diagram and you dont use 'package block diagram' then the packaged IP will contain many xdc files imported from the bd and the bd's ip. This doesnt sound all the bad, but its very annoying when you try to use your new IP OOC later since none of the constraints files will be scoped correctly. In regards to block diagrams in IP, my advise is avoid it.
09-18-2015 06:02 AM