目录
数字逻辑电路相关概念
- 晶体管:分为二极管、三级管、MOS管、IGBT管,现在芯片中基本上都是MOS管,晶体管的功能是控制电流的流动,利用这个特性,就可以制成许多门级电路,比如与门或门等等,硅是最常用的半导体材料,用于制造各种类型的晶体管。
- Race:信号由于经由不同路径传输达到某一汇合点的时间有先有后的现象,就称之为竞争,英文名Race;
- Risk:由于竞争现象所引起的电路输出发生瞬间错误的现象,就称之为冒险,英文名Hazard或者Risk。有竞争不一定有冒险,但出现了冒险就一定存在竞争。
- 毛刺:发生冒险时往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。毛刺是数字电路设计中的棘手问题,如果毛刺刚好被采样到,那么电路的逻辑就有可能出现错误。它会影响电路工作的稳定性、可靠性,严重时会导致整个数字系统的误动作和逻辑紊乱。
- 同步电路:电路中所有受时钟控制的单元全部由一个时钟来控制
- 异步电路:电路中所有受时钟控制的单元不全部由一个时钟来控制
第一章 概述
1.1 相关概念
-
Foundry
指晶圆厂,负责制造晶圆,是整个微电子行业的基础。 -
Fabless:Fabrication+less
只没有制造业务,只专注于设计的厂商 -
EDA
自动化软件生产厂商,为芯片设计提供软件支持,像国内最大的EDA公司华大九天 -
Design Service
Design House是IC行业专用的行话,最开始被用于专指半导体芯片研发中心,所以如果不特别强调那就指的是Fabless Design House -
IP供应商
主要设计IP,为其他公司提供IP授权,如ARM
1.2 数字芯片设计流程
-
前仿真:下图中的Behavioral Simulation,(目前还不知道Post-Synthesis Functional Simulation和Post-Synthesis Timing Simulation算不算前仿)
-
后仿真:下图中的Post-Implementation Functional Simulation和Post-Implementation Timing Simulation
-
逻辑综合:将RTL代码转化为门级网表的过程
-
一致性验证:检验逻辑综合后的电路功能是否保持一致。简单来说哈,就是你前面的步骤保证了你的代码功能的正确性,但是你是如何知道将RTL级的代码转换为门级你的功能依然是正确的呢?这就需要使用Formality来保证你两次代码的一致性。
-
DFT(design for test):指的是在芯片原始设计中阶段即插入各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件逻辑,通过这部分逻辑,生成测试向量,达到测试大规模芯片的目的。参考连接
-
单元布局:布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如IP模块,RAM,I/O引脚等等。布局规划能直接影响芯片最终的面积。
-
CTS(Clock Tree Synthesis):时钟树综合,简单点说就是时钟的布线。由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟差异最小。这也是为什么时钟信号需要单独布线的原因。
-
布线:布线就是将前端提供的网表(netlist),实现成版图(layout),包括各种标准单元(基本逻辑门电路)之间的走线。比如我们平常听到的0.13um工艺,或者说90nm工艺,实际上就是这里金属布线可以达到的最小宽度,从微观上看就是MOS管的沟道长度。
-
静态时序分析(STA)
静态时序分析几乎存在于后端的每一个节点中。从逻辑综合开始,扫描链插入到布局到时钟树综合再到布线阶段,都需要做一次静态时序分析,以保证这个阶段的建立时间和保持时间是收敛的,进而确认每个阶段的结果是正确的,进而交给下一个阶段。 -
DRC/LVS:
- DRC(Design Rule Checking):设计规则检查,检查连线间距,连线宽度等是否满足工艺要求
- LVS(Layout Vs Schematic)验证:简单说,就是版图与逻辑综合后的门级电路图的对比验证
-
后仿真:前面已经讲了
-
流片:物理版图以GDSII的文件格式交给芯片代工厂(称为Foundry)在晶圆硅片上做出实际的电路,再进行封装和测试,就得到了我们实际看见的芯片。
第二章 Verilog
- 略
第三章 同步电路与跨时钟域电路设计
3.1 亚稳态
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。亚稳态的出现归根到底就是因为建立时间和保持时间不满足要求。
3.2 单bit信号跨时钟域传输
略
3.3 多bit信号跨时钟域传输
- 法一:使用SRAM(这里就不讲SRAM了)
- 法二:使用FIFO
- FIFO分为同步FIFO和异步FIFO。同步FIFO的读写采用同一个clk,异步FIFO的读写采用不同clk
- FIFO分为同步FIFO和异步FIFO。同步FIFO的读写采用同一个clk,异步FIFO的读写采用不同clk
3.4 状态机
- 概念:对具有逻辑顺序或时序规律事件的一种描述方法。
- 分类
- Mealy型:输出信号不仅取决于当前状态,还取决于输入;
- Moore型:输出信号只取决于当前状态;
- 基本要素:状态 输入 输出
- 状态机的基本描述方式:状态转移图 状态转移列表 HDL语言描述
- 状态机的写法:一段式 二段式 三段式 参考地址
第四章 逻辑综合
4.1 逻辑综合概述和基本知识
- 逻辑综合是将行为描述的电路、RTL级的电路转换到基于工艺库的门级的过程,最终会生成一个门级网表文件。
- 常用的逻辑综合工具是Synopsys的Design Compiler
- 逻辑综合的目的是决定电路的门级结构,寻求时序和面积的平衡,寻求功耗与时序的平衡、增强电路的测试性
- 逻辑综合的三个阶段
- 转译:将代码转译成Design Compiler内部的数据库,这一步与工艺库无关
- 优化+映射:根据约束文件映射成晶圆厂提供的工艺库对应的门级网表
- 逻辑综合的约束文件是用来约束面积、时序等信息的,比如面积不能大于固定值,走线长度不能长于固定值(否则时序无法满足)
- 工艺库给出各个门级单元引脚、面积、时序信息、功耗方面的参数。 DC在综合时根据工艺库给出的这些参数来计算电路面积、延迟等信息