UPGRADE YOUR BROWSER

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!

AR# 64061

Using Vivado Simulation Libraries - UNIFAST Library

Description

When you instantiate a component in your design, the simulator must reference a library that describes the functionality of the component to ensure proper simulation.

The Xilinx libraries are divided into categories based on the function of the model.

You must specify different simulation libraries according to the simulation points.

This article describe the UNIFAST library for 7 Series in more detail.

Solution

The UNIFAST library is an optional library that you can use during RTL behavioral simulation to speed up simulation run time of a 7 Series design.

The simulation run time improvement is achieved by supporting a subset of the 7 Series primitive features in the simulation mode.

Please refer to each release of Vivado Design Suite User Guide: Logic Simulation (UG900) for a list of UNIFAST library models and their feature difference from the full models.

Note: The UNIFAST library cannot be used for sign-off simulations because the library components do not have all the checks/features that are available in a full model.

It is recommended to use the UNIFAST library for initial verification of the design and then run a complete verification using the UNISIM library.

VHDL UNIFAST Library

The VHDL UNIFAST library is located at <Vivado_Install_Dir>/data/vhdl/src/unifast.

The VHDL UNIFAST library has the same basic structure as Verilog and can be used with architectures or libraries.

You can include the library in the test bench file.

The following example uses a drill-down hierarchy with a for call:

library unisim;
library unifast;
configuration cfg_xilinx of testbench
is for testbench_architecture_name
   for instance_label:component_name
      use entity work.component_name(arch);
       for arch
         for all:MMCME2
          use entity unifast.MMCME2;
         end for;
       for inst:DSP48E1;
         use entity unifast.DSP48E1;
      end for;
   end for;
  end for;
end for;
end cfg_xilinx;

Verilog UNIFAST Library

The Verilog UNIFAST library is located at <<Vivado_Install_Dir>/data/verilog/src/unifast.

There are two methods to use the Verilog UNIFAST library:

Method 1: Simulate all applicable models with the UNIFAST library (Recommended)

To enable UNIFAST support (fast simulation models) in a Vivado project environment for the Vivado simulator, ModelSim, IES, or VCS, check the <simulator>.elaborate.unifast checkbox in the Simulation Settings dialog box.

Starting in Vivado 2015.1, the <simulator>.elaborate.unifast option is deprecated. To enable UNIFAST support (fast simulation models) in a Vivado project environment for the Vivado simulator, ModelSim, IES, or VCS, use the following command in the Tcl console:

set_property unifast true [current_fileset simset]

Method 2: Simulate specific models with UNIFAST library (Advanced users)

To specify individual library components, Verilog configuration statements are used.

Specify the following in the config.v file:

  • The name of the top-level module or configuration: (for example: config cfg_xilinx;)

  • The name to which the design configuration applies: (for example: design test bench;)

  • The library search order for cells or instances that are not explicitly called out: (for example: default liblist unisims_ver unifast_ver;)

  • The map for a particular CELL or INSTANCE to a particular library. (for example: instance testbench.inst.O1 use unifast_ver.MMCME2;)

Note: For ModelSim (vsim) only -genblk is added to the hierarchy name.

(For example: instance testbench.genblk1.inst.genblk1.O1 use unifast_ver.MMCME2;)

Example config.v

config cfg_xilinx;
design testbench;
default liblist unisims_ver unifast_ver;
//Use fast MMCM for all MMCM blocks in design
cell MMCME2 use unifast_ver.MMCME2;
//use fast DSP48E1for only this specific instance in the design
instance testbench.inst.O1 use unifast_ver.DSP48E1;
//If using ModelSim or Questa, add in the genblk to the name
(instance testbench.genblk1.inst.genblk1.O1 use unifast_ver.DSP48E1)
endconfig

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
64053 Xilinx Simulation Solution Center - Design Assistant - Simulation Libraries - UNIFAST N/A N/A
AR# 64061
Date Created 03/26/2015
Last Updated 04/26/2016
Status Active
Type General Article
Devices
  • Artix-7
  • Artix-7Q
  • Kintex-7
  • More
  • Kintex-7Q
  • Virtex-7
  • Virtex-7Q
  • Zynq-7000
  • Zynq-7000Q
  • Less
Tools
  • Vivado Design Suite