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

上传人:小** 文档编号:3687522 上传时间:2020-10-16 格式:PDF 页数:21 大小:745.48KB
返回 下载 相关 举报
ASIC前后端设计典范的细节讲解.pdf_第1页
第1页 / 共21页
ASIC前后端设计典范的细节讲解.pdf_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《ASIC前后端设计典范的细节讲解.pdf》由会员分享,可在线阅读,更多相关《ASIC前后端设计典范的细节讲解.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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, 主要是减少电源网络的电阻, 实际设计中的的主要方法就

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

4、的。Power Analysis 就是对一个已有的电 源网络分析其电气特性,主要是 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

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

7、的。 每辆车必须要停在停车位内。 在数字 IC 设计中采用的也是类似的办法,我们把 Site 连成一排一排的,要求每个 Cell 必须 放在 Site 内。这就像把车停在停车位内一样。 当然了,你可能已经想到了,一个 Cell 可能需要占据连续的好几个 Site。是的,我们就把它 当作一辆加宽的汽车吧(别跟我较真说现实中没有这么宽的车) 。 这里所讲的其实就是判断“得位”与否的第一条原则:第一条原则:Cell 必须被放在必须被放在 Site 内(车辆必须停内(车辆必须停 放在车位内)放在车位内) 。 我们这里说得停车也好,Cell 的放置也好,其实都可以看作是一个二维平面上的几何问题。 想象一

8、个二维平面上的确定大小的几何图形,除了位置,还有那些其他因素呢。 “方向”算 是一个, “对称”或者说“镜像”应该也算一个。 方向方向:再以停车场为例,比如说我们可以要求所有的车必须车头向里或向外,这样 可以使得管理起来更加简单。 镜像镜像:车子可以在它的车位上左右镜像吗?那岂不是要把汽车翻过来才行。哈哈。 是的,也许你的车还不行。但是假如有这么一辆车,它的上下两面都有轮子,我可 以今天用这面的轮子,明天用另外一面的轮子。但是到了这个停车场,你必须用最 难看的那一面。呵呵。 停车可以这样要求,放置 Cell 也可以这样要求。而且考虑到“镜像”其实也可以算作一种方 向,我们可以归纳为第二条原则:

9、第二条原则:Cell 的方向必须符合要求的方向必须符合要求(车辆在停车位内的方向必须符 合要求,否则罚款) 不就是停个车吗,还这么多规矩。别急,还没完呢。这两天领导来视察,那几个离你最近的 车位被征用了,旁人不得使用。做人不容易,做一个 Cell 也不容易的。 在数字 IC 设计中,我们是通过 Blockage 圈定一些区域是不可以用来放置 Cell 的,这就形成 了第三条原则:第三条原则:Cell 不能放在不能放在 Blockage 下面下面。 那么,能不能把两辆车放在同一个车位内呢?这不是废话吗(你心想) 。对,是废话,但在 严谨的表述中,这就不能当作废话一样不列出来了。第四条原则:两个第

10、四条原则:两个 Cell 不可以重叠不可以重叠 (Overlap)。 可以说上面的四条就构成了判断是否“得位”(legality) 的基本原则: 第一条原则:Cell 必须被放在 Site 内 第二条原则:Cell 的方向必须符合要求 第三条原则:Cell 不能放在 Blockage 下面 第四条原则:两个 Cell 不可以重叠(Overlap) 在 Synopsys 的 IC Compiler 中, 命令 check_legality 基本上就是根据上面的原则进行检查的。 所谓 “规矩在, 方圆成” 。 直到了如何是正确的, 自然也就知道如何把不正确的编程正确的。 数字 IC 设计中,leg

11、alize 就是指把 cell 放置到正确的位置上的过程。 IC Compiler 中,命令 legalize_placement 就是用来做这件事情的。 Multi-Height 和和 Multi-Site 大千世界,变化万千。这世上之物要都是一个模子刻出来那样一致,这世界倒是简单了。你 看这天下之物,大体上无不是共性之中透着特质,常规之外存有特例。 上面说了加宽的车, 大家可能没见过, 这加长的应该就不稀奇了。 Cell 也是一样, 有的时候, 有些 Cell 偏偏就是要比那些普通 Cell 高出一倍甚至两倍。 既然存在例外, 处理方法就要考虑 到。我们称这种 Cell 高度是 Site

12、高度一倍以上的情况为“Multi-Height” 。 Cell 可以不一样,Site 可以不一样(终生平等嘛) 。一个 Design 中也可以有多余一种 Site, 这称为 “Multi-Site” 。 但无论怎样,只要记得让各个 Cell“得其位”就好。这样你也可以去做 legalize 的活了 用你的双手把 Cell 们正确地放到他们对应的 Site 上去。 Placement 简介 Coarse Placement 夫天下之事,能一蹴而就者,鲜有闻矣。欲成大厦,必先成其大概,而后成其屋室。 Cell 的 Placement 亦如是。在进行 Legalize 之前,需要把 Cell 的大致

13、位置先确定下来。这 个确定 Cell 大致位置的过程就叫做 Coarse Placement. Coarse Placement 可以描述为这样一个问题:在指定的平面空间(Floorplan)内,确定各个 标准单元 Cell 的位置,以使时序等设计指标最优。 Coarse Placement 由 EDA 工具根据设计者的要求自动完成。 设计者的任务就是给出正确的要 求。 说来简单吧这做具体事情可能不大容易, 但像领导一样只是动嘴指挥大概就简单许 多了吧。也对也不对。许多领导动嘴指挥错了,大概不会有什么大问题,但你要是做不出符 合要求的设计来,估计就要被老板骂了。 如何影响如何影响 Coarse

14、 Placement 的结果?的结果? 夫治水之道,唯疏堵二法而已。天下之理同也。 所谓设计者的“要求” ,就 Placement 来说,归结起来,大的方面无非两类: 堵堵:指定 Cell 不能放在某个区域。这个称之为 Blockage 疏疏:指定 Cell 只能放在某个区域。这个称之为 Bound 关于 Placement 的物理约束基本上都由此演变而来。 Hard Blockage: 所有 Cell 一定不能放在指定区域内。 Soft Blockage: 所有 Cell 只有在特定的步骤 (比如 Legalize) 中才能放在指定区域内。 Bound: 指定的 Cell 必须放在指定的区域

15、内。 Exclusive Bound: 指定的 Cell 必须放在指定的区域内,而且其他 Cell 不许放在指定区 域内。 Group Bound: 指定 Cell 必须放在指定长度和宽度 (但没有指定位置) 的矩形区域内。 其他一些名称不同,概念类似的约束 知以上几法,功有半矣!那另一半是什么呢?曰:知其所指。 所谓知其所指,有如见云乌而知雨或在途,有如见叶落而知秋至;知雨之将近而备伞,知秋 至而加衣。做为设计者,即要知晓设计中的各种概念和因果关系,能防患于位然,能解患之 已生。 其实不仅仅是 Placement, 设计中的各个步骤都要求如此。 至于如何达到这样的要求, 无它, 唯熟而能生巧

16、。 上面提到的这些策略或方法,其实也正是数字 IC 设计中另一个话题 Floorplan 的重要内容。 既是 ignore pin 又是 non-stop pin 的 clock tree 近日使用 IC Compiler 过程中,在做 CTS 时,发现有一个 register 的 clock pin 既是 ignore pin 又是 non-stop pin。 如果是 ignore pin,则意味着 CTS 时应把这个 sink 排除在外;如果是 non-stop pin,则意味着 要穿过这个 sink。而这两种情况是矛盾的。 研究的结果,发现是由于特殊的 clock 结构造成的。如下图:

17、其中的 register 被用做二分频,输出端 Q 通过一个 inverter 连接到了自己的输入端上;Q 端 上定义了一个 Generated Clock(GCLK)。 因此工具推导出这个 register 的 CLK pin 是一个 non-stop pin。 同时,这个 GCLK 通过一个 PAD 输出到芯片外部,没有再与其他 register 相连。因些,工具 推导出这是一个 implicit ignore pin。 知道了原因,解决办法就容易多了。将图中 register 的 CLK pin 设置为 ignore pin 更为合理 些。 Verilog 中的 Blocking Ass

18、ignment 和 Non-Blocking Assignment Verilgo 中有两种赋值语句,用=表示的Blocking Assignment和用=表示的Non-Blocking Assignment。 有意思的是,这两种赋值语句对是否blocking的解释并不如其字面那样易于理解。 看下面的例子,尝试分别画出两个模块对应的电路图: module rtl_a(clk, data, regc, regd, rege); input data, clk; output regc, regd, rege; reg regc, regd, rege; always (posedge clk)

19、begin regc = data; regd = regc; rege = regd; end endmodule module rtl_b(clk, data, regc, regd, rege); input data, clk; output regc, regd, rege; reg regc, regd, rege; always (posedge clk) begin regc = data; regd = regc; rege = regd; end endmodule 问题的关键是 regc,regd,rege 这三个变量中,哪两个是一样的。对于rtl_a来说,如果你认为 r

20、egd=regc 的话,那你就错了。 正确的答案如下(上面的部分对应 rtl_a) 。 Blocking 到底是到底是 Blocking 了什么了什么 其实问题的关键就是理解所谓的Blocking到底是针对什么而言。Blocking是什么模拟器 (simulator)来说的。 当看到=,即所谓的 Blocking Assignment 时,simulator 会等到该条语句对应的动作实际执 行后才去调度一下条语句。而 +- level shifter +- +- isolation cell +- +- | retention cell | +-+ 如果当前区域的电源电压和外部不同, 则信号传

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

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

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

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

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

26、ain_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 | inputs | both -source -sink -diff_suppl

27、y_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 primary_sset.power -retention_ground_ne

28、t 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)。 可能的 Scenario 的数目 = Mode 的数目 x Corner 的数目。 Mod

29、e 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 = V2fC 显而易见,要想降低 Dynamic Power,或者降低电压,或者降低频率,

30、至于负载 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_capacitance, rise_capacitance, fall_capacitance

31、 ; 数字集成电路(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_function_class #pin_names GTECH_ZERO 1 0=1 a0 | Z GT

32、ECH_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 | A B Z GTECH_NAND3 4 3=1 a3 | A B C Z GTECH_N

33、AND4 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 H GTECH_NOR2 3 2=1 a2 | A B Z GTECH_NOR3 4 3=

34、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_XNOR3 4 3=1 xor3 | A B C Z GTECH_XNOR4 5 4=1 Ixo

35、r4 | 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_AOI22 5 4=1 a2b2b2 | A B C D Z GTECH_AOI222 7 6=1

36、 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=1 mux21 | A B S Z GTECH_MUX4 7 6=1 mux41 | D0

37、 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 DO GTECH_ISO1_EN0 3 2=1 a2 | DI EN DO GTECH_I

38、SOLATCH_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 GTECH_FD1 4 2=0 | D CP Q QN GTECH_FD14 13 1=0

39、| 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 TE CP CD Q QN GTECH_FD3 6 4=0 | D CP CD SD Q

40、 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 QN1 GTECH_FD4S 7 5=0 | D TI TE CP SD Q QN GTEC

41、H_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 4 2=0 | D GN Q QN GTECH_LD2_1 3 2=0 | D GN Q

42、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 中的系统变量 列出系统变量列出系统变量 print_variable_group system p

43、rint_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 Variation)的方式使得 constraint 变得更为严格

44、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 all_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 检查

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁