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

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

1.15.1. Compiler优化模式

要应用编译器优化设置,请点击Assignments > Settings > Compiler Settings
或者,您可以使用 OPTIMIZATION_MODE QSF应用优化设置。例如:
set_global_assignment -name OPTIMIZATION_MODE "Aggressive Area”
OPTIMIZATION_MODE的默认值为"Balanced"。对于所有其他值,请参阅Optimization Modes表格。

您可以启用以下优化模式的其中之一来集中Compiler的优化工作。您选择的设置编译模式会影响综合和布局布线结果。

要选择优化模式,请从Balanced设置开始。此模式适用于许多设计,并提供了优化和编译时间之间的平衡实现。如果此设置不符合您的目标,可以根据您的要求尝试不同的优化模式。

如果您的设计还需要Balanced设置以外的其他设置,则请使用High performance effort设置,在布局布线阶段启用额外的时序优化。您可以使用Superior performance设置进一步在综合阶段启用额外的时序优化。但是,这些综合优化可能会导致逻辑面积增加,从而对高利用率的设计产生负面影响。这两种设置都会增加编译时间。

或者,使用Aggressive Area设置以减少逻辑面积,但能会降低性能。同样地,请使用Aggressive power设置以降低动态功耗,但可能会牺牲性能。

如果您的设计难以成功布局布线,则设置Optimize netlist for routabilityHigh placement routability effortHigh packing routability effort会提供各种优化来提高布局布线性。是否是最好的优化效果需取决于设计,因此如果您遇到布局布线性问题,请尝试每种优化。

最后,请使用Aggressive Compile TimeFast Functional Test设置以减少编译时间。这些设置会降低性能,但在设计周期早期(仅当功能性已被验证时)可能很有帮助。

表 31.  优化模式(Compiler设置页面)

优化模式

QSF值

描述

含义

Balanced

(普通流程)
Balanced

Compilery对用于时序相关的平衡实现的综合进行优化。

默认设置在优化效力和编译时间之间产生平衡。

High performance effort

High Performance Effort

Compiler增加布局和布线期间时序优化的效果,并使能时序相关的Physical Synthesis优化(依据每个寄存器优化设置)。

Balanced设置相比,增加了编译时间,以获得更好的性能。
High performance with maximum placement effort High Performance With Maximum Placement Effort 使能与High Performance Effort相同的Compiler优化,并实现其他布局优化作用。 High performance effort设置相比,增加了编译时间,以获得更好的性能。
High performance with aggressive power effort High Performance With Aggressive Power Effort 使能与High performance effort相同的Compiler优化功能,同时进行其他优化以降低动态功耗。 High performance effort设置相比,增加了编译时间以获得较低功耗。
Superior performance Superior Performance 使能与High performance effort相同的Compiler优化,并在Analysis & Synthesis过程中添加更多优化,以最大限度地提高设计性能,并可能增加逻辑面积。 High performance effort设置相比,增加了编译时间,但会获得更好的性能。如果设计利用率很高,则此模式可能会导致布局布线的困难,这样也会对整体优化质量产生负面影响。
Superior performance with maximum placement effort Superior Performance With Maximum Placement Effort 使能与Superior performance相同的Compiler优化,并实现其他布局优化作用。 Superior performance设置相比,增加了编译时间,但能获得更好的性能。
Aggressive Area (降低性能) Agressive Area

Compiler极力尝试减少实现设计所需的器件占用面积,但可能会牺牲设计性能。

Balanced设置相比会降低性能来减少面积。
High placement routability effort High Placement Routability Effort Compiler尽可能对设计进行最佳布线,但可能牺牲设计区域,性能和编译时间。Compiler花费额外时间减少路由选择利用率,可提高布通率还可节省动态功率。 Balanced设置相比,增加了编译时间,以获得更好的布通率(routability)。
High packing routability effort High Packing Routability Effort Compiler尽可能对设计进行最佳布线,但可能会牺牲设计区域,性能和编译时间。Compiler消耗额外时间封装寄存器,以提高布通率并节省动态功率。 Balanced设置相比,增加了编译时间,以获得更好的布通率(routability)。
Optimize netlist for routability Optimize Netlist for Routability Compiler实现网表修改以增加布通性,但可能会牺牲性能。 Balanced设置相比,增加了编译时间,以获得更好的布通率(routability)。

Aggressive power

(降低性能)
Agressive Power

竭力优化低功耗综合。Compiler进一步减低使用指定或评估最高切换率的信号路由,以节省额外动态功率但可能会影响性能。

Balanced设置相比会降低性能来获得更低功耗。

Aggressive Compile Time (降低性能)

Aggressive Compile Time

该模式在早期设计迭代中特别有用,它以牺牲设计平均15%的fMAX为代价,将编译运行时间平均缩短30%。通过减少工作效力和降低性能优化可以减少运行时间。此模式还会禁用一些详细的报告功能。

此模式可产生最快的全流时序估计,并且与高强度模式具有近似的关联性。

  • 此模式会降低性能。
  • 降低工作效力可能会导致不适配,尤其是在高度拥塞的设计中。通过划分和约束设计中拥塞部分的布局,或使用高工作效力或布局布线模式,可以减轻这种可能性
  • 此模式可能无法识别与全力编译相同的关键路径(类似于Compiler种子效应(seed-effect))。
  • 此模式禁用一些详细的报告功能,并启用.qsf设置,该设置不能被其他.qsf设置覆盖。
Fast Functional Test (仅保持时间优化) Fast Functional Test

此模式生成.sof比特流文件,您可以使用它以最少的编译时间进行板载功能测试。此模式通过将时序优化限制为仅针对有保持要求的优化,进一步缩短了Aggressive Compile Time模式之外的编译时间。

  • 工作效力水平的减少可能会导致不适配,尤其是在高度拥塞的设计中。通过分区和限制设计中拥塞部分的布局,或使用高工作效力或布局布线模式,可以减轻这种可能性。请参阅本文档中的Creating a Partition主题以及Intel Quartus Prime Pro Edition User Guide: Design Constraints
  • 此模式可能需要PLL Intel FPGA Ip锁定范围以外的时钟速度。在布局布线后使用adjust_pll ECO命令更新PLL IP可减缓该效果。
  • 此模式禁用一些详细的报告功能,并启用.qsf设置,该设置不能被其他.qsf设置覆盖。
注: 如果使用.qsf约束使能用于Design Space Explorer II的扩展型优化模式,则随后需开启Compiler Settings以用于该工程版本,Compiler Settings选项卡指示扩展型优化模式复原到Compiler Settings选项卡Optimization Modes下的其中一个模式。