cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
6,344 Views
Registered: ‎06-28-2016

Vivado 2016.2: Generating output products OOC per IP and iSIM

Jump to solution

First off, I'm sorry if this should be posted in the "Simulation" thread but it kind of has to do with both Synthesis and Simulation.

So, I'm working on a design with multiple custom modules that I have created in VHDL (and then packaged each project and imported it in the top project).

My problem is this: every time I make a change in a vhd file, apart from upgrading the changed IP, I have to reset all output products, and generate them again OOC per IP. And since my project consists of many modules (around 15) this takes too much time. So I end up changing a single line in a file in a single module, and to be able to see the changes in ISIM, I have to wait around 10 minutes.

Now, I've tried some other things to work around that. I've tried not resetting the output products, and just regenerate the ones (OOC) for the module I changed. ISIM doesn't reflect the changes made.

I've tried resetting and generating products globally. Again, ISIM doesn't seem to have seen the changes.

And the thing is, up until Vivado 2015.4, this wasn't an issue. I used to just upgrade the changed IPs (after being prompted to Report IP status) and just run simulation where changes had already taken effect.

Is there something I'm not doing right? Can anybody suggest a way to be able to see valid simulations (with changed IPs) faster?


P.S.: For now, synthesis is not something I need to worry about, I just want to run some simulations.

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
11,228 Views
Registered: ‎07-21-2014

Re: Vivado 2016.2: Generating output products OOC per IP and iSIM

Jump to solution

@gtamp

 

>>So, I'm working on a design with multiple custom modules that I have created in VHDL (and then packaged each project and imported it in the top project).

How many custom IPs are being used in main project?

 

>>My problem is this: every time I make a change in a vhd file, apart from upgrading the changed IP, I have to reset all output products, and generate them again OOC per IP

If you are editing an IP file then you need to re-package it and then generate output products in main project.

 

>>And since my project consists of many modules (around 15) this takes too much time.

Enable the cache to make sure tool is not rerunning everything from scratch. Tool will hit the cache entry if the IP is not modified and has updated output products already available.

 

Try below steps:

Enable cache -> Generate output products for all IPs -> Edit custom IPs -> Refresh IP Repository -> Update all the IPs -> Generate output products -> Launch Simulation.

 

Thanks,
Anusheel
-----------------------------------------------------------------------------------------------
Search for documents/answer records related to your device and tool before posting query on forums.
Search related forums and make sure your query is not repeated.

Please mark the post as an answer "Accept as solution" in case it helps to resolve your query.
Helpful answer -> Give Kudos
-----------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
6 Replies
Highlighted
Xilinx Employee
Xilinx Employee
6,300 Views
Registered: ‎04-16-2012

Re: Vivado 2016.2: Generating output products OOC per IP and iSIM

Jump to solution

Hi @gtamp

 

1. Are you running behavioral simulation or post-synthesis simulation?

2. When you are generating the output products of a custom IP using option "global", check whether the new/modified VHDL files are being generated.

 

Thanks,

Vinay

--------------------------------------------------------------------------------------------
Have you tried typing your question in Google? If not you should before posting. Also, MARK this is as an answer in case it helped resolve your query/issue.Give kudos to the post that helped you to find the solution.
0 Kudos
Highlighted
Visitor
Visitor
6,265 Views
Registered: ‎06-28-2016

Re: Vivado 2016.2: Generating output products OOC per IP and iSIM

Jump to solution

Hi @vuppala, and thanks for the reply.

Regarding your questions,

1. Behavioral simulation
2. On the tcl console I get these info messages: " Generation completed for the IP Integrator block ______ .".
However, I'm pretty sure that is not what you were asking. Would you mind indicating the path where I should look for the modified files?
The only .vhd file I can find with logic inside, is located at "topproject/topproject_srcs/sources_1/bd/topproject_bd/ipshared/xilinx.com/submodule" and from what I see, these files change everytime I change the original. Yet, my ISIM waveforms, look like are generated based on the old unchanged files.

0 Kudos
Highlighted
Moderator
Moderator
11,229 Views
Registered: ‎07-21-2014

Re: Vivado 2016.2: Generating output products OOC per IP and iSIM

Jump to solution

@gtamp

 

>>So, I'm working on a design with multiple custom modules that I have created in VHDL (and then packaged each project and imported it in the top project).

How many custom IPs are being used in main project?

 

>>My problem is this: every time I make a change in a vhd file, apart from upgrading the changed IP, I have to reset all output products, and generate them again OOC per IP

If you are editing an IP file then you need to re-package it and then generate output products in main project.

 

>>And since my project consists of many modules (around 15) this takes too much time.

Enable the cache to make sure tool is not rerunning everything from scratch. Tool will hit the cache entry if the IP is not modified and has updated output products already available.

 

Try below steps:

Enable cache -> Generate output products for all IPs -> Edit custom IPs -> Refresh IP Repository -> Update all the IPs -> Generate output products -> Launch Simulation.

 

Thanks,
Anusheel
-----------------------------------------------------------------------------------------------
Search for documents/answer records related to your device and tool before posting query on forums.
Search related forums and make sure your query is not repeated.

Please mark the post as an answer "Accept as solution" in case it helps to resolve your query.
Helpful answer -> Give Kudos
-----------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
Highlighted
Visitor
Visitor
6,220 Views
Registered: ‎06-28-2016

Re: Vivado 2016.2: Generating output products OOC per IP and iSIM

Jump to solution

Hi @anusheel. Thanks for replying.

 

>>How many custom IPs are being used in main project?

There are 7 custom IPs in my project, but some have more than one instance present, so when counting all instances that would be 12 custom IPs

 

>>If you are editing an IP file then you need to re-package it and then generate output products in main project.

It was my understanding that re-packaging was needed only in case there was a change in the input/output ports. If these stayed the same and the only thing that changed was the code inside the processes (at least with Vivado 2015.4) I never re-packaged the IP and everything worked fine (changes were taking place in the top project).

 

>>Enable the cache to make sure tool is not rerunning everything from scratch. Tool will hit the cache entry if the IP is not modified and has updated output products already available.

I'm not quite sure I understood correctly but here's what I did: In "edit packaging settings" of the "Package IP" option in my sub-module project, I found an IP Cache menu, where I changed the cache scope to local. 

 

I'm going to make some changes and check if this fixes my problem. In any case I will update the thread shortly.

0 Kudos
Highlighted
Visitor
Visitor
6,217 Views
Registered: ‎06-28-2016

Re: Vivado 2016.2: Generating output products OOC per IP and iSIM

Jump to solution

Update:

 

Ok, so let me start by saying that when following the suggested steps, one thing that is different by default is that after upgrading the changed IPs, the Output Products Generation happens only for the instances of the modified IP and not for the rest.

This seems reasonable to me, however after running simulation I can see that the changes have not taken effect.

 

So what I actually have to do is: Enable cache -> Generate output products for all IPs -> Edit custom IPs -> Refresh IP Repository -> Update all the IPs -> Reset output products -> Generate output products (for all IPs) -> Launch Simulation to see the changes in ISIM.

 

Unfortunately, I don't think this qualifies as an improvement considering that I still have to generate output products for every single IP/instance just to see a simple change from a single module.

 

Is there something obvious I'm missing? Did I misunderstood your suggestions?

 

0 Kudos
Highlighted
Visitor
Visitor
6,206 Views
Registered: ‎06-28-2016

Re: Vivado 2016.2: Generating output products OOC per IP and iSIM

Jump to solution

It turns out I did misunderstood.

Instead of enabling the IP caching in my top project, I did it in each separate sub-module project.

As soon as I did it on my top project, I can now reset and regenerate output products OOC for all IPs within few seconds.

It still bothers me that I have to reset and regenerate output products for IPs that weren't changed (if I let it generate only for modified IPs, then changes are not reflected in ISIM), but at least now the amount of time required to do that is insignificant.

 

Thanks for your replies!

0 Kudos