Showing results for 
Search instead for 
Did you mean: 
Registered: ‎10-10-2014

having a non-temporary 'edit ip' project

Referring to the tutorial 'Creating and packaging custom IP' in UG1119 : this tutorial packs some source files into a custom IP. It doesn't talk about 're-editing' the IP later on, when i.e. after testing you found some issues or you need to add functionality.


I think most people then right-click on this custom IP (either from a block diagram or IP catalog', and then select 'edit in ip packager'.This creates a temporary edit ip project, and allows for editing and re-packaging. After re-packaging the temporary IP project is automatically deleted from disk.


Now this certainly suits simple IP, but what if the IP is more complex, and required simulations, multiple .wcfg files, ... and you want to keep these around too with the custom IP in case you need to re-edit the IP? What is the recommended way to do this?


I see 2 options (but not sure if this is a correct analysis ?) :

1) have a 'regular project' that you use to work on the IP, simulate, test, ... and then for each release package the IP as if it was a new one. This is in my opinion not interesting towards version control, it does not really 'upgrade' and re-package the IP, it's just packaging from scratch each time.


2) I use a method that I discovered by accident in this pdf : basically it comes to this :

* first time you select 'edit in ip packager' -> you immediately save the 'edit ip' project by closing it, so it is not deleted automatically as you did not click on 'package IP'. At that point you have a 'permanent' edit ip project, that you can re-open and re-use for developing the IP.

* then you always start working from this 'edit ip project', do your simulations there, and re-package when needed.


So far it looks to suit my needs, works ok with git version control, ... but I'm wondering if anyone else works like this? Or if not, how do you keep around the simulation files, simulation settings, ... when working on custom IP? What is the Xilinx recommended way?


My IP folder structure looks like this :


custom IP structure.png


* in green you see my 'permanent' ip_dev project - from this folder I only store the ip_dev.xpr' file in git. Also no sources, constraints, sim files, ... are stored under this project folder (by default they are stored there, so I always modify the location to some location under my package IP folder (green)

* in yellow is the top level folder of my custom IP (every file under this folder gets checked into git

* in orange you can see where I stored my simulation testbench, .wcfg, 

* in pink you can see a axis_fifo that I used from the IP catalog


so I'm wondering how other people approach this ...


** kudo if the answer was helpful. Accept as solution if your question is answered **
0 Kudos