图书简介:
第1章 时钟及产生电路 1
1.1 时钟和时钟树 1
1.2 时钟源 6
1.2.1 振荡器 7
1.2.2 频率稳定度与精度 10
1.2.3 石英晶体振荡器类型 12
1.2.4 PLL 13
1.3 时钟产生电路 18
1.3.1 时钟分频电路 19
1.3.2 时钟切换电路 28
1.3.3 时钟门控电路 31
小结 33
第2章 复位及其同步化 35
2.1 复位的分类 35
2.1.1 同步复位 35
2.1.2 异步复位 37
2.2 异步复位信号的同步化 41
2.3 复位网络 43
小结 47
第3章 跨时钟域设计 48
3.1 跨时钟域设计的基本概念 48
3.1.1 亚稳态 49
3.1.2 跨时钟域问题 51
3.2 同步器设计 56
3.3 单比特信号的跨时钟域设计 63
3.3.1 从快时钟域到慢时钟域的信号传输 63
3.3.2 从慢时钟域到快时钟域的信号传输 67
3.3.3 跨同步时钟域的信号传输 67
3.4 多比特信号的跨时钟域设计 68
3.4.1 多比特信号合并成单比特信号 68
3.4.2 使能技术 71
3.4.3 握手机制 72
3.4.4 多周期路径法 75
3.4.5 使用FIFO控制器 77
小结 84
第4章 低功耗技术 85
4.1 CMOS功耗 85
4.2 缩放技术 89
4.2.1 频率缩放技术 90
4.2.2 电压缩放技术 90
4.3 门控技术 96
4.3.1 时钟门控技术 96
4.3.2 电源门控技术 99
4.4 阈值电压控制技术 103
4.4.1 多阈值CMOS技术 103
4.4.2 变阈值CMOS技术 107
4.4.3 动态阈值CMOS技术 109
4.5 低功耗元件 109
4.6 电源意图 115
4.6.1 电源意图规范 116
4.6.2 UPF的基本概念 117
4.7 电源控制单元 121
小结 125
第5章 标准库 127
5.1 MOS结构 127
5.2 库 131
5.2.1 逻辑单元库 131
5.2.2 物理单元库 133
5.2.3 库文件 136
5.2.4 时序模型 138
5.2.5 功耗模型 144
5.2.6 噪声模型 149
5.3 标准单元设计 153
5.3.1 标准单元的布局 153
5.3.2 标准单元的连接 156
5.3.3 标准单元的供电网络 159
5.4 I/O单元 161
5.4.1 键合单元 162
5.4.2 I/O单元类型 166
5.4.3 I/O单元布局 172
小结 175
第6章 设计约束和逻辑综合 176
6.1 时序路径与延迟 176
6.1.1 时序路径 176
6.1.2 时序路径延迟 180
6.2 逻辑综合 185
6.2.1 逻辑综合流程 186
6.2.2 综合策略 186
6.2.3 综合优化 187
6.2.4 常用综合工具 192
6.3 设计约束 194
6.3.1 设计环境约束 195
6.3.2 设计规则约束 198
6.3.3 时序约束 198
6.3.4 面积约束 213
6.3.5 芯片级时序约束指南 213
6.4 时序优化方法 223
6.4.1 时序技术 223
6.4.2 利用综合工具实现时序优化 227
小结 232
第7章 验证 234
7.1 验证的基本概念 235
7.1.1 验证、确认和测试 235
7.1.2 仿真器实现算法 236
7.1.3 验证度量 237
7.1.4 硬件验证语言 239
7.1.5 验证方法学 239
7.2 验证策略 240
7.2.1 验证层次 240
7.2.2 验证手段 243
7.2.3 验证方法 245
7.3 功能验证 248
7.3.1 仿真验证 248
7.3.2 静态检查 253
7.3.3 硬件辅助加速验证 256
7.4 验证流程 264
7.5 验证计划和平台 267
7.5.1 验证计划 267
7.5.2 验证平台 270
7.6 性能验证 273
7.7 能效验证 274
7.7.1 低功耗仿真 275
7.7.2 低功耗形式验证 279
7.7.3 功耗预测与优化 280
小结 281
第8章 DFT 282
8.1 DFT的基本概念 282
8.1.1 测试方法和流程 283
8.1.2 DFT规则 284
8.2 测试的基本概念 289
8.2.1 故障模型 289
8.2.2 测试 296
8.3 扫描测试技术 307
8.3.1 固定型故障测试 309
8.3.2 全速测试 312
8.3.3 OCC控制器 316
8.3.4 ATPG 318
8.4 MBIST技术 320
8.4.1 存储器的故障模型 320
8.4.2 嵌入式存储器的可测试设计技术 321
8.5 边界扫描测试技术 326
8.5.1 JTAG总线 327
8.5.2 边界扫描 329
小结 332
附录A 专业术语的中英文对照 333
附录B 设计术语索引 337
展开
为何要写这本书
多年来,编著者在担任团队和项目负责人期间做过一系列技术培训,组织技术培训的原因有很多。一是一些优秀员工被选中担任新项目或新团队的负责人,虽然他们具有良好的职业素养,在以往的工作中也积累了不少SoC设计的知识和经验,很多人对一些IP或部分设计环节尤为熟悉,但普遍缺乏对SoC系统或子系统的完整理解,对SoC设计全流程的认识不足,如何帮助他们尽快进入角色,具备把控团队和项目的技术能力,成为加强团队建设和保证项目顺利进行的关键。二是每年都有刚毕业的新员工加入团队,现有团队也会不断更新,为了维持团队运转和项目开展,需要进行人力资源的调度,相应的技术交流和培训非常有必要,其既可以使员工了解自己负责的部分在整个SoC设计中的作用,又可以使员工清楚项目对相应工作的要求,以及前后相邻工作之间的协作关系,从而发掘职业兴趣,激发工作热情,更快、更好地适应新的工作任务,融入团队。三是通过专业培训,可以加强SoC设计方法学的传播,推广和落实设计规范,强化设计指导,尤其是对一些案例的重点介绍,有助于员工加深印象,形成良好的设计习惯,保证团队设计风格的统一性。四是不同设计环节的团队往往使用不同的工具和专业术语,经常出现交流不畅甚至无法沟通的情形,较为明显的是前端设计工程师与后端设计工程师之间沟通困难,严重的话会直接影响项目的进度和质量,因此需要加强团队的技术沟通能力,技术培训提供了一种机会,通过介绍各个主要设计环节的知识,帮助设计工程师了解彼此的工作,熟悉对方所使用的概念和方法,甚至使用对方的专业术语来描述和讨论问题,从而提高团队的工作质量和效率。
一些技术培训偏重基本概念、原理和方法的介绍,较适合初、中级设计工程师参加;一些技术培训偏重专题的技术交流,较适合中、高级设计工程师参加;还有一些技术培训是跨专业知识的介绍,除设计工程师外,还适合芯片架构师、芯片规划人员和项目管理人员参加。这些技术培训都得到了广大员工的热烈回应,获得了很多积极的反馈。
近年来,SoC设计产业蓬勃发展,大量公司和新项目都急需优秀的从业人员,加之新人不断进入SoC设计行业,很多人跨越了原本的专业领域,需要进行培训,以便尽快适应新工作。担任新项目和新团队的负责人也需要学习新知识。在朋友和同事的鼓励下,编著者在以往培训经验的基础上,结合多年的工程实践,经过整理、完善和充实资料,编写了本书。
内容选择和组织
目前,市面上已经有很多关于SoC设计的专业书籍,各种期刊和网站上也可以找到大量文章。本书在内容选择和组织上符合读者的需求。本书假定读者已具备电路和电子技术的基本知识,旨在让每位读者都能够对SoC设计有一个基本、正确、全面的了解,为进一步的学习和工作打下坚实的基础。本书偏重专业培训和交流,不是学术专著。
首先,SoC设计的应用领域很广,涉及的IP种类繁多,如果都进行详细介绍和深入讨论,需要极大的篇幅,本书试图兼具深度和广度地介绍SoC设计,使读者尽可能获取芯片的主要知识。芯片架构师、建模工程师、芯片规划和项目管理人员更需要具备的是广阔的技术涉猎范围,但并不需要样样精通,因此本书对部分内容进行了适当剪裁,可以满足他们的需要。芯片设计工程师需要对芯片具有较全面的了解及对各个模块的深入讨论,建议有关读者进一步阅读相关文献。
其次,由于SoC设计需使用多种EDA工具,因此存在不同的供应商和工具版本,甚至使用的专业术语也不一致。本书着重整理和介绍了 EDA 工具所依赖的基本概念和方法,避免成为特定EDA 工具的使用手册,建议对EDA工具感兴趣的读者阅读专门的工具使用手册和参考资料。
再次,对于本书中各个章节所涉及的主题,从基本概念到复杂的应用场景均需要相当大的篇幅才能介绍全面,编著者在进行技术培训时发现,一般初、中级设计工程师对基本概念和方法较有兴趣,这些内容契合他们的工作需求,而中、高级设计工程师通常承担复杂的设计任务,更关注复杂的应用场景,如果放在一起介绍,听众往往会失去耐心和重点。鉴于此,编著者将两者进行了适度切分,《SoC设计基础教程》偏重基本概念和方法的介绍,而《SoC设计高级教程》偏重复杂应用场景的介绍,并添加了一些专题内容。
最后,SoC设计是一个硬件实现过程,本书提供了大量的图表,配合文字叙述,帮助读者理解并建立SoC的硬件实现图像。
内容体系
《SoC设计基础教程》分为系统架构篇和技术实现篇。
系统架构篇共5章,主要介绍了SoC的系统组成。其中,第1章介绍了SoC的构成、设计流程和设计方法学;第2章介绍了处理器体系结构、缓存、处理器系统、处理器调试和跟踪、ARM处理器;第3章介绍了存储器、存储子系统的层次、DRAM和闪存;第4章介绍了总线的基本概念、总线设计、AMBA总线、通信总线和系统总线;第5章介绍了I/O接口、I/O通信、芯片接口、串行接口、音频与视频接口、网络接口、系统外设。
技术实现篇共8章。前5章主要介绍了SoC的的基础设计。其中,第1章介绍了时钟及产生电路;第2章介绍了复位及其同步化;第3章介绍了跨时钟域设计;第4章介绍了低功耗技术;第5章介绍了标准库。后3章主要介绍了SoC设计的重要环节。其中,第6章介绍了设计约束和逻辑综合;第7章介绍了验证;第8章介绍了DFT。
书后有2个附录,附录A是专业术语的中英文对照,附录B是设计术语索引。
本书的后继——《SoC设计高级教程》介绍了SoC设计的专门知识和先进技术。
本书覆盖内容较多,读者可以按章节顺序阅读,也可以根据兴趣和需要挑选阅读。
补充阅读
在国内外的专业网站上,有很多对SoC设计的专业介绍、心得、总结和翻译资料,覆盖了几乎所有IP、EDA工具和设计环节,编著者列出了成书过程中参考过的文献,感兴趣的读者可扫描前言后面的二维码进一步阅读。
本书读者
本书的读者主要是从事SoC设计的专业工程师、从事芯片规划和项目管理的人员。通过阅读本书,SoC架构设计师和芯片设计工程师将加深对SoC和SoC设计全流程的了解,IP设计工程师可以加深对全芯片和其他模块的设计方法及流程的了解。此外,本书也为芯片规划和项目管理人员提供了技术细节。
本书的部分内容可以用作大学的教学内容和企业的培训内容,供老师、具有电子技术知识的高年级学生和研究生,以及从事SoC设计的专业人员阅读。
结语
虽然编著者动笔时充满了热情和勇气,但是在写作过程中不断遭遇挫折,以致有些难以为继:一方面是工作量超出了编著者最初的估计,有些内容也超出了编著者的认知和经验;另一方面是写作期间的工作变动和任务调整影响了写作进度,有些内容只能忍痛舍弃。所幸终于成文,非常感谢所有予以支持的朋友和同事。
限于编著者水平,书中难免存在错误和疏漏之处,欢迎读者予以指正,以便再版时修正。
致谢
本书初稿曾经供小范围读者阅读,他们给出了很多建议。在修改稿的基础上,多位技术专家认真审读了全文,并提出了很多修改意见。其中,系统架构篇的审阅专家是徐华锋(第1章、第5章)、刘少永(第2章、第3章)、郭彬(第3章)、张斯沁(第3章)、李涛(第4章)、韩彬(第5章);技术实现篇的审阅专家是夏茂盛(第1章、第2章)、林忱(第3章)、刘贵生(第3章)、安英杰(第4章)、田宾馆(第5章、第6章)、潘宏亮(第5章、第6章)、骆建平(第5章)、李季(第7章)和贾俊波(第8章)。另外,众多朋友花费时间,帮忙制作了大量插图,他们(按笔画排序)是马腾、王一涛、王利静、王魏、巨江、田宾馆、刘洋、刘浩、孙浩威、李季、李涛、李敬斌、杨天赐、杨慧、肖伊璠、张广亮、张珂、陆涛、周建文、胡永刚、柳鸣、韩彬、焦雨晴、谭永良、樊萌、黎新龙等。没有他们的付出,本书难以成文出版,编著者在此向他们深深致谢。
在本书选题和撰写过程中,得到了电子工业出版社牛平月老师的大力帮助和支持,在此致以衷心的感谢!
展开