运行时序仿真 - 2023.2 简体中文

Vivado Design Suite 用户指南: 逻辑仿真 (UG900)

Document ID
UG900
Release Date
2023-10-18
Version
2023.2 简体中文
提示: 综合后时序仿真使用器件模型估算的时序延迟,不包含互连延迟。实现后时序仿真使用的则是实际的时序延迟。

运行综合后和实现后时序仿真时,仿真器工具包括:

  • 包含 SIMPRIMS 库组件的门级网表
  • SECUREIP
  • 标准延迟格式 (SDF) 文件

开始时,已定义设计的总体功能。实现设计时,准确的时序信息即可供使用。

为创建网表和 SDF,Vivado Design Suite 会执行如下操作:

  • 调用网表编写程序 write_verilog 搭配 -mode timesim 开关和 write_sdf(SDF 注解器)
  • 将生成的网表发送到目标仿真器

您可使用“Simulation Settings”(仿真设置)来控制这些选项,如 使用仿真设置 中所述。

重要: 仅限 Verilog 才支持综合后和实现后时序仿真。不支持 VHDL 时序仿真。如果您是 VHDL 用户,您可运行综合后和实现后功能仿真(在此情况下无需 SDF 注解,仿真网表使用 UNISIM 库)。您可使用 write_vhdl Tcl 命令来创建网表。如需了解使用信息,请参阅 Vivado Design Suite Tcl 命令参考指南(UG835)
重要: Vivado 仿真器模型使用互连延迟,因此,需要如下额外开关才能正确执行时序仿真:-transport_int_delays -pulse_r 0 -pulse_int_r 0

综合后时序仿真

成功完成综合运行后,前图所示Run Simulation > Post-Synthesis Timing Simulation(运行仿真 > 综合后时序仿真)选项即可变为可用。

完成综合后,通用逻辑设计已综合到器件专用原语中,估算的布线和组件延迟即可供使用。您可执行综合后时序仿真来查看潜在的时序关键路径,而后再执行实现。选择综合后时序仿真后,就会生成时序网表和 SDF 文件中估算的延迟。网表文件包含 $sdf_annotate 命令,因此仿真工具包含生成的 SDF 文件。

实现后时序仿真

完成实现运行后,前图所示Run Simulation > Post-Implementation Timing Simulation(运行仿真 > 实现后时序仿真)选项即可变为可用。

实现后,设计即已实现并已在硬件中完成布线。在此阶段,时序仿真有助于使用准确的时序延迟来判定设计功能是否按指定速度来工作。此仿真可用于检测未约束的路径或异步路径时序错误,例如,复位上的此类错误。选择实现后时序仿真后,就会生成时序网表和 SDF 文件。网表文件包含 $sdf_annotate 命令,因此即可选取生成的 SDF 文件。

指定仿真设置时,已指定是否创建 SDF 文件,以及工艺角是设置为快速还是慢速。

提示: 要查找 SDF 文件的可选设置,请在 Vivado IDE Flow Navigator 中,右键单击Simulation并选择Simulation Settings。在“Settings”(设置)对话框中,选中Simulation类别,然后单击Netlist(网表)选项卡。

基于指定的工艺角,SDF 文件会包含不同的 minmax 数值。

运行两次不同的仿真以检查建立时间违例和保持时间违例。

要运行建立时间检查,请创建 SDF 文件并将 -process_corner 设为 slow,并使用来自该 SDF 文件的 max 列。

要运行保持时间检查,请创建 SDF 文件并将 -process_corner 设为 fast,并使用来自该 SDF 文件的 min 列。指定要使用的 SDF 延迟字段的方法取决于使用的仿真工具。请参阅特定仿真工具文档以获取有关如何设置该选项的信息。

要获取完整信息,请运行全部 4 项时序仿真,并指定如下设置:

  • 慢速角:SDFMIN 和 SDFMAX
  • 快速角:SDFMIN 和 SDFMAX