Microelectronic学习章节总结(3)-- gate level to physical level design

news2024/11/29 6:27:21

文章目录

  • 数字逻辑设计的主要流程
  • logic family
    • CMOS
      • Transistor实现的时序逻辑
    • PSUDO-NMOS
    • DCVSL(Differential Cascode Voltage Swing Logic)
    • DOMINO
    • C2MOS(Clocked CMOS)
    • TSPC(True Single Phase Clocking)
  • Transistor behavior
    • CMOS inverter案例分析

PPT:13,14-a,15-1,15-b,16

数字逻辑设计的主要流程

IC设计主要有分为两个阵营:一是ASIC(application specific intergrated circuit),另一个阵营是FPGA(field programmable gate array)。其都可用HDL进行设计,但是实际实现方法是有不同的。其中ASIC更频繁地使用在有大规模生产的特定功能的场景下,而且一旦设计和验证流程走完后电路的逻辑和性能就完全固定,生产的流水线也固定下来。然而FPGA的通用性更强,通过对逻辑门阵列中逻辑门电路之间链接的修改实现一些特定功能,这种方法下,电路的结构很容易修改,应用场景也更多变,但是自由度的增加带来的是性能的降低和价格的升高。因此FPGA很多时候用于ASIC芯片制造之前的逻辑仿真或者原型机的试运行。FPGA的前身是PLA(programmable logic array)如图fig1所示,其通过链接and plane和or plane输入线上的交叉点来进行逻辑表达(图中是简化示意图,与门和或门上的输入信号线实际有两根以上,也就是说需要连接两个以上的交叉点来将输入补充好),这种方式的主要思想是用and, or, not三种逻辑门来表示所有可能的逻辑关系,此外通常为了表达时序电路,在输出端还会增加D flip-flop回馈电路如图fig2所示。

fig1. programmable logic array
fig2. completed PLA

上面的电路表示的仅仅是一个Macrocell,由多个Macrocell可以组合成一个Macroblock用于实现更加复杂的功能,多个Macroblock通过总线想连输出到外部IO口就构成了CPLD(Complex Programmable Logic Device)的基本结构,如图fig3所示。

fig3. CPLD overall structure

但在FPGA中使用的是look-up-table来表示逻辑,这种方法的好处在于用户可根据实际的应用场景生成的真值表来直接定义FPGA的功能,其结构如图fig4所示,其中SRAM也可以替换其他种类可读写的memory例如EEPROM,同样上面的CPLD结构也适用于FPGA。

fig4. FPGA structure

对于ASIC电路从设计到市场主要有下面的流程:

  • 逻辑设计(logic descroption):用HDL对电路的逻辑行为进行描述
  • 预综合(Pre-synthesis):根据HDL描述生成一个netlist,这个netlist中不包括任何时序或者其它性能上的描述,仅仅转换为gate-level description。
  • Mapping:使用定义了实际元件的元件库与generic gate-level description中的元件进行匹配,并且使用算法对结构进行优化分析,并产生post synthesis netlist(主要是STA(Static analysis)和power analysis),这一部分主要使用Synopsys Prime Time来完成。其可以生成Post-synthesis report。这里主要包括了3个部分:Area report, Timing report, Power report
  • 布局(Placement):将上面生成的post synthesis netlist 中的元件放到power ring(可以理解为片上电源和地组成的线路)中
  • 布线(routing):如名所示需要将元器件之间的逻辑连接给连起来,另外也需要确定连线的metal layer。
  • 封装(packaging):将内部网络与封装上的Pads连接
  • DRC-验证(Design rule check verification):这个验证中包括了area, timing, power, crosstalk noise, power supply noise, electromigration, process variations influence on performace的规格验证。

实际上在整个流程中还有很多其它的验证环节用于保证产品的逻辑功能符合要求,以及在制造环节中得到较低的不良率,这些内容在Testing and fault tolerance中再进行详细描述。

logic family

这一章节实际上讨论的是VLSI集成逻辑电路(或者说是逻辑门)的实现方式。最初的实现方式是由vacuum tube(电子管)通过磁控制其开关动作实现的。直到贝尔实验室发明了晶体管和后来Schockley发明了双极性三极管之后才开始有了用晶体管实现的逻辑电路。第一个比较成功的IC logic family是TTL(transistor-transistor logic),而第一个纳米级别集成度的logic family是ECL(Emitter-Coupled Logic)。然而单晶体管的巨大消耗使得其集成度受到限制,从而logic family的重心从双级型晶体管移到了MOSFET。第一个MOS logic family就是CMOS。

CMOS

MOSFET中PMOS和NMOS是两种逻辑相反的晶体管(在G极施加同样的信号其开关状态相反),例如当G为高电平时,NMOS开启,PMOS关断。CMOS电路的主要结构示意图如fig5所示,上下两个逻辑块对于同样的输入输出的逻辑结果是互补的。由于NOMS的和PMOS的导通特性,NMOS逻辑更适合低端导通而PMOS更适合高端导通,因此在COMS中上拉为PMOS逻辑而下拉则是NMOS逻辑。

fig5. CMOS

NMOS的一阶电流公式为: I D = K × W L × ( ( V G S − V t h ) × V M I N − V M I N 2 2 ) I_D=K\times \frac{W}{L}\times ((V_{GS}-V_{th})\times V_{MIN}-\frac{V_{MIN}^2}{2}) ID=K×LW×((VGSVth)×VMIN2VMIN2),其中 V M I N = m i n [ V D S , V G S − V t h ] V_{MIN}=min[V_{DS}, V_{GS}-V_{th}] VMIN=min[VDS,VGSVth],且对于NMOS而言:

  • V G S < V t h V_{GS} < V_{th} VGS<Vth 时,截止区(夹断电流)。
  • V G S > V t h V_{GS} > V_{th} VGS>Vth V D S < V G S − V t h V_{DS} < V_{GS} - V_{th} VDS<VGSVth 时,变阻区。
  • V G S > V t h V_{GS} > V_{th} VGS>Vth V D S > V G S − V t h V_{DS} > V_{GS} - V_{th} VDS>VGSVth 时,饱和区(导通DS)。

当NOMS用于传输高电平时,我们知道此时DS是导通的,由于MOS管在导通时 V D S → 0 + V t h V_{DS}\rightarrow 0+V_{th} VDS0+Vth(管压降),从而会导致S极的电平被拉高到趋近VDD此时因为 V G → V D D V_{G}\rightarrow VDD VGVDD所以这种情况下反而会使MOS管电流减小到截止。因此,NMOS不适合高端驱动。同样的道理,PMOS相反,当作为低端驱动时,会将 V D V_{D} VD(输出端口)下拉到低电平导致MOS管截止,因此PMOS不适合低端驱动。下面的图为NMOS高端驱动核PMOS低端驱动的电路。

fig6. 上方为NMOS高端驱动,下方为PMOS低端驱动

根据此实现的基本逻辑电路如图fig6所示,需要注意的是transmission gate,这个是由于单个MOS管的传送PMOS在传输信号1时会比0慢,NMOS传输0比1慢,这个电路可以实现用PMOS传输1用NMOS传输0,此外其它的逻辑门都可以用这几种实现来进行组合:

fig7. 基本逻辑电路的CMOS实现

对于这个Transistor gate我们知道在多个串连的情况下其传输的电压是有损耗的(管压降),因此通常为了保持电压会在多个串连的transistor gate之间加上两个NOT门逻辑电路来拉高电压。

Transistor实现的时序逻辑

下图fig8为使用transistor gate实现的锁存器和由锁存器构成的D-flip-flop。

fig8. 由transistor gate实现的时序电路

PSUDO-NMOS

图fig9是pseudo-NMOS电路的结构,其在CMOS的基础上用一个电阻替代了PMOS构成的上拉部分,这样可以减少电路所占的area,但是其功耗会有所增加因为在NMOS开启时由于不是完全关断还是会有电流流过电阻,进一步的解决方法是将电阻替换成一个常开的PMOS,这样可以进一步减小area同时由于其电阻值较小,在这个PMOS上的功耗也会更小,但是这会同时影响到dynamic和static power dissipation。此外其输出在低电平时不能到完全为0电平。但是速度会比CMOS更快一点

fig9. pseudo-NMOS(左),改进pseudo-NMOS(右)

DCVSL(Differential Cascode Voltage Swing Logic)

输入时输出的结果帮助关段或开启PMOS,使得开关频率更高

fig10. DCVSL

pro:

  • 减小了瞬间短路引起的功耗
  • 信噪比高(有反向互补输出)

con:

  • 网络复杂,area巨大

DOMINO

PMOS开启时给负载充电;NMOS开启时根据下拉NMOS电路逻辑决定是否放电,这个周期里读取电路的逻辑值

fig11. DOMINO

pro:

  • 比CMOS快
  • area更小
  • 没有短路电流消耗

con:

  • 在级连时(cascaded domino logic),会有Charge Sharing的问题。由于后一级输入的延迟,clock在后一级输入信号到达之前就打开了NMOS通道放电会导致信号错误(本来要保持高电平但是延迟导致了放电成了低电平),解决方法在输出端加上一个反向器
    在这里插入图片描述

C2MOS(Clocked CMOS)

fig12. C2MOS

pro:

  • 没有leakage power
  • 很快
  • 直连电源和地,负载驱动能力很好

con:

  • 需要 C K ‾ \overline{CK} CK信号,这个信号要CK完全同步

TSPC(True Single Phase Clocking)

fig13. TSPC
pro: con:

Transistor behavior

上面讲的一部分NMOS和PMOS的特性这里就不再重复了,这一部分里主要讲有关寄生电容的东西以及一些可以用来分析电路中问题的底层逻辑。对于单个MOS晶体管,其结构如下fig14所示,与其到点性能有关的物理量有以下几个,这也是在工艺设计中能够影响电路性能的晶体管参数:

  • L:沟道长度,决定了晶体管从截止区到饱和区状态变化所用的时间,L下降,开关频率增加
  • W:沟道宽度,决定了从D到S的电流大小,W下降,电流下降
fig14. NMOS 3D view

除此之外,我们还要关注的是晶体管各个引脚之间的寄生电容,这些也会成为影响晶体管开关性能的因素。在晶体管引脚之间的寄生电容如图fig15所示,其大小是由晶体管自身的尺寸决定的,即上面提到的W和L,当晶体管本身的尺寸越大,一般来说寄生电容也会越大,例如 C G B = ϵ t o x ⋅ W ⋅ L C_{GB}=\frac{\epsilon}{t_{ox}}\cdot W\cdot L CGB=toxϵWL,其中 ϵ \epsilon ϵ为电介常数, t o x t_{ox} tox为gate上二氧化硅层的厚度。

fig15. NMOS parasitic capacitance

CMOS inverter案例分析

inverter的电路如fig16所示。需要考虑的指标有下:

  • Vin:输入信号
  • Vout:输出信号
  • Idsn:流经NMOS的DS极的电流
  • Idsp:流经PMOS的DS极的电流
  • Iout:输出电流

其中输入信号的例子是0->1,因此输出信号应当为1->0。另外需要明白的是这里的负载实际上包括了三个部分:

  • inverter自身的管压降带来的负载
  • 接在输出端口负载本身
  • inverter和负载之间连接的负载
fig16. 带负载的inverter

根据电路分析可知: I d s n = I o u t + I d s p I_{dsn}=I_{out}+I_{dsp} Idsn=Iout+Idsp,在这里我们改变负载大小C、晶体管的沟道尺寸W和输入信号上升时间 T r i s e T_{rise} Trise可以得到下面的图表,由此可知

  1. 负载大小影响晶体管状态转换时的短路电流,
  2. 沟道变宽实际上可以减少短路的时间,但是会增加短路的峰值电流大小,但是总的功率损耗大致不变(2,3的输出电流面积大致相等)
  3. 输入信号的延迟会导致短路时间拉长,但是不会影响到输出端的功率消耗(1,4的 I o u t I_{out} Iout面积相等)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/512552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C生万物】 指针篇 (进级) 00

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; &#x1f449; 专栏&#xff1a;《C生万物 | 先来学C》&#x1f448; 前言&#xff1a; 前面已经带大家学习了初级的指针&#xff0c;先回顾一下重点&#xff1a;指针是用来存…

数据库sql语句(视图的创建)

例题&#xff1a; 建表&#xff1a;要注意各表之间的索引联系&#xff0c;建表先后顺序很重要&#xff0c;不然建不了&#xff0c;例如先建dept&#xff0c;在建其他表&#xff0c;先在dept插入数据&#xff0c;再在其他表插入数据 &#xff08;1&#xff09; create table …

SW simulation解算器选取

接下来重点介绍以下4种解算器&#xff0c;并对解算器进行实际的计算测试。1)Direct sparse解算器&#xff1a;稀疏矩阵解算器&#xff0c;目前使用最为广泛也是发展最为成熟的解算器&#xff0c;几乎所有的有限元分析软件都有该解算器。它可以用于大多数计算模型&#xff0c;堪…

<IBM> 《HA网卡确认方法》

《HA网卡确认方法》 1 HA IP地址类型2HA IP地址设置原则3 HA网卡日常查看方法3.1 查看hosts文件3.2 查看网卡和IP 4 通过命令方式直接查看5 直接查看HA配置4 HA网卡SMIT查看方法&#xff08;暂不完整&#xff09;4.1 根据hosts文件确认IP对应的别名4.2 根据serviceIP确认Persis…

Django SQL注入漏洞分析(CVE-2022-28346)

漏洞简介 Django 在2022年发布的安全更新&#xff0c;修复了在 QuerySet 的 annotate()&#xff0c; aggregate()&#xff0c; extra() 等函数中存在的 SQL 注入漏洞。 影响版本 2.2< Django Django <2.2.28 3.2< Django Django ❤️.2.13 4.0< Django Django &…

白盒测试的静态和动态

白盒测试的静态和动态 静态白盒测试 检查设计和代码 静态测试是指测试非运行部分——检查和审查。白盒测试是指访问代码&#xff0c;能够查看和审查。静态白盒测试实在不执行的条件下有条理地仔细审查软件设计、体系结构和代码&#xff0c;从而找出软件缺陷的过程。有时也称为结…

SpringBoot中@ControllerAdvice/@RestControlAdvice+@ExceptionHandler实现全局异常捕获与处理

场景 在编写Controller接口时&#xff0c;为避免接口因为未知的异常导致返回不友好的结果和提示。 如果不进行全局异常捕获则需要对每个接口进行try-catch或其他操作。 可以对Controller进行全局的异常捕获和处理&#xff0c;一旦发生异常&#xff0c;则返回通用的500响应码与…

洁净环境GMP 要求悬浮粒子 浮游菌 高效过滤器检漏验证所需仪器

lighthouse尘埃粒子计数器 北京中邦兴业是美国lighthouse中国区核心代理服务商&#xff0c;各类型号尘埃粒子计数器均有现货可发。常见尘埃粒子计数器类型&#xff1a;便携式&#xff08;台式&#xff09;、手持式、在线式、液体式。 客户现场 lighthouse浮游菌采样器 北京中…

nginx(七十五)nginx与Vary响应头细节探讨

一 Vary ① nginx与Vary有关联的地方 nginx源码分析处理Vary响应头的逻辑 CORS和缓存 gzip_vary 1) gzip_vary on 如果设置为开启2) 服务器返回数据时会在头部带上"Vary:Accept-Encoding"的标识3) 客户端便可以知道获取到的数据是否已经被压缩,默认为关闭 prox…

ros获取typec-usb摄像头

确保usb或者typec摄像头插在主机上,我这里是typec摄像头&#xff0c;使用了一个usb-typec转接头。 windows在设备管理器中查看是否存在端口&#xff0c;如果没有&#xff0c;可以使用下面的软件进行尝试。 链接&#xff1a;https://pan.baidu.com/s/1hxp3m68W6NjY-3D7q8rGnA 提…

Linux线程同步(1)——一个例子看懂为什么需要线程同步?

对于一个单线程进程来说&#xff0c;它不需要处理线程同步的问题&#xff0c;所以线程同步是在多线程环境下需要注意的问题。线程的主要优势在于&#xff0c;资源的共享性&#xff0c;譬如通过全局变量来实现信息共享&#xff0c;不过这种便捷的共享是有代价的&#xff0c;那就…

postman处理各种请求数据

1、后台request接收postman参数 2、后台单个参数接收postman 3、后台RequestParam参数接收postman 注意事项&#xff1a;情况一&#xff1a;全部都是单个字符串的 情况二&#xff1a;有可能是一个json对象序列化成字符串过来的&#xff0c;那么需要在form-data中设置 …

区间预测 | MATLAB实现QRCNN-LSTM卷积长短期记忆神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRCNN-LSTM卷积长短期记忆神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRCNN-LSTM卷积长短期记忆神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRCNN-LSTM分位数回…

Elasticsearch:如何在 Elasticsearch 中存储复杂的关系数据

在传统的数据库中&#xff0c;对数据关系的描述无外乎三种&#xff1a;一对一、一对多和多对多关系。 如果有关系相关的数据&#xff0c;我们一般在建表的时候加上主外键。 建立数据链接&#xff0c;然后在查询或者统计中通过 join 恢复或者补全数据&#xff0c;最后得到我们需…

Springboot +Flowable,设置流程变量的方式(二)

一.简介 为什么需要流程变量。 举个例子&#xff0c;假设有如下一个流程&#xff0c;截图如下&#xff1a; 这是一个请假流程&#xff0c;那么谁请假、请几天、起始时间、请假理由等等&#xff0c;这些都需要说明&#xff0c;不然领导审批的依据是啥&#xff1f;那么如何传递…

软件测试面试宝典,最常见的7个高频面试题(附答案,建议收藏)

收集了2022年所有黑马学员的面试题后&#xff0c;负责就业的黑马讲师们整理出了7个高频出现的面试题&#xff0c;一起来看看。 高频问题1&#xff1a;请自我介绍下&#xff1f; 高频问题2&#xff1a;请介绍下最近做过的项目&#xff1f; 高频问题3&#xff1a;请介绍下你印象…

2023 年第三届长三角高校数学建模 A 题 快递包裹装箱优化问题

2022 年&#xff0c;中国一年的包裹已经超过 1000 亿件&#xff0c;占据了全球快递事务量的一 半以上。近几年&#xff0c;中国每年新增包裹数量相当于美国整个国家一年的包裹数量&#xff0c; 十年前中国还是物流成本最昂贵的国家&#xff0c;当前中国已经建立起全世界最强大、…

利用jQuery做一个简单的猜数字游戏

目录 利用jQuery做一个简单的猜数字游戏 代码 效果 利用jQuery做一个简单的猜数字游戏 代码 <!DOCTYPE html> <html><head><title>键盘事件-猜数字</title><style>#body_style {background-color: #c7f5db;}#myDiv {position: absolu…

单片机GD32F303RCT6 (Macos环境)开发 (十七)—— i2c1从机中断接收发送数据

i2c1从机中断接收发送数据 1、将i2c1设置为从机模式&#xff0c;与树莓派连接。树莓派发送或者读取数据&#xff0c;gd32中断触发&#xff0c;从而接收数据或者向主机发送数据。 2、关于代码的宏定义配置 Application目录的Makefile中 ENABLE_I2C_TEST yes才会编译I2C1的相关…

为啥马斯克一边反对Open AI,一边又自己另搞AI

这事我过去就说过&#xff0c;我现在再老生常谈一次。 &#xff08;1&#xff09; 我过去说过一个事&#xff1a;汽车自己智能其实还不能做到真正的智能&#xff0c;必须车路人都智能了&#xff0c;智能汽车才能真正智能。 因为车路人智能&#xff0c;这本质是数字世界和数字世…