内容简介
本书是聚焦数字集成电路全流程设计的技术参考书,内容涵盖从Verilog代码开发到版图实现的完整设计流程,包括可综合Verilog代码分析与设计、标准单元库及各种库文件格式解析、逻辑综合、静态时序分析、扫描链与可测性设计、形式验证、自动布局布线和版图后处理等重点内容。
本书兼具系统性和实用性,将理论介绍与EDA操作同步展开,每章配套实践练习,同时对主流EDA设计平台进行演示、说明和比较,助力读者快速建立技术认知,为跨平台应用奠定基础。
本书既可以作为工程设计人员的工作参考书,也适合集成电路相关专业师生用于学习实践。
目录
第1章 CMOS数字集成电路设计概述
1.1 摩尔定律与数字集成电路设计 1
1.2 数字集成电路设计流程及主流EDA工具简介 2
1.3 如何学好数字集成电路设计 4
1.4 必备的shell命令和vi基础 5
1.5 本章小结 9
第2章 Verilog逻辑映射与可综合代码分析
2.1 组合逻辑代码映射 10
2.2 时序逻辑代码映射 15
2.3 基于触发器/ 组合逻辑云的时序逻辑电路结构 17
2.4 可综合Verilog代码分析 19
2.5 Verilog代码优化设计原则与方法 21
2.6 本章小结 25
第3章 标准单元库与存储器编译器
3.1 标准单元库概述 27
3.2 标准逻辑单元 28
3.3 IO单元与焊盘框架 37
3.4 其他辅助单元 47
3.5 .lib库文件格式介绍 55
3.6 LEF库文件格式介绍 68
3.7 GDS提取LEF 77
3.8 LEF 转Milkway 89
3.9 标准单元的GDS、网表、符号和Verilog 代码 92
3.10 存储器编辑器(Memory Compiler) 96
3.11 CDB(IC5.X)转OA(IC6.X) 100
3.12 本章小结 104
第4章 逻辑综合
4.1 逻辑综合基本原理与方法 106
4.2 时序路径 108
4.3 设计对象 116
4.4 基础TCL 118
4.5 Synopsys TCL 126
4.6 基于DC的逻辑综合(Synopsys) 145
4.7 基于Genus的逻辑综合(Cadence) 157
4.8 DC图形界面操作 166
4.9 逻辑综合进阶讨论 176
4.10 含存储器电路的逻辑综合 205
4.11 本章小结 214
第5章 静态时序分析
5.1 静态时序分析概述 216
5.2 时序弧 218
5.3 数据到达时间和数据需求时间 222
5.4 基于PT的Pre-STA(Synopsys) 227
5.5 约束完整性检查 233
5.6 Pre-STA结果查询 242
5.7 Pre-STA违例处理 249
5.8 基于Tempus的Pre-STA(Cadence) 257
5.9 本章小结 259
第6章 可测性设计
6.1 加工缺陷 261
6.2 固定故障模型 261
6.3 扫描链 264
6.4 基于DC的DFT(Synopsys) 267
6.5 基于Genus的DFT(Cadence) 278
6.6 基于TetraMAX的ATPG设计 282
6.7 边界扫描与JTAG 289
6.8 内建自测试 302
6.9 静态电流测试 313
6.10 本章小结 314
第7章 形式验证
7.1 形式验证作用与意义 316
7.2 逻辑锥 317
7.3 基于Formality的形式验证(Synopsys) 318
7.4 基于Conformal的形式验证(Cadence) 322
7.5 形式验证常见问题及友好代码风格 327
7.6 本章小结 328
第8章 自动布局布线
8.1 P&R基本流程 330
8.2 基于Innovus的P&R流程(Cadence) 332
8.3 基于ICC2的P&R 流程(Synopsys) 360
8.4 本章小结 378
第9章 版图网表的Post-STA和形式验证
9.1 Post-STA与Pre-STA的比较 380
9.2 SPEF文件格式 381
9.3 基于PT的Post-STA 384
9.4 基于Tempus的Post-STA 386
9.5 基于Formality的版图网表形式验证 389
9.6 基于Conformal的版图网表形式验证 391
9.7 本章小结 392
第10章 GDSⅡ版图的物理验证
10.1 GDSⅡ概述 393
10.2 GDSⅡ导入 394
10.3 DRC 396
10.4 LVS 399
10.5 GDSⅡ导出 403
10.6 基于Calibre的密度添加 404
10.7 本章小结 407
第11章 从Verilog到流片设计案例
11.1 电路功能与结构 408
11.2 Verilog设计与验证 409
11.3 Verilog顶层代码改造 410
11.4 获取PDK、标准单元库和IP 411
11.5 设计流程、EDA工具链和数据管理 413
11.6 各步骤说明 415
11.7 MPW与COB Bonding 421
11.8 样机实测 422
11.9 本章小结 422
参考文献 424
前言/序言
前言
集成电路产业是信息技术产业的核心,是支撑经济社会发展和保障国家安全的战略性、基础性和先导性产业。加快推进集成电路产业发展,对转变经济发展方式、保障国家安全、提升综合国力具有重大战略意义。发展集成电路产业已上升为国家战略,拥有技术领先的强大集成电路产业,已成为实现科技强国、产业强国的关键标志。
集成电路可以大体划分为模拟集成电路和数字集成电路两大类,它们既相互独立,又相辅相成,在电路系统中都发挥着不可替代的作用。随着集成电路工艺水平提升,数字集成电路的信号处理能力越来越强,成为推动摩尔定律演进的核心动力。因此,学习数字集成电路设计的理论与方法、了解其设计流程、掌握数字集成电路EDA工具的使用,已经成为集成电路专业学生应具备的基本素养。
数字集成电路设计已从早期的“画电路”演变为现在的“写电路”,即用Verilog等硬件描述语言描述电路的行为或结构。硬件代码经过仿真验证后,既可以用FPGA进行硬件实测或直接烧录成基于FPGA的电子产品,也可以经过数字集成电路设计流程,将其制造成专用集成电路(Application Specific Integrated Circuit,ASIC)。
本书以CMOS数字集成电路设计流程为主线,把各流程步骤有机串联,按照章节顺序讲述CMOS数字集成电路设计的理论与方法,内容涵盖从Verilog到流片(提供GDSⅡ版图给晶圆代工厂流片)的整个过程,为读者构建系统全面的数字集成电路设计知识体系,解决把用代码写出的电路变成实际芯片的问题。
硬件代码转换成电路的过程被称为逻辑综合,而逻辑综合的第一步就是逻辑映射。为此,本书首先介绍了逻辑映射的基本原理,并指出能够被映射成电路的语句只是硬件描述语言的一个子集。为了能够成功地进行逻辑综合,设计硬件逻辑时只能用可综合的语句。同时,为了能综合出更加优化的电路,书中也给出了常见的硬件代码设计原则。
逻辑电路最终都是要用逻辑门和触发器等基本逻辑单元实现。在数字集成电路设计领域,这类基本逻辑单元被称为标准逻辑单元,它们被制作成标准单元库,供数字集成电路设计使用。对标准单元库的理解越深,数字集成电路设计的过程就会越顺,解决各种问题的能力就越强,为此本书还专门介绍了标准单元库。
逻辑综合部分首先介绍了逻辑综合的基本原理,并对时序路径、设计对象、基础TCL和Synopsys TCL等重要概念和背景知识进行较为全面的介绍,然后给出了基于DC和Genus的逻辑综合实验案例,最后还对逻辑综合进行了进阶讨论,这些内容是应对复杂数字系统设计必备的基础,也是读者今后不断提高和努力的方向。
静态时序分析部分首先进行了静态时序分析概述,并重点介绍了时序弧、数据到达时间(Data Arrival Time)和数据需求时间(Data Required Time)等重要概念,然后在此基础上以实验案例形式给出了基于PT的静态时序分析流程,以及约束完整性检查、时序分析结果查询和违例处理的基本方法,最后给出了PT对标工具Tempus的基本设计流程。
可测性设计部分首先介绍了加工缺陷、固定故障模型和扫描链的概念与插入方法,然后基于简单案例给出了基于DC和Genus的DFT流程,以及基于TetraMAX的自动测试向量生成设计流程。这部分还介绍了边界扫描与JTAG接口的结构原理、状态转换和基本设计流程,以及内建自测试和静态电流测试的原理与方法。
形式验证部分首先介绍了形式验证的作用与意义,继而分析形式验证与功能验证的区别与联系,随后围绕逻辑锥的结构和逻辑比对原理展开讨论,在此基础上对形式验证的设计流程进行了剖析,举例给出了Formality和Conformal的验证脚本,最后给出了形式验证的常见问题和解决方法,以及对形式验证友好的代码风格建议。
自动布局布线部分首先介绍了自动布局布线(P&R)基本流程,对设计输入、平面布局和电源规划等进行了讨论,并强调自动布局布线要紧紧围绕时序收敛(Timing Closure)展开,然后基于主流的P&R工具Innovus和ICC2,介绍了它们的设计流程,并对设计流程中的主要步骤或核心指令进行了说明。
自动布局布线生成的版图需要进行一系列的分析和验证,包括时序分析和形式验证,以及DRC和LVS等,其中时序分析保证时序正确,形式验证保证功能正确,DRC保证版图没有设计规则问题,而LVS验证保证版图电路与网表电路一致,这些分析与验证是对版图最后的把关,本书对上述分析和验证进行了具体的讨论和实验说明。
本书最后一章给出了一个BDS/GPS普通民用卫星授时芯片的设计案例介绍,内容包括电路功能与结构、Verilog设计与验证和Verilog顶层代码改造方法等,以及获取PDK、标准单元库和IP库的准备工作、具体设计流程、EDA工具链和数据管理方法,并对案例的MPW流片和COB键合以及样机实测进行了讲解。
本书理论与实践并重,不仅有数字集成电路设计的理论,而且还有相关的设计实验。为了提高本书的可操作性,本书采用主流的CMOS工艺进行设计,大部分读者应该都有其PDK和标准单元库,同时,实验中所需的硬件代码和各种脚本较精练,很容易直接抄录。希望读者边看边练,把所学知识真正落到实处。为方便读者对照阅读和理解,本书的图形符号均保留书中所用软件的图形符号。
目前在数字集成电路设计领域有两条主要工具链,即Synopsys工具链和Cadence工具链,有些公司只使用其中一条工具链,有些公司将两条工具链搭配成一条工具链,本书在全流程设计实验中,每个步骤都提供两条工具链的设计案例,帮助读者建立对两条工具链的感性认识,以便将来能尽快适应不同的设计环境。
需要指出,数字集成电路设计流程非常复杂,使用的EDA工具众多,而且在设计过程中还会遇到各种各样的新问题,限于作者的水平和篇幅限制,本书无法对各流程步骤进行详细介绍,也无法对各种实际问题进行详细讨论,而只能提供必要的设计基础,使读者初步具备各流程步骤进阶培训的资格。
笔者多年从事数字集成电路设计教学工作,受限于市面上没有现成的全流程设计教材可选,只能通过把各种碎片化教材的核心知识点进行整合,制作成数字集成电路全流程设计课件,并建立配套的实验环境辅助教学。为了扭转这种被动局面,本书将多年积累的教学资料、实验数据和科研成果编辑成册,形成一本完整的数字集成电路全流程设计用书为广大师生和行业工程师服务。
本书可以作为集成电路专业高年级本科生和研究生的专业课用书或学习参考书。由于目前我国集成电路领域不仅人才严重短缺,而且国内高校集成电路专业招生规模又相对较小,因此每年都会有大量电子信息大类学生转行进入集成电路专业攻读研究生,或者从事集成电路领域的相关工作,所以本书立足于电子信息大类学生的专业背景,合理安排章节内容,适当调整难易程度,使电子信息大类专业的读者也能顺利学习本书。
感谢鹏程实验室研究员、中国科学院大学兼职教授陈春章博士对本书的审阅和提出的宝贵意见;感谢Cadence资深技术专家艾霞对本书在理论和技术上的支持;感谢我的学生张育镇、赵天阳、李志轩、钮岩岩和赵天伟在本书编写过程中所提供的技术支持、实验验证和文稿校对等工作;同时还要感谢我的家人对我工作的大力支持;感谢广大同仁对书稿内容的肯定。
由于作者水平有限,书中难免有错误和不足之处,欢迎广大读者批评指正。希望本书能为我国集成电路人才培养做出一些贡献。




















