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!

Synthesis going Out-of-Date for Unrelated Changes

by Xilinx Employee on ‎06-20-2017 10:53 AM (476 Views)

In the project flow, Vivado keeps track of dependencies. As you invoke a particular step, the tool ensures that the previous step is complete.


For example, if you want to run implementation, Vivado will check that synthesis has been performed and completed.

Dependency management also checks that the previous step has completed with the current set of inputs. That way, the tool ensures that the previous stage’s output is not stale.


For example, say you had performed synthesis, and subsequently you modified one of the RTL files. Even though synthesis is complete, it is stale because an input was modified after synthesis.


In a Vivado context, this situation is called “Out of Date.”


Sometimes, you might see synthesis (or another step) go out of date even when you make changes that should not impact synthesis.


For example, after synthesis you add a “pblock” constraint, which does not impact synthesis. However, synthesis shows up as out of date.


This happens because of the level of granularity at which Vivado tracks dependency.


Synthesis depends on the input HDL, the XDC, and other factors. When the tool sees a change to the XDC (due to the addition of pblocks), it sees an input ingredient change. As a result, synthesis is declared to be out of date.


It does not track individual commands within the XDC, to check whether or not they impact synthesis.


The above has been designed with the philosophy of keeping the dependency tree relatively light-weight, and also to err on the side of being pessimistic.


If you encounter such a situation, go to the “Design Runs” window, right click on the synthesized view and select “Force Up to Date”. Now, you are ready to move to the next stage of the flow. Understand that you have now taken on the responsibility for ensuring that synthesis is actually valid and current.


So, when you force Synthesis to become Up-to-Date, you need to make sure that:


  • You understand the exact change made that caused the synthesis to be Out-of-Date in the first place
  • The specific change should not really impact synthesis

About the Author
  • Avinash Thakare joined Xilinx in 2009. He graduated in Electronics Engineering in year 2000; and since then have been working in FPGA and EDA domain. Most of his work experience in FPGA based design and development
  • Sanjay is Senior Director, Software Validation, at Xilinx, where he and his team validate the company’s Vivado and SDx tool chains. For more than 20 years, Sanjay has worked in EDA and VLSI in India as well as in Silicon Valley in the United States. He has worked extensively on library characterization and modeling, HDLs (focusing more on Verilog than VHDL), simulation, synthesis, static timing analysis, power, clock domain crossing and synchronization, and rule checker-based verification. Sanjay has been learning Vivado in recent years. He has published three books as co-author and editor: Principles of VLSI RTL Design – A Practical Guide, Constraining Designs for Synthesis and Timing Analysis – Using Synopsys Design Constraints, and Designing with Xilinx FPGAs – Using Vivado. In addition, Sanjay has written numerous articles and papers for trade journals and conferences. He holds three patents related to clock gating and isolation cells. A resident of Hyderabad in India, Sanjay is a graduate of the India Institute of Technology Kharagpur in electronics and electrical communications engineering.