type
status
date
slug
summary
tags
category
Property
Nov 30, 2023 02:47 PM
icon
password
属性
属性 1
描述
Origin
URL

一、前言

想起一句话叫 “一叶障目不见泰山”,所以要想对一个事物有全面的认识,必须得了解它的整体面貌。学习数字 IC 验证也是同理,我们要清楚了解数字 IC 验证在数字 IC 设计全流程中所处的位置!
本节我们将要学习以下几个方面的内容
  • 1、数字 IC 设计的流程
  • 2、数字 IC 设计流程中每个阶段主要做哪些工作
  • 3、数字 IC 设计流程中每个阶段使用的主要 EDA 工具有哪些

二、集成电路产业链

notion image

三、常见的 SoC 芯片架构图

SoC 芯片组成,四大部分:
  • 1、核(CORE)
  • 2、存储(MEM)
  • 3、外设(IO)
  • 4、总线(BUS)
notion image

四、数字 IC 设计流程

notion image
  • 1、确定项目需求
    • 确定芯片的具体指标:功能、功耗、性能、IO 外设等
    • 市场来提出需求,研发来评估需求
  • 2、系统级设计
    • 用系统建模语言对各个模块描述
    • 由系统工程师完成
  • 3、前端设计【逻辑】
    • RTL 设计、RTL 仿真(EDA 仿真验证)、硬件原型验证(FPGA 硬件原型验证)、电路综合(RTL 代码映射(MAP)成门级网表(STD CELL))
  • 4、后端设计【物理】
    • 版图设计、物理验证、后仿真等

五、数字 IC 设计具体指标

  • 1、物理实现
    • 制作工艺(代工厂及工艺尺寸)
    • 裸片面积(DIE 大小,DIE 由功耗、成本、数字 / 模拟面积共同影响)
    • 封装(封装越大,散热越好,成本越高)
  • 2、性能指标
    • 速度(时钟频率)
    • 功耗
  • 3、功能指标
    • 功能描述
    • 接口定义

六、基于标准单元(STD CELL)的 ASIC 设计流程

notion image
  • 网表:在电子线路设计中,网表(netlist)是用于描述电路元件相互之间连接关系的,一般来说是一个遵循某种比较简单的标记语法的文本文件。
  • GDSII 流格式:常见的缩写 GDSII,是一个数据库文件格式。它用于集成电路版图的数据转换,并成为事实上的工业标准。GDSII 是一个二进制文件,其中含有集成电路版图中的平面的几何形状,文本或标签,以及其他有关信息并可以由层次结构组成。GDSII 数据可用于重建所有或部分的版图信息。它可以用作制作光刻掩膜版。

七、Digital IC Design Flow(总结版)

notion image
notion image
  • 1、Marketing Request:市场人员提出需求,研发人员参与讨论需求的可实现性讨论,毕竟有些东西是矛盾,如:性能与功耗,要求性能高,功耗低,这显然是矛盾的,是需要评估的,是否可以达到预期要求。需求确定好之后,再去改就会比较复杂,所以在这个阶段必须确定好,后续基本不动!
  • 2、Artitecture Spec.:需求确定好之后,会去写架构的文档,包括两个部分:整体架构规格书(Top Artitecture Spec.)和具体功能规格书(Project Function Spec.)。其中,整体架构规格书指的是要有什么模块,诸如:CPU、SRAM、DMA、AMBA 等。具体功能规格书指的是具体的指标,诸如:DMA 模块有多少个通道、总的时钟频率多少兆、支持的模式有几种等。
    • 该部分通常用架构工程师(Artitecture Engineer)完成,在有一些公司也称之为系统工程师(System Engineer,简称 SE)。该类工程师一般是较为资深的工程师。
  • 3、Arch/Algorithm Emulation:设计好架构之后,就可以做架构 / 算法方面的仿真。该部分通常使用的工具是 C/C++/MATLAB。
    • 该部分通常用算法工程师(Algorithm Engineer)完成。
  • 4、Design Spec.:做设计并不是一开始拿到算法就去写代码,而是要做一个设计规格书。类比盖楼,我们正式砌砖之前也是先要把图纸规划好。该部分通常包括接口定义(Interface)、时序处理方案(Timing)、关键电路绘制(Circuit)。
  • 5、RTL Coding:在上一部分的设计规格书编写完成之后,就可以进行编程了。通常有 VHDL/Verilog/SystemVerilog 三种编程语言可供选择!
    • 通常,Design Spec 和 RTL Coding 这两部分工作,都是由 Design Engineer 一个人完成的!对于 RTL Coding 部分,又可细分为以下三个部分,关系见下图:【下图中标注砖红色部分是验证工程师所处的位置!】
      • ①、IP Level RTL Coding:先有小的 IP,才能有大的 SoC。前面做设计是由顶向下,先有架构再有各个模块。但是实现的时候是由底向上的,先有最小的 IP 级别的代码,才会集成更高层次的代码。
      • ②、IP Level RTL Simulation 和 IP Level Verification:设计好 IP Level 代码之后,我们就可以就行仿真验证了,小的 IP 的话通常是 Design Engineer 自己做的,但是当 IP 比较大的时候,就会有专门的验证人员来做!在验证时,我们会用到一些脚本,如 Makefile。用到的仿真工具,主要有三大 EDA 厂商的:Cadence:Incisive;Synopsys:VCS;Mentor: QuestaSim。其中 VCS 最为主流,QuestaSim 用在小的 FPGA 开发上面,因为它的功能不是很强大!验证用到的语言有:C/C++/SystemC/SystemVerilog/UVM 几种。在做验证的时候也会做验证的 Spec 文档,想清楚要验什么哪些点。完毕之后才会搭环境,跑用例!验证的核心是:验证的完备性,所以要清楚 IP Level 这个目标模块的 DUT,要测的功能点都有哪些,得分解全。【以后验证工程师也是从事这一块的工作,初级验证工程师一般都是做 IP Level Verification】
      • ③、Unit/Chip Level RTL Simulation 和 Unit/Chip Level Verification:上面 IP Level 没有问题后,合成大模块 Unit/Chip Level,再来做验证!这一部分的验证工程师一般叫:Full Chip Verification Engineer,需要工作个 4~5 年才会让做!
notion image
  • 6、Logic Synthesis 和 Gate Level Verification:Coding 设计和验证没有问题后,此时会进行综合,会综合出网表。同时也会对门级网表做验证,称之为 Gate Level Verification。这个阶段更主要的是调试我们的验证环境,为后端物理实现之后的网表做准备。当前阶段的网表含有的信息较少,物理参数没有,跑起来会更快,调试会方便一点。网表逻辑功能正确性的验证是通过 FM 去保证的,并不是 Gate Level Verification 去保证的,这一点要特别注意!关于 FM 下面也会介绍到。对于综合工具,当前主流的是 Synopsys:Design Compiler(DC)。
    • 逻辑综合就是把设计实现的 RTL 代码映射到特定的工艺库,输出成门级网表的 Netlist。【根据 Load、Driver 映射工艺库…】
    • 逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(Standard Cell)的面积,时序参数会不一样
  • 7、Formal Verification:逻辑综合和验证之后,会进行形式验证,即 Formal Verification,简称为 FM。形式验证也可称之为等价性检查(Equivalence Check)。遍历所有到 “锥底” 的点的组合,假如到 “锥底” 的点有 2 个,那么组合有 4 个:00 01 10 11。这时候就会看门级网表 “锥底” 的结果是 4 个中哪个,而 RTL 的结果是 4 个结果中的哪个,对比是否一样,称之为形式验证!形式验证的工具有:Cadence:Conformal;Synopsys:Formality。
    • 从功能上(STA 是时序上)对综合后的网表进行验证。常用的方法是等价性检查方法,以功能验证后的 HDL 设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先 HDL 描述的电路功能
  • 8、STA(Static Timing Analysis):综合的网表除了要做逻辑的等效之外,还需要做静态时序分析!电路的结构是 RTL 级别的,有组合逻辑(与或非门)和时序逻辑(D 触发器)两种。对于时序逻辑有 Setup/Hold(建立时间 / 保持)要求,组合逻辑的延时会影响到这两个参数,有可能造成延时太长,造成违例。通常有几种解决办法:①、把延迟大的组合逻辑的 CELL 驱动换的大一点,让其延时减小。②、在组合逻辑中插入时序逻辑,即添加流水线的方式!
    • 静态时序分析,这也属于验证范畴,它主要属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(Setup Time)和保持时间(Hold Time)的违例(Violation)。
    • STA 以及综合通常都会用脚本实现,用的比较多的脚本是 TCL!
    • STA Timing 满足,才能得到最终的 Netlist。
  • 9、DFT(Design For Test):wafer 在制作过程中,因为工艺参数的偏差,造成功能不正确。这个时候会在前端进行一个 DFT 设计,比如在电路中插入 SCAN Chain,这样的话可以通过外部灌激励,把内部所有的时序路径作为一个链串起来!比如:外部灌 1010,对比输出序列与预期序列,验证正确性,得出是否有制造缺陷!当然还可以通过 MemBist 这种内建自测试,验证 MEM 是否有缺陷,它跟 SCAN Chain 一样,不需要外部灌激励,相当于在 MEM 外围建立好了测试电路,它的 partner 可以通过测试电路自己产生,所以叫内建自测试!DFT 一般是在网表基础上去插入的!
  • 10、版图生成,自动布局布线(PR):以上工作没问题后,便可以交给后端团队进行布局布线!如:CELL 放在哪个位置,一个 chip 通常把模拟放在四周,中间放数字逻辑!
  • 11、时钟树插入:STA 是理想时钟网路,到每一个 D 触发器的 clk 是同时的,但实际上是有 Wire Delay 的,甚至有时距离远还会插入 buffer,所以不同的位置 D 触发器的相位是有差异的!但是分析的时候,不同 D 触发器,想让 Delay 尽可能的一致,这时候就需要插入时钟树(插入 buffer)。
  • 12、DRC/LVS(Design Route Check):上述完成只有会进行一个 DRC 检查,而 LVS 是跟网表的一个对比。
  • 13、Post_Layout STA:这个时候时序的信息就是真实的,时钟、CELL 等等的时序信息是真实的,最终的 STA,最终的 timing 分析!
  • 14、生成最终的 GDSII
  • 15、Tap-Out 流片

八、数字 IC 设计全流程总览图

notion image

九、前端设计深入(RTL -> Netlist)

RTL -> Netlist:RTL 代码到网表
notion image
  • Design Spec.:写设计文档
  • RTL Coding:写代码
    • RTL(Register Transfer Level)设计利用硬件描述语言,如 VHDL/Verilog/SystemVerilog,对电路以寄存器之间的传输为基础进行描述
  • 语法检查:除了语法检查,还有代码风格检查,要确保语法没有问题才进行下一步仿真。常用的工具有 Nlint 和 Spyglass。
  • 功能仿真(迭代的过程):使用诸如 VCS/QuestaSim 等 EDA 工具,编写测试用例,去验证代码是否满足预期功能。该功能验证是前端中的验证,不同于后期芯片回来之后的制造验证(DFT 验证)。有 BUG(可能是 DUT 的 bug,也可能是验证环境 TB 的 bug),在迭代修改!
  • 逻辑综合:仿真基本功能没有问题后,进行逻辑综合,将 RTL 的描述映射成门级网表。
    • 将 RTL 级设计中所得的程序代码翻译成实际电路的各种元器件以及他们之间的连接关系,可以用一张表来表示,称为门级网表(Netlist)
  • 形式验证 (FM):综合后的网表和 RTL 功能是否等价,
  • 综合后仿真(迭代的过程):简称后仿,这一步并不是验证网表的逻辑功能,该步更多的是进行调试验证环境,为后端阶段的后仿做准备。(后端后仿主要是仿一些功耗数据,此时的实际仿真,翻转率才是更真实的,此时的功耗数据是更真实的,说白了就是为仿功耗做准备)当然此时也会顺便看一下 Netlist 是否有一些最基础的问题,通常这个后仿跑的是比较简单的系统级别(System Level)的用例,不是 IP Level 的,是层级比较高的用例。后仿有问题,也会返回修改脚本(约束某条路径,让工具优化的更好些)或者代码(组合逻辑时延修改,让其满足我们的要求)!
  • STA(Staic Timing Analysis,静态时序分析):套用特定的时序模型(Timing Model),针对特定电路分析及其是否违反设计者给定的时序限制(Timing Constraint)。
    • 在时序上对电路进行验证,检查电路是否存在建立时间(Setup Time)和保持时间(Hold Time)的违例(Violation)。
整个 ASIC 设计流程都是一个迭代的过程,在任何一步不能满足要求,都需要重复之前的步骤,甚至重新设计 RTL 代码。模拟电路设计的迭代次数甚至更多!

十、后端设计深入(Netlist -> Layout)

Netlist -> Layout:网表到版图
notion image
  • Auto Place and Route(APR):自动布局布线,这个是工具自动化完成的,尤其在当前大规模集成电路,集成度上亿门级别的背景下,手动来搞肯定是费力不讨好的!工具是自动把 Std Cell 根据我们限定的范围区域放置好,当然在 PR 时,我们会手动摆一些 Hard 单元在同一个 Die 上(大型芯片),几个硬核一起做,形成多个 sub-chip。如果 chip 规模太大,工具是有点吃不消的,所以是做成小的 hard 单元,把这些小的 hard 单元集成在一起。对于一个 hard 单元,会手动摆一些 MEM、模拟 IP,并将其放置到边上。数字部分用工具自动地布局布线放在周围。当然虽然是自动布局布线,如果我们的设计考虑不周到,也会出现走线拥塞(Congestion),这个时候也有可能会去考虑修改 RTL,工具布线布不够,可能会是设计的组合逻辑的密度太大,也可能会是设计的电路结构上有一些交叉结构(cross),绕来绕去,导致工具绕不开!
  • Extrat RC 和 STA:前面综合去 STA 的话,用的是一个理想的时序模型(Timing Model)去做的,这个实际上并没有实际的时序信息,实际 CELL 摆在哪里,两个 CELL 之间的走线延时等信息都是没有的,因为这个时候还没有布局布线,两个的位置都是不确定的,自然没有这些信息。当位置确定之后,才会真正的去提取这些延时信息(Extrat RC) ,然后再做布局布线之后的 STA,此时的 STA 相较于综合时的 STA,拿到的延时信息就是更真实的!包括时钟,也是插了时钟树之后真正的时钟走线,时钟路径的延时也是更真实的。 如果布局布线之后还有不满足时序的地方,也会退回去前面的阶段进行修改。
    • 时序成功之后,这时候才是最真实的,前面综合的话相当于是一个负载模型,相当于认为线之间是有一个负载的,同时时钟也会做一个 “过约(正常要跑 100M,但是综合以 120M 等更高的频率进行约束)”,因为这个时候线负载是按照一个理想模型的,到了后端之后,则会按照真实的 100M 去跑了,线负载跟真实之间有一点差异的的话,那么还有 20M 的余量来消除 gap。
  • DRC:时序 timing 满足之后,接下来会做设计规则检查(Design Rule Check,简称 DRC),这个也是工具自动完成的!
  • LVS:DRC 没有问题之后,会做一个版图电路图一致性检查(Layout Versus Schematic,简称 LVS),相当于整个版图布完之后与 Netlist 的一个对比,类似跟 RTL 对比用了一个 FM 一样,这里就是进行一个:后端要交付的版图与前面进来的网表进行逻辑性功能对比
  • 后仿真:这里更多的是仿功耗,看电源的完整性,PR 会把电源网络加入进去,看电源网络诸如 IR DROP 是否过大,某处 std cell 某处的密度过大,导致散热不均匀,时间长了会把芯片烧毁,对器件寿命有影响。
后端大部分工作由工具自动完成,前端的 RTL Code 以及功能仿真环境用例,都需要人去分析需求规格,去写测试点,写测试策略测试方案,后端来讲主要是一个 Netlist,是一个比较死的东西,大部分工作都是由工具完成!

十一、VLSI 设计流程(再次总结)

notion image
  • 首先再来详细介绍下前端设计中的 DFT 实现:DFT 实现是在网表中插入,主要做两件事情:①、插 ScanChain ②、插 MBist。为芯片流片之后的制造测试做准备,芯片制作是在一个 wafer 上面完成的,这个 wafer 实现逻辑电路通常会通过光刻、腐蚀等一系列流程,把 CMOS 管子在 wafer 上给做出来。这个过程不可避免的出现一些问题,比如腐蚀的剂量多了一点、光刻深度多了一点,导致 CMOS 功能就可能不是按照我们正常的功能在运行了,或者有些走线 stuck,短路等故障,所以需要做 DFT 电路。
    • ①、 ScanChain :在芯片回来之后,通过 DFT 的 ATPG(Automatic Test Pattern Generation)自动产生测试 Pattern ,然后通过芯片的 IO,把 Pattern 灌进去,这样也就会把整个芯片里面的 D 触发器串成一个链,然后再把 Pattern 输出。那么 D 触发器一方面要实现要求的逻辑功能,一方面要实现测试(ATE),此时会在 D 触发器的输入会接一个 MUX,这个 MUX 有两路这两路功能。MUX 的使能端是 SE(Scan Enable),测试的输入端 ATE 是 SI(Scan Input)。
    • ②、MBist:内建自测试,做逻辑的话我们会遇到大量的逻辑存储单元(Memory),数字电路的逻辑单元有两种方式可以实现:①、通过 D 触发器来搭,但是面积会比较大 ②、定制 Memory,但是是模拟的 IP。通常对于 D 触发器我们可以进行 ScanChain 这样一个测试,那么对于 Memory 这个模拟 IP,我们会进行 Mbist(Memory Burn-In Scan Test)测试,Burn-In 表示天生的,即整个 Pattern 是 Memory 自己外面包了一层可以自己产生向量的电路,它会对 Memory 所有空间会进行一个遍历性测试。它跟 D 触发器的 ScanChain 不一样,ScanChain 是接到芯片的 IO 的,需要通过外面的测试基台,给他灌激励完成这个测试,但是 Memory 是不需要外部基台灌激励的,它是内部的电路自己产生的测试 Pattern ,只需要给它一个使能信号,让它自己测就可以了!
notion image
从上述的《VLSI 设计流程图》中我们可以看出,整个 ASIC 设计与实现的
每个阶段都是需要做相应的验证工作
的!甚至包括设计规格书书写完毕后也要进行一个 Review 环节进行验证。整个设计流程是先有市场需求,这也是最主要的,芯片能不能两场,能不能卖的好,没有市场需求评估,芯片做的再好也无济于事。接下来是编写芯片架构规格书,紧接着从以下三个方面并行开展工作:I、功能验证;II、ASIC 设计与实现;III、性能指标
I、功能验证
在功能上确保每一步设计与实现的流程转换时,能够保证它的逻辑不要变形,所以在《II、ASIC 设计与实现》各个阶段都对应有不同的验证手段和工作。
  • 本专栏主要学习的验证是图中的功能仿真部分,但是这个功能仿真并不是等代码出来才进行,而是从架构书出来就有了,会去写参考模型、测试规划(Test Plan)和分解各个测试点,同时根据架构书的功能点,梳理出要去验证哪些功能点,然后根据这些功能点搭建环境,搭建完毕之后,还需要把环境给调试好。这个时候,RTL 代码出来之后,才会把 RTL 代码(DUT)集成到验证环境下,进行功能验证,当功能验证通过之后,才会正式的去做逻辑综合。但是在实际工程操作的时候,会给一些初步的代码给综合工程师,但是那个综合仅仅是为了调试环境,并不是正式交付。
  • 功能仿真是保证我们的 RTL Code 与规格的 Spec 保持一致,所以有时功能仿真也会回头对比甚至更改设计规格书.,因为此时会设计出很多验证的边界,这些边界是在最开始书写设计规格书期间是体现不出来的,此时会针对设计本身的边界去构造一些用例和测试点。
  • 形式验证是进一步保证综合后的 Netlist 与 RTL 之间的逻辑一致性,所以每一步转换都要做一些验证性的工作,保证每一步转换的逻辑是等效的,以防出现问题,影响后续环节!
  • 另外逻辑综合后也会做一些门级仿真,但是这个门级仿真只是跑少量的用例,不会通过它来保证整个的逻辑功能,因为综合网表跑起来很慢,网标级的描述即门级描述,基于门级的话,DUT 信息就很多了!要 EDA 工具去跑的话,会非常慢!
  • 接下来是 DFT 验证,确保 DFT 本身的电路是没有问题的,DFT 验证与上面的功能仿真验证时类似的,当然 DFT 的验证没有功能验证做的那么复杂,因为它的电路结构一般比较固定,所以一般直接集成先前项目的 DFT 验证环境直接跑就可以,并且他的功能也没有 RTL 那么复杂。
  • 接下来当进行自动布局布线后,也会去做形式验证。此时是为了确保布局布线之后的网表与综合的网表逻辑是一致的,而综合的网表逻辑要求与 RTL 逻辑功能一致,这样就能确保布局布线之后的版图逻辑功能与 RTL 一致。
  • 同时自动布局布线后,也会去做后仿。但是此时最主要的并不是为了看我们的功能,而是看我们的功耗和电源分布,是否有过热的点,IR DROP 是否可以满足等。
  • 最后还有一个版图验证(LVS),保证最终要流片的东西,与布局布线的网表功能是一致的。
III、性能指标
更多的是从性能的维度,来看看我们在《II、ASIC 设计与实现》的每个阶段,需要去做哪些事情。
  • 在设计规格书阶段,需要去关注速度(时钟频率能跑多高)和功耗(是否可以达到预期要求),当然了,速度和功耗也是一对 tradeoff(性价比)的东西,速度高,功耗肯定就比较大。这就需要设计来做一个平衡折中(tradeoff)。
  • 在 RTL Coding 阶段,会去做一些低功耗设计,当然在设计规格书阶段也会把(低)功耗的策略考虑进去,此时更多的是做一个门控时钟的工作(Clock Gating),主要是通过代码的风格来保证!
  • 在逻辑综合阶段,就会涉及到时序约束和低功耗约束(Universal Power Format,简称 UPF),即本来时钟是跑的 100M,但是综合的时候可能会按照更高的频率 120M 去约束,会留个 20M 的余量,因为综合这个阶段的时序是一个负载模型,即 CELL 的位置、CELL 的距离、走线延时等信息都不是真实的,这个时候是用的一个假的模型来代替的,很简单的模型。所以会做一些过约束,留下一些余量。
    • 低功耗约束(UPF)是描述整个的 power 划分,通过划分在进行综合的时候,也是对综合结果的一个约束。
  • 综合完毕后,在上述两个约束条件下, 生成综合时序报告和功耗分析报告。根据报告再去迭代修改约束甚至代码。
  • 对于后端自动布线的阶段也会做静态时序分析,主要是针对不同的阶段。一个时序分析是在 Pre-Layout,即 Layout 之前;一个时序分析是在插了时钟树(Clock Tree,简称 CTS)之后,此时时钟的时序路径就更真实了;最后一个时序分析是在 Post-Layout,即版图固定好了。同时也会进行一个低功耗的分析,在后端做低功耗更多的是一个 CELL 的替换,看看某些路径或 CELL 的时序余量(Margin),如果余量(margin)很大,那么会替换成 cell 比较小的,如:从 “x4” 换成 “x2”。驱动越小,CELL 的延时会越大,对于 setup hold 的满足就会越困难。通过 timing 分析发现它的时序是有余量的,我们将其降成“x2” 也可以满足的话,我们就换替换 cell。即该阶段的低功耗分析主要是替换 cell 的类型,将时序路径比较好的 cell 替换成功耗比较低的 cell。但是这个阶段的功耗收益一般不大,能有 5%。所以低功耗设计的最主要的还是最初的设计架构,工艺选型,Power Format 的划分,需求的优化控制,这些对功耗影响很大。对于后端阶段,虽然也会去做低功耗,但是从系统角度来讲,优化的收益比例不是那么大。
  • 对于版图的话,会再去做最后的时序收敛(Timing Signoff),所以 Timing 这个东西其实很关键,因为只要有任何一个点 Timing 不满足,那么前面逻辑功能做的再好,最后芯片还是有缺陷。所以除了功能要 OK,性能上的 Timing 也要 OK。功能上保证了逻辑性(Loigc),Timing 保证了物理实现。【Timing 是 D 触发的 CELL 的要求,即物理期间的要求】
  • 最后也会看功耗 / IR Drop 的分析,主要看 IR Drop,即不能有过热的点,IR Drop 过大,会导致整个散热不均匀,器件长期运行会烧毁或缩短寿命,加速它的老化等。
最后再来看一下《VLSI 设计流程图》最右侧的工艺库
工艺库中的器件,我们都称之为 std cell,这个工艺库是流片厂商(Fab)提供的!
  • 在前端阶段我们使用的是一个逻辑库,CELL 能体现的是某个逻辑功能(与或非)。
  • 在后端阶段,CELL 更多体现的是它的物理特性和电气特性,如 CELL 的工作电压、负载、电容容抗 cap、功耗等特性。当然这里物理库是包含了逻辑库的逻辑信息的!
中国芯片行业现状芯片前端设计岗位分析
  • Twikoo
  • Waline
  • Giscus
  • Cusdis
  • Utterance
Conor
Conor
一个野生的技术宅
公告
type
status
date
slug
summary
tags
category
Property
Nov 25, 2023 06:32 AM
icon
password
属性
属性 1
描述
Origin
URL
🎉持续更新中🎉