学习Fusion_Compiler_FE17:Timing 相关:Modes, Corners and Scenarios2

发布时间:2024-12-13  


通过场景分析最小化模式和角点的数量:
• 如若你继承了包含混合模式、角点和场景的约束条件:
▲ 为每个场景创建独有的模式和角点,借此可以移除相同的场景。
▲ 执行remove_duplicate_timing_contexts命令来找出模式和角点的最小集合,移除重复项,并重新分配场景。
▲ 运行write_script命令来记录模式、角点及场景相关的约束条件,以便后续使用或审查。

 1create_mode M1 ; create_corner C1  2create_scenario -name S1 -mode M1 -corner C1  3create_mode M2 ; create_corener C2  4create_scenario -name S2 -mode M2 -corner C2  5......  6current_scenario S1  7read_sdc S1.sdc  8current_scenario S2  9read_sdc S2.sdc 10...... 11remove_duplicate_timing_contexts 12write_script

假设在上述例子中,remove_duplicate_timing_contexts命令发现模式M1和M2实际上是相同的模式(因为它们共享完全相同的约束条件):它会删除模式M2,并将场景S2重新指派给M1(而不是原来的M2)。
该命令同样会删除完全相同的场景。例如,如果S1=M1+C1且S2=M2+C2,进一步假设M1=M2、C1=C2以及S1=S2,那么S2、M2和C2都将被移除。
write_script命令会创建一个名为wscript的目录,其中包含为每个模式、角点、场景以及全局约束单独的Tcl文件。
当你的网表或布局规划发生变化时,在设计设置阶段加载这些创建的文件。

检查时序约束条件:

• 可使用以下命令来检查约束条件:
▲ 使用check_timing检查缺失的时钟、时钟域交叉、缺失的输入/输出延时等问题…
▲ 运行report_exceptions识别具有单周期时序异常的路径:虚假路径、多周期路径、异步最小或最大延迟路径。
▲ 执行report_case_analysis以确认模式设置的正确性。
▲ 运用report_disable_timing来识别含有被禁用时序弧的路径(这些路径将不会针对时序进行优化)。

1check_timing 2foreach_in_collection mode [all_modes] { 3 current_mode $mode 4 report_exceptions 5 report_case_analysis 6 report_disable_timing 7}

■ 多数report_命令均针对当前场景生效:
■ 部分命令提供-scenario,-corner, 及/或-mode选项,以便调整报告内容所涉及的场景、角点或模式。

控制多角多模(MCMM)时序报告

• 报告所有活动的、启用建立时间分析的场景中,各个路径组内的单一最差建立时序路径:
report_timing

• 从列出的和活动的角点、模式或场景中,分别报告单一最差建立时序路径:

1report_timing -corners "C1 C4" 2report_timing -modes FUNC* 3report_timing -scenarios "S1 S2 S5 S6"

• 分别为每个活跃的角点、模式、场景或路径组报告最差建立时序路径:

1report_timing -reportby corner|mode|scenario|group

• 分别为每个列出的和活动的角点、模式或场景报告最差建立时序路径:

1report_timing -worst-corners "C1 C4" -modes FUNC* -scenarios "S1 S2 S5 S6"

控制场景分析与优化:

•create_scenario命令用于创建场景,将其设为活动状态,并启用以下分析类型:

  • 建立时间和保持时间

  • 泄漏功耗与动态功耗

  • 最大转换、最大电容与最小电容

• 针对所有活动场景及其启用的分析类型,优化会同时进行。

  • 即使启用,保持时间优化也不会在综合阶段执行。

  • 当使用同时发生的时钟和数据(CCD)时,会考虑到保持时间。

• 使用set_scenario_status命令限制分析类型,或在编译前将场景设为非活动状态。

  • 详情请参见下一页的示例。

CCD = 同时时钟与数据(Concurrent Clock and Data)。
CCD优化通过改变启动和捕获触发器的时钟延迟值,可以改善数据路径的时序。当为满足建立时间而调整时钟偏斜时,保持时间可能会受到严重影响。因此,在编译过程中同时启用保持场景尤为重要。尽管这不会直接启用保持修复或优化,但它能确保保持时间不至于大幅恶化。
CCD优化既可以在使用理想时钟时进行,也可以在进行时钟树综合时应用。
这一主题将在后续单元中更详细地讨论。

修改Scenario 状态的示例:

 1create_scenario -mode mFUNC -corner cSLOW  2create_scenario -mode mTEST -corner cSLOW  3create_scenario -mode mFUNC -corner cFAST  4create_scenario -mode mTEST -corner cFAST  5#Disable setup timing for the FAST corner   6set_scenario_status *cFAST -setup false  7#Disable leakage power analysis and optimization for the TEST mode scenarios:  8set_scenario_status mTEST* -leakage_power false  9# Disable fast test mode  10set_scenario_status mTEST::cFAST -active false 11compile_fusion

上表中场景名称后的 "*" 表示这些场景名称为用户自定义(而非默认的 "mode::corner" 格式)。
除了使用report_scenarios命令生成包含场景状态设置的表格外,你还可以通过查询场景属性来获取类似信息:mode(模式)、corner(角点)、active(活动)、setup(建立时间)、hold(保持时间)、leakage_power(泄漏功耗)、dynamic_power(动态功耗)、max_tran(最大转换)、max_cap(最大电容)、min_cap(最小电容)。对于脚本编写目的而言,这种方法比使用report_scenarios更为实用。示例如下:

定义操作条件下的角点PVT值

• Fusion Compiler 支持使用 set_operating_conditions 来确定每个角点的PVT值。
set_operating_conditions Worst -library saed32lvt_ss0p95vl25c.db
• 这是一种间接方法,依赖于操作条件模型名称和库来确定PVT数值。

在上述示例中,通过在库 saed321vt_ss0p95vl25c.db 中指定操作条件名称为 Worst,分别确定了标称PVT值为0.99(典型工艺偏差)、125°C(温度)和0.95V(电压)。
上述表格(针对不同的LVT、IP1和IP2库)以及后续页面中的表格,是通过使用 report_lib 命令生成的。

直接定义PVT - 推荐

• 强烈建议使用直接方法,以提高清晰度和易用性:

1current_corner ss125c 2set_process_number 0.99 3set_voltage 0.75 4set_voltage 0.95 -object_list VDDH 5set_temperature 125

在施加电压时,您可以直接为设计设定电压(如第一个示例所示)。如果UPF创建了电源网络,那么也需要对该网络设定电压。例如,如果创建了VDD和VSS这两个网络:

1set_voltage -object_list VDD 0.95 2set_voltage -object_list VSS 0.0 

关于工艺(P)值的一点说明:大约几十年前,用户仅获得一个在“典型”PVT角点下特征化的库。该库会包含多个操作条件,每个条件都有一套不同的PVT值,以代表不同的角点。时序分析随后会将典型单元延迟乘以P值以及基于工艺k因子的V和T缩放因子,从而推导出“max”和“min”角点的延迟。为了表示比典型工艺更慢的角点,会使用大于1.0的P值;相反,对于比典型工艺更快的角点,则使用小于1.0的P值。例如,P值为1.2意味着所有单元延迟由于较慢的工艺角点而比典型延迟慢20%;同样,P值为0.8则意味着由于较快的工艺角点,单元延迟比典型情况快20%。

如今,P值(或V和T值)不再用于任何缩放目的,因为每个库中的“标称”单元延迟已经针对特定的PVT角点进行了特征化。PVT值仅用于标识库的标称PVT角点。因此,许多库供应商已经改为在所有工艺角点上使用P值为1的做法。这种做法直接导致了直接PVT指定方法的一个问题:无法区分两个针对相同V和T但针对慢速和快速工艺角点特征化的不同库,因为这两个库的P值都是1。解决这个问题的一种方法是为不同的工艺角点使用不同的P值(例如,上述示例中的0.99和1.01)。只要这些值不同,具体数值并不重要。如果不能使用不同的P值,可以通过应用“工艺标签”来区分库,这一点稍后讨论。


文章来源于:21IC    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>