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: 
Explorer
Explorer
1,248 Views
Registered: ‎09-05-2015

generate output products seems redundant and sequential

Jump to solution

Hi,

 

I have a design_1.tcl that regenerates block diagram that I created before. My design flow is, in non project mode,

 

1. source design_1.tcl

2. generate output products for all ips

3. create wrapper, synth_design

 

In my block diagram, I have many identical ip modules(leaves) connected to one ip module(tree). But it seems like it runs "generate output products" for every single leaf, which takes really long. If generation output products takes 2 min for 1 leaf and tree has 60 leaves, it takes 2 hours. Is this expected?

 

Once it generates all output products, then it seems to do OOC "Design Runs", which doesn't take long.

 

I wonder if there's a way to let Vivado know that it's reusing leaf ip so that it doesn't need to generate output products again again.

 

Thanks!

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
1,590 Views
Registered: ‎09-15-2016

Re: generate output products seems redundant and sequential

Jump to solution

Hi @moon5756

 

Does the IP generation(?) process need to be sequentialized?

 

Generation of output product of all IPs in your BD will happen parallely based on the no. of jobs you select while running the synthesis. No. of jobs can be selected max to 40 in Linux and 8 in Windows.

 

Regards

Rohit

 

Regards
Rohit
----------------------------------------------------------------------------------------------
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.
----------------------------------------------------------------------------------------------

0 Kudos
5 Replies
Moderator
Moderator
1,212 Views
Registered: ‎09-15-2016

Re: generate output products seems redundant and sequential

Jump to solution

Hi @moon5756

 

First of all in non-project mode out of context feature is not enabled. So all the IPs are expected to be synthesized sequentially as per they are mentioned in the script.

Are you sure your complete flow is non-project script flow?

 

>>1. source design_1.tcl 2. generate output products for all ips 3. create wrapper, synth_design

Do you use the 2nd and 3rd point in GUI once bc tcl is sourced and project is created? 

 

There is a feature called IP cache which is by default enabled to 'Local' (in settings of Vivado GUI) and is used whenever IP is generated OOC. So if the IP is re-synthesize, the tool use IP cache (which includes DCP, stub and sim_netlist files) in order to reduce the run time. For batch mode (project),For batch mode, to use the early cache check, the TCL command  config_ip_cache -export  [get_ips <ip_name>] should be run after the generate_target command (for synthesis) in the batch script.

 

FYI non-project mode doesn't support IP caching.

 

I hope the shared information helps but do let me know if i am missing anything here or understood anything wrongly.

 

Regards

Rohit

 

Regards
Rohit
----------------------------------------------------------------------------------------------
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.
----------------------------------------------------------------------------------------------

0 Kudos
Explorer
Explorer
1,187 Views
Registered: ‎09-05-2015

Re: generate output products seems redundant and sequential

Jump to solution

@thakurr

 

Thanks for the reply.

 

My bad, you are right. I created tcl file from project mode and run that tcl file in non project mode.

But still, in the project mode, "generate output products" process is sequential, am I right?
In my case, as stated above, I have 60 leaves modules, which are identical.

INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_0 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_1 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_2 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_3 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_4 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_5 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_6 .
...

So can Vivado not figure out these leaves are identical?

 

Thanks!

 

0 Kudos
Moderator
Moderator
1,173 Views
Registered: ‎09-15-2016

Re: generate output products seems redundant and sequential

Jump to solution

Hi @moon5756

 

But still, in the project mode, "generate output products" process is sequential, am I right?

 

You can run the ooc runs in paralled in project mode by selecting no. of jobs in the launch runs window (which appears when you run synthesis.

parallel_runs.PNG

 

For Windows no of jobs max limit is 8. You can add the below command in your project mode script:

launch_runs synth_1 -jobs <no>

 

In my case, as stated above, I have 60 leaves modules, which are identical. So can Vivado not figure out these leaves are identical?

Although the leaves are identical but it has been added as a separate block in the IPI, hence the tool run each block of IPI in ooc mode. So this is expected.

Hope this helps.

 

Regards

Rohit

 

Regards
Rohit
----------------------------------------------------------------------------------------------
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.
----------------------------------------------------------------------------------------------

0 Kudos
Explorer
Explorer
1,142 Views
Registered: ‎09-05-2015

Re: generate output products seems redundant and sequential

Jump to solution

@thakurr

 

Thanks for the reply!

 

But I am aware of OOC runs.

 

If I set the number of jobs as "4", let's say, then what it is doing is that it runs IP generation "sequentially" like below

 

INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_0 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_1 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_2 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_3 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_4 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_5 .
INFO: [BD 41-1029] Generation completed for the IP Integrator block leaf_6 .
...


and then, it runs synthesis in parallel as screen shot below. But the process below is not long, so parallelizing doesn't result into much benefits. I think it's not real synthesis process, but rather it's more like "reading" synthesized results.

 

12.PNG

 

Does the IP generation(?) process need to be sequentialized?

 

Thanks!

0 Kudos
Highlighted
Moderator
Moderator
1,591 Views
Registered: ‎09-15-2016

Re: generate output products seems redundant and sequential

Jump to solution

Hi @moon5756

 

Does the IP generation(?) process need to be sequentialized?

 

Generation of output product of all IPs in your BD will happen parallely based on the no. of jobs you select while running the synthesis. No. of jobs can be selected max to 40 in Linux and 8 in Windows.

 

Regards

Rohit

 

Regards
Rohit
----------------------------------------------------------------------------------------------
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.
----------------------------------------------------------------------------------------------

0 Kudos