物理约束命令:创建芯片(Die)区域和核心(Core)区域

相关阅读

物理约束命令https://blog.csdn.net/weixin_45791458/category_13122483.html


Design Compiler:物理约束一文中,已经提到在第一轮综合时,用户可以使用自定义物理约束,本文就将介绍如何使用这些命令创建芯片(Die)区域和核心(Core)区域。

芯片(Die)区域是整个芯片在硅片上的物理边界,包含核心区域、I/O PAD等所有结构,是芯片的总面积;而核心(Core)区域是芯片内部专门用于放置标准单元和宏单元的逻辑布局区域,不包含I/O PAD等外围电路,芯片(Die)区域包含核心(Core)区域,如图1所示。

图1 芯片(Die)区域和核心(Core)区域

相对定义

如果用户未显式创建芯片(Die)区域和核心(Core)区域,Design Compiler将使用默认的物理约束,即长宽比为1(即正方形)和单元利用率为0.6,单元利用率的定义如下所示。

图2展示了一个综合结果的版图,其中绿色线表示的既是是芯片(Die)区域也是核心(Core)区域。

图2 综合结果的版图

可以使用report_area -physical命令报告设计的长宽比和单元利用率,如下所示。

复制代码
dcnxt_shell-topo> report_area -physical

****************************************
Report : area
Design : MY_DESIGN
Version: W-2024.09-SP2
Date   : Mon Jan 26 21:26:14 2026
****************************************

Library(s) Used:

    saed32hvt_ss0p95v125c (File: /home/zhangchen/DCNXT_2021.06/bug/saed32hvt_ss0p95v125c.db)

Number of ports:                           42
Number of nets:                           144
Number of cells:                          114
Number of combinational cells:             94
Number of sequential cells:                19
Number of macros/black boxes:               0
Number of buf/inv:                         25
Number of references:                      16

Combinational area:                257.447871
Buf/Inv area:                       31.768000
Noncombinational area:             125.547140
Macro/Black Box area:                0.000000
Net Interconnect area:      undefined  (Wire load has zero net area)

Total cell area:                   382.995012
Total area:                 undefined

Core Area:                       679
Aspect Ratio:                 1.0539
Utilization Ratio:            0.5640


The above information was reported from the logical library. The following are from the physical library:

  Total moveable cell area: 383.0
  Total fixed cell area: 0.0
  Total physical cell area: 383.0
 Core area: 0.000, 0.000, 25.384, 26.752

用户可以使用set_aspect_ratio命令和set_utilization命令设置设计的长宽比和单元利用率,如下所示。

复制代码
dcnxt_shell-topo> set_aspect_ratio 0.5
dcnxt_shell-topo> set_utilization 0.8

此时综合结果的的版图如图3所示,其中绿色线表示的既是是芯片(Die)区域也是核心(Core)区域。

图3 综合结果的版图

可以使用report_area -physical命令报告设计的长宽比和单元利用率,如下所示。Design Compiler将尽量让单元利用率接近但不大于设置值。

复制代码
dcnxt_shell-topo> report_area -physical
 
****************************************
Report : area
Design : MY_DESIGN
Version: W-2024.09-SP2
Date   : Mon Jan 26 21:49:08 2026
****************************************

Information: Updating design information... (UID-85)
Library(s) Used:

    saed32hvt_ss0p95v125c (File: /home/zhangchen/DCNXT_2021.06/bug/saed32hvt_ss0p95v125c.db)

Number of ports:                           42
Number of nets:                           148
Number of cells:                          118
Number of combinational cells:             98
Number of sequential cells:                19
Number of macros/black boxes:               0
Number of buf/inv:                         27
Number of references:                      17

Combinational area:                264.563903
Buf/Inv area:                       34.309440
Noncombinational area:             125.547140
Macro/Black Box area:                0.000000
Net Interconnect area:      undefined  (Wire load has zero net area)

Total cell area:                   390.111043
Total area:                 undefined

Core Area:                       526
Aspect Ratio:                 0.5314
Utilization Ratio:            0.7415


The above information was reported from the logical library. The following are from the physical library:

  Total moveable cell area: 390.1
  Total fixed cell area: 0.0
  Total physical cell area: 390.1
 Core area: 0.000, 0.000, 31.464, 16.720

绝对定义

上一节的相对定义约束并没有显式指定芯片(Die)区域和核心(Core)区域,本节将介绍几个绝对定义约束,注意这些绝对定义约束的优先级大于相对定义约束。

create_die_area

create_die_area命令用于创建一个芯片(Die)区域,使用-coordinate选项可以创建一个四边形的芯片(Die)区域,使用-coordinate选项可以创建一个直角多边形的芯片(Die)区域。

如果只创建了芯片(Die)区域而没有创建核心(Core)区域,则芯片(Die)区域会被视为核心(Core)区域,下面展示了一个例子。

复制代码
dcnxt_shell-topo> create_die_area -polygon {{0 0} {0 30} {20 30} {20 20} {30 20} {30 0}}

此时综合结果的的版图如图4所示,其中绿色线表示的既是是芯片(Die)区域也是核心(Core)区域。

图4 综合结果的版图

如果芯片(Die)区域已存在,再次使用create_die_area命令时会出现以下错误。

复制代码
Error: Die area already exists in the design. (DCT-064)

create_core_area(不建议使用)

create_core_area命令用于创建一个核心(Core)区域,使用-coordinate选项可以创建一个四边形的核心(Core)区域。

如果只创建了核心(Core)区域而没有创建芯片(Die)区域,则核心(Core)区域会被视为芯片(Die)区域,下面展示了一个例子。

复制代码
dcnxt_shell-topo> create_core_area -coordinate {{0 0} {30 30}}

此时综合结果的的版图如图5所示,其中绿色线表示的既是是芯片(Die)区域也是核心(Core)区域。

图5 综合结果的版图

create_core_area命令配合create_die_area命令可以完整创建芯片(Die)区域和核心(Core)区域,下面展示了一个例子。

复制代码
​dcnxt_shell-topo> create_die_area -coordinate {{0 0} {50 50}}
​dcnxt_shell-topo> create_core_area -coordinate {{0 0} {30 30}}

此时综合结果的的版图如图6所示,其中绿色线表示的是核心(Core)区域,蓝色线表示的是芯片(Die)区域。

图6 综合结果的版图

如果核心(Core)区域已存在,再次使用create_core_area命令时会出现以下错误。

复制代码
Error: Core area already exists in the design. (DCT-063)

该命令已经不建议使用了,如果想创建核心(Core)区域,使用create_site_row命令创建site row。

create_site_row

create_site_row命令可用于创建site row,核心(Core)区域即为包含所有site row的四边形区域,下面展示了一个例子。

复制代码
​dcnxt_shell-topo> create_die_area -coordinate {{0 0} {40 25}}
​dcnxt_shell-topo> create_site_row -name unit0 -coordinate {10 11.672} -kind unit -space 0.152 -count 100
​dcnxt_shell-topo> create_site_row -name unit1 -coordinate {10 13.344} -kind unit -space 0.152 -count 100
​dcnxt_shell-topo> create_site_row -name unit2 -coordinate {10 13.344} -kind unit -space 0.152 -count 100

此时综合结果的的版图如图7所示(为了简便,这里使用了一个只包含一个标准单元的设计),其中红色线表示的是三行site row,绿色线表示的是核心(Core)区域,蓝色线表示的是芯片(Die)区域。

图7 综合结果的版图

set_placement_area

set_placement_area命令用于创建或设置芯片(Die)区域和核心(Core)区域,当芯片(Die)区域不存在时,创建芯片(Die)区域,当芯片(Die)区域存在且是由本命令创建的时,设置芯片(Die)区域,当核心(Core)区域不存在时,创建核心(Core)区域,当核心(Core)区域存在时,设置核心(Core)区域。

该命令只能使用-coordinate选项创建或设置一个四边形的芯片(Die)区域和核心(Core)区域。

set_rectilinear_outline(不建议使用)

set_rectilinear_outline命令用于创建或设置芯片(Die)区域,当芯片(Die)区域不存在时,创建芯片(Die)区域,当芯片(Die)区域存在时,设置芯片(Die)区域。

该命令只能使用-coordinate选项创建或设置一个直角多边形的芯片(Die)区域。

相关推荐
日晨难再10 天前
HDL Compiler:hdlin_preserve_sequential变量和preserve_sequential综合指令的使用
数字ic
日晨难再10 天前
SDC命令详解:使用report_transformed_registers命令进行报告
数字ic
ll567812 天前
数字IC后端实现之OCC电路分段时钟树综合实战解析
数字ic·时钟树综合·occ电路·分段时钟树
日晨难再13 天前
SDC命令详解:使用write_environment命令进行输出
数字ic
日晨难再14 天前
SDC命令详解:使用write_app_var命令进行输出
数字ic
日晨难再18 天前
DSO.ai:基于AI的搜索优化型EDA工具介绍
人工智能·数字ic
日晨难再1 个月前
Design Compiler:触发器的复制(set_register_replication命令)
数字ic
日晨难再1 个月前
Design Compiler:不可读单元的移除
数字ic
日晨难再1 个月前
SDC命令详解:使用write_parasitics命令进行输出
数字ic