Quartus® Prime专业版用户指南: 设计编译

ID 683236
日期 4/01/2024
Public
文档目录

1.6. Analysis & Elaboration流程

Analysis & Elaboration编译流程提供编译路程早期阶段中您设计的完整和未修改的视图。该编译流程作为平台运行能更好地分析和改进设计。借助该功能,单片的Analysis & Synthesis阶段被拆分成Analysis & Elaboration和Synthesis阶段。

此流程允许您访问Analysis & Elaboration阶段的预览模式,如下图所示:

图 7. Analysis & Elaboration检查点

Analysis & Elaboration阶段由一系列检查点组成,您可以在Analysis & Elaboration Checkpoints中显示的每个检查点预览您的设计,其中:

  1. Elaborated:提供直接从RTL捕获的未修改的设计预览。
  2. Instrumented:提供带有系统级调试的仪器化(instrumented)预览(插入到您设计的调试结构和Signal Tap逻辑分析仪)。默认情况下,此检查点被禁用(Hint:请参阅以下注释将其开启)。
  3. Constrained:提供设计预览,其中显示目标节点上的SDC-on-RTL约束。默认情况下此检查点被禁用(Hint:请参阅如下注释将其开启)。
  4. Swept:提供设计预览,包含从您设计中删除的不必要的逻辑。
注:

您可以使用Project > Settings下的RTL Analysis Debug Mode选项控制所生成检查点的数量。该模式默认被关闭,所以意味着只有Elaborated和Swept检查点(checkpoint)可用,Instrumented和Constrained检查点不可用。启用此模式后,所有四个检查点都可用。

当该模式关闭时,您可以在Synthesis Compilation Reports > Synthesis > Analysis & Elaboration下获取有关Hierarchies Optimized AwayTop Causes for Logic Optimized Away During Sweep的信息。

要了解关于Synthesis阶段的信息,请参阅设计综合

警告:
与旧版软件不兼容

DNI-based编译流程兼容的设计与版本早于23.3的 Quartus® Prime软件不兼容,因为新版软件采用新的DNI数据库。请确保了解以下情况:

  • 如果使用软件版本23.3编译您的设计,并在 Quartus® Prime软件GUI中启动工程,就会显示一条消息,表明您使用不同的编译引擎编译了您的设计。如果继续启动工程,则必须重新编译设计。该情况也同样适用于使用 Quartus® Prime 23.3之前的软件版本。
  • 对于任何基于分区的设计(例如,Partial Reconfiguration),不支持在用户定义的分区中混合使用23.3版本和23.2或更旧版本的编译流程。您必须使用相同的编译流程编译所有分区。
  • 对于version-compatible design export or import feature,以旧版 Quartus® Prime进行编译或从旧版导出的设计需要 Quartus® Prime 23.2或更早版本。同样,以DNI流程编译的版本兼容数据库需要使用 Quartus® Prime 23.3版,并且目前尚不支持该功能。

执行Tcl命令

Quartus® Prime软件GUI(quartus)和Synthesis工具(quartus_syn)支持Tcl命令。

从下列选择合适的方法执行您的Tcl命令:

Quartus® Prime Software GUI (quartus)

在GUI中执行以下步骤:

  1. Compilation Dashboard上,运行Analysis & Synthesis > Analysis & Elaboration任务生成网表。

  2. 点击放大镜图标来调用RTL Analyzer
  3. Tcl Console 中执行您的Tcl命令。

Synthesis工具(quartus_syn)
  1. 使用以下命令启用您工程的流程:
    quartus_syn --analysis_and_elaboration <project_name>
  2. 加载您的设计。
    > quartus_syn -s
    <... Quartus Info Message...>
    tcl> project_open top
    tcl> dni::load_design -checkpoint elaborated
    dms_path::sandboxes::sandbox_1239_0::design
  3. 执行您的Tcl命令:
    tcl> foreach_in_collection p [dni::get_pins -of_objects [dni::get_cells inst_1|out_1]] {puts [dni::get_property -name name -object $p]}
    a[0]
    a[1]
    o
    tcl> foreach_in_collection p [dni::get_pins -of_objects [dni::get_cells inst_1|out_1]] {puts [dni::get_property -name direction -object $p]}
    input
    input
    output
    tcl>