64061 - 使用 Vivado 仿真库 - UNIFAST 库

248 阅读3分钟

标题

64061 - 使用 Vivado 仿真库 - UNIFAST 库

描述

对设计中的组件进行例化时,仿真器必须引用描述组件功能的库才能确保正确完成仿真。

AMD 库根据模型功能分为多个类别。

您必须根据仿真点指定不同仿真库。

本文详细描述了适用于 7 系列的 UNIFAST 库。

解决方案

UNIFAST 库是可选库,您可在 RTL 行为仿真期间使用此库来缩短 7 系列设计的仿真运行时间。

在仿真模式下,此库支持一小部分 7 系列原语功能,从而使仿真运行时间得以改善。

请参阅每个版本的《Vivado Design Suite 用户指南:逻辑仿真》(UG900) 以获取 UNIFAST 库模型列表及其与完整模型的功能特性差异。

注释:UNIFAST 库不得用于验收仿真,因为其库组件不含完整模型中可用的所有检查/功能特性。

建议使用 UNIFAST 库进行设计的初始验证,然后使用 UNISIM 库运行完整验证。

VHDL UNIFAST 库

VHDL UNIFAST 库位于 <Vivado_Install_Dir>/data/vhdl/src/unifast。

VHDL UNIFAST 库的基本结构与 Verilog 相同,可搭配多种体系结构或库一起使用。

您可在测试激励文件中包含该库。

以下示例使用向下钻取层级搭配 for 调用:

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 库

Verilog UNIFAST 库位于 <<Vivado_Install_Dir>/data/verilog/src/unifast。

您可通过两种方法来使用 Verilog UNIFAST 库:

方法 1:使用 UNIFAST 库对所有适用的模型进行仿真(推荐)

要在 Vivado 工程环境内为 Vivado 仿真器、ModelSim、IES 或 VCS 启用 UNIFAST 支持(快速仿真模型),请勾选“Simulation Settings”(仿真设置)对话框中的 <simulator>.elaborate.unifast 复选框。

从 Vivado 2015.1 起,弃用 <simulator>.elaborate.unifast 选项。要在 Vivado 工程环境内为 Vivado 仿真器、ModelSim、IES 或 VCS 启用 UNIFAST 支持(快速仿真模型),请在 Tcl 控制台内使用以下命令:

set_property unifast true [current_fileset simset]

方法 2:使用 UNIFAST 库对特定模型进行仿真(高级用户)

要指定个别库组件,请改用 Verilog 配置语句。

在 config.v 文件中指定以下内容:

  • 顶层模块或配置的名称(例如:config cfg_xilinx;)

  • 设计配置应用到的名称(例如:design test bench;)

  • 未显式调出的单元或实例的库搜索顺序:(例如:default liblist unisims_ver unifast_ver;)

  • 特定 CELL 或 INSTANCE 到特定库的映射。(例如:instance testbench.inst.O1 use unifast_ver.MMCME2;)

注释:对于 ModelSim (vsim),仅将 -genblk 添加到层级名称中。

(例如:instance testbench.genblk1.inst.genblk1.O1 use unifast_ver.MMCME2;)

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