Design Compiler:使用IC Compiler II Link
相关阅读
Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.2014.3001.5482
简介
拓扑模式的Design Compiler NXT引入了IC Compiler II Link功能,该功能允许在综合工具中调用IC Compiler II进行优化(实际上Design Compiler NXT自带了IC Compiler II,因此无需单独安装IC Compiler II),可以在Milkyway和NDM两种模式下使用,但建议在NDM模式下使用,这更加便捷。
NDM与Milkyway模式
Design Compiler中使用关于库的命令将决定工具的工作模式。
NDM模式
当使用create_lib命令创建NDM设计库或使用open_lib命令打开NDM设计库时,Design Compiler将自动进入NDM模式,并出现下面的消息。
Information: Using the '***' command has enabled NDM mode for the current Design Compiler NXT session. (DCT-294)
需要注意的是,只有Design Compiler NXT支持NDM模式,而DC Ultra和Design Compiler Graphical不支持。
当工具处于NDM模式时,不能使用Milkyway模式特有的命令,否则会出现以下错误。
Error: Command 'create_mw_lib' is disabled in Design Compiler NXT NDM mode. (DCT-290)
要检查当前处于NDM模式还是Milkyway模式,可以使用shell_is_in_ndm_mode命令,返回1表示NDM模式,0表示Milkyway模式。
使用NDM参考库
NDM参考库可以分为多种,其中一种被称为Cell Library(CLIB),单元库中包含了物理信息和时序信息等;而一种被称为Physical Library(Frame-only Library),物理库中只包含了物理信息。
Design Compiler支持使用它们之一或组合作为NDM参考库创建NDM设计库(IC Compiler II在T-2022.03-SP3版本后不支持直接使用物理库作为NDM参考库),但需要注意的是,即使使用单元库,Design Compiler也只从中获取物理信息而依旧从target_library变量和link_library变量中获得时序信息。
下面展示了用create_lib命令创建NDM设计库的过程。
dcnxt_shell> set_app_var target_library $TARGET_LIBRARY_FILES
dcnxt_shell> set_app_var link_library "* $target_library $LINK_LIB_FILES"
dcnxt_shell> create_lib $DESIGN_LIBRARY -technology $TECH_FILE -ref_libs $REFERENCE_LIBRARY
...
在Design Compiler调用IC Compiler II时,会将自己使用的NDM参考库、技术文件和link_library变量传递给IC Compiler II供其创建临时的NDM设计库使用。如果传递的NDM参考库中存在物理库,则IC Compiler II首先会调用自带的Library Manager根据物理库创建对应的单元库,随后再创建临时的NDM设计库;如果传递的NDM参考库只有单元库,则IC Compiler II可以直接根据单元库创建临时的NDM设计库。需要注意的是,Design Compiler可以多次调用IC Compiler II,但单元库只在首次需要时构建,一旦库创建完成,即使后续多次调用IC Compiler II,也不会重复创建这些库。
关于IC Compiler II自动创建单元库的详细信息,可以参考IC Compile II Data Model User Guide中的Configuring Cell Libraries一章。
提前用Library Manager创建单元库供Design Compiler使用也是一种解决办法。
Milkyway模式
Design Compiler默认处于Milkyway模式,即使用create_mw_lib命令创建Milkyway设计库或使用open_mw_lib命令打开Milkyway设计库。
当工具处于Milkyway模式时,不能使用NDM模式特有的命令,否则会出现以下错误。
Error: Command '***' is disabled in Design Compiler NXT Milkyway mode. (DCT-292)
由于IC Compiler II必须使用NDM库,需要使用set_icc2_options命令至少设置NDM参考库和技术文件,如果NDM参考库中存在物理库,处理方式与NDM模式下相同。
启用IC Compiler II工具特性
IC Compiler II Link由三个属性和四个变量控制,其中IC Compiler II Link布局器是很多其他特性的基础。
使用dcnxt_use_icc2_link命令可以对IC Compiler II Link布局器、IC Compiler II Link自动布图规划和IC Compiler II Link拥塞报告三个属性进行设置,如下所示,其他特性则由变量控制。
dcnxt_shell> dcnxt_use_icc2_link -placement *** -auto_floorplan *** -congestion_use_global_route ***
使用dcnxt_use_icc2_link命令时添加-report_only选项可以查看IC Compiler II Link相关属性和变量的设置情况,如下所示。
dcnxt_shell-topo> dcnxt_use_icc2_link -report_only
===================================================================================================================
| Flow | DCNXT Graphical IC Compiler II Link Flow |
===================================================================================================================
| Features | Current Setting | Default Setting |
===================================================================================================================
| Placement | true | true |
| Auto Floorplan | true | true |
| Zroute-Based Congestion Reporting | true | true |
===================================================================================================================
| Option Name | Type | Current Setting | Default Setting |
===================================================================================================================
| Automatic Timing Control | App Variable | true | true |
| Buffer Aware Placement | App Variable | true | true |
| Enhanced Low Power Placement | App Variable | false | false |
| Congestion Driven Restructuring | App Variable | false | false |
===================================================================================================================
需要注意的是,如果要使用IC Compiler II Link,则需要在综合时添加-spg选项。
使用IC Compiler II Link布局器
Design Compiler默认使用原生的IC Compiler布局器进行布局,使用IC Compiler II Link则可以调用IC Compiler II布局器进行布局,此时会提示使用ICC2 Link Placer。
使用IC Compiler II Link自动布图规划
Design Compiler默认使用原生的IC Compiler进行自动布图规划,使用IC Compiler II Link则可以调用IC Compiler II布局器进行布图规划,此时会出现以下提示。
Information: There are missing outline, sites, tracks, thus IC Compiler II based Auto floorplan will be triggered. (DCT-425)
即使-auto_floorplan选项设置为false,只要-placement选项设置为true,当用户提供的物理约束中缺少core_area、site_rows或tracks信息,或设计中存在未布局的宏单元/端口时,Design Compiler会自动开启IC Compiler II Link进行布图规划,并出现以下警告。
Warning: Turning on ICC2Link based Auto-floorplan capabilities. (DCT-413)
对于10 nm及以下工艺节点,应使用基于IC Compiler II Link的布图规划,而不是原生的自动布图规划。
使用IC Compiler II Link拥塞报告
Design Compiler默认使用原生的IC Compiler进行拥塞报告,使用IC Compiler II Link则可以调用IC Compiler II进行拥塞报告。
当工具处于NDM模式时,该特性无法关闭,即使将-congestion_use_global_route选项设置为false,在使用report_congestion命令时Design Compiler会自动开启IC Compiler II Link进行拥塞报告,并出现以下警告。
Warning: Global Router cannot be disabled in NDM mode. The tool will use the global router engine in congestion driven placement and report_congestion command. (DCT-411)
当处于Milkyway模式时,只有将-placement选项设置为false,并将-congestion_use_global_route选项设置为false才可以关闭该特性,否则会出现以下警告。
Warning: Global Router cannot be disabled in ICCII link placer. The tool will use the global router engine in congestion driven placement. (DCT-412)
在过去曾经使用set_icc2_options命令的-congestion_use_global_route选项开启该特性,但它已经过时,不要使用该选项。
使用IC Compiler II Link自动时序控制
Design Compiler默认进行拥塞驱动布局,而直接时序驱动布局会把优化重心放在最关键时序路径上,在降低WNS与降低TNS之间取得平衡,该特性由placer_auto_timing_control变量(默认为True)控制。
需要注意的是,在增量综合期间,仅启用直接时序驱动布局,若要同时进行拥塞驱动布局,需要将spg_congestion_placement_in_incremental_compile变量设置为true。该特性只在-placement选项设置为true时才起作用,并出现以下提示。
Information: Auto timing control is enabled in the placer. (SPG-129)
使用IC Compiler II Link缓冲感知布局
缓冲感知布局用于在初始布局阶段重点考虑高扇出线网与长互连,以更好地平衡时序与布线,提升QoR,开启后将使用近似时序模型评估对这些网络插入缓冲的影响,不改动网表,只影响布局,该特性由placer_buffering_aware变量(默认为True)控制。
需要注意的是,该特性只在-placement选项设置为true时才起作用,并出现以下提示。
Information: Automatic timing control is enabled in the placer. (SPG-130)
使用IC Compiler II Link增强型低功耗布局
增强型低功耗布局是IC Compiler II布局器的一个特性,通过给高活跃度网络加权,引导布局器缩短关键高活跃线网,在功耗与时序之间取得更好平衡,降低切换功耗与总功耗,该特性由placer_enhanced_low_power_effort变量(默认为Low)控制。
需要注意的是,该特性只在-placement选项设置为true且compile_enable_total_power_optimization变量设置为true时才起作用,并出现以下提示。
Information: Design Compiler NXT Total Power Optimization is enabled. (PWR-1101)
使用IC Compiler II Link拥塞驱动重构
设计中的拥塞可能由满足交换律和结合律的逻辑树引起,例如OR树、AND树、XOR树。借助拥塞驱动重构功能,通过重新连线这些逻辑树的输入可以缓解拥塞,该特性由placer_cong_restruct变量(默认为False)控制。
需要注意的是,该特性只在-placement选项设置为true时才起作用,并出现以下提示。
Information: Congestion driven restructuring placement is enabled. (SPG-131)