|
|
|
VHDL/Verilog Libraries and Models
The five simulation points listed previously require the UNISIM, CORE Generator™ (Xilinx®CoreLib), SmartModel and SIMPRIM libraries.
The first point, RTL simulation, is a behavioral description of your design at the register transfer level. RTL simulation is not architecture-specific unless your design contains instantiated UNISIM, or CORE Generator™ components. To support these instantiations, Xilinx® provides a functional UNISIM library, a CORE Generator™ Behavioral Xilinx®CoreLib library and a SmartModelLibrary™. You can also instantiate CORE Generator™ components if you do not want to rely on the module generation capabilities of your synthesis tool, or if your design requires larger memory structures.
The second simulation point is post-synthesis (pre-NGDBuild) gate-level simulation. If the UNISIM library and CORE Generator™ components are used, then the UNISIM, the Xilinx®CoreLib and SmartModel Libraries must all be used. The synthesis tool must write out the HDL netlist using UNISIM primitives. Otherwise, the synthesis vendor provides its own post-synthesis simulation library, which is not supported by Xilinx.
The third, fourth, and fifth points (post-NGDBuild, post-map, and post-route) use the SIMPRIM and/or the SmartModel Libraries. The following table indicates what library is required for each of the five simulation points.
Locating Library Source Files
The following table provides information on the location of the simulation library source files, as well as the order for a typical compilation.
Using the UNISIM Library
The UNISIM Library is used for functional simulation only. This library includes all of the Xilinx® Unified Library primitives that are inferred by most synthesis tools. In addition, the UNISIM Library includes primitives that are commonly instantiated, such as DCMs, BUFGs and GTs. You should generally infer most design functionality using behavioral RTL code unless the desired component is not inferrable by your synthesis tool, or you want to take manual control of mapping and/or placement of a function.
UNISIM Library Structure
The UNISIM library structure is different for VHDL and Verilog. The VHDL UNISIM library is split into four files containing the component declarations (unisim_VCOMP.vhd), package files (unisim_VPKG.vhd), entity and architecture declarations (unisim_VITAL.vhd), and SmartModel declarations (unisim_SMODEL.vhd). All primitives for all Xilinx® device families are specified in these files. The VHDL UNISIM Library source files are located at $XILINX/vhdl/src/unisims - Unix/Linux
.%XILINX%\vhdl\src\unisims - WindowsFor Verilog, each library component is specified in a separate file. The reason for this is to allow automatic library expansion using the `uselib compiler directive or the –y library specification switch. All Verilog module names and file names are all upper case (i.e. module BUFG would be BUFG.v, module IBUF would be IBUF.v). Since Verilog is a case-sensitive language, ensure that all UNISIM primitive instantiations adhere to this upper-case naming convention.
The library sources are split into two directories in which the FPGA device families (Spartan-II™, Spartan-IIE™, Spartan-3™, Virtex™, Virtex™- E, Virtex-II™, Virtex-II Pro™, Virtex-II Pro X™, Virtex-4™ and Xilinx® IBM FPGA Core™) are located at $XILINX/verilog/src/unisims, and the CPLD device families (XC9500XL™, XC9500XV™, CoolRunner-XPLA3™, CoolRunner-II™) are located at
$XILINX/verilog/src/uni9000 - Unix/Linux.%XILINX%\verilog\src\uni9000- WindowsUsing the CORE Generator™ Xilinx®CoreLib Library
The Xilinx® CORE Generator™ is a graphical intellectual property design tool for creating high-level modules like FIR Filters, FIFOs and CAMs, as well as other advanced IP. You can customize and pre-optimize modules to take advantage of the inherent architectural features of Xilinx® FPGA devices, such as block multipliers, SRLs, fast carry logic, and on-chip, single-port or dual-port RAM. You can also select the appropriate HDL model type as output to integrate into your HDL design.
The CORE Generator™ HDL library models are used for RTL simulation. The models do not use library components for global signals.
CORE Generator™ Library Structure
The VHDL CORE Generator™ library source files are found in
$XILINX/vhdl/src/XilinxCoreLib - Unix/Linux%XILINX%\vhdl\src\XilinxCoreLib- Windows.The Verilog CORE Generator™ library source files are found in
$XILINX/verilog/src/XilinxCoreLib -Unix/Linux.%XILINX%\verilog\src\XilinxCoreLib-Windows.Using the SIMPRIM Library
The SIMPRIM library is used for post Ngdbuild (gate level functional), post-Map (partial timing), and post-place-and-route (full timing) simulations. This library is architecture independent.
SIMPRIM Library Structure
The VHDL SIMPRIM Library source files are found in
$XILINX/vhdl/src/simprims-Unix/Linux%XILINX%\vhdl\src\simprims-Windows.The Verilog SIMPRIM Library source files are found in
$XILINX/verilog/src/simprims -Unix/Linux.%XILINX%\verilog\src\simprims-WindowsUsing the SmartModel Library™.The SmartModel Libraries™ are used to model very complex functions of modern FPGA devices such as the PowerPC® (PPC) and the RocketIO™. SmartModels are encrypted source files that communicate with simulators via the SWIFT interface. The SmartModel Libraries™ are located at $XILINX/smartmodel or %XILINX%\smartmodel, and require additional installation steps to properly install on your system. Additional setup within the simulator may also be required. See "Using SmartModels" chapter for more information on proper installation and setup of the SmartModel Libraries™.
|
|
|
|
www.xilinx.com |