ug900-vivado-logic-simulation
ug900-vivado-logic-simulation
ug900-vivado-logic-simulation
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 2: Understanding Simulation Components in Vivado<br />
These primitives are contained in the following libraries:<br />
• UNISIMS_VER <strong>simulation</strong> library for Verilog <strong>simulation</strong><br />
• UNISIMS <strong>simulation</strong> library for VHDL <strong>simulation</strong><br />
In many cases, you can use the same test bench that you used for behavioral <strong>simulation</strong> to<br />
perform a more accurate <strong>simulation</strong>.<br />
The following Tcl commands generate Verilog and VHDL functional <strong>simulation</strong> netlist,<br />
respectively:<br />
write_verilog -mode funcsim <br />
write_vhdl -mode funcsim <br />
Generating a Timing Netlist<br />
You can use a Verilog timing <strong>simulation</strong> to verify circuit operation after the Vivado tools<br />
have calculated the worst-case placed and routed delays.<br />
In many cases, you can use the same test bench that you used for functional <strong>simulation</strong> to<br />
perform a more accurate <strong>simulation</strong>.<br />
Compare the results from the two <strong>simulation</strong>s to verify that your design is performing as<br />
initially specified.<br />
There are two steps to generating a timing <strong>simulation</strong> netlist:<br />
1. Generate a <strong>simulation</strong> netlist file for the design.<br />
2. Generate an SDF delay file with all the timing delays annotated.<br />
IMPORTANT: Vivado IDE supports Verilog timing <strong>simulation</strong> only.<br />
The following is the syntax for generating a timing <strong>simulation</strong> netlist:<br />
• Tcl Command:<br />
write_verilog -mode timesim -sdf_anno true <br />
Annotating the SDF File<br />
Based on the specified process corner, the SDF file contains different min and max numbers.<br />
RECOMMENDED: Run two separate <strong>simulation</strong>s to check for setup and hold violations.<br />
To run a setup check, create an SDF file with -process corner slow, and use the max<br />
column from the SDF file.<br />
Logic Simulation www.xilinx.com<br />
Send Feedback<br />
30<br />
UG900 (v2014.1) April 23, 2014