07-09-2019 08:10 AM
Since vivado 2017.x (2019.1 tested), if I have some ooc synthesis runs running, and click on generate bitstream, Vivado will reset the already running ooc runs even there is no change to made. This happens quite often to me as after I update the block diagram, it always asks to regenerate updated IPs, so some iP runs will start if I forget to hit cancel. In that case, I will have wait patiently till all the ooc runs finishes before I click generate bitstream. I have not tested all the versions, but 2015.x definitely does not have this problem. It will schedule the synthesis and implementation runs after the running ooc runs finish.
07-12-2019 04:39 AM
Okay, so even when there is no change in the IP: the tool is resynthesizing them?
This is not expected, but I am not sure what are the changes done in the block design and if that is impacting IPs.
Also, one quick way to save runtime here would be to enable the cache under the project settings. Even if the tool is marking the IPs as "out of date", with the cache enabled: the synthesis run will be launched, but the old .dcp will be sourced which means there will be no real synthesis of the IP.
07-12-2019 05:21 AM
So the already finished OOC runs will not be restarted, but the ones that are running and have not finished yet by the time I click generate bitstream will be rerun. So I don't think this is related to cache. I used to be able to queue the implementation runs, but now I have to wait until all the ooc runs finish before running implementation.
07-15-2019 12:00 AM
Does rerunning the IP ooc runs overwrite your modification in the BD?
If not, seems to me it is the same thing rerunning the IP when clicking "generate bitstream" or clicking "cancel" then "generate bitstream".
07-15-2019 06:56 AM
The BD is up to date. You are right that Vivado is handling it the same way as "cancel" then "generate bitstream". However since the OOC runs are already synthesizing the latest IP cores, I am expecting it to continue until the runs finish and simply queue the implementation run, which is what it does in earlier version.