type
status
date
slug
summary
tags
category
Property
Jan 25, 2023 08:47 AM
icon
password
属性
属性 1
描述
Origin
URL

1.1、MOS 晶体管

MOS 晶体管的立体结构示意图如下:
notion image
一个管子可以看做是 0 和 1 的基本单元!

1.2、CMOS 反相器

通常会把 MOS 管做成 PMOS(P 表示 Positive)和 NMOS(N 表示 Negative)两种类型,这两种管子是互补的,合起来称为 CMOS(C 表示 Complementary,即互补)。

1.2.1、CMOS 反相器组成

PMOS 和 NMOS 会构成电路基本的逻辑单元,如下图所示是反相器的构造(需要重点掌握)。
notion image
  • 若 In 输入 0,NMOS 的 Gate 是 0,NMOS 处于关闭状态;PMOS 的 Gate 经过反相器(图中小圆圈)是 1,PMOS 处于打开状态;此时 Out 与 PMOS 的 Source 端状态一样,即 Out 被拉至 VDD,输出 1。
  • 若 In 输入 1,NMOS 是打开状态,PMOS 是关闭状态,Out 与 NMOS 的 Drain 端状态一样,即 Out 被拉至 GND,输出 0。
  • 综上,该逻辑实现的是一个反相器。
CMOS 对应的标准单元(Standard Cell)工艺图(或称版图 Layout),如下所示:
notion image
常见笔试题:PMOS 管比 NMOS 管宽的原因是什么?
  • :PMOS 是空穴导电,NMOS 管是电子导电,电子的迁移率约是空穴的 2 倍。

1.2.2、CMOS 反相器一阶直流分析

notion image
  • 左侧:Vin = VDD,即输入为 1,N 管导通,P 管断开,N 管会有一个导通电阻。
  • 右侧:Vin = 0,即输入为 0,N 管断开,P 管导通,P 管会有一个导通电阻。

1.2.3、CMOS 反相器瞬态响应

notion image
notion image
不管是从 1 到 0,还是从 0 到 1,两个都有一个过渡时间,即 transient time,并不是理想的垂直跳变。尽管如此,我们前端在做分析的时候还是按理想的垂直跳变进行分析。因为我们更多关注的是高层的逻辑功能,尽量不要与底层的工艺库选型牵扯到一起,这要是耦合在一起分析直接把人搞崩溃了。
transient time 跟晶体管的工艺有关系,即跟 R O n R_On RO​n 和 C L C_L CL​有关系。 V o u t V_out Vo​ut 到后面会去驱动很多的 CELL,这些 CELL 简化下来就等效于一个电容模型。而管子本身也是有电阻的,故 transient time 跟所选的工艺(管子电阻)和输出负载(等效电容)有关系!

1.2.4、CMOS 反相器的 transient time

更接近实际的 transient time(容抗效应)
notion image
一个简化版本的 transient time
notion image

1.2.4、CMOS 反相器小结

notion image
左侧是后端设计的一个版图,上面是一个 PMOS 连接到 VDD,下面是一个 NMOS 连接到 GND。

2.1、Dynamic Power Consumption 动态功耗

2.1.1、Charging and discharging capacitors 翻转功耗

管子的翻转,导致的管子的开和关形成的功耗!
notion image
  • 升压可提高性能(CELL 的延时会变短,transient 会变短,翻转频率可以跑的更高些),但同时功耗增加
  • 温度升高时,功耗增加
  • 从上述动态功耗公式可以看出,动态功耗和晶体管大小无关,和电压的平方成正比( V d d 2 ) Vdd^2) Vdd2)),和翻转率成正比 ( f f f),和 Vout 接的负载有关系( C L C_L CL​)
Node Transition Activity and power 节点转换活动和功率
notion image
  • 做工程的话最终用的还是推导的结论,即上图中红色框住的部分。从结论不难得出,功耗的 Average 主要与电压的平方、跟时钟频率有关系。

2.1.2、Short Circuit Currents 短路功耗

Short circuit path between supply rails during switching 开关导通瞬间的电源和地之间形成短路(eg:CMOS 反相器两个管子同时导通的情形)
notion image
  • 上图中的第二幅图,假设电压 Vdd 是 5V,当电压是 2.5V 左右时,短路电流达到最大!
Minimizing Short-Circuit Power 最小化短路功耗
notion image
  • 从上图不难看出,电源电压 Vdd 是决定短路功耗的一个重要因素。

2.2、Static Power Consumption 静态功耗

2.2.1、Leakage 漏电功耗

Leaking diodes and transistors 二极管和晶体管漏电(与地之间形成通路,不过电流很小)
notion image
  • 器件本身的原因必然会产生漏电电流
  • 要解决漏电功耗是把它的 Sub-Threshold 做一些变化,供应商会提供多种不同的库,不同的库 Sub-Threshold 不一样。Sub-Threshold 高,频率会高一些,延时会短一些,对应的漏电功耗就越大。

2.3、Principles for Power Reduction 降低功耗的原则

notion image
  • 降功耗最主要的是降电压,其次是减少反转率(如进行时钟门控),最后是减少电容!
摩尔定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔 18-24 个月便会增加一倍,性能也将提升一倍。

3.1、3D MOS 晶体管 22nm

notion image
  • FINFET(鳍式晶体管)的结构是类似鱼翅一样的东西,是加州大学胡正明教授带领团队发明的,主要为突破芯片 25nm 进程,解决 mosFET 由于制程缩小伴随的隧穿效应。
上面介绍了基本的标准单元内部结构,包括实现基本逻辑的原理,以及它的电气特性,包括它的容抗阻抗特性,也介绍了一下功耗相关的内容,最后介绍了业界有名的摩尔定律。下面要学习的是数字中的逻辑,跟上述电气特性的相关性并不是很大。电气特性更多的是在后端物理实现上去考虑的(eg:容抗效应导致从 0 到 1 跳变需要一定的时间,跳变会引起管子的翻转会引起功耗),而数字验证更多的需要了解前端的逻辑(eg:纯粹的 0 到 1 跳变,不会有中间的跳变过程)!

4.1、数字组合电路逻辑器件:与门、或门、非门

组合电路的意思就是输出是及时响应的,当前时刻的输出只与当前输入有关系,与之前输入无关!组合逻辑实现的电路叫组合电路。
组合电路的缺陷:组合逻辑由于走线延迟的差异可能会产生毛刺,这种现象叫竞争产生的结果叫做冒险。为了解决这个问题,于是就引出了时序逻辑 (把时间点分成一个个时钟周期,按照时钟周期去采集数据,在稳定的状态采的数据。)

4.1.1、组合电路(门级电路):与非门 NAND

notion image
  • 逻辑最基本的东西叫真值表(Truth table):把逻辑信号代表的逻辑范围值全部遍历。有 n 位的话就有 2 的 n 次方种状态
  • 真值表中,1 位叫做 1 个 bit,在逻辑里面用的是一个二进制的方式。用 cmos 管来搭我们的电路。一个 CMOS 管的输入只能代表一位或者一个 bit,只有两种状态 0 或 1,即管子的开和关,正好和数学中的二进制匹配上。有几位就有 2 的几次方种状态。
  • 与非(在与的基础上取非):A 和 B 都为 1,out 才是 0
常见笔试题:使用与非门设计一个电路,画出 CMOS 的电路图!
  • :上图的右边那个图。
与非门(NAND)对应的标准单元(Standard Cells)
notion image
  • 上图的右侧电路图是工业界实现的电路图,原理与之前的电路图一样,只不过把两个 A/B 的输入接到了一起。
  • 左侧是版图 Layout!

4.1.2、组合电路(门级电路):或非门 NOR

notion image
  • 或非(在或的基础上取非):A 和 B 都为 0,out 才是 1

4.2、数字时序电路逻辑器件:寄存器、锁存器

  • Latch:锁存器是电平敏感器件
notion image
  • Register:寄存器是边沿触发敏感器件
    • Flip-Flop:触发器类似寄存器
notion image
  • 时序电路少不了时钟 clk,时钟采集数据分为两种:Latch 和 Register。Register 是用的最多的,用的是时钟的上升沿去采(0->1 的叫上升沿,1->0 的叫下降沿)。
  • 用时钟的上升沿去采,会一直保持住上一个点采集的数据,这也是时序电路的特点。这里要求输入 D 是不能有一个沿到沿的变化的,因为 Clk 也是上沿采集,由此引出了 setup 的概念,即建立时间,相当于时钟上沿之前的数据要保持稳定

4.2.1、Setup/Hold Time illustrations 建立 / 保持时间图示

notion image
notion image
notion image
notion image
notion image
  • 建立时间:时钟的上升沿到来之前,数据要保持稳定的时间!
notion image
notion image
notion image
  • 保持时间:时钟的上升沿到来之后,数据要保持稳定的时间!
常见面试题:电路为什么需要触发器这种结构?
  • :用触发器是因为触发器能保存数据,保存电路状态;触发器是在时钟边沿触发,用时钟同步是让整个电路能同步整齐划一的工作;乘法器的计算部分是组合逻辑,不需要触发器,计算后的结果可以用触发器保存起来。
常见面试题:什么是建立时间、保持时间,如果 setup time violation (建立时间不满足)或者 hold time violation (保持时间不满足 )应该怎么做?
  • :建立时间:是指在触发器的时钟信号采样边沿到来之前,数据保持稳定不变的事件;保持时间:是指在触发器的时钟信号采样边沿道来之后,数据保持不变的事件。
notion image
  • 数据建立时间和保持时间
notion image
notion image
  • 上图中的蓝色线是数据路径,绿色线是时钟路径,两者源头一样。
  • 上图是典型的时序分析模型,在该模型中,主要分析 FF2 的数据输入(B 点)和时钟输入(点 C),看两者到达的关系,是否满足 Setup/Hold 时间。
  • 两个 D 触发器的时钟源头,都是 A 点。在时钟线上有一些 BUFFER,是为了做时钟树平衡,尽量使 A 点时钟到达 E 点和 C 点的相位一样,两者之间的差值:|Tea - Tca| = Tskew。
  • 我们要比的是 FF2 数据的相位(B 点)和 CLK 相位(C 点)关系
    • B 点数据的相位又和 E 点 CLK 相位有关系。
    • 从 D 点进入的数据从 F 点出来,F 点出来的数据跟 E 点的 CLK 之间又有一定的延时,我们称之为 Tcq(Time Clk to Q)。
    • 数据从 F 点出来到 B 点,之间会经过一段组合逻辑,这个组合逻辑也有一定的延时,我们称之为 Tcomb(Time Combinational),这个组合逻辑延时包含两部分:器件延时(与或非门)和线延时。
  • Setup time violation:
    • 建立时间在静态时序分析时必须满足以下条件
    • Tsetup <时钟延时 - 数据延时 = (Tclk + Tca) - (Tea + Tcq + Tcomb) = Tclk + Tskew - Tcq - Tcomb
      • 时钟延时路径为什么有 Tclk?CLK_E 的上升沿把数据打出去,只能在 CLK_C 的下一个沿采集数据,即在 Tclk+Tskew 采集数据!
    • 如果 setup time violation,则上述公式不成立
  • Setup time violation solution:调整上述公式中的变量:Tclk、Tcomb、Tskew
    • 增大 Tclk
      • 降低数字系统的工作频率
    • 减少 Tcomb【实际工程中用的最多】
      • 从数字逻辑功能设计的角度看(前端)
        • 在组合电路之间插入寄存器,增加流水线(pipeline)【实际工程中用的多】
          • 增加流水的负面效应是整个处理的延时增大。
        • 在不改变逻辑功能的前提下,对组合逻辑电路进行优化【实际工程中用的多】
        • 减少扇出(fanout)或负载
      • 从数字物理版图实现的角度看(后端)
        • 更换速度更快的标准单元(HVT-High Vlotage Threshold,SVT-Standard Voltage Threshold,LVT-Low Voltage Threshold), 但是与之对应的功耗也会增加,需要做 Tradeoff!
        • 更换驱动能力更强的标准单元(X2,X4)
        • 更换阻值更低的金属层以减少标准单元电路的负载和金属线网延迟
      • 增加 Tskew【工程上用的少,容易破坏时钟树】
        • 在时钟路径上,插入 Buffer,增加时钟路径的延迟,但是不能影响 Hold Timing
  • Hold time violation(跟时钟周期没关系)
    • 保持时间在静态时序分析时必须满足以下条件:
    • Thold < 数据延时 - Tskew = Tcq + Tcomb - Tskew
    • 如果 hold time violation,则上述公式不成立
  • Hold time Violation solution
    • 增大 Tcomb
      • 在组合电路的数据传输路径上,插入延迟单元(buffer),增加组合逻辑延迟;但是当组合逻辑延时增加时,setup time 可能会出现违例。这时候就需要做平衡(Balance)。由此可以看出 setup 和 hold time 是相互制约的。
    • 减小 Tskew
      • 时钟树调整,做好 Clock tree balance,hold 就容易收敛。因为 hold time 与时钟周期没有关系!
总结
notion image
  • 建立时间:是指在触发器的时钟信号采样边沿到来之前,数据保持稳定不变的事件;保持时间:是指在触发器的时钟信号采样边沿道来之后,数据保持不变的事件。
  • setup 和 hold 是相互制约的,修复 hold 后,setup 的余量就会变小或者变成负值。因此时钟频率越高,setup 和 hold 相互制约越严重,甚至会出现修复 setup 之后,hold 就会违例;或者修复 hold 之后,setup 就会违例的现象。
常见面试题:为什么触发器会存在 setup 和 hold time 的要求?
  • :设计触发器时,需要注意触发器的几个时间特性,满足这些特性触发器才能正常工作。
常见面试题:当 setup 和 hold time violation 发生时,会导致什么后果?
  • :时钟沿采集数据采不准,会导致逻辑设置不稳定,产生亚稳态。因为本来就只是表示 0 和 1。
常见面试题:什么是亚稳态?如何在异步电路设计中解决亚稳态的问题?
  • :电路里面的状态不是 0 就是 1,通常结果都是确定的,如果发生 violation,那么结果是 0 或者 1 就会不确定,这种状态就叫亚稳态。即亚稳态: 采沿的时候可能采到 0 或者 1 的这种不确定的状态。
  • 解决亚稳态的方法:在单个电路中可以打多拍,来减少亚稳态的概率,并不是完全彻底的消灭亚稳态。
  • setup 和 hold 在同步电路里面可以通过工具去约束,从而让时序满足。因为没办法在异步电路中去建立时钟路径,所以没法在异步电路中约束,可能就会出现 violation,就会出现亚稳态。

4.2.2、流水线技术(pipeline)

组合逻辑过长,会导致 Tsetup 不满足,这时候可能会去减少组合逻辑,办法是通过加入入流水线(插入 D 触发器)!
notion image

4.3、全加器

notion image
  • 要求:能画出真值表,布尔代数也记下来。笔试的时候用的多。实际中直接用 verilog 直接代码写了。
  • 半加器和全加器的区别在于有无 cin,没有就是半加器
  • 上图的右上角代码是 Verilog 综合后生成的!

4.4、乘法器

notion image
  • 乘法器也可以由基本的与或非门(CMOS 电路)构成。

4.5、工业界如何实现算数逻辑单元

如何表述(设计)数字算数逻辑单元?
  • HDL(硬件描述语言 Hardware Description Language):Verilog/VHDL/SystemVerilog
  • 加法器(+),乘法器(*)
如何将数字算数逻辑单元的描述代码转化为可以生成的文件?
  • 逻辑综合技术:HDL 转换为 Netlist(MAP 成 Standard Cell 的输出)(门级网表)
  • 物理版图设计(Place Route 布局布线,简称 PR):Netlist 转化为 GDSII(可用于生成的版图文件)

4.6、Design at a corssroad System-on-Chip

notion image
  • 随着集成度的提高,我们把系统集成在芯片里面,简称 SoC

4.7、IP - Intellectual Property

notion image
  • 芯片里面会集成很多的 IP,IP 是实现不同功能的模块

4.8、VLSI 超大规模集成电路自动布局布线

notion image
  • 颜色很多,说明层数很多

5.1、数字电路的数制

  • 二进制:binary
    • 0(低电平),1(高电平)
    • 1’b0,1’b1
  • 八进制:octonary
    • 1’o0,1’o1,1’o2,1’o3,1’o4,1’o5,1’o6,1’o7
    • 0~7
  • 十进制:decimal
    • 1’d0,1’d1,1’d2,1’d3,1’d4,1’d5,1’d6,1’d7,1’d8,1’d9
    • 0~9
  • 十六进制:Hexadecimal
    • 1’h0,1’h1,1’h2,1’h3,1’h4,1’h5,1’h6,1’h7,1’h8,1’h9,1’ha,1’b,1’hc,1’hd,1’he,1’hf
    • 0~F/f
    • 8421 编码

5.2、数字电路中的补码

  • 数字电路中的数值均使用正数表示,负数需要使用补码的方式表示
    • 最高位是 1 是代表负数,0 时代表正数
  • 正数的补码是正数自己
  • 负数的补码:符号位保持不变,其他所有 bit 反转,然后 + 1
    • eg:+5:原码为 0101,补码为 0101;-5:原码为:1101,补码码为 1011。

5.3、布尔逻辑

  • 与逻辑 &
    • 全为 1 时,与逻辑值为 1
    • 有一个位 0,与逻辑值为 0
  • 或逻辑 ||
    • 全为 0 时,或逻辑为 0
    • 有一个位 1 时,或逻辑为 1
      • | 算术运算符;||逻辑运算符 (只有对 True 和错 False) 都是代表或;对于单比特两者都一样,多比特两者不一样。
        • 如果 a = 3’b101,b = 3’b110,那么 c = a | b = 3’b111;
        • 如果 a = 3’b101,b = 3’b110,那么 c = a || b = 3’b001;
      • 同理~算数运算符,!逻辑运算符
  • 非逻辑:!
    • 0 的非逻辑为 1
    • 1 的非逻辑为 0
央国企应聘Python学习笔记——基础篇(Ⅰ)
  • 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
🎉持续更新中🎉