The Vivado Design Suite supports writing out a Verilog or VHDL structural netlist for functional simulation. The purpose of this netlist is to run simulation (without timing) to check that the behavior of the structural netlist matches the expected behavioral model (RTL) simulation.
The functional simulation netlist is a hierarchical, folded netlist that is expanded to the primitive module or entity level; the lowest level of hierarchy consists of primitives and macro primitives.
These primitives are contained in the following libraries:
- UNISIMS_VER simulation library for Verilog simulation
- UNISIMS simulation library for VHDL simulation
In many cases, you can use the same test bench that you used for behavioral simulation to perform a more accurate simulation.
The following Tcl commands generate Verilog and VHDL functional simulation netlist, respectively:
write_verilog -mode funcsim <Verilog_Netlist_Name.v>
write_vhdl -mode funcsim <VHDL_Netlist_Name.vhd>