收藏 分享(赏)

ASIC前后端设计经典的细节讲解.pdf

上传人:HR专家 文档编号:5921697 上传时间:2019-03-21 格式:PDF 页数:21 大小:745.46KB
下载 相关 举报
ASIC前后端设计经典的细节讲解.pdf_第1页
第1页 / 共21页
ASIC前后端设计经典的细节讲解.pdf_第2页
第2页 / 共21页
ASIC前后端设计经典的细节讲解.pdf_第3页
第3页 / 共21页
ASIC前后端设计经典的细节讲解.pdf_第4页
第4页 / 共21页
ASIC前后端设计经典的细节讲解.pdf_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、电源网络 万物运行,本源太极。太极分阴阳而生动能。 对于电路来说,这个能量就是电源。阴阳就是 Power 和 Ground 。在数字逻辑中,电源本身只是提供能量,不构成逻辑,应该说更多的属于物理设计的部分。 如果只涉及一种电源,那情况应该是比较简单的。设计中的主要任务可以概括为两个问题: 1. 如何连接标准单元或者 hard macro 的 power/ground pin。 2. 如何确保提供足够的电源供应。 电源的连接 对于 standard cell 来说,如前所述, cell 被按照 site row 排成一排一排的, power/ground pin 分别在 cell 的顶部和底部。

2、因而只要沿着 site row 的上下布好金属层 (power rail)即可。这些power rail 再连接到围在芯片四围的 power ring 上,从而实现与电源的连接。 macro cell 的 powe pin 因为是随设计不同而不同,因此从 routing 的角度考虑即可。 电源的充足 用来传导电源的金属层是有电阻的,电流通过这些金属层会产生电压降,称之为 IR Drop。这里 I 表示电流, R 表示电阻。 IR Drop 的后果是可能会导致某些 cell 的电源电压供应不够。 为了减少 IR Drop,主要是减少电源网络的电阻,实际设计中的的主要方法就是 Power Grid

3、,即网格状的横的和竖的金属层 (Power Strap)。这些 Power Grid 同样也同 Power Ring 相连,从而减少了整个电源网络的电阻。问题是,这个 Power Grid 的密度和 Power Strap 的宽度该如何确定。 就密度而言,自然是够用即可,从而节省布线资源。就宽度而言,考虑的主要是电流密度的影响。电流密度过大会导致金属层失效。减少电流密度的方法是加宽金属。 Power Planning ASIC 设计中的一个重要步骤 Power Planning 主要就是设计一个电源网络以尽可能少的布线资源提供足够的电源连接。设计往往是与分析不分的。 Power Analysi

4、s 就是对一个已有的电源网络分析其电气特性,主要是 IR Drop 和 EM。 Power Analysis 在数学层面主要就是电路网络分析。 多电源 ( Multiple Supply/Multiple Voltage) 多电源是这几年比较流行的概念,而其实呢,应该说多电源并不陌生。通常芯片的 IO 接口部 分所用的电源和主要逻辑部分所用的电源就是不同的。 IO 电源的处理自有其策略。这里所说的主要还是逻辑部分本身就有多个电源。 多个电源出现的原因可以归结为下面两种情况: 不同的逻辑部分需要不同的电源。通常是电压不同,也可能是虽然电压相同,但电源供应彼此独立。 实际上是同一个电源,但某些逻辑

5、会根据需要暂时关闭电源供应以达到节省能量消耗。 有时,电压不同(概念上必然电源不同)被称为 Multiple Voltage;电压相同,电源不同被称为 Multiple Supply。但实际上,这种区分的意义并不是特别大,两者 之间的区别不过是在信号穿越两个不同的电源时是否需要进行电压变换。 Legalize 简介 Legalize 基于标准单元的数字 IC 设计(下文中简称为数字 IC 设计)中的 legalize 关心的就是 cell 是否被放置在正确的位置上。有时我们也称 Legalize 为 Detail Placement 在数字 IC 设计中,标准单元 (cell)的高度通常是相等

6、的,宽度则是某一宽度的整数倍。用数学来表示就是 H = Hunit , W = Wunit * N (N0) 我们将宽度为 Wunit, 高度为 Hunit 的矩形称之为 Site。这样我们也可以说 标准单元 (cell)的大小是 Site 大小的整数倍。 一个设计 (Design)中有成千上万的标准单元 (cell),如何将这么多的 Cell 简单高效的排布在一起,就成了一个重要问题。 想象一下一个大型停车场,如果没有任何规划,任由每辆车随意停放,那一定会出现很多麻烦。于是我们在现实生活中看到的是空地被划分成很多停车位,这些停车位连成一排一排的。每辆车必须要停在停车位内。 在数字 IC 设计

7、中采用的也是类似的办法,我们把 Site 连成一排一排的,要求每个 Cell 必须放在 Site 内。这就像把车停在停车位内一样。 当然了,你可能已经想到了,一个 Cell 可能需要占据连续的好几个 Site。是的,我们就把它当作一辆加宽的汽车吧(别跟我较真说现实中没有这么宽的车)。 这里所讲的其实就是判断“得位”与否的 第一条原则: Cell 必须被放在 Site 内(车辆必须停放在车位内) 。 我们这里说得停车也好, Cell 的放置也好,其实都可以看作是一个二维平面上的几何问题。想象一个二维平面上的确定大小的几何图形,除了位置,还有那些其他因素呢。“方向”算是一个,“对称”或者说“镜像”

8、应该也算一个。 方向 :再以停车场为例,比如说我们可以要求所有的车必须车头向里或向外,这样可以使得管理起来更加简单。 镜像 :车子可以在它的车位上左右镜像吗?那岂不是要把汽车翻过来才行。哈哈。是的,也许你的车还不行。但是假如有这么一辆车,它的上下两面都有轮子,我可以今天用这面的轮子,明天用另外一面的轮子。但是到了这个停车场,你必须用最难看的那一面。呵呵。 停车可以这样要求,放置 Cell 也可以这样要求。而且考虑到“镜像”其实也可以算作一种方向,我们可以归纳为 第二条原则: Cell 的方向必须符合要求 (车辆在停车位内的方向必须符合要求,否则罚款) 不就是停个车吗,还这么多规矩。别急,还没完

9、呢。这两天领导来视察,那几个离你最近的车位被征用了,旁人不得使用。做人不容易,做一个 Cell 也不容易的。 在数字 IC 设计中,我们是通过 Blockage 圈定一些区域是不可以用来放置 Cell 的,这就形成了 第三条原则: Cell 不能放在 Blockage 下面 。 那么,能不能把两辆车放在同一个车位内呢?这不是废话吗(你心想)。对,是废话,但在严谨的表述中,这就不能当作废话一样不列出来了。 第四条原则:两个 Cell 不可以重叠(Overlap)。 可以说上面 的四条就构成了判断是否“得位” (legality) 的基本原则: 第一条原则: Cell 必须被放在 Site 内 第

10、二条原则: Cell 的方向必须符合要求 第三条原则: Cell 不能放在 Blockage 下面 第四条原则:两个 Cell 不可以重叠 (Overlap) 在 Synopsys 的 IC Compiler 中,命令 check_legality 基本上就是根据上面的原则进行检查的。 所谓“规矩在,方圆成”。直到了如何是正确的,自然也就知道如何把不正确的编程正确的。数字 IC 设计中, legalize 就是指把 cell 放置到正确的位置上的过程。 IC Compiler 中,命令 legalize_placement 就是用来做这件事情的。 Multi-Height 和 Multi-Si

11、te 大千世界,变化万千。这世上之物要都是一个模子刻出来那样一致,这世界倒是简单了。你看这天下之物,大体上无不是共性之中透着特质,常规之外存有特例。 上面说了加宽的车,大家可能没见过,这加长的应该就不稀奇了。 Cell 也是一样,有的时候,有些 Cell 偏偏就是要比那些普通 Cell 高出一倍甚至两倍。既然存在例外,处理方法就要考虑到。我们称这种 Cell 高度是 Site 高度一倍以上的情况为“ Multi-Height”。 Cell 可以不一样, Site 可以不一样(终生平等嘛)。一个 Design 中也可以有多余一种 Site,这称为 “ Multi-Site”。 但无论怎样,只要记

12、得让各个 Cell“得其位”就好。这样你也可以去做 legalize 的活了 用你的双手把 Cell 们正确地放到他们对应的 Site 上去。 Placement 简介 Coarse Placement 夫天下之事,能一蹴而就者,鲜有闻矣。欲成大厦,必先成其大概,而后成其屋室。 Cell 的 Placement 亦如是。在进行 Legalize 之前,需要把 Cell 的大致位置先确定下来。这个确定 Cell 大致位置的过程就叫做 Coarse Placement. Coarse Placement 可以描述为这样一个问题:在指定的平面空间( Floorplan)内,确定各个标准单元 Cell

13、 的位置,以使时序等设计指标最优。 Coarse Placement 由 EDA 工具根据设计者的要求自动完成。设计者的任务就是给出正确的要求。说来简单吧这做具体事情可能不大容易,但像领导一样只是动嘴指挥大概 就简单许多了吧。也对也不对。许多领导动嘴指挥错了,大概不会有什么大问题,但你要是做不出符合要求的设计来,估计就要被老板骂了。 如何影响 Coarse Placement 的结果? 夫治水之道,唯疏堵二法而已。天下之理同也。 所谓设计者的“要求”,就 Placement 来说,归结起来,大的方面无非两类: 堵 :指定 Cell 不能放在某个区域。这个称之为 Blockage 疏 :指定 C

14、ell 只能放在某个区域。这个称之为 Bound 关于 Placement 的物理约束基本上都由此演变而来。 Hard Blockage: 所有 Cell 一定不能放在指定区域内。 Soft Blockage: 所有 Cell 只有在特定的步骤(比如 Legalize)中才能放在指定区域内。 Bound: 指定的 Cell 必须放在指定的区域内。 Exclusive Bound: 指定的 Cell 必须放在指定的区域内,而且其他 Cell 不许放在指定区域内。 Group Bound: 指定 Cell 必须放在指定长度和宽度(但没有指定位置)的矩形区域内。 其他一些名称不同,概念类似的约束 知

15、以上几法,功有半矣!那另一半是什么呢?曰:知其所指。 所谓知其所 指,有如见云乌而知雨或在途,有如见叶落而知秋至;知雨之将近而备伞,知秋至而加衣。做为设计者,即要知晓设计中的各种概念和因果关系,能防患于位然,能解患之已生。 其实不仅仅是 Placement,设计中的各个步骤都要求如此。至于如何达到这样的要求,无它,唯熟而能生巧。 上面提到的这些策略或方法,其实也正是数字 IC 设计中另一个话题 Floorplan 的重要内容。 既是 ignore pin 又是 non-stop pin的 clock tree 近日使用 IC Compiler 过程中,在做 CTS 时,发现有一个 regist

16、er 的 clock pin 既是 ignore pin又是 non-stop pin。 如果是 ignore pin,则意味着 CTS 时应把这个 sink 排除在外;如果是 non-stop pin,则意味着要穿过这个 sink。而这两种情况是矛盾的。 研究的结果,发现是由于特殊的 clock 结构造成的。如下图: 其中的 register 被用做二分频,输出端 Q 通过一个 inverter 连接到了自己的输入端上; Q 端上定义了一个 Generated Clock(GCLK)。 因此工具推导出这个 register 的 CLK pin 是一个 non-stop pin。 同时,这个

17、GCLK 通过一个 PAD 输出到芯片外部,没有再与其他 register 相连。因些,工具推导出这是一个 implicit ignore pin。 知道了原因,解决办法就容易多了。将图中 register 的 CLK pin 设置为 ignore pin 更为合理些。 Verilog 中的 Blocking Assignment和 Non-Blocking Assignment Verilgo 中有两种赋值语句,用 “=“表示的 “Blocking Assignment“和用 “ +- level shifter +- +- isolation cell +- +- | retention

18、cell | +-+ 如果当前区域的电源电压和外部不同,则信号传输时需要电平转换。这可以通过在信号线中间插入被称为 Level Shifter 的 cell 来实现。 如果当前区域或者外部区域中的一个电源被关闭了,则相应的信号线上的被驱动端( sink)就会信号不稳定。这可以通过插入被称为 Isolation Cell 的 cell 来实现。 如果当前区域的电源被关闭了,但有些数据又需要在之后重新上电时恢复之前的值,这就需要用到被称之为 Retention Cell 的逻辑 单元( cell)来实现。 Level Shifter Level Shifter 很显然可以放在当前区域内部,也可以放

19、在外部。 在 IC Compiler 中,是通过 insert_level_shifter 这个命令来进行操作的。 为了用于描述插入的策略( strategy),下面两个命令应运而生: set_level_shifter_strategy o 电平转换的方向:是高到低还是低到高? o 插入的位置:是内部还是外部? set_level_shifter_threshold :多大的电压差才需要 level shifter? Isolation Cell Isolation Cell 的主要作用是: 通电的情况下表现为一个 buffer 断电的情况上向外部输出稳定的信号 从逻辑上看,很显然, Iso

20、lation Cell 需要一个控制信号( -isolation_signal)来决定工作模式。 这个稳定的信号值( -clamp_value)无非是三种情况: 0、 1、或者 latch(锁存器)的值,显然这对应三种不同的 Isolation Cell 类型。 由于 Isolation Cell需要在相关电源断电的情况下正常工作,它显然 需要一个独立的电源供应。这在 IC Compiler 中被称为 Isolation Power。 用来描述 Isolation Cell 的插入策略可以用命令: set_isolation :描述 Power/Ground 信号、锁存值、哪些 port 上需

21、要插入等。 set_isolation_control : 描述控制信号和插入位置 Retention Cell Isolation Cell 主要用于一个电源区域的边界上。 Retention Cell 则主要用于该区域内部,它可以在该区域断电的情况下保存住特定的值,并在需 要时恢复。从功能上看, Retention Cell 是个稍微复杂点的寄存器( Register)。从电源供应上看,它显然也需要一个独立的电源供应。这个电源供应在 IC Compiler 中被称为 (Retention Power)。 用来描述 Retention Cell 的插入策略的命令: set_retention

22、 set_retention_control Power Switch Cell Multi-Voltage 类型的芯片设计中,既然电源的开和关是很常见的,自然就需要一类特殊的 cell单元来控制电源的开和关。 这种类型的 cell 某种程度上更像是一种特殊的 IO Cell,其设计和使用理念也很相像。 最直接的想法就是做成 chip 中的 chip 在芯片内部放置一个小的 “IO Ring“。 别外一种想法就是把 power switch cell 像普通 cell 一样放置在 row 上。 TODO UPF Abstract Demo create_supply_set primary_s

23、set create_power_domain PD set_domain_supply_net PD -primary_power_net primary_sset.power -primary_ground_net primary_sset.ground set_isolation iso_cstr -domain PD -isolation_power_net primary_sset.power -isolation_ground_net primary_sset.ground -clamp_value 0 | 1 | latch -applies_to outputs | input

24、s | both -source -sink -diff_supply_only true | false -elements port | pin -no_isolation # -isolation_supply_set set_isolation_control iso_cstr -domain PD -isolation_signal pin | port | net -isolation_sense low | high -location self | parent | fanout set_retention ret_cstr -retention_power_net prima

25、ry_sset.power -retention_ground_net primary_sset.ground create_supply_net VDD -domain PD create_supply_net VSS -domain PD create_supply_set primary_sset -update -function power VDD -function ground VSS Scenario in ASIC Design IC Compiler 中用 Scenario 来描述 design 的不同工作状态 (Mode)或工作环境 (Corner)。 可能的 Scena

26、rio 的数目 = Mode 的数目 x Corner 的数目。 Mode leakage_power() when : “!A1 value : “0.00654321“ ; leakage_power() when : “!A1 value : “0.00345678“ ; 为了知道各个输入状态的发生概率,就需要用到文件 SAIF(Switching Activity Interchange Format)文件或者 VCD(Value Change Dump)文件。 Dynamic Power 动态功耗是由于信号的跳变过程中对相关电容进行了充放电引起的 。 Dynamic Power =

27、V2 f C 显而易见,要想降低 Dynamic Power,或者降低电压,或者降低频率,至于负载 C 则主要由芯片工艺决定了。 SAIF PIN(name) : out, capacitance, max_fanout, max_transition, max_capacitance, min_fanout, min_capacitance ; PIN(name) : inout, capacitance, fanout_load, max_fanout, max_transition, max_capacitance, min_fanout, min_transition, min_cap

28、acitance, rise_capacitance, fall_capacitance ; 数字集成电路 (ASIC)中的标准单元(standard cell) 数字集成电路 (ASIC)中都会用到哪些基本单元 (standard cell)呢?这可以从 Synopsys 工具的gtech 库中略见一斑。 buffer inverter AND/NAND OR/NOR XOR/XNOR Mux Adder D Flip-Flop JK Flip-Flop Latch ISO/ISO Latch RS Latch #name #pins #inputs #outpus #pin_functio

29、n_class #pin_names GTECH_ZERO 1 0=1 a0 | Z GTECH_ONE 1 0=1 a0 | Z GTECH_BUF 2 1=1 a1 | A Z GTECH_NOT 2 1=1 a1 | A Z GTECH_AND2 3 2=1 a2 | A B Z GTECH_AND3 4 3=1 a3 | A B C Z GTECH_AND4 5 4=1 a4 | A B C D Z GTECH_AND5 6 5=1 a5 | A B C D E Z GTECH_AND8 9 8=1 a8 | A B C D E F G H GTECH_NAND2 3 2=1 a2 |

30、 A B Z GTECH_NAND3 4 3=1 a3 | A B C Z GTECH_NAND4 5 4=1 a4 | A B C D Z GTECH_NAND5 6 5=1 a5 | A B C D E Z GTECH_NAND8 9 8=1 a8 | A B C D E F G H GTECH_OR2 3 2=1 a2 | A B Z GTECH_OR3 4 3=1 a3 | A B C Z GTECH_OR4 5 4=1 a4 | A B C D Z GTECH_OR5 6 5=1 a5 | A B C D E Z GTECH_OR8 9 8=1 a8 | A B C D E F G

31、H GTECH_NOR2 3 2=1 a2 | A B Z GTECH_NOR3 4 3=1 a3 | A B C Z GTECH_NOR4 5 4=1 a4 | A B C D Z GTECH_NOR5 6 5=1 a5 | A B C D E Z GTECH_NOR8 9 8=1 a8 | A B C D E F G H GTECH_XOR2 3 2=1 xor2 | A B Z GTECH_XOR3 4 3=1 xor3 | A B C Z GTECH_XOR4 5 4=1 xor4 | A B C D Z GTECH_XNOR2 3 2=1 xor2 | A B Z GTECH_XNO

32、R3 4 3=1 xor3 | A B C Z GTECH_XNOR4 5 4=1 Ixor4 | A B C D Z GTECH_AND_NOT 3 2=1 a2 | A B Z GTECH_OR_NOT 3 2=1 a2 | A B Z GTECH_AO21 4 3=1 a2b2 | A B C Z GTECH_OA21 4 3=1 a2b2 | A B C Z GTECH_OA22 5 4=1 a2b2b2 | A B C D Z GTECH_AO22 5 4=1 a2b2b2 | A B C D Z GTECH_AOI21 4 3=1 a2b2 | A B C Z GTECH_AOI2

33、2 5 4=1 a2b2b2 | A B C D Z GTECH_AOI222 7 6=1 a3b2b2b2 | A B C D E F Z GTECH_AOI2N2 5 4=1 a2b2b2 | A B C D Z GTECH_OAI21 4 3=1 a2b2 | A B C Z GTECH_OAI22 5 4=1 a2b2b2 | A B C D Z GTECH_OAI2N2 5 4=1 a2b2b2 | A B C D Z GTECH_MAJ23 4 3=1 maj23 | A B C Z GTECH_MUX2 4 3=1 mux21 | A B S Z GTECH_MUXI2 4 3=

34、1 mux21 | A B S Z GTECH_MUX4 7 6=1 mux41 | D0 D1 D2 D3 A B Z GTECH_MUX8 12 11=1 mux81 | D0 D1 D2 D3 D4 D5 D6 D7 GTECH_ADD_AB 4 2=2 a2 xor2 | A B COUT S GTECH_ADD_ABC 5 3=2 maj23 xor3 | A B C COUT S GTECH_ISO0_EN1 3 2=1 a2 | DI EN DO GTECH_ISO1_EN1 3 2=1 a2 | DI EN DO GTECH_ISO0_EN0 3 2=1 a2 | DI EN

35、DO GTECH_ISO1_EN0 3 2=1 a2 | DI EN DO GTECH_ISOLATCH_EN1 3 2=0 | EN DI DO GTECH_ISOLATCH_EN0 3 2=0 | DI EN DO GTECH_OUTBUF 3 2=1 unknown | DATA_OUT OE PAD_OUT GTECH_INOUTBUF 4 3=2 unknown a1(2io) | DATA_OUT OE PAD_INOUT DATA_IN GTECH_INBUF 2 1=1 a1 | PAD_IN DATA_IN GTECH_TBUF 3 2=1 unknown | A E Z G

36、TECH_FD1 4 2=0 | D CP Q QN GTECH_FD14 13 1=0 | D0 CP Q0 QN0 D1 Q1 QN1 D2 GTECH_FD18 25 1=0 | D0 CP Q0 QN0 D1 Q1 QN1 D2 GTECH_FD1S 6 4=0 | D TI TE CP Q QN GTECH_FD2 5 3=0 | D CP CD Q QN GTECH_FD24 14 2=0 | D0 CP CD Q0 QN0 D1 Q1 QN1 GTECH_FD28 26 2=0 | D0 CP CD Q0 QN0 D1 Q1 QN1 GTECH_FD2S 7 5=0 | D TI

37、 TE CP CD Q QN GTECH_FD3 6 4=0 | D CP CD SD Q QN GTECH_FD34 15 3=0 | D0 CP CD SD Q0 QN0 D1 Q1 GTECH_FD38 27 3=0 | D0 CP CD SD Q0 QN0 D1 Q1 GTECH_FD3S 8 6=0 | D TI TE CP CD SD Q QN GTECH_FD4 5 3=0 | D CP SD Q QN GTECH_FD44 14 2=0 | D0 CP SD Q0 QN0 D1 Q1 QN1 GTECH_FD48 26 2=0 | D0 CP SD Q0 QN0 D1 Q1 Q

38、N1 GTECH_FD4S 7 5=0 | D TI TE CP SD Q QN GTECH_FJK1 5 3=0 | J K CP Q QN GTECH_FJK1S 7 5=0 | J K TI TE CP Q QN GTECH_FJK2 6 4=0 | J K CP CD Q QN GTECH_FJK2S 8 6=0 | J K TI TE CP CD Q QN GTECH_FJK3 7 5=0 | J K CP CD SD Q QN GTECH_FJK3S 9 7=0 | J K TI TE CP CD SD Q GTECH_LD1 4 2=0 | G D Q QN GTECH_LD2

39、4 2=0 | D GN Q QN GTECH_LD2_1 3 2=0 | D GN Q GTECH_LD3 5 3=0 | G D CD Q QN GTECH_LD4 5 3=0 | D GN CD Q QN GTECH_LD4_1 4 3=0 | D GN CD Q GTECH_LSR0 4 2=0 | R S Q QN 查找等效的 lib_cell 例如,查找两个输入端的与门 (AND2),在 IC Compiler 中可以用如下命令: get_alternative_lib_cells get_lib_cell gtech/GTECH_AND2 IC Compiler 中的系统变量 列

40、出系统变量 print_variable_group system print_variable_group timing print_variable_group power print_variable_group test report_app_var * IC Compiler 中影响 Timing 计算的因素 Timing 计算总要涉及一个用哪个模型的问题。 1. Operating Condition 对应 PVT 2. 一个 PVT 可以对应多个 library 文件 3. 一个 library 可以有一个与之对应的 min version 4. 可以用 OCV(On Chip

41、Variation)的方式使得 constraint 变得更为严格 5. 可以通过 set_timing_derate 进一步收紧 constraint TODO High Fanout Net Synthesis High Fanout Net Clock Tree Reset Network Scan Enable Singal Network Normal High Fanout Net 查找 High Fanout Net icc_shell printvar high_fanout_net_threshold high_fanout_net_threshold = “1000“ al

42、l_high_fanout -nets -through_buf_inv -threshold 1000 High Fanout Net 的处理 Ideal Network 在 design 进行 layout 之前, cell 的 location 是不确定的,这时对于 high fanout net 的 timing估算是很不准确的。 实践中的作法是把 high fanout net 的处理推迟到后端, 而在前端就把这些 net 当作理想中的连线,即 Ideal Network。 对于 ideal network,不需要进行优化,也不需要进行 DRC 检查, Timing 计算也按照理想值

43、进行。 前端处理 set_ideal_network DRC Check Free: max_capacitance, max_fanout, max_transition Latency and Transition Time are constant (default 0) o set_ideal_latency / set_ideal_transition size_only for cells on ideal network dont_touch for nets on ideal network 后端处理 remove_ideal_network DeCap Cell 在 CMOS

44、 电路运行过程中,信号的不断变化可能会导致电源电压的不稳定。这可以视为稳定的直流电压 (DC)上加了一个交流 (AC)干扰电压。 如果在电源的 Power 和 Ground 之间接入一个适当大小的 capacitor,利用 capacitor 的通交流阻直流的特性,可以平缓电源 电压的波动。这个电容被称为 Decoupling Capacitor(解耦电容 )。 ASIC 设计中用来实现这个目的的 cell 被称为 Decap Cell。由于它自身没有逻辑功能,属于physical only cell 的一种。 Decap Cell 的内部实现很显然就是一个连接 Power 和 Ground

45、的 capacitor。 Decap Cell 通常放置在 row 的两端,或者 hard macro 的附近。 下图是一个 Decap Cell 和 Tap Cell 的组合体,通常可以用作 Endcap Cell。 上方的绿色矩形是 poly,和中间红色的 M1 组成所谓的 Diffusion Capacitor( N Well Capacitor的一种实现)。这个 capacitor 的两端分别和 Power 和 Ground 相连。 Tap Cell N Well 和 P-Substrate 形成了一个 PN 结,为了避免这个 PN 结被正向偏置 (Forwad Bias),最容易的办法是把 N-Well 连接到最高电压上,同时把 P-Substrate 连接到最低电压上。为了这个目的的连接被称做 Well

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报