数字后端基本概念介绍<Tap Cell>

今天要介绍的数字后端基本概念是Tap cell, 也被称为welltap cell。这也是一种特殊的物理单元。 welltap是只包含well contact的cell,将衬底接到电源和地网络,避免衬底悬浮。主要防止CMOS器件的寄生闩锁效应(latch-up)

一般tap cell的作用范围是30~40um, 即每隔60um左右放置一个tap cell,具体的数据要参考工艺商给的document

well tap cell一般交错摆放,类似棋盘分布。如下图所示:

640?wx_fmt=png

使用方法

命令

create_tap_cells

例: set tap_cell [get_lib_cell */SC8T_TAPZBX7_CSC28SL]

create_tap_cells \

        -lib_cell  $tap_cell \

        -pattern   stagger  \

        -distance  60 \

        -offset    15 \

        -prefix          "WELLTAP" \

        -separator "_" \

        -skip_fixed_cells

640?wx_fmt=png


### 寻找时钟树网络中的单元并排除 IO_PAD 单元 为了实现这一目标,可以采用以下方法来筛选 `clock tree network` 中的单元,并确保这些单元不包括 `IO_PAD` 类型的单元。 #### 方法概述 通过设置特定选项和过滤条件,可以从设计数据库中提取属于时钟树网络的单元列表。具体来说,可以通过命令 `-tap_lib_cells` 来定义驱动器库单元列表[^1],同时利用属性过滤功能去除不属于时钟树网络的部分以及明确排除掉 `IO_PAD` 的单元[^2]。 以下是具体的脚本示例: ```tcl # 定义 tap driver lib cell 列表 set_tap_lib_cells [list TAP_DRIVER_CELL_1 TAP_DRIVER_CELL_2] # 设置目的包含 CTS (Clock Tree Synthesis) 的单元 set_lib_cell_purpose -include cts # 获取所有时钟树相关的单元 set all_cts_cells [get_cells -hierarchical -filter "is_clock_tree_cell==true"] # 排除 IO_PAD 单元 set non_io_pad_cells [remove_from_collection $all_cts_cells [get_cells -hierarchical -filter "cell_type=~*IO_PAD*"]] puts "Cells in Clock Tree Network Excluding IO_PAD:" foreach_in_collection cell $non_io_pad_cells { puts [get_attribute $cell full_name] } ``` 上述代码片段实现了以下几个关键操作: - 使用 `set_tap_lib_cells` 命令指定了用于构建时钟树的驱动器单元列表。 - 应用了 `set_lib_cell_purpose` 将范围限定到支持CTS的目标单元上。 - 运用 Tcl 脚本获取所有的时钟树相关单元并通过集合运算移除了任何标记为 `IO_PAD` 的单元。 此过程能够有效识别出哪些单元参与到了时钟分配结构之中而不涉及输入/输出端口部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值