05.08.2014 Views

ug900-vivado-logic-simulation

ug900-vivado-logic-simulation

ug900-vivado-logic-simulation

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!