cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
brainiac
Observer
Observer
4,408 Views
Registered: ‎02-19-2012

sources from ip did not update in project

Hello!

 

I have an IP and source code of this ip.

 

I have a project which uses this ip. I had some problem, that when I correct source code of my IP, this IP does not change in project and implementing old files. I found that project copies ip files in prj_name.srcs/sources_1/bd/...

I tryed to repackage ip and generate output products, but synthesis uses old files.

How to solve this problem?

 

Best Regards.

0 Kudos
19 Replies
syedz
Moderator
Moderator
4,392 Views
Registered: ‎01-16-2013

@brainiac,

 

To reflect the changes in IP, please follow the below steps:

1. Right Click on xci file and select Edit in IP Packager as shown below:

Capture.JPG

 

2. This will open a dialog box of Edit IP Packager, select OK and now the new Vivado session which will only have your IP files. 

3. Make the changes in this new vivado session only, If the changes in the file have been made externally then you will see the information on Merge changes as highlighted below. Click on Merge changes:

Capture.JPG

 

4. After making required changes, Click on Package IP under “Review and Package” which will package your IP with new changes. Now you will get a Close project Dialog box as shown below. Click Yes.

Capture.JPG

 

5. In the main project, your IP needs upgrade after which you will see the latest changes in the IP

 

This is the supported flow for making modification in IP files and Packaging it. 

 

--Syed

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
0 Kudos
prathikm
Moderator
Moderator
4,356 Views
Registered: ‎09-15-2016

Hi @brainiac,

 

You can check the files for modifications in the 'file groups' in packager.

 

--------------------------------------------------------------
Please mark the appropriate answer as "Accept as solution" if information provided is helpful.
Give 'Kudos' to a post which you think is useful and reply oriented.
--------------------------------------------------------------

0 Kudos
brainiac
Observer
Observer
4,319 Views
Registered: ‎02-19-2012

Hello!

 

I tryed that workflow, but it does not work!

Only works  when I delete folder with sourses from project and genererate output products from every ip.

 

What I do wrong?

0 Kudos
prathikm
Moderator
Moderator
4,294 Views
Registered: ‎09-15-2016

Hi @brainiac,

 

At which phase are you stuck? Do you see the merge changes option?

 

--------------------------------------------------------------
Please mark the appropriate answer as "Accept as solution" if information provided is helpful.
Give 'Kudos' to a post which you think is useful and reply oriented.
--------------------------------------------------------------

0 Kudos
jayseaver
Newbie
Newbie
3,520 Views
Registered: ‎07-12-2018

He is absolutely right.  That flow does not work.  I am using vivado 2018.2 with the same problem.  Everything looks fine but when I go to the sources and expand the hierarchy down to the source file that was changed and double click on the instance, it pulls up the old file that was saved by vivado in a different location.  If I delete the file and repeat the repackaging of the IP, then the file is recreated with the proper changes.  But if I don't delete the file, it never updates it.  I shouldn't have to delete files in order to get vivado to update them.

 

To answer the question, where am I stuck, is that I have upgraded the IP and all looks well but no changes actually appear in the base project even though the repackaged IP is now using new source code. Yes, I saw the merge changes and I merged them. The changes are made locally in the IP packager, but they do not export to the main project after updating the IP and generating the output products.

0 Kudos
asherstnev
Visitor
Visitor
3,331 Views
Registered: ‎07-04-2018

I confirm that I have faced with exactly the same problem. When I change files in some IP or repackage this IP Vivado sees the changes, suggests to update IP and when it is done and Vivado reports about successfull update, locally cached files (in *.srcs folder) are still old. I tried it with preceding "Reset output products" option with also no luck. Only direct deletion of old files helps. I observe it in 2017.4 and 2018.1 versions. It is extremely confusing. I will be grateful if someone explains me what I am doing wrong.

0 Kudos
tomikaji
Participant
Participant
3,001 Views
Registered: ‎05-26-2015

same problem on 2018.3, any solutions?

0 Kudos
mkxilinx81
Observer
Observer
2,970 Views
Registered: ‎09-30-2018

I'm seeing this too on 2018.3.  Are you going to fix this?

0 Kudos
m3atwad
Voyager
Voyager
2,956 Views
Registered: ‎05-25-2016

Have you tried deleting the cached OOC runs for the IP?  

 

This can be found in the GUI

Settings -> IP -> Clear Cache (button)

Then reset design runs (all of them) and re-run.

0 Kudos
tomikaji
Participant
Participant
2,948 Views
Registered: ‎05-26-2015

No, but I'll try. Because of vivado automatically checks and upgrade custom ip cores now, it's little confusing you should clear cache or something like this by yourself

0 Kudos
slm_gmail
Visitor
Visitor
2,061 Views
Registered: ‎07-21-2018

What is the status of this?  I have this problem and I can't figure it out.  I've done it before and now it is really confusing.... 

 

Problem:

Block Design has IP "A"

Right-Click "A" and click to "Edit in IP Packager"

Make Changes, add a source file to the IP, synthesize to check, Re-Package & Close

No changes are present in Block Design.  The new source file isn't in the IP.

I can even run synthesis, and the missing source file doesn't cause an error.

 

 

0 Kudos
m3atwad
Voyager
Voyager
2,054 Views
Registered: ‎05-25-2016

@slm_gmail It has been quite a while since I was fiddling with this, but you can also reset your output products for IP cores.  I believe this is part of my workflow in this situation.  You can do this in vivado.  I have tried to figure out how to only do the ip core you change, but I don't think Vivado has this capability.  

Remember you have to go to Reporst -> report IP status and do that.  I believe I have also had to go to the "design runs" tab at the bottom.  The out of context runs (for me) shows all my IP blocks in the BD including my custom IP.  Here I think choose reset runs and rebuild all these.  Try this and see if it at least pulls in your changes.  Also make sure that your top level vivado project (not packager vivado project) is looking in the right place (the place where the modified source code actually is).  I hope this is at least a little bit helpful.

Also - if anyone knows how to reset an individual context run rather than restting all of them that would be great - please share that knowledge!

0 Kudos
slm_gmail
Visitor
Visitor
1,977 Views
Registered: ‎07-21-2018

Yeah.  It'd been a while since I last did this, and what you need to do is

(1) Edit in IP Packager, synth, re-package IP.

(2) Generate Output Products.  (Really important)

(3) Re-run IP Status check (I forget the wording, but the IP status window)

(4) Do #3 again and again. And again.  

I don't know why it failed.  Hell, it failed once so bad I needed to restart my PC because it froze and Task Manager couldn't even close Vivado.  Holy cow, Vivado is just messy as all get out.

0 Kudos
m3atwad
Voyager
Voyager
1,962 Views
Registered: ‎05-25-2016

My struggle with Xilinx is that you really have to understand and follow their flow/process or everything goes to hell and they don't have enough guides/tutorials explaining this.  They need to produce more video series walk throughs.

0 Kudos
katesmith1304
Newbie
Newbie
1,954 Views
Registered: ‎04-04-2020

i have the same question

0 Kudos
syedz
Moderator
Moderator
1,878 Views
Registered: ‎01-16-2013

@m3atwad @katesmith1304 

 

We do have the tutorial and user guide on Vivado IP packager. 

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1118-vivado-creating-packaging-custom-ip.pdf 

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1119-vivado-creating-packaging-ip-tutorial.pdf

 

Whenever you make changes to custom IP after it has been added to your make project, it will go out of date due to the changes made and IP has been repackaged. 


Can you share the test case which replicates the issue? I have tried this at my end and the custom IP was going out of date. 

NoteFiles added to the Vivado project should be copied into the project. Files associated with the IP should be contained in a path within the IP directory to ensure proper reuse.

image.png 

 

--Syed

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
0 Kudos
ryanjohnson8
Explorer
Explorer
1,625 Views
Registered: ‎05-30-2017

Very similar problem in 2019.2. I added a bunch of ila's to my block design, packaged as IP (there was no option to "merge changes" at any step), and then when I updated to the latest revision of this ip in another project, it built and did not have the ila's I had added...

It is very discouraging to kick off a build that will take hours, to come back in the morning, and see it was all for nothing...

0 Kudos
pkinzer
Observer
Observer
1,432 Views
Registered: ‎10-07-2019

If you're not modifying the interface, just RTL that was already part of the packaged IP, it doesn't need to be re-packaged, just re-generated within your project(s).  Sometimes, though, Vivado doesn't detect that an underlying RTL file from the IP was changed - the only recourse is to delete project.cache, etc., and go back to elaboration.  We've found things getting out of sync are less of a problem when using global synthesis, instead of OOC synthesis, but it still happens.

0 Kudos
jerive_md
Visitor
Visitor
686 Views
Registered: ‎01-21-2021

I have the same issue.  Using Vivado v2018.2 (64-bit).  Spent countless hours trying to figure out why project was not synthesizing.  Had to manually copy IP from repository to this /src  project directory.  I followed the  workflow described.  There must be a missing step somewhere....

0 Kudos