数字IC后端流程

合集下载

数字集成电路后端设计的一般流程

数字集成电路后端设计的一般流程

数字集成电路后端设计的一般流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!数字集成电路后端设计的一般流程详解在电子工程领域,数字集成电路(Digital Integrated Circuit,简称IC)的后端设计是将电路设计转化为物理实现的关键步骤。

数字 IC top-down 设计流程

数字 IC top-down 设计流程

Mentor 的 Leonardo Spectrum。 4. 形式验证 是从功能上对综合后的网表进行验证。常用的就是等价性检查方法,以 HDL 为 参考,对比综合生 成的网表功能,验证他们是否在功能上存在等价性。这样做是为了保证在逻辑 综合过程中没有改变 原先 HDL 描述的电路功能。形式验证工具有 Synopsys 的 Formality,Mentor 的 FormalPro。 这些都没有问题了就可以进入后端设计了。
度。 11.整体物理版图验证 主要包括 LVS,DRC,ERC(Electrical Rule Checking 电气规则检查,检查短 路,开路等电气规 则违例)。工具前面已经介绍,这一步的完成基本上就是是整个芯片设计阶段 完成,下面的就是芯 片制造了。物理版图以 GDSII 的格式交给掩膜版厂做掩膜,然后到芯片代工厂 (Foundry)流片(tape out),在晶圆硅片上做出实际的电路。流片出来后要对样片进行各种测试,满 足要求后就可以批量 生产了。 附: DFT(Design For Test 可测性设计)。IC 设计时内部往往都设计为自带测试电 路的结构,DFT 的目 的就是在设计的时候就考虑将来的测试。DFT 的常见方法就是,在设计中插入 扫描链,将非扫描单元 (如寄存器)变为扫描单元,DFT 工具 Synopsys 的 DFT Compiler,Mentor 的 FastScan 等,需前后端设 计员合作,并参与 tapeout 后测试。还有随着制造工艺不断进步产生的 DFM (可制造性设计)问题等 等。 总结: Specification ->Architecture->RTL->SIM->DC->SIM->PT->DC->ASTRO->PT>DRC,LVS,ERC->TAPE OUT 数字 IC 设计中常见文件格式: .alf:Advanced Library Format describing IC technology, cells and blocks .cif:Caltech Intermediate Format,纯文本的中间文件,主要用于版图的导 入输出,不用于生产 .ctlf:Compiled Timing Library Format .db:data base .def:design exchange format .dspf:寄生参数交互格式 .edif:Electronic Data Interchange Format .gcf:General Constraint Format .GDSII: Graphic Design System II,Foundry 最常用的最终版图格式 .lef:Layout Exchange Format .lib:DC 工具用的库文件格式 .sdf:增量标准延时格式,用作静态时序分析模块 Prime Time 的输入 .spef:标准寄生参数交换格式 .tdf:工艺库对 pad 的定义文件 .tf :Technology File format .tlf:timing library format

IC设计后端流程

IC设计后端流程

IC设计后端流程1. 物理设计(Physical Design):物理设计是将逻辑实现转化为布局和电路图的过程。

这个过程包括几个重要的步骤:-针对不同目标和约束进行电气特性分析和规划。

-进行物理分区和布局设计,在芯片上规划各个模块的位置和大小,并控制电路的连线密度和线长。

-进行电源网络设计,确保芯片内部各个模块的电源供应稳定。

-进行时序和容忍度等电性约束的分析和完成。

- 进行时序收敛(Timing Closure),优化电路以达到时序要求。

-进行时钟树设计和布线,确保时钟信号的传输稳定性和可靠性。

-进行信号连线布线,满足电性约束并最小化线长,以减小功耗、提高性能和降低突发噪声。

- 进行DRC(Design Rule Check)和LVS(Layout vs Schematic)等验证。

2. 标准细胞库设计(Standard Cell Library Design):标准细胞库是一组预先设计好的、可重复使用的、具有标准接口的逻辑门和存储器单元的集合。

在这个过程中,需要:-设计标准细胞的逻辑和物理结构,以及相应的特性和工艺库。

-进行标准细胞的电源和地设计,以提供正确的电源和地连接接口。

-进行标准细胞的物理特性模拟和验证,以确保其满足设计要求。

3. 物理验证(Physical Verification):物理验证是对物理设计结果进行各种检查的过程,以确保设计的正确性、规范性和可制造性。

主要包括以下环节:-设计规则检查(DRC):检查设计是否符合制造厂商的设计规则,包括线宽、线距、开孔等。

-电路规则检查(ERC):检查设计是否符合电路连接和功能规则,包括电压等级、电压偏置等。

-布局与原理图一致性检查(LVS):检查布局和电路图是否一致。

-容忍度分析和优化:分析设计中的容忍度并进行优化,以提高电路的可靠性和稳定性。

-功耗分析和优化:分析设计中的功耗并进行优化,以减小芯片的功耗。

-可制造性分析:分析设计是否可制造,并针对可制造性问题进行修复。

数字ic设计流程与模拟IC

数字ic设计流程与模拟IC

数字ic设计流程与模拟IC1. 首先是使用HDL语言进行电路描述,写出可综合的代码。

然后用仿真工具作前仿真,对理想状况下的功能进行验证。

这一步可以使用Vhdl或Verilog作为工作语言,EDA工具方面就我所知可以用Synopsys的VSS(for Vhdl)、VCS(for Verilog)Cadence的工具也就是著名的Verilog-XL和NC Verilog2.前仿真通过以后,可以把代码拿去综合,把语言描述转化成电路网表,并进行逻辑和时序电路的优化。

在这一步通过综合器可以引入门延时,关键要看使用了什么工艺的库这一步的输出文件可以有多种格式,常用的有EDIF格式。

综合工具Synopsys的Design Compiler,Cadence的Ambit3,综合后的输出文件,可以拿去做layout,将电路fit到可编程的片子里或者布到硅片上这要看你是做单元库的还是全定制的。

全定制的话,专门有版图工程师帮你画版图,Cadence的工具是layout editor单元库的话,下面一步就是自动布局布线,auto place & route,简称apr cadence的工具是Silicon Ensembler,Avanti的是Apollo layout出来以后就要进行extract,只知道用Avanti的Star_rcxt,然后做后仿真,如果后仿真不通过的话,只能iteration,就是回过头去改。

4,接下来就是做DRC,ERC,LVS了,如果没有什么问题的话,就tape out GDSII格式的文件,送制版厂做掩膜板,制作完毕上流水线流片,然后就看是不是work 了做DRC,ERC,LVSAvanti的是Hercules,Venus,其它公司的你们补充好了btw:后仿真之前的输出文件忘记说了,应该是带有完整的延时信息的设计文件如:*.VHO,*.sdfRTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC,LVS--->TAPE OUT1。

IC后端流程

IC后端流程

IC后端流程物理设计是指将逻辑设计的电路转化为实际的二维或三维布局,并进行时序分析和电源规划等工作。

物理设计流程主要包括:1. 高层综合(High-Level Synthesis):将逻辑设计中的高级语言描述(比如Verilog或VHDL)转化为RTL级(Register Transfer Level)的电路描述。

2. 逻辑综合(Logic Synthesis):将RTL级电路描述转换为门级(Gate-Level)的逻辑网表,实现逻辑优化以精简电路规模和提高性能。

3.时序约束:在逻辑综合的基础上,制定时序约束,包括时钟频率、输入输出时序、时钟分频等,以保证电路的正确功能和时序性能。

4. 布局设计(Layout Design):将门级逻辑网表进行物理布局,确定电路中各个元件(比如门、寄存器)的相对位置和连线的走向,以满足电路的性能、功耗和几何约束。

5. 连线设计(Routing Design):根据布局设计结果,进行连线布线,包括选择连线层次、路由器设置、连线规则等,以确保电路的连接和稳定性。

6. 特殊器件布局(Placement of Special Devices):针对一些特殊性能要求的电路元件,进行专门的布局设计和优化,以实现电路性能的最佳化。

验证是指对设计的逻辑正确性、时序性能和功能进行验证和检查。

验证流程主要包括:1. 仿真测试(Simulation Testing):通过对设计的逻辑电路进行仿真验证,对设计进行功能和性能的测试,以保证电路的正确性和稳定性。

2. 时序分析和优化(Timing Analysis and Optimization):对电路设计进行时序分析,确定时钟频率、数据传输速率、时钟延迟等,以优化电路的时序性能。

3. 功耗分析和优化(Power Analysis and Optimization):对电路设计进行功耗分析,确定功耗峰值、功耗分布、功耗控制等,以优化电路的功耗性能。

ic设计流程

ic设计流程

ic设计流程
IC设计(Integrated Circuit Design)是指将电子元器件和电路集成到单个芯片上的过程。

它经历了几个主要的流程,包括前端设计、物理设计和后端设计。

以下是每个流程的详细介绍:
前端设计流程:
前端设计流程是指在编写RTL代码后,将其转换为物理设计中的网表(Netlist)的过程。

这是芯片设计过程中的第一步。

此流程包括各种步骤,如功能验证、RTL设计、综合、时序分析和设计约束。

物理设计流程:
物理设计流程是指将RTL代码(硬件描述语言)转换为芯片的物理结构的过程。

这涉及到的主要任务包括物理验证、布局设计、时钟设计、布线和静态时序分析等。

后端设计流程:
后端设计流程是指在芯片物理结构设计后,进行后续的电路细节设计、验证和优化的过程。

该过程包括各种步骤,如电路模拟、电路提取、电路优化、时序确认和信号完整性验证等。

综上所述,IC设计流程是一个复杂的过程,需要经过多个阶段的设计和验证。

仔细规划和执行这些流程,可以确保芯片能够满足性能和可靠性方面的要求,同时也可以提高设计效率和降低开发成本。

IC设计的前端和后端

IC设计的前端和后端

IC设计的前端和后端IC设计(Integrated Circuit Design)是集成电路设计的简称,是指将电子元器件(如晶体管、电容、电阻等)集成在单块芯片上的过程。

IC设计的工作可以被分为前端设计和后端设计两个阶段。

前端设计阶段主要包括了系统级设计、电路设计和逻辑设计。

这个阶段的目标是将产品的功能要求转化为电路的构建与连接方式。

首先是系统级设计,它是IC设计的第一步,主要负责根据产品需求将系统功能分解为不同的模块,并明确各模块之间的连接关系和通信方式。

系统级设计的工作常常需要将电路设计和软件设计结合起来,以保证产品能够顺利实现其功能需求。

接下来是电路设计,这个阶段主要关注电路的性能和功耗等方面。

在电路设计中,设计师需要选择合适的电子元器件,并通过优化和调整电路结构来满足设计要求。

这个过程通常会使用各种电路仿真和分析工具来验证电路的性能和功能。

最后是逻辑设计,这个阶段主要是将电路连接起来并组成逻辑功能。

设计师需要根据电路的连接关系和功能要求,使用数字电路模块(如逻辑门和触发器等)来构造复杂的数字逻辑电路。

逻辑设计的结果通常是一个逻辑电路的电气原理图。

在前端设计阶段,设计师还需要考虑一些重要的设计规范,如功耗、电磁兼容和故障容忍性等。

他们需要根据产品需求和可用技术,选择合适的设计方法和电子元器件,以满足这些设计规范。

一旦前端设计完成,后端设计阶段就开始了。

后端设计主要包括物理设计和芯片制造。

物理设计是将逻辑设计转化为实际的物理结构的过程。

物理设计的工作包括了芯片布局和电路布线两个方面。

芯片布局是将各种模块和电路排列在芯片的空间内,以最小化芯片的面积和功耗,并提高电路的性能和可靠性。

电路布线是将逻辑电路中的连线和通信路径具体地映射到芯片上的金属导线中,以保证信号传输的可靠性和延迟要求。

物理设计往往需要借助计算机辅助设计(CAD)工具完成。

芯片制造是将物理设计转化为实际的芯片的生产过程。

芯片制造的工作包括了掩膜制作、晶圆制造、半导体工艺、刻蚀、沉积、薄膜制备、金属化和封装等环节。

IC设计的前端和后端

IC设计的前端和后端

IC设计的前端和后端IC设计是指集成电路设计,是一个集成芯片的整个设计过程,包括前端设计和后端设计两个阶段。

前端设计主要负责电路功能的设计和验证,后端设计则负责物理布局和相关验证。

前端设计(Front-end Design)前端设计是IC设计的第一阶段,也被称为电路设计阶段。

在这个阶段,设计工程师根据芯片规格和功能需求,设计电路的逻辑结构、电路结构以及模块之间的连接关系。

这个过程包括电路结构及逻辑设计、功能验证、性能仿真和验证等一系列步骤。

首先,设计工程师使用硬件描述语言(如VHDL或Verilog)来描述集成电路中的逻辑功能,并使用设计工具(如EDA工具)进行逻辑合成,将高级电路描述转化为低级门级描述。

接下来,通过功能验证来验证设计的正确性。

功能验证主要是通过软件仿真和硬件验证两个步骤进行。

设计工程师使用功能仿真工具对设计的英文进行仿真,验证电路功能是否符合规范和需求。

同时,还需要进行一定的硬件验证,通常使用FPGA等硬件平台进行验证。

此外,性能仿真也是前端设计的重要一环。

通过性能仿真,设计工程师可以对电路的性能进行评估和调优。

性能仿真可以提供电路的时序图、功耗等关键指标,以帮助设计工程师对电路进行优化调整。

前端设计的最终目标是得到一个功能完善、性能良好的电路设计,以供后端设计做进一步的物理布局和验证。

后端设计(Back-End Design)后端设计是IC设计的第二阶段,也被称为物理设计阶段。

在这个阶段,设计工程师将前端设计得到的逻辑电路进行物理布局和验证。

物理布局是指将逻辑电路映射到芯片上的具体位置,以及确定电路中各个元器件之间的物理连接关系。

首先,设计工程师需要根据芯片规格和布局约束,对芯片进行合理的分区划分,并确定各个区域的功能和布局要求。

然后,将逻辑电路进行细化和分解,对各个模块进行物理布局。

物理布局完成后,需要进行布局验证。

布局验证主要是验证电路的连通性、功耗分布、信号延迟等物理指标是否达到设计要求。

数字IC后端流程

数字IC后端流程

11.Tape out。在所有检查和验证都正确无误的情况下把最后的版图GDSⅡ文件传递给Foundry厂进行掩膜制造。
2.布局规划。主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定下来了。如果必要 在自动放置标准单元和宏单元之后, 你可以先做一次PNA(power network analysis)--IR drop and EM .
6.ECO(Engineering Change Order)。针对静态时序分析和后仿真中出现的问题,对电路和单元布局进行小范围的改动.
7.Filler的插入(pad fliier, cell filler)。Filler指的是标准单元库和I/O Pad库中定义的与逻辑无关的填充物,用来填充标准单元和标准单元之间,I/O Pad和I/O Pad之间的间隙,它主要是把扩散层连接起来,满足DRC规则和设计需要。
8.布线(Routing)。Global route-- rack assign --Detail routing--Routing optimization 布线是指在满足工艺规则和布线层数限制、线宽、线间距限制和各线网可靠绝缘的电性能约束的条件下,根据电路的连接关系将各单元和I/O Pad用互连线连接起来,这些是在时序驱动(Timing driven ) 的条件下进行的,保证关键时序路径上的连线长度能够最小。--Timing report clear
那你可用write_milkway, read_milkway 传递数据。
4.时钟树生成(CTS Clock tree synthesis) 。芯片中的时钟网络要驱动电路中所有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。---Clock skew.

芯片后端设计工作内容

芯片后端设计工作内容

芯片后端设计工作内容芯片后端设计是指在芯片的制造过程中,负责实现芯片电路的物理布局和连接设计的工作。

它是芯片设计流程中的重要环节,直接影响芯片的性能、功耗和面积等关键指标。

芯片后端设计的第一步是物理布局设计。

这一步骤主要包括将逻辑电路转换为物理电路的过程。

设计师需要根据芯片规格书中的要求,将各个逻辑单元进行合理的布局,以确保芯片的性能和功耗。

布局设计需要考虑到各个逻辑单元之间的电路连通性、功耗和面积等因素,同时还要考虑到芯片的制造工艺和成本等因素。

芯片后端设计的第二步是电路连接设计。

在布局设计完成后,设计师需要将各个逻辑单元通过电路连接起来,形成完整的芯片电路。

电路连接设计需要考虑到电路的延迟、功耗和面积等因素,以及电路的可靠性和抗干扰能力等因素。

设计师需要根据芯片规格书中的要求,合理地选择电路连接方案,并进行模拟和优化,以满足芯片的性能要求。

芯片后端设计还包括时钟树设计和功耗优化等工作。

时钟树设计是指将时钟信号传输到芯片各个逻辑单元的过程。

时钟信号的传输需要考虑到时钟的频率、时钟的延迟和功耗等因素,以及时钟的稳定性和抖动等因素。

设计师需要通过合理的时钟树设计,确保时钟信号能够准确地传输到每个逻辑单元,以保证芯片的正常工作。

功耗优化是芯片后端设计中的一个重要任务。

由于现代芯片的功耗越来越高,功耗优化成为了芯片设计的关键问题。

设计师需要通过合理的电路设计和布局布线,减少芯片的功耗。

功耗优化需要综合考虑电路的功耗、面积和性能等因素,以达到功耗和性能的平衡。

芯片后端设计还包括设计规则检查和物理验证等工作。

设计规则检查是指对设计的芯片电路进行规则性检查,以确保芯片的布局和连接符合芯片制造工艺的要求。

物理验证是指对设计的芯片电路进行物理仿真和验证,以确保芯片的性能和功能符合设计要求。

芯片后端设计工作内容包括物理布局设计、电路连接设计、时钟树设计、功耗优化、设计规则检查和物理验证等多个方面。

设计师需要综合考虑电路的性能、功耗和面积等因素,以及芯片制造工艺和成本等因素,进行合理的设计和优化,以实现高性能、低功耗的芯片设计。

ic后端设计copy register

ic后端设计copy register

ic后端设计copy register什么是IC后端设计?IC后端设计是指在集成电路(IC)设计流程中的最后一阶段,包括物理布局、布线、验证和完成芯片设计的准备工作。

IC后端设计的目标是将逻辑设计转化为物理布局和电路网络,并最终生成完整的芯片设计文件,以便于后续的制造和生产。

IC后端设计的重要性IC后端设计在整个芯片设计过程中扮演着关键角色。

它不仅决定了芯片的最终性能和功耗,还对芯片的可靠性、成本和制造周期等方面产生直接影响。

因此,一个优秀的IC后端设计是保证芯片品质和市场竞争力的重要因素。

IC后端设计主要阶段IC后端设计包括以下几个主要阶段:物理布局(Physical Layout):在物理布局阶段,设计师将逻辑设计转换为物理结构,包括芯片的宏观布局、区域划分和单元位置等。

物理布局的目标是优化芯片的面积利用率、时序性能和电磁兼容性。

布线(Routing):在布线阶段,设计师为芯片的电路网络分配通路,并通过布线规则引导信号的传输。

布线的目标是最小化延迟、功耗和噪声,并保证电路网络的电气特性达到设计规范。

验证(Verification):在验证阶段,设计师对已布局和布线的芯片进行各种功能和性能验证。

验证包括功能仿真、时序分析、功耗分析和电气规范验证等。

通过验证,设计师可以确保芯片的功能正确性、时序满足要求,并评估功耗和电磁兼容性等关键指标。

完成(Finish):在完成阶段,设计师进行最后的设计修复、优化和准备工作,以确保芯片设计满足制造要求。

这包括填充布局空白、生成详细的制造规则文件、生成物理设计数据库等。

IC后端设计流程IC后端设计的流程是一个迭代过程,包括以下几个基本步骤:1. 物理布局规划:根据芯片需求和性能目标,制定合适的物理布局策略,包括宏观布局、区域划分和单元位置等。

2. 布局迭代优化:通过不断调整和优化,改善布局的性能和面积利用率。

常用的布局优化方法包括缩小面积、减少功耗、提高时序性能等。

数字IC后端设计流程

数字IC后端设计流程

ASIC/SoC后端设计作业流程剖析关键词place route DSM megacell clock_tree STA OPT ECO引言众所周知,ASIC产品是从用硬件描述语言(verilog HDL,VHDL)开始进行数字逻辑电路设计的,经过相关的仿真、综合出门级网表、验证直至完成电路布局布线并优化,最终经流片成功形成的芯片产品。

随着中国经济的持续稳定地增长,国内生产厂家对IC需求增长势头强劲与自身设计IC能力薄弱的突出矛盾已经被国家和企业认识。

为了缓解这一矛盾并更多地实现IC自主设计,近两年国内陆续出现了一些著名的传统通信系统厂商设立的IC设计队伍,以及归国留学人员领头创办的创业型IC设计公司,他们大多数有相当强的前端设计能力,但在IC后端设计领域的实践经验还较欠缺。

在完成前端逻辑设计综合出门级网表后,真正能做好后端设计的公司还不多,有的则通过委托设计服务的方式完成后端布局布线及流片。

本文作者有多年从事覆盖前后端IC设计全流程并有每年几次成功流片数百万门级深亚微米SoC 的经验,并担任IC设计的项目管理工作,对国外大公司的设计流程十分熟悉,并愿意就积累的经验与国内同行分享交流,以利于国内IC设计水平的提高。

本文着重介绍国内设计公司薄弱的后端设计,介绍其流程并对在设计过程中的关键步骤进行一些讨论。

传统的后端设计流程指的是从门级网表(gate level netlist)开始的,根据设计要求的不同,后端流程可以分为扁平流程(flat flow)和层次化流程(hierarchy flow)两种,在深亚微米DSM(deep sub-micron)领域,又增加了布局加逻辑合成的前后端合二为一的扁平流程(flat flow)和分层流程(hierarchy flow)。

我们首先介绍传统的两种后端流程。

前后端合一的流程将作为另一个专题在以后讨论。

一、扁平流程(Flat flow)介绍最简单的后端设计是扁平(flat)流程,一般四百万门以下的设计均可使用这一流程。

数字电路IC后端流程简介

数字电路IC后端流程简介
Number and name designations for each layer/via Physical and electrical characteristics of each layer/via Design rules for each layer/Via (Minimum wire widths and wire-to-wire spacing, etc.) Units and precision for electrical units Colors and patterns of layers for display …
save_mw_cel –as ORCA_data_setup
Note: The open cell is still the original ORCA cell !!
2015/9/20
23
西安邮电大学微电子学系
数字IC后端流程
CMOS集成电路版图
Data Setup
Design planning Placement
CMOS集成电路版图
2015/9/20
19
西安邮电大学微电子学系
7. Define Logical Power/Ground Connections
CMOS集成电路版图
2015/9/20
20
西安邮电大学微电子学系
8. Apply and Check Timing Constraints
CMOS集成电路版图
输入输出单元(I/O pad cell)
输入 输出 三态 双向
2015/9/20
考虑 ESD
8
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
Physical Reference Libraries

数字IC设计流程与工具讲义

数字IC设计流程与工具讲义

数字前端设计流程-13 形式验证
静态时序分析检查了电路时序是否满足要求,而 形式验证检查了电路功能的正确性。 形式验证工具本质是一个比较器!其功能就是比 较两电路功能是否完全一致。 由于在综合过程中电路节点名称可能改变,因此 可以使用形式验证工具找到RTL代码中节点在网表 中的对应节点。
数字前端设计流程-14 逻辑锥
vs CT Inserted Netlist)
Auto Routing
DRC,LVS,ECO
Formal Verification (ECO Netlist vs
CT Inserted Netlist)
Post-layout STA
Power check
Timing OK? Yes
Tape Out
DC MODELSIM MBISTARCHITECT FORMALITY
原理是相同的! 关键在于综合目标不同。FPGA综合是将逻辑映 射为FPGA器件资源(如LUT,REG,MEM-BLOCK); ASIC综合是将逻辑映射为标准单元(如门电路,寄 存器,RAM,ROM)。 标准单元库中对于某一种功能的门电路具有不同 版本,分别对应不同驱动能力。
数字前端设计流程-6 使用DC综合
步骤可以归纳为: 1.指定综合使用的库 2.根据符号库将行为级模型 转换为逻辑网表(由逻辑单 元GTECH构成) 3.指定综合环境以及约束 4.进行综合,根据约束将逻 辑网标映射为实际网表(由 标准单元构成) 5.优化网表 6.输出综合结果
数字前端设计流程-5 使用DC综合
ASIC的综合与FPGA的综合有什么不同?
= 0.41 = 0.46 = 0.41 = 0.46 = 0.41 = 0.46 = 0.41 = 0.96

IC后端流程(初学必看)

IC后端流程(初学必看)

校外IC后端实践陈述之袁州冬雪创作本教程通过对synopsys公司给的lab停止培训,从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那末简单就完成的),此教程的目标就是为了让大家尽快懂得数字IC设计的大概流程,为以后学习建立一个基础.此教程只是自己探索实验的成果,其实不代表内容都是正确的,只是为了说明大概的流程,外面一定还有很多未完善而且有错误的地方,我在此后的学习当中会对其逐一完善和修正.此后端流程大致包含一下内容:1.逻辑综合(工具DC 逻辑综合是干吗的就不必诠释了把?)2.设计的形式验证(工具formality)形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包含综合前RTL代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表停止动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格(设计周期短)的asic设计来讲是不成容忍的,而形式验证只用几小时即可完成一个大型的验证.别的,因为版图后做了时钟树综合,时钟树的拔出意味着进入布图工具的原来的网表已经被修改了,所以有需要验证与原来的网表是逻辑等价的.3.静态时序分析(STA),某种程度上来讲,STA是ASIC设计中最重要的步调,使用primetime对整个设计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新停止综合.(PR后也需作signoff的时序分析)4.使用cadence公司的SOCencounter对综合后的网表停止自动规划布线(APR)5.自动规划以后得到详细的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到网表,再做静态时序分析,与综合近似,静态时序分析是一个迭代的过程,它与芯片规划布线的接洽非常慎密,这个操纵通常是需要执行许多次才干知足时序需求,如果没违规,则进入下一步.6.APR后的门级功能仿真(如果需要)7.停止DRC和LVS,如果通过,则进入下一步.8.用abstract对此lab实验停止抽取,发生一个lef文件,相当于一个hard macro.9.将此macro作为一个模块在别的一个top设计中停止调用.10.设计一个新的ASIC,第二次设计,我们需要添加PAD,因为没有PAD,就不是一个完整的芯片,详细操纵下面会说.11.重复第4到7步1.逻辑综合1)设计的verilog代码2)综合之前,我们要选取库,写好约束条件,修改dc的启动文件,方针库选择TSMC(此设计都是用TSMC18的库)的typical.db.(选择max库会比较好)Dc的饬令众多,但是最基本的饬令差未几,此设计的约束文件饬令如下:create_clock -period 10 [get_ports clk] //用于时钟的创建set_clock_latency -source -max 0.2 [get_ports clk] //外部时钟到core的clk连线延时set_clock_latency -max 0.1 [get_ports clk] //core的clk到寄存器clk端的net连线延时set_clock_uncertainty -setup 2 [get_ports clk] //时钟延时的不确定性,求setup违规时会被计算出来set_clock_uncertainty –hold 1 【all_clocks】set_input_delay -max 0.5 -clock clk[get_ports [list [remove_from_coll [all_inputs] clk] ] //输入延时,外部信号到input端的连线延时set_output_delay -max 0.5 -clock clk [all_outputs] //输出延时set_driving_cell -lib_cell INVX4 [all_inputs] //输入端的驱动强度set_load -pin_load 0.0659726 [all_outputs] //输出端的驱动力set_wire_load_model -name tsmc18_wl10 -library typical //外部net的连线模子set_wire_load_mode enclosed //定义建模连线负载相关形式set_max_area 0compilereport_timingreport_constraintchange_names -rule verilog –hierset_fix_multiple_ports_net –all//输出网表,自动规划布线需要//输出ddc//输出延时文件,静态时序分析时需要//输出约束信息,自动规划布线需要3)逻辑综合启动design_vision.R输入约束文件.F4)时序分析综合以后我们需要分析一下时序,看时序是否符合我们的要求,综合实际上是一个setup时间的知足过程,但是我们综合的时候,连线的负载只是库提供的(即上面的wire_load),其实不是实际的延时,所以一般做完综合以后,时间余量(slack)应该为时钟的30%(经历值),以便为后面实际规划布线留下充足的延时空间.因为如果slack太小,甚至接近于0,虽然我们看起来是没有时序违规的,但是实际规划以后,时序必定无法知足.使用report_timing饬令,可以检查时序分析陈述:****************************************Report : timing-path full-delay max-max_paths 1-sort_by groupDesign : muxDate : Fri Jul 2 12:29:44 2010****************************************Operating Conditions: typical Library: typical(模子库)Wire Load Model Mode: enclosedStartpoint: data2[4] (input port clocked by clk)Endpoint: dataout_reg_15_(rising edge-triggered flip-flop clocked by clk)Path Group: clkPath Type: maxDes/Clust/Port Wire Load Model Library------------------------------------------------mux tsmc18_wl10 typical(线载模子及库)Point Incr Path--------------------------------------------------------------------------input external delay0.50 0.50 fdata2[4] (in)0.01 0.51 fmult_14/b[4] (mux_DW_mult_uns_0)0.00 0.51 fmult_14/U131/Y (INVX1) 0.54 1.05 rmult_14/U161/Y (NOR2X1) 0.14 1.18 fmult_14/U39/S (CMPR42X1) 0.68 1.87 fmult_14/U12/CO (ADDFX2) 0.32 2.19 fmult_14/U11/CO (ADDFX2) 0.23 2.42 fmult_14/U10/CO (ADDFX2) 0.23 2.65 fmult_14/U9/CO (ADDFX2) 0.23 2.88 fmult_14/U8/CO (ADDFX2) 0.23 3.10 fmult_14/U7/CO (ADDFX2) 0.23 3.33 fmult_14/U6/CO (ADDFX2) 0.23 3.56 fmult_14/U5/CO (ADDFX2) 0.23 3.79 fmult_14/U4/CO (ADDFX2) 0.23 4.02 fmult_14/U3/CO (ADDFX2) 0.23 4.25 fmult_14/U2/CO (ADDFX2) 0.22 4.47 fmult_14/product[15] (mux_DW_mult_uns_0) 0.00 4.47 fdataout_reg_15_/RN (DFFTRXL) 0.00 4.47 fdataout_reg_15_/CK (DFFTRXL) 0.00 10.20 r----------------------------------------------------------------------------------------------------------------------------------------------------我们来看以上陈述,dc陈述的时候会显示出关键途径,即延时最大的途径,时序分析包含两段,前面一段是信号的延迟时间,即data arrival time 为4.47,下面是计算要求时间,也即相对于时钟,设计所能忍受的最大延时,由于到达寄存器clk端延时,即clock network delay,所以设计增加了0.30的余量,同样由于时钟的不确定度(可以提前也可以延后0.1),我们取最坏情况,就是时钟超前0.1,则时间余量减去0.1,最后一个是门的建立时间要求,是0.19,最后得到数据的要求时间.Slack是要求时间减去到达时间的差值,slack越大越好.越大说明留给规划布线的时序越宽松.从陈述中我们看出,时序余量为5.55,说明时序达到了要求,足够知足我们以后规划布线的时序要求.当然,我们有专门的时序分析工具,primetime,下面会稍微先容.2.形式验证1)怎么包管综合前和综合后的网表逻辑功能是一致的呢,对门级网表停止动态仿真,又太华侈时间,于是,一款强大的验证工具formality,给了我们很好的帮忙.2)形式验证数据准备:综合前RTL代码,综合后的网表,综合所用到的库.3)验证过程如下:1.首先我们打开formality,饬令为fm_shell(饬令行界面),formality(图形界面).初学者一般使用图形界面,使用图形界面的时候,工具会自动发生一个log文件,记录饬令,我们可以将这个文件内容做一个fms格式,这样在下次验证的时候可使用饬令界面.2.打开formality如下第一步:首先我们加入原RTL代码,reference->read_design file->verilog->mux.v,选择好以后load file第三步:设置top名 reference->set top design 我们选择mux为top名同样的方法对网表停止设置(第二个菜单栏implementation)然后转到第四栏,点击run matching最后转到第五栏,verify,如果网表无错,会显示验证通过.3 静态时序分析静态时序分析主要针对大型ASIC设计,4 自动规划布线1)数据准备第一:需要综合后的网表以及时序约束第二:需要自动规划布线的物理库(lef文件,这里用到tsmc18_6lm_cic.lef, tsmc18_6lm_antenna_cic.lef)为了可以懂得lef文档的作用,这里对lef做简单的先容,lef一般分为两种:一种是技术物理库,主要包含工艺信息,设计规则信息,金属通孔信息等.下例是对金属一层的定义,TYPE指明METAL1是可布线层,WIDTH 定义的是METAL1的默许布线宽度,SPACING用于设定METAL1布线间距.DIRECTION HORIZONTAL指明METAL1是用于水平走线,当然这其实不料味着它不克不及垂直走线,在一些布线资源较少的区域,还是可以选择垂直布线的.详细先容,可以参考相关技术文档.LAYER METAL1TYPE ROUTING ;WIDTH 0.230 ;MAXWIDTH 9.9 ;AREA 0.202 ;SPACING 0.230 ;SPACING 0.6 RANGE 10.0 100000.0 ;PITCH 0.560 ;DIRECTION HORIZONTAL ;EDGECAPACITANCE 9.1090e-05 ;END METAL1别的一种就是单元物理库,定义了单元库中各单元的信息,文件又有两部分一种是SITE语句对规划(placement)最小单位的定义,另外一部分是采取MACRO语句对单元属性及几何形状的描绘,下例是对一个与门为例来看看lef是如何描绘它的.MACRO是单元定义的关键字,每个MACRO代表一个单元.CLASS core说明该单元是用于芯片的核心区,SIZE确定了单元的面积大小,比方5.04是代表该单元的高度,后面我们做单元供电route的时候,可以看到它们的宽度就是这个数值.再后面就是定义引脚A,B,Y,VDD,VSS等.MACRO AND2X1CLASS CORE ;FOREIGN AND2X1 0.000 0.000 ;ORIGIN 0.000 0.000 ;LEQ AND2XL ;SIZE 2.640 BY 5.040 ;SYMMETRY x y ;SITE tsm3site ;PIN YDIRECTION OUTPUT ;PORTLAYER METAL1 ;RECT 2.355 2.380 2.500 2.660 ; ENDEND YPIN BDIRECTION INPUT ;PORTLAYER METAL1 ;RECT 0.800 2.315 1.215 2.895 ; ENDEND BPIN ADIRECTION INPUT ;PORTLAYER METAL1 ;RECT 0.150 1.820 0.565 2.315 ; ENDEND APIN VSSDIRECTION INOUT ;USE ground ;SHAPE ABUTMENT ;PORTLAYER METAL1 ;RECT 1.790 -0.400 2.640 0.400 ; RECT 1.450 -0.400 1.790 0.575 ; RECT 0.000 -0.400 1.450 0.400 ; ENDEND VSSPIN VDDDIRECTION INOUT ;USE power ;SHAPE ABUTMENT ;PORTLAYER METAL1 ;RECT 1.755 4.640 2.640 5.440ENDEND VDDOBSLAYER METAL1 ;RECT 1.835 1.935 1.885 2.355 ;ENDEND AND2X1第三:时序库文件,typical.lib,也就是时序文件,定义了门的各种时序信息,某种意义来讲,这个和综合使用的db库是等价的.2)规划布线过程:第一步:打开encounter 把数据输入,别的在advanced栏的Power相应位置填上VDD,和VSS.如下图,设置完以后,记得把设置的配置文件做一个save以便于下次使用第二步:打开以后,我们可以看到芯片区域,左边粉红色的就是尺度单元,中间阿谁就是我们要设计的区域,64%是指cell面积的占有率,一般来讲节制在70%左右,布线的时候不会引起拥塞.别的我们需要对芯片停止稍微的更改,Floorplan->specify floorplan.,将core to IO那些项都填上45,留给电源环的放置.第三步:添加电源环设置如下图,NET填写VDD和VSS,layer选择顶层的两层金属,宽度设置为20(这个不定,可以根据实际设计来定),offset选择center in channel,则电源环会被设置在IO与core之间.之后电源环就加出来了,当然这是一个小电路,电源规划比较简单,对于一个复杂的电路,还需要横竖添加stripes,降低IRdrop.第四步:自动规划以及安插尺度单元,因为此设计较小,并没有block,所以可以直接停止尺度单元的放置.Place->standard cells and blocaks->OK然后我们发现尺度单元已经被加出来了:第五步:安插好了以后,我们需要将电源,地,等接口先毗连起来,首先我们在floorplan中选择global net connection,分别将VDD,VSS等都毗连起来.然后我们需要specify route将电源和地线先毗连起来,选择route->specify route因为我们这个设计只有尺度单元,所以我们只要选择尺度单元的布线即可:完成以后,点击OK,会得到下面的图:每行的row都有线毗连到外面的电源环第六步:时钟树综合(CTS),这是一个APR设计中最重要的一环,为什么要停止时钟树综合呢,简单地说,因为信号传输的延时,我们需要让相应途径的时钟途径的也具有同样的延时,通过添加时钟缓冲器的方法,来消除各途径的建立时间,详细请参考相关书籍和资料.添加好时钟树以后的版图如下:加了时钟树以后的版图密集了很多,因为加了很多buf.时钟树的剧本:AutoCTSRootPin clkPeriod 10nsMaxDelay 500ps # set_clock_latencyMinDelay 0ps # set_clock_latencyMaxSkew 100psSinkMaxTran 400psBufMaxTran 400psObstruction NODetailReport YESPadBufAfterGate NORouteClkNet NOPostOpt YESOptAddBuffer YESOptAddBufferLimit 100NoGating NOBuffer CLKBUFX1 CLKBUFXL CLKBUFX2 CLKBUFX3 CLKBUFX4 CLKBUFX8 CLKBUFX12 CLKBUFX16 CLKBUFX20 CLKINVXL CLKINVX1 CLKINVX2 CLKINVX3 CLKINVX4 CLKINVX8 CLKINVX12 CLKINVX16 CLKINVX20END然后将剧本选中,并停止时钟树综合.第七步:优化设计,饬令optDesign –postCTS,然后report_timing检查时序陈述,确定无违规,再停止完全布线.第八步:完全布线,route ->nanoroute->route之后得到的版图如下所示:第九步:保管设计,提取需要的数据.这里特别注意提取gds文件的时候,需要指定库文件中的streamOut.map文件,和merge gds(tsmc18_core.gds)文件,如图所示保管网表,并将此版图提取的网表做一次formality,与原代码匹配成功.5 第二次静态时序分析用版图实际提取的延时文件停止6 APR后仿真用modelsim对版图提取的网表和sdf文件停止仿真.7 用calibre对版图停止DRC及其LVS验证在做这步之前,我们需要把相关的文档拷贝到icfb的工作目次下Encounter导出的gds文档:这里是mux8.gds(注意merge库的map 文件)技术文档如:,可以在厂家提供的库中去找Caliber验证文件:drc,lvs文档第一步:将encounter的版图数据导入virtuoso,打开icfb&,选择file->import->stream然后将版图信息和技术文件填入:导入成功以后会出现我们所做的库,mux就是我们encounter中所画的版图.我们把版图打开:这就是我们所画的版图然后在此停止drc,和lvs,通过以后再停止下面的工作.第二步:drc检查此处有错,其实不是逻辑有问题,是因为密度不敷的问题,需要在encounter阶段加FILLER,FILLER是与逻辑无关的,因为代工厂的流片加工要求,需要加的,密度不敷,加工容易引起问题.所以如果DRC 报近似错误,如果是需要流片的版图,除非代工厂同意,否则必须清除这些错误.第三步:lvs检查1)Lvs检查之前,我们需要把综合后的verilog文件转换成网表文件,用于lvs,方法如下:终端下执行:v2lvs -v mux.v -l tsmc18_lvs.v -o CHIP.spi -s tsmc18_lvs.spi -c cic_ -ncalibre -lvs -spice layout.spi -hier -auto Calibre-lvs-cur_soce,之后会得到一个的网表文件.()2)用来lvs的网表我们选择之前导出:然后run lvs,匹配成功!8 用abstract对模块停止抽取我们把8*8乘法器模块用abstract工具导出lef,作为硬核,用于后面自动规划布线的调用,我们可以从此试验中找到模数混合自动版图的设计思想.Abstract Def=>Lef第一步:创建一个新的library,并关联一个tf文件.注:(1)不需要输入streamOut.map也不必点上(no merge)不需要更改.Top Cell Name 为空第五步:打开 library manager 在mux库里打开mux的layout,并选择tools=>layout.第六步:选择 Edit=>Search ,点击 Add Criteria ,如下设置,选择aplly ,在选择 WordStr All.第七步:保管退出第八步:打开 abstract,并打开mux库.然后把mux模块从core导入到block当中,方法:点击mux,然后cell=>move=>block=>OK.第九步:点击GDS图中label,然后点击Q检查Properity.看看是什么层,然后看看下面的net的Properity是什么层,以及是什么purpose.层:METAL3,Purpose:pin.详细含义主要看abstract UG.<1> 点击,输入Map text labels to pinsMap text labels to pins 的书写格式及含义参考abstract UG.<2>点击<3>点击<4> Export lef之后我们得到一个该模块的lef文件,下面我们就用这个模块做一次调用.9将此macro作为一个模块在别的一个top设计中停止调用.第一步:首先我们还是回到综合,我们重新设计一个top,这个top将包含新的逻辑功能,之前的mux模块,还有PAD模块.这个设计的大概框图如下:PDIDGZ为数字输入IO口PDO04CDG为数字输出IO口PVDD1DGZ 为供电PAD高电端PVSS1DGZ 为供电PAD的地电端Multiple为之前做的宏模块Mux为新加逻辑第二步,代码的改写:我们重新编写过verilog代码(带PAD),带PAD做综合有个好处,可以不必设置输入输出端口的驱动,因为PAD的驱动已经很大了,这样综合出的成果更接近实际.新的verilog代码如下:module mux_1 (clk,clr,a,b,y);//(这里我们引用了新的逻辑,注意这个mux_1和之前的没半点关系,只是为了体现调用关系随便加的一个而已)input clk,clr;input [7:0] a,b;output [15:0] y;reg [15:0] y;always @(posedge clk)beginif(!clr)beginy<=0;endelsebeginy<=a*b;endendendmodulemodulePAD(clk_pcb,clk_core,clr_pcb,clr_core,data1_pcb,data1_core,da ta2_pcb,data2_core,dataout_core,dataout_pcb);(这是PAD模块,注意连系前面的框图是想想是如何加的)input clk_pcb,clr_pcb;output clk_core ,clr_core;input [7:0] data1_pcb,data2_pcb;output [7:0] data1_core,data2_core;input [15:0] dataout_core;output [15:0] dataout_pcb;PDIDGZ PAD_CLK (.PAD(clk_pcb),.C(clk_core));PDIDGZ PAD_CLR (.PAD(clr_pcb),.C(clr_core));PDIDGZ PAD_DATA1_0 (.PAD(data1_pcb[0]),.C(data1_core[0])); PDIDGZ PAD_DATA1_1 (.PAD(data1_pcb[1]),.C(data1_core[1])); PDIDGZ PAD_DATA1_2 (.PAD(data1_pcb[2]),.C(data1_core[2])); PDIDGZ PAD_DATA1_3 (.PAD(data1_pcb[3]),.C(data1_core[3])); PDIDGZ PAD_DATA1_4 (.PAD(data1_pcb[4]),.C(data1_core[4])); PDIDGZ PAD_DATA1_5 (.PAD(data1_pcb[5]),.C(data1_core[5])); PDIDGZ PAD_DATA1_6 (.PAD(data1_pcb[6]),.C(data1_core[6])); PDIDGZ PAD_DATA1_7 (.PAD(data1_pcb[7]),.C(data1_core[7])); PDIDGZ PAD_DATA2_0 (.PAD(data2_pcb[0]),.C(data2_core[0]));PDIDGZ PAD_DATA2_1 (.PAD(data2_pcb[1]),.C(data2_core[1])); PDIDGZ PAD_DATA2_2 (.PAD(data2_pcb[2]),.C(data2_core[2])); PDIDGZ PAD_DATA2_3 (.PAD(data2_pcb[3]),.C(data2_core[3])); PDIDGZ PAD_DATA2_4 (.PAD(data2_pcb[4]),.C(data2_core[4])); PDIDGZ PAD_DATA2_5 (.PAD(data2_pcb[5]),.C(data2_core[5])); PDIDGZ PAD_DATA2_6 (.PAD(data2_pcb[6]),.C(data2_core[6])); PDIDGZ PAD_DATA2_7 (.PAD(data2_pcb[7]),.C(data2_core[7])); PDO04CDG PAD_DATAOUT_0 (.I(dataout_core[0]),.PAD(dataout_pcb[0]));PDO04CDG PAD_DATAOUT_1 (.I(dataout_core[1]),.PAD(dataout_pcb[1]));PDO04CDG PAD_DATAOUT_2 (.I(dataout_core[2]),.PAD(dataout_pcb[2]));PDO04CDG PAD_DATAOUT_3 (.I(dataout_core[3]),.PAD(dataout_pcb[3]));PDO04CDG PAD_DATAOUT_4 (.I(dataout_core[4]),.PAD(dataout_pcb[4]));PDO04CDG PAD_DATAOUT_5 (.I(dataout_core[5]),.PAD(dataout_pcb[5]));PDO04CDG PAD_DATAOUT_6 (.I(dataout_core[6]),.PAD(dataout_pcb[6]));PDO04CDG PAD_DATAOUT_7 (.I(dataout_core[7]),.PAD(dataout_pcb[7]));PDO04CDG PAD_DATAOUT_8 (.I(dataout_core[8]),.PAD(dataout_pcb[8]));PDO04CDG PAD_DATAOUT_9 (.I(dataout_core[9]),.PAD(dataout_pcb[9]));PDO04CDG PAD_DATAOUT_10 (.I(dataout_core[10]),.PAD(dataout_pcb[10]));PDO04CDG PAD_DATAOUT_11 (.I(dataout_core[11]),.PAD(dataout_pcb[11]));PDO04CDG PAD_DATAOUT_12 (.I(dataout_core[12]),.PAD(dataout_pcb[12]));PDO04CDG PAD_DATAOUT_13 (.I(dataout_core[13]),.PAD(dataout_pcb[13]));PDO04CDG PAD_DATAOUT_14 (.I(dataout_core[14]),.PAD(dataout_pcb[14]));PDO04CDG PAD_DATAOUT_15(.I(dataout_core[15]),.PAD(dataout_pcb[15]));PVDD1DGZ vdd1 (); (现在不必加的)PVDD1DGZ vdd2 ();PVDD1DGZ vdd3 ();PVDD1DGZ vdd4 ();PVSS1DGZ vss1 ();PVSS1DGZ vss2 ();PVSS1DGZ vss3 ();PVSS1DGZ vss4 ();PCORNERDG c1 ();PCORNERDG c2 ();PCORNERDG c3 ();PCORNERDG c4 ();endmodule#############################顶层模块#########################module top(clock,clear,da1,da2,dataout_out);input clock,clear;input [7:0] da1,da2;output [15:0] dataout_out;wire clk_core,clr_core;wire [7:0] data1_core,data2_core;wire [15:0] dataout_core;wire [15:0] y;PADPAD_TOP(.clk_pcb(clock),.clk_core(clk_core),.clr_pcb(clear),. clr_core(clr_core),.data1_pcb(da1),.data1_core(data1_core),.d ata2_pcb(da2),.data2_core(data2_core),.dataout_core(dataout_c ore),.dataout_pcb(dataout_out));mux_1 mux_1 (.clk(clk_core),.clr(clr_core),.a(data1_core),.b(data2_core), .y(y));mux mutiple (.clk(clk_core),.clr(clr_core),.data1(y[15:8]),.data2(y[7:0]) ,.dataout(dataout_core));(这里是对硬核的调用)endmodule第三步:逻辑综合注意的是,我们在逻辑综合之前,需要加如mux的db库文件,此文件由encounter规划布线以后发生的延时文件再颠末pt静态时序分析以后发生.我们给顶层模块加如约束:Current_design toplinkcreate_clock -period 10 [get_ports clock]set_clock_latency -source -max 0.2 [get_ports clock]set_clock_latency -max 0.1 [get_ports clock]set_clock_uncertainty -setup 0.01 [get_ports clock]set_input_delay -max 0.5 -clock clock [all_inputs]set_output_delay -max 0.5 -clock clock [all_outputs]#set_driving_cell -lib_cell INVX4 [all_inputs]#set_load -pin_load 0.0659726 [all_outputs]set_wire_load_model -name tsmc18_wl10 -library typicalset_wire_load_mode enclosedset_dont_touch mux(注意此处,就是综合的时候不针对mux停止综合,综合工具会自动逾越鸿沟对其他逻辑停止综合)set_dont_touch_network [all_clocks]compile -boundarychange_names -rule verilog -hier第四步:规划布线用综合得到的网表(top.sv)和约束文件(sdc).并将之前的mux模块的lef文档准备好.这里碰到了一个问题,在逻辑综合之前的代码我已经加如了PAD的VDD ,VSS和corner,但是综合完以后就不见了,原因不明,这时在规划之前就要手动添加上去.数据准备:时序文件:对应于上面的lib文件,typical.lib,block的lib(由PT发生),PAD的libIo文件:可以自己定义顶层端口的位置(下面会介如何做io文件)Sdc文件:综合后发生的约束文件.Io文件的设置,主要由四个方向决议,N,W,S,E就和我们英文里的四个方向的首字母一样,当然还有NW,WS,SE,NE,四个角,是用与corner的摆放,该设计有34个口,外加8个供电PAD,加上四个CORNER总共有46个PAD,主要的是42个PAD,我们可以将这42个PAD放到自己想设置的位置,对于一个真正的设计,要思索以后连线的长度,外部模块摆放位置等,来合理安插io的位置.如图所示为该设计的PAD规划图:根据此规划图,我们对此设计的io文件编辑如下,io文件对应实际规划中的规则是,N是由io文件列表的顺序从左到右的放置,W方向是由下到上的放置,S同N,E同W.Pad: PAD_TOP/PAD_DATAOUT_12 NPad: PAD_TOP/PAD_DATAOUT_13 NPad: PAD_TOP/PAD_DATAOUT_14 NPad: PAD_TOP/PAD_DATAOUT_15 NPad: PAD_TOP/PAD_CLK NPad: PAD_TOP/vss2 NPad: PAD_TOP/vdd2 NPad: PAD_TOP/PAD_DATA1_0 NPad: PAD_TOP/PAD_DATA1_1 NPad: PAD_TOP/PAD_DATA1_2 NPad: PAD_TOP/PAD_DATA1_3 NPad: PAD_TOP/c1 NEOrient: R0Pad: PAD_TOP/c2 SWPad: PAD_TOP/PAD_DATAOUT_4 WPad: PAD_TOP/PAD_DATAOUT_5 WPad: PAD_TOP/PAD_DATAOUT_6 WPad: PAD_TOP/PAD_DATAOUT_7 WPad: PAD_TOP/vdd1 WPad: PAD_TOP/vss1 WPad: PAD_TOP/PAD_DATAOUT_8 WPad: PAD_TOP/PAD_DATAOUT_9 WPad: PAD_TOP/PAD_DATAOUT_10 WPad: PAD_TOP/PAD_DATAOUT_11 WPad: PAD_TOP/c3 NWPad: PAD_TOP/PAD_DATAOUT_0 SPad: PAD_TOP/PAD_DATAOUT_1 SPad: PAD_TOP/PAD_DATAOUT_2 SPad: PAD_TOP/PAD_DATAOUT_3 WPad: PAD_TOP/PAD_CLR SPad: PAD_TOP/vdd3 SPad: PAD_TOP/vss3 SPad: PAD_TOP/PAD_DATA2_7 SPad: PAD_TOP/PAD_DATA2_6 SPad: PAD_TOP/PAD_DATA2_5 SPad: PAD_TOP/PAD_DATA2_4 SPad: PAD_TOP/PAD_DATA2_3 EPad: PAD_TOP/PAD_DATA2_2 EPad: PAD_TOP/PAD_DATA2_1 EPad: PAD_TOP/PAD_DATA2_0 EPad: PAD_TOP/vdd4 EPad: PAD_TOP/vss4 EPad: PAD_TOP/PAD_DATA1_7 EPad: PAD_TOP/PAD_DATA1_6 EPad: PAD_TOP/PAD_DATA1_5 EPad: PAD_TOP/PAD_DATA1_4 E一切准备好以后,我们导入所有的准备数据会看到一个有PAD和宏模块的的芯片图因为PAD的面积较大,所以其他单元和模块看起来就比较小了.第五步:规划。

IC的生产工序流程以及其结构

IC的生产工序流程以及其结构

IC的生产工序流程以及其结构IC(集成电路)的生产工序流程以及其结构是一个复杂且关键的过程。

本文将详细介绍IC的生产工序流程以及其结构,从设计、制造到测试的全过程。

前端工序是IC生产的设计和制造阶段。

最早的步骤是进行芯片设计。

芯片设计是一个复杂的过程,其中包括需求分析、电路架构设计、逻辑设计、电路设计和版图设计等。

设计完成后,芯片制造的下一个阶段是进行掩膜制造。

掩膜制造是通过光刻和刻蚀技术在硅片上形成芯片结构。

这一步骤产生了一个被称为“晶圆”的硅片,其中包含了成千上万个IC芯片。

中端工序是IC生产的加工和制造阶段。

首先,晶圆需要经过步骤切割成单个的芯片。

然后将这些单个芯片放置到称为支持质层的基板上。

接下来是通过包封工序对芯片进行保护。

封装对芯片进行全方位的保护,以防止损坏和外部环境的影响。

最后,在封装过程中将芯片焊接到引脚上,以便能够与外部电路进行连接。

后端工序是IC生产的测试和封装阶段。

这个阶段主要是对芯片进行测试以确保其质量和功能。

测试是通过应用电压和信号来检查芯片的性能和电气特性。

在测试完成后,将芯片进行分类和分级,然后将其进行封装,以达到保护和便于使用的目的。

封装后的芯片被称为“成品”,可以在下一步骤中被安装到终端产品中。

IC的结构是由各种器件和电路组成的。

通常,一个IC由晶体管、电阻、电容、电感和其他电子器件以及其连接和控制电路组成。

这些器件通过使用P型和N型材料来创建PN结。

集成电路的结构通常以芯片的功能和应用为基础进行设计,并根据需求进行优化。

总结起来,IC的生产工序流程涵盖了设计、制造和测试的各个环节。

前端工序包括芯片设计和掩膜制造,中端工序包括芯片加工和封装,后端工序包括测试和封装。

IC的结构由各种器件和电路组成,根据芯片的功能和应用进行设计和优化。

这些工序和结构的完美配合确保了IC的质量和性能。

芯片后端开发基础知识

芯片后端开发基础知识

芯片后端开发基础知识一、引言芯片后端开发是指对芯片设计的后续步骤进行开发和优化的过程。

芯片后端开发负责将芯片设计的前端产物进行物理实现,包括布局布线、时序优化、功耗优化等工作。

本文将介绍芯片后端开发的基础知识,帮助读者了解这一领域的重要概念和技术。

二、芯片后端开发流程芯片后端开发流程一般包括以下几个阶段:物理设计、布局布线、时序优化和功耗优化。

下面将对这些阶段进行详细介绍。

1. 物理设计物理设计是芯片后端开发的第一步,主要包括以下几个方面:(1)芯片核心区域的划分:将芯片划分为多个区域,根据不同的功能和性能要求进行划分,以便进行后续的布局布线和优化。

(2)引脚规划:确定芯片的输入输出引脚的位置和布局,以保证芯片与外界的连接和通信。

(3)时钟规划:确定芯片的时钟网络的布局,以保证芯片内部各个模块的同步和协调。

(4)电源规划:确定芯片的电源网络的布局,以保证芯片的正常供电和电源噪声的控制。

2. 布局布线布局布线是芯片后端开发的核心环节,主要包括以下几个步骤:(1)布局:将芯片的各个模块按照物理设计的要求进行摆放,以保证芯片的性能和功耗要求。

(2)布线:将芯片的各个模块之间按照物理设计的要求进行连线,以保证芯片的信号传输和时序要求。

3. 时序优化时序优化是为了保证芯片在工作时能够满足时序约束和性能要求,主要包括以下几个方面:(1)时钟树优化:优化芯片的时钟网络,以保证时钟信号的稳定和时钟偏移的控制。

(2)路径优化:优化芯片中关键路径的时延,以保证芯片的工作频率和性能要求。

(3)时序收敛:通过合理的时序约束和设计方法,保证芯片的时序收敛和稳定。

4. 功耗优化功耗优化是为了降低芯片的功耗,延长芯片的续航时间,主要包括以下几个方面:(1)电源规划:通过合理的电源网络设计,降低芯片的功耗和电源噪声。

(2)逻辑优化:通过逻辑优化和综合,减少芯片中的逻辑门数量,降低功耗。

(3)时钟门控:通过合理的时钟门控设计,降低芯片的时钟功耗。

ic的前端设计和后端设计流程

ic的前端设计和后端设计流程

ic的前端设计和后端设计流程根据个人掌握的知识,写写自己的理解。

前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计。

1.规格制定芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。

2.详细设计Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。

3.HDL编码使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL (寄存器传输级)代码。

4.仿真验证仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。

看设计是否精确地满足了规格中的所有要求。

规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。

设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。

仿真验证工具 Synopsys的VCS。

5.逻辑综合――Design Compiler仿真验证通过,进行逻辑综合。

逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表(netlist)。

综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。

逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的。

所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。

一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)逻辑综合工具Synopsys的Design Compiler。

6.STAStatic Timing Analysis(STA),静态时序分析,这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。

IC设计后端流程

IC设计后端流程

基本后端流程(漂流&雪拧)----- 2010/7/3---2010/7/8本教程将通过一个8*8的乘法器来进行一个从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那么简单就完成的),此教程的目的就是为了让大家尽快了解数字IC设计的大概流程,为以后学习建立一个基础。

此教程只是本人探索实验的结果,并不代表内容都是正确的,只是为了说明大概的流程,里面一定还有很多未完善并且有错误的地方,我在今后的学习当中会对其逐一完善和修正。

此后端流程大致包括以下内容:1.逻辑综合(逻辑综合是干吗的就不用解释了把)2.设计的形式验证(工具formality)形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包括综合前RTL 代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格(设计周期短)的asic设计来说是不可容忍的,而形式验证只用几小时即可完成一个大型的验证。

另外,因为版图后做了时钟树综合,时钟树的插入意味着进入布图工具的原来的网表已经被修改了,所以有必要验证与原来的网表是逻辑等价的。

3.静态时序分析(STA),某种程度上来说,STA是ASIC设计中最重要的步骤,使用primetime对整个设计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。

(PR后也需作signoff的时序分析)4.使用cadence公司的SOCencounter对综合后的网表进行自动布局布线(APR)5.自动布局以后得到具体的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到网表,再做静态时序分析,与综合类似,静态时序分析是一个迭代的过程,它与芯片布局布线的联系非常紧密,这个操作通常是需要执行许多次才能满足时序需求,如果没违规,则进入下一步。

6.APR后的门级功能仿真(如果需要)7.进行DRC和LVS,如果通过,则进入下一步。

芯片后端开发基础知识

芯片后端开发基础知识

芯片后端开发基础知识芯片后端开发是指在芯片设计的最后阶段,通过将设计转化为实际的芯片布局和电路连接,完成芯片的生产。

本文将从几个方面介绍芯片后端开发的基础知识。

一、芯片后端开发的流程芯片后端开发的流程主要包括芯片布局、布线和物理验证三个阶段。

1. 芯片布局:芯片布局是指将芯片的各个功能模块进行合理的位置分配,以满足芯片性能和功耗的要求。

布局过程需要考虑电路的连接、信号传输的延迟和功耗等因素。

2. 布线:布线是指根据芯片布局的结果,将各个功能模块之间的电路连接起来。

布线过程需要考虑信号传输的延迟、噪声和功耗等因素,以实现芯片设计的性能要求。

3. 物理验证:物理验证是指对芯片的布局和布线结果进行验证,确保芯片在物理层面上能够正常工作。

物理验证主要包括电气规则检查、设计规则检查和电磁兼容性分析等。

二、芯片后端开发的工具在芯片后端开发过程中,需要使用一些专门的EDA(Electronic Design Automation)工具来辅助设计和验证。

1. 布局工具:布局工具可以帮助设计师将芯片的功能模块进行位置分配,并优化布局以满足性能和功耗要求。

常用的布局工具有Cadence的Virtuoso和Synopsys的IC Compiler等。

2. 布线工具:布线工具可以根据给定的布局结果,将芯片的功能模块进行电路连接,并优化布线以满足性能要求。

常用的布线工具有Cadence的Innovus和Synopsys的IC Compiler等。

3. 物理验证工具:物理验证工具可以对芯片的布局和布线结果进行各种检查和分析,确保芯片在物理层面上能够正常工作。

常用的物理验证工具有Cadence的Assura和Synopsys的StarRC等。

三、芯片后端开发的基本原理芯片后端开发的基本原理是在保证电路功能正确的前提下,最大限度地提高芯片性能和降低功耗。

为了实现这一目标,需要注意以下几点:1. 布局规则:布局规则是指在芯片布局过程中需要遵循的一些规则,如电源和地线的布局、时钟树的布局和功耗分布等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2020/10/16
7
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
逻辑单元库:一个完整的单元库由不同的功能电路所组 成,种类和数量很多,根据其应用可分为三类:
标准单元(standard cells)
组合逻辑
时序逻辑
模块宏单元(macro block)
ROM
RAM
专用模块(如ASSP、DSP等)
Black box商业IP(如ARM、标准单元等)
模拟模块(如PLL、振荡器等)
输入输出单元(I/O pad cell)
输入
输出
三态
考虑ESD
双向
2020/10/16
8
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
Physical Reference Libraries
2020/10/16
2020/10/16
5
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
后端设计数据准备
设计网表
gate-level netlist
设计约束文件 SDC file
物理库文件 sc.lef/io.lef/macro.lef
时序库文件 sc.lib/io.lib/macrand name designations for each layer/via Physical and electrical characteristics of each layer/via Design rules for each layer/Via (Minimum wire widths and wire-to-wire spacing, etc.) Units and precision for electrical units Colors and patterns of layers for display …
2020/10/16
11
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
The Technology File (.tf file):The technology file is unique to each technology;Contains metal layer technology parameters:
2020/10/16
10
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
库文件
时序库:描述单元库中各个单元时序信息的文件。 (.lib库)
单元延时 互连线延时
物理库:是对版图的抽象描述,她使自动布局布线成 为可能且提高了工具效率(.lef库),包含两部分
技术LEF:定义布局布线的设计规则和foundry的工艺信息 单元LEF:定义sc、macro、I/O和各种特殊单元的物理信息, 如对称性、面积大小、布线层、不可布线区域、天线效应参 数等
I/O constraints file(.tdf)
工艺文件
technology file(.tf)
RC模型文件 TLU+
2020/10/16
6
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
Logical Libraries
Provide timing and functionality information for all standard cells (and, or, flipflop, …) Provide timing information for hard macros (IP, ROM, RAM, …) Define drive/load design rules:
CMOS集成电路版图
--概念、方法与工具
第6章 数字IC后端流程
邓军勇 djy@
029-85383437
2020/10/16
1
数字IC后端流程
CMOS集成电路版图
Data Setup Design planning Placement CTS Route DFM & Chip Finishing
电压钳位单元(tie-high/tie-low) 二极管单元(diode),对违反天线规则的栅输入端加入反偏二极 管,避免天线效应将栅氧击穿 时钟缓冲单元(clock buffer/clock inverter):为最小化时钟偏差 (skew),插入时钟缓冲单元来减小负载和平衡延时 延时缓冲单元(delay buffer):用于调节时序 阱连接单元(well-tap cell):主要用于限制电源或地与衬底之间 的 电阻大小,减小latch-up效应 电压转换单元(level-shifter):多用于低功耗设计
Max fanout Max transition Max/Min capacitance
Are usually the same ones used by Design Compiler during synthesis Are specified with variables:
target_library link_library
2020/10/16
3
西安邮电大学微电子学系
基于ICC的数字IC后端设计流程
CMOS集成电路版图
There is no “golden script” for physical design
2020/10/16
4
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
布局布线的准备工作,读入网表,跟Foundry提供的STD Cell、 Pad库以及Macro库进行映射。
9
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
物理单元库:和逻辑单元库分类相同,但也包括一些特 殊单元,在后端物理实现中的作用有别于其他逻辑电路
填充单元(filler/spacer)
I/O spacer用于填充I/O单元之间的空隙以形成power ring 标准单元filler cell与逻辑无关,用于把扩散层连接起来满足DRC规则 和设计需求,并形成power rails
2020/10/16
2
西安邮电大学微电子学系
基于ICC的数字IC后端设计流程
CMOS集成电路版图
Use IC Compiler to perform placement, DFT, CTS, routing and optimization, achieving timing closure for designs with moderate to high design challenges.
相关文档
最新文档