刘航宇 发布的文章 - 我的学记|刘航宇的博客
首页
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🎵音乐
🏞️壁纸
搜 索
1
【NPN/PNP三极管】放大电路饱和失真和截止失真的区别
12,730 阅读
2
论文写作中如何把word里面所有数字和字母替换为新罗马字体
7,161 阅读
3
【高数】形心计算公式讲解大全
6,645 阅读
4
【1】基于STM32CubeMX-STM32GPIO端口开发
5,161 阅读
5
如何判断运放是工作在线性区还是非线性区
5,004 阅读
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
登录
搜 索
标签搜索
嵌入式
ASIC/FPGA
VLSI
SOC设计
机器学习
天线设计
C/C++
EDA&虚拟机
软件算法
小实验
信号处理
电子线路
通信&射频
随笔
笔试面试
硬件算法
Verilog
软件无线电
Python
DL/ML
刘航宇
嵌入式系统&数字IC爱好者博客
累计撰写
302
篇文章
累计收到
527
条评论
首页
栏目
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
页面
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🎵音乐
🏞️壁纸
用户登录
登录
刘航宇(共302篇)
找到
302
篇与
刘航宇
相关的结果
2023-02-27
VLSI设计基础11-运算模块之加法器
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化1. 总论在时序电路中,时序电路=组合电路+存储电路在(9)~(11)中,已经详细介绍了存储电路(寄存器)在本文中,将介绍组合电路中比较重要的数据通路上的电路,可以认为是在时序电路中提到的,即用于逻辑运算和算数运算。在数集中,常用的数据通路组合电路有加法器乘法器移位器我们的目的,是追求以下几个方面的优化性能面积功耗如何优化:逻辑层次优化:利用状态机、真值表等,优化布尔方程得到一个速度更快、面积更小的电路电路层次优化:改变管子的尺寸;改变电路的拓扑连接(互补CMOS、动态CMOS等)2. 加法器加法器在数据通路电路中的地位类似于反相器在与或等简单逻辑电路的位置数据通路的电路的基础是加法器乘法器也是加法器扩展而来的加法器是限制数据通路运算速度的元件。1. 一位全加器(FA)传统表达方式定义:根据输入的二值数据、进位信号,计算得到结果和进位。【注】:异或,常见结构有:同或,结构如下(即“异或门结构2”的“非”):P、G、D函数表达真值表如下:逐位(行波)加法器所谓逐位(行波)加法器,指的是将N个一位全加器(FN)串联在一起构成加法器。如下图2. 【结构】设计全加器FA互补静态CMOS结构FA镜像加法器该加法器是根据互补静态CMOS结构FA改进得到的,镜像加法器的下拉网络和互补CMOS结构FA完全相同。电路图如图所示,3. 传输门型加法器——传统型4. 传输门型加法器——曼切斯特FA静态电路动态电路动态电路简单动态电路单向工作,传输门使用NMOS管实现该电路不需要D曼切斯特进位链加法器【逻辑】设计全加器FA旁路进位加法器 延时 $t_}=t_}+M t_}+\left(\frac-1\right) t_}+(M-1) t_}+t_}$线性进位选择加法器平方根进位加法器4. 【重要】超前进位加法器原理块运算点操作步骤如下:Kogge-Stone 16位超前进位加法器Brent-Kung 16位超前进位加法器
2023年02月27日
757 阅读
0 评论
3 点赞
VLSI设计基础10-时序逻辑电路设计(二)
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化1. 时序基础概念时序分析的目的对数字系统进行时序检查,判断电路是否可以正常工作(常面临建立时间和保持时间等问题),判断电路的性能等。常常分析电压、温度、工艺(工艺角)等参数进行分析。2. 时序分析的分类静态时序分析(STA)主要研究对象:建立时间、保持时间、传播延时常用于分析同步时序电路(源时钟和目的时钟相同)时序分析模型:同步时钟/异步时钟D触发器分割组合逻辑一般不需要进行太复杂的仿真,仅需要计算就可以进行分析,运行速度快。不依赖于激励,根据穷尽信号路径上的器件就可以进行计算常用方法是使用查找表——①输入跳变时间②输出负载(电容)→①传播延时②输出跳变(下一级的输入跳变)。动态时序分析(DTA)指门级仿真主要用于异步逻辑、多周期路径在FPGA中,将RTL代码综合利用综合工具综合成门级网络进行仿真,其中各种门级器件的逻辑是厂家提供的。【时钟】沿发送沿:发送数据的源时钟活动沿捕获沿:接收数据的目的时钟的活动沿源时钟:用于发送数据的时钟目的时钟:用于接受数据的时钟小贴士:在同步电路中,源时钟和目的时钟是同一个4. 时序约束参数(重点)即:建立时间tsu、保持时间thold、传播延时tc-q,同时我们引入污染时间tcd建立时间:对于捕获沿到来之前,数据需要保持稳定的时间间接约束了组合逻辑的最大延时保持时间:对于捕获沿到来之后,数据需要保持稳定的时间间接约束了组合逻辑的最小延时传播时间(延时):即 最大延时 时间捕获沿50%(数据输入沿50%【注意:数据输入沿其实就是捕获沿!!!】)到数据稳定输出(输出数据50%)的时间根据器件不同,可以分为组合逻辑传播延时tlogic和寄存器传播延时tc-q,详细见后文。污染时间:可以理解为 最短延时 时间——理想状态下从输入“扰动”到输出“扰动”的时间,下文进行解释。根据器件不同,可以分为组合逻辑污染延时tlogic,cd和寄存器污染延时tc-q,cd,详细见后文所谓理想状态,指的是数据没有跳变时间,即数据跳变是瞬间完成的,数据跳变的90%、50%、10%是在同一个时间。根据以上理想状态的定义,可认为一有扰动,数据就跳变完成。计算污染时间和传播时间现对图中四个时间进行解释:5. 各种信号路径、时序路径信号的路径主要分为三个时钟路径源时钟路径&目的时钟路径数据路径数据起点:对于时序逻辑电路,为某时序单元的时钟引脚对于组合逻辑电路,为某逻辑单元的数据输入端口数据终点: 对于组合逻辑电路、时序逻辑电路都一样,均为某单元的数据输出端口异步路径(如异步复位)根据路径可将分析类型分为同步分析:时钟路径+数据路径异步分析:时钟路径+异步路径6. 时钟参数两大条件(重点)周期条件保持时间条件2. 时间偏差与抖动(重点)理想时钟:从时钟沿到各个单元的时钟端口的延时相等(即路径均匀);同一个时刻,各个单元的时钟端的时钟相位相等。实际时钟:时钟偏差:各个时钟端口的时钟的周期没有改变,但是相位可能略有差别。时钟抖动:时钟的周期存在一些差别,或长或短。1. 时钟偏差(Clock Skew)定义与成因指同一个时钟域之间,时钟信号到达各个寄存器的最大时间差产生原因:时钟源到达各个端点的路径长度不同各个端口的负载不同时钟网络中插入的缓存器不等计算【全局偏差、局部偏差】全局时钟偏差局部时钟偏差时钟偏差分类(正负)正偏差正偏差,即时钟延迟方向与数据流方向一致,如图所示。负偏差正偏差,即时钟延迟方向与数据流方向相反,如图所示。利用时间偏差修补建立时间【周期T】时钟偏差对于周期的影响前文提到,负偏差使得实际逻辑计算的时间减小,为了填补裕量,只能增加时间周期,而提高时间周期会使得电路的性能下降。2. 时钟抖动(Clock Jitter)定义与计算定义:芯片某一给定点上,时钟周期宽度发生变化,或缩短或变宽计算:【周期T】时钟抖动对于周期的影响因为时钟抖动是难以预料的,在确定时钟周期的时候,我们应该考虑最坏的情况,即$T-2 t_}>t_+t_}+t_$即上图所示的③-④。因为这意味着周期T需要增加tjitter,性能降低总结
2023年02月24日
338 阅读
0 评论
1 点赞
2023-02-24
VLSI设计基础9-时序逻辑电路设计(一)
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化1. 时序电路的相关概念1. 时序电路框架:时序电路=组合电路+存储电路结果:取决于当前的输入和过去的状态。2. 静态/动态存储器静态存储器:上电就保持存储状态通过正反馈,有意将输入和输出连接如果长时间不用可以用门控时钟关闭(起到降低功耗的作用)动态存储器:简单而言,即传输门+反相器,如下图。利用寄生电容存储高低电平只能存储较短的时间(ms级别)(电容小等原因使得存储时间短)需要周期性刷新来补偿泄露电荷(参见(9)动态门)结构简单,有较高性能(管子少,RC小)和较低功耗(不存在静态功耗)3. 时序参数(重点)为何这么说?因为只有当满足了建立时间,此时时钟CLK才可以翻转,即此时的数据才是输入端输入的数据所以输入端数据的50%即为时钟的50%小贴士:建立时间tsu和保持时间thold都是针对时钟的有效沿而言的。即,输入数据50%的时间对时钟有效沿50%的时间;对于传播延时,输入信号50%(即时钟信号)时间对输出信号50%时间4. 时序约束条件(重点)1.时钟周期T2.保持时间thold5. 锁存器和寄存器静态锁存器/寄存器1. 静态锁存器1. 电路图与分析以正锁存器为例,电路图如下,电路结构:以传输门为主体的二选一选择器;CLK=1,Q=D;而CLK=0,通过正反馈,输出端和输入端连接。2. 时序参数分析1.5中提到,分析正锁存器时,需要注意的时钟边沿是时钟的下降沿。这是因为,在CLK=1时,Q=D,属于透明传输,即输出随输入随时变化。其信号传播路径:D-①-②-③-Q当CLK=1->0时,锁存器将要对输入数据进行所存。因此需要考虑建立时间tsu。如果要让数据可以正确锁存下来,需要④⑤之间的节点的电平等于③⑤之间节点的电平,即$$ D_=D_ $$2. 静态寄存器——边沿触发寄存器边沿触发寄存器,又称主-从寄存器,由主、从两个锁存器组成电路图与分析主-从寄存器,由主锁存器——负锁存器、从锁存器——正锁存器组成。时序参数分析寄存器复位——同步/异步同步复位(RST=0时复位)异步复位(clr=0时复位)3. 动态锁存器/寄存器动态锁存器电路图:使用电容电荷表示一个逻辑信号。但是值的保存时间有限(ms)(漏电时间),需要周期性进行刷新。动态寄存器电路图工作原理:时间参数分析:存在的问题优化——提高噪声容限3.C2MOS寄存器4. 流水线和多周期路径(重点)流水线电路的工作速度取决于时序电路间的组合逻辑可以通过将复杂、延迟大的组合逻辑(如计算lg(AB))通过寄存器进行分割,提高做工效率。需要注意时序设计。每增加一个寄存器,结果就落后一拍!多周期路径主要是写RTL代码时需要注意。如果一个组合逻辑计算需要多个时间周期完成,可以通过一个cnt进行移位(移位运算量小)。当满足某个条件时,寄存器en=1,输出结果。如:某运算需要经过四个周期完成,可以声明cnt=4'b0001,每个时钟进行左移,当cnt[3]==1'b1时,en=1,输出结果。
2023年02月24日
291 阅读
0 评论
1 点赞
VLSI设计基础8-动态COMS
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化静态CMOS:稳态时,通过低阻路径连接VDD或GND互补CMOS:上下网络互补,上拉到VDD,下拉到GND。管子数为2N传输管逻辑:上拉网络用其他代替,有比逻辑,存在VTH。管子数为N+1动态CMOS:依靠高阻抗上的电容存储临时的信号。管子数为N+21. 综述结构如下,工作方式:工作分为两个阶段预充电:CLK=0,Mp导通,对CL充电求值:CLK=1,MN导通,OUT和GND之间存在低阻通路。特点:全电压摆幅无比逻辑(同互补CMOS,异传输管逻辑)噪声容限低。因为out在预充电阶段已经充电到VDD,即VDS已经满足>VOV,于是只要VIN>VTH,管子就会导通。需要预充电和求值的时钟。较快的开关速度。原因如下,相对互补CMOS,缺少了上拉网络的一个门,相对负载是互补CMOS,负载是动态门的CL比较小动态门没有短路电流(同一个时刻,只能一个导通),由下拉网络提供的所有电流都用于CL电容的放电如果IN=0,则不存在输出延时(预充电完输出即为1);如果IN=1,则需要CL放电晶体管重复利用,减小面积(多输出多米诺)优点:提高速度减小面积(多输出多米诺;N+2个管子)没有短路功耗没有毛刺(因为一次只能翻转一次,CL放电完只能等效下一次预充电才能回到1)2. 存在的问题——信号完整性问题电荷泄露来源:与CL相连的管子存在反偏二极管和亚阈值漏电。解决办法:使用泄露晶体管反馈形式的伪NMOS型上拉器件。该晶体管为了减小功耗和尺寸,一般选用尺寸较小(电阻值大)的管子。电荷分享来源:下拉网络中存在的节点电容CA。当A=0-》1、B=0,则原本存储在电容CL上的电荷在CL和CA之间重新分配,造成输出电压有所下降※需要满足A=0-》1、B=0才能进行电荷分享,否则当B=1的时候,求值过程中(CLK=1),CL存储的电荷将全部被释放掉,不存在点电荷分享现象3. 多米诺逻辑多米诺逻辑即为前文所述的串联动态门,目的就是保证预充电时,输入均为0;求值时,输入只做0→1的翻转$$ \text =n \text +\text $$初始状态均为0,求值的时候根据前一级输出确定下一级输入,从而求下一级输出。特点:求值层层传播,如多米诺骨牌求值阶段的时间取决于逻辑深度(因为求值时候的特性,见上)只能实现非反向逻辑无比逻辑节点需要在预充电充完电,求值的过程中,输入需要特别稳定。速度非常快(因为当上一级的输入都是0时,下一级相当于无延迟传播)输入电容小(和互补CMOS比,只有一个管子)4. 组合多米诺逻辑组合多米诺逻辑,并不需要在每个动态门之后加反相器,而是借助一个复合互补CMOS门将多个动态门组合起来。eg:
2023年02月23日
336 阅读
0 评论
2 点赞
2023-02-23
VLSI设计基础7-传输管与传输门逻辑
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化传输管逻辑1. 有比逻辑传输管逻辑是有比逻辑;互补CMOS是无比逻辑。简单而言,无比逻辑:输出的高低电平和尺寸无关。比如互补CMOS可以直接把输出电压拉到VDD或者GND有比逻辑:输出的高低电平和尺寸有关。基本没办法直接拉到最大逻辑摆幅。上拉网络由一个负载代替,如下三种常见的负载(电阻负载、有源负载、伪NMOS负载)输出端的电压摆幅和门的功能取决于NMOS和PMOS的尺寸比对于伪NMOS管负载优点:逻辑门减小,面积减小,只需要n+1个管子,而互补CMOS需要2n个管子缺点:有比逻辑,达不到最大逻辑摆幅。可能没办法完全关断MOS管,静态功耗增加。应用:面积要求严格,性能要求不高的场景。2. 传输管逻辑区别传输管逻辑和互补CMOS有以下差别:串联综合以上的区别,原因主要出在于输入端可以从D、G,而输出从S,从而使输出和输入之间存在VTH的压降为了减小VTH带来的影响,传输管串联采用D-S-D-S的方式,而不采用D-S-G-S的方式前者只有一个VTH压降,而后者有两个如下:3. 互补传输管逻辑(CPL)优点:互补输入输出每个输出节点都有一个低阻路径连接到VDD或者GND模块化缺点:存在VTH,充电充不到VDD,只能充到VDD-VTH解决方法:电平恢复、多种阈值晶体管、传输门逻辑确定输出:3. 传输门逻辑
2023年02月23日
2,021 阅读
1 评论
7 点赞
VLSI设计基础6-努力概念与优化
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化1. 总论不同材料工艺CMOS、双极性、BiCMOS、GaAs、超导等材料逻辑级优化逻辑深度:流水线【一级变n级】电路拓扑:逻辑电路寄存器放几个、怎么放、要不要放;重定时(主要EDA工具完成)扇出门的复杂性电路优化逻辑类型、晶体管尺寸、不同频率下的电路模型物理优化版图策略布局布线2. 【重点】努力根据INV延时的通式,$t_p=t_ \cdot\left(1+\frac\right)$推广到所有的逻辑电路中,即有$t_p=t_ \cdot\left(p+\frac\right)=t_ \cdot\left(p+\frac\right)$p(本征延时比)如果忽略内部节点电容,p的计算:$p=\frac}}$因,$C_=a \cdot W$,于是电容值可以用W来代替。注意,是和输出端相连的管子才参与计算2. lg(逻辑努力)和G(路径逻辑努力)--【重点】定义:一个门在最坏情况下,与反相器提供相同的输出电流(即电阻相等或驱动能力相等)时,所表现的输入电容比反相器大多少倍。小贴士:反相器有最小的逻辑努力随着门的复杂度增加,逻辑努力相应增加只和门的拓扑有关,与尺寸无关逻辑努力g的计算:3. b(分支努力)和B(路径分支努力)公式:$b=\frac+C_}}$注意:分支努力是针对与一个路径节点而言的如果只有一条路径,没有分叉,则b=1;如果该节点两个分支的栅电容大小相等,则b=2;对于路径分支努力B$B=\prod_1^n b_i$对于一条路径,该路径的分支努力等于路径上所有节点的分支努力连乘。f(电气努力)和F (路径电气努力)f又称为等效扇出,表示第j+1级管子(j+1级输入电容)相对于第j级管子(j级输入电容)的尺寸(电容值)。$$ f=\frac} $$对于一条路径,该路径的电气努力等于路径上所有门的电气努力连乘然后除以路径分支努力。h(门努力)和 g(路径门努力)$$ h=g \cdot f $$3.【重点】【优化】 确定电路尺寸为了追求更好的性能,即最低的延时,我们希望可以调整尺寸,让组合逻辑的延时最小。推导如下:※本征延时和路径中逻辑门的类型有关,和尺寸无关。具体推导看(3)4.3eg:求出路径上各级门的尺寸系数S如上图电路图,可以将电路分成以下4级步骤一:确定G、B、F步骤二:确定级数N由图可知,N=4步骤三:计算门努力h$$ h=\sqrt[N]=\sqrt[4]=2.73 $$步骤四:计算尺寸系数Si最优级数N=lnF
2023年02月23日
1,300 阅读
1 评论
10 点赞
2023-02-23
VLSI设计基础5-CMOS组合逻辑门电路
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化1. CMOS电路的分类静态互补CMOS电路即常见的CMOS电路——开关模型=理想开关+有限电阻门输出通过一个低阻连接到VCC和GND,输出为该电路实现的布尔值(0或者1)特点如下:高噪声容限(见(4)噪声门限)。高输入阻抗,低输出阻抗静态功耗可忽略(见(4)功耗)动态CMOS集成电路信号暂时存储在高阻抗电路节点上面的电容上——RC大特点如下:门电路简单、速度快设计和制作工艺复杂对噪声敏感2. 静态互补CMOS设计何为互补CMOS互补CMOS由上拉网络(PUN)和下拉网络(PDN)组成,每个输入都分配到上拉和下拉网络如下图,以与非门为例:规则以NMOS管作为分析对象, 串与,并或 即,NMOS管串联,实现与非功能;NMOS管并联,实现或非功能。其关系如下图:为何是非?因为互补CMOS本身脱身于反相器,故自带非逻辑。PMOS与之对偶【静态CMOS】分析逻辑门电路CMOS管构成的电路分析,使用开关模型——理想开关+有限电阻+电容以两输入与非门为例,如下图注意:有节点的地方,一般都有电容。如上图两输入与非门所示,两个串联的NMOS管之间存在节点,于是存在一个电容Cint;上拉和下拉网络之间存在节点,这个节点正好是输出结果的节点,为CL2. 【重点】如何确定晶体管尺寸3. Elmore延时模型【用途】:用于大概估算具有众多电容、电阻电路的延时,适用于【RC树】最基本的公式:$t_p=0.69 R C=0.69 \tau$$\tau=R_1 C_1+R_1 C_2+\left(R_1+R_3\right) C_3+\left(R_1+R_3\right) C_4+\left(R_1+R_3+R_i\right) C_i$于是4. 【Elmore延时】计算复合门延时——【多扇入】分析【多扇入】:晶体管串联导致电阻增大,传播延时随着扇入数的增大而增大一个门的无负载本征延时最坏情况下,延时约为扇入数的二次函数实际应用中,一般扇入数不超过45. 降低【多扇入】的电路的延时调整管子尺寸 ——逐级加大晶体管尺寸,即在Elmore分析中出现最多次的管子的电阻应该减小(W增大)尺寸:M1>M2>M3....>MN重新安排输入 ——关键路径上的晶体管应该靠近输出端。关键信号:一个门的输出信号中,在所有输入中最后到达稳定的信号。关键路径:决定一个结构最终速度的逻辑路径称为关键路径。原理:越靠近输出端,信号需要经过的管子少,RC延时短。1.重构逻辑结构 ——多扇入逻辑电路拆解成若干个较低扇入的逻辑电路。前面Elmore延时模型已经知道,延时和扇入数接近平方关系增长。于是降低扇入数,可以降低电路的整体延时。加入buffer隔开大扇入和大扇出6. 延时和【扇出】7. 总结关于逻辑门的延时,给出如下的公式进行描述$t_p=a_1 F_I+a_2 F_I^2+a_3 F_O$FI表示总的等效扇入,Fo表示总的等效扇出。可见,延时与扇入成平方关系,同扇出成线性关系
2023年02月23日
1,539 阅读
0 评论
2 点赞
VLSI设计基础4-反相器
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化1. INV综述INV的数集模型由组成的图可以知道,INV是由两个CMOS管串联组成的。而CMOS的数集模型是理想开关+有限导通电阻or无限关断电阻,故INV的数集模型如下即两个电阻开关并联。图中的CL表示晶体管的漏极电容、连线电容、扇出门的输入电容INV的特性综述VTC(电压传输特性)所有的工作点不是输出高电平就是输出低电平,如下图:静态CMOS反向中PMOS和NMOS的负载曲线,原点表示直流工作点2. INV的静态特性开关阈值(VM)噪声门限3. 【重点】INV的动态特性——tp设计角度最小的传播延时这是厂家最希望的满足性能的同时,做到面积最小面积最小,意味着成本最低。这里的面积取决于W,也就是选择合适的根据扇出设计反相器链的级数对于时钟树、复位树等需要多扇出的、且要求tp小的,如何设计一个合理的高扇出的反相器链输入信号的上升下降时间对传播延时的影响计算计算CLCL =晶体管的漏极电容+连线电容+扇出门的输入电容.等效电阻Req$R_=\frac / 2} \int_ / 2}^} \frac} d V \approx \frac \frac}}\left(1+\frac \lambda V_\right)$4. 【※重要】计算延时tp——计算、优化5. 根据【延时】设计电路性能最好(tp-min)的反相器3. 反相链的设计反相链结构图例题6. 功耗功耗组成动态功耗:来源于电容充放电短路电流:当输入电压在某一个区域时,使得上下两管同时导通,从而形成短路电流。漏电流:属于静态功耗动态功耗工作过程——能量分配来源于电容充放电公式短路电流引起功耗静态功耗(漏电流)7. 利用【功耗】设计电路【小贴士】:延迟最低的等效扇出系数为$f=\sqrt[N]$
2023年02月23日
555 阅读
0 评论
2 点赞
2023-02-23
VLSI设计基础3-导线与互联问题
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化1. 互连参数导线材料金属层多晶硅层n+或p+扩散层互连参数——电容平板电容模型边缘电容模型互连参数——电阻方块电阻:扩展:芯片中的互连,一般高层的金属层一般W较大,于是电阻更小。即W↑→R↓→功耗P↓,RC↓因此高层金属层,如M4、M5,常用于时钟、电源等关键信号的布线中间层金属用作于信号线。互连参数——电感当频率上GHZ的时候,才会去考虑电感的作用。2. 导线模型模型理想导线:一般用于较大尺寸的工艺中集总模型适用情况:电阻小;开关频率中低水平内容:将一条导线上的电容集总成一个电容集总RC模型适用情况:电阻较大,不可忽略;开关频率中低水平内容:将一条导线上的电容集总成一个电容,电阻集总成一个电阻不足:当互连线太长时,该模型当变得保守分布RC模型(重点)适用情况:互连线长;导线电阻、电容不可忽略根据推导可知,一条导线的延时同他的长度呈现二次方关系和集总RC模型对比分布RC模型得到的延时是集总RC模型的1/2适用于长互连线 传输线模型适用情况:高频、射频、微波;互连材料好,其导线电阻保持在一定范围内。内容:高频情况下,需要考虑电感的作用3. 总结互连问题寄生参数对于电路的危害:影响信号的完整性降低信号的性能增加延时增加功耗寄生的类型——电容、电阻、电感1. 电容寄生效应此处讨论电容寄生主要是串扰串扰的定义:由相邻的信号线之间不希望有的耦合引起的干扰小贴士:耦合有多种,常常是电容性的耦合串扰引起的噪声难以捕捉串扰的危害串扰将使得导线的延时难以预见,故产生了下文“可预见的导线延时设计”可预见的导线设计估计改进方法:不断参数提取,不断仿真,不断优化缺点:设计过程需要多次重复,时间长备注:最常用能动性的版图生成布线程序考虑相邻导线的作用缺点:主要由EDA工具完成,在如今EDA工具的要求高备注:有吸引力;已经有一些EDA工具具备该功能可预测的结构方法:密集型布线结构——同层信号线使用电源线隔离,相邻层采用垂直布线。缺点:面积和电容增加了+5%,功耗和延时增加优点:减小了电容串扰,延时差别也下降到不超过2%克服电容串扰的方法尽量避免浮空节点,对串扰敏感的节点,加保持器降低阻抗、敏感节点应当很好地与全摆幅信号隔离在满足时序约束的范围内尽可能加大上升(下降)时间在敏感的低摆幅布线网络中采用差分信号传输方法不要使两条信号线之间的电容太大在两个信号之间增加屏蔽线(即加GND或VDD),使线间电容变成接地电容来消除串扰,但增加了电容负载使用屏蔽层GND或VDD2. 电阻寄生效应总论原因:芯片尺寸的减小,使得线宽减小,导线电阻增加,导线压降增加。常考虑:电源网络设计——导线消耗了电压,使得供给门电路的电压下降供给门电路的电压下降的危害噪声容限降低延时增加降低电迁移的方法改变金属线属性。 如合金或者Cu代替Al导线,但是成本增加。降低温度。 降低温度可以减小电迁移发射概率。 芯片封装上面需要考虑散热问题。增加线宽。 增加线宽可以降低平均电流密度。 缺点;增加布线资源,成本增加 优点:增加线宽不仅可以降低平均电流密度,还可以降低金属温度,间接又抑制了电迁移。3. 性能——长导线延时总论原因:根据导线模型——分布RC模型,可知$t_p \propto L^2$。为了降低电路延时,提高电路的响应速度,需要降低导线寄生电阻。降低长导线延时的方法采用更好的互连材料。 导线:铜、合金等;绝缘材料:低介电常数的材料 ※但是,这种方法不是解决长导线延时的根本方法。增加互连金属层的数目 管子数目增多驱动这金属层数目增多。 局部线(底层金属层做信号传输)采用高密度,全局线(高层金属层走全局信号,如时钟线、电源线)采用更好的互连策略——对角线法采用对角线式布线(如上图),现场可较小29%,但是对于EDA工具、掩膜制作的要求高,难度大。 目前一般采用曼哈顿式布线,即横平竖直式的布线。中间插入中继器——中继器 长的互连线中插入中继器(如inv buffer),强行减小导线长度。但是中继器也存在延时。优化互连结构——寄存器或锁存器 方法:导线流水线——长互连线中插入寄存器或者锁存器,将导线分成K段。 优点:可以提高数据处理能力。每段导线中可以加入中继器进行进一步优化。
2023年02月23日
632 阅读
0 评论
2 点赞
VLSI设计基础2-器件之MOS晶体管
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化MOS晶体管1. 数字电路的晶体管——最直观执行开关功能非常小的寄生电容非常高的集成度相对简单的制造工艺符号:2. MOS静态特性——稳定性(CMOS模电基础)阈值电压考虑体效应对于阈值电压的影响——偏执效应系数 阈值电压与材料常数(氧化层厚度、费米电势、注入离子剂量等)有关2.三个工作区:截止—(亚阈值导电)—线性—饱和—(击穿)沟长调制效应 4. 速度饱和-重点 短沟道的饱和区范围更大,故常常工作在饱和区。 以下适用于NMOS,PMOS讨论需要取绝对值 漏电流ID和VGS长沟道,呈现平方关系短沟道,不那么显著3. 数字电路手工分析模型——开关+Req常用开关模型——晶体管=开关+无穷大断开电阻Ron or 有限导通电阻Ron【计算等效导通电阻Req】:2种方法例题与方法:4. 【重点】MOS管的动态特性——性能(tp)电容的分类MOS管的动态响应取决于: 本征电容: 基本的MOS结构:结构电容沟道电荷:沟道电容漏源反向偏置的PN结耗尽电容:结电容注意:除了结构电容外,其他两个电容是非线性、随电压变化的 寄生电容 (连线和负载引起)略解本征电容简单归类:小贴士:红色框框:结构电容;灰色框框:沟道电容;蓝色框框:结电容两个覆盖(结构)电容:$\beginC_O=C_+C_=2 C_o W \\ C_=C_=C_ x_d W=C_o W\end$覆盖电容是由于源漏横向扩散到栅氧下形成的寄生电容,故而有两个——栅源之间(CGSO)和栅漏之间(CGDO)由于这个电容是由于扩散形成的,只要器件做成之后就电容大小就确定,于是结构电容是三类电容中唯一可以确定确切大小的三个沟道电容:沟道电容,即栅到沟道之间的电容,称为CGC,即 (Gate Channel)。其中,$C_=C_+C_+C_$即,栅至体、栅至源、栅至漏电容。由于和沟道有关,又因为沟道形成和工作点有关,于是三个工作点下,CGC不同。两个(PN)结(耗尽层)电容:PN结电容是由于源-体和漏-体之间反向偏置造成的。由于工艺上面,我们是在体上“挖一个坑“放漏和源,故而他们之间存在着”立体“的关系。故而需要关注”四周立体接触“,如图所示,我们关注的【本征电容】有哪些我们研究电容是为了利用$\tau=R C$计算tp的值,故而我们在意的是输入和输出通路上的电容。输入电容——栅极电容2.输出电容——漏极电容4. 寄生电阻(了解)源漏区的串联电阻。危害:当晶体管尺寸进一步缩小,会使结变浅、接触孔变小。使得这个影响更加显著。当给定一个电压,由于分压作用,会使得漏极电流变小。改善:源漏极铺一层低电阻材料(如钨或者钛)5.求tPHL例子(重点)
2023年02月23日
437 阅读
0 评论
0 点赞
2023-02-23
VLSI设计基础1-数字IC引论:度量指标及版图基础
参考书:数字集成电路-电路、系统与设计,本文栏目对其重点进行精简化引论1. 数字设计中需解决的问题摩尔定律:技术突破才能推动摩尔定律特征尺寸:28nm是传统制程和先进制程的分界点存储器容量:存储器的容量增大,意味着功耗增大,意味着稳定性下降(发热)。如果想要实现更大容量的突破,需要寻找新技术或者新架构使功耗不能超过功耗红线晶圆尺寸:晶圆尺寸增加,单位硅片数量增加,所需的技术越先进,最终成品芯片价格也越低技术突破:大直径的硅片可以大大提高成品率2. 集成电路质量评价-重点注:①是取决于制造工艺复杂行参数,常取值3②单位面积缺陷数常取值0.5~1个缺陷/cm²③芯片成本 $=f(\text )^4$稳定性与功能性噪声:电容耦合、电感耦合、地线耦合※※※【重点】性能——延时tp、工作频率性能常与时钟周期、时钟频率相关重点:延时1、传播延时:输入和输入波形的50%翻转点之间的时间如图:定义传播时间tp为$t_p=\frac+t_}$一般而言,①TpLH和TpHL不会完全相等②如果要求传输延时<t,则意味着TpLH<t并且TpHL<t2、上升时间tr3、下降时间tf功耗和能耗取决的因素太多了。常常有:瞬时功耗、峰值功耗(研究电源线尺寸)、平均功耗(研究冷却或者对电池的要求)3. 数字IC基本概念-重点电压传输特性VTC(DC传输曲线)可接受的高电压、低电压区域:VIH和VIL定义为VTC增益=-1的点噪声容限=minNMH=|VOH-VIH|NML=|VIL-VOL|再生性保证一个受干扰的信号经过若干个组合逻辑之后依旧回到一个额定电平(高或者低,不是不确定态)抗干扰能力方向性6.扇入和扇出扇入和扇出个数和一些延迟有关4. IC全定制流程版图基础1. CMOS版图1、图编辑工具:virtuoso、max2、工艺层的概念:将cmos使用中难以理解的掩膜转化为一组简单概念化的版图层3、可伸缩的设计:将版图所有参数定义与$\lambda$,利用EDA工具使之在想要兼容的工艺间转换。如0.25转为0.18。早期的工艺中,这个缩放比例可以达到75%左右,随着如今器件尺寸的减小,该比例只有90%左右了。不足:①由于不同工艺之间的非线性,线性缩放仅在有限尺寸范围内;②可缩放规则是保守的,结果会使得标准单元尺寸过大或者过小。4、晶体管的尺寸由W/L指定。 给定一个工艺,最小线宽为2$\lambda$;5、在版图中,只要多晶硅穿过扩散区,就形成一个晶体管随着工艺的发展,电源电压VDD呈现下降趋势。2. 设计规则检查设计规则检查工具:Calibre DRC设定规则的目的:可以很容易的把电路的概念转换为硅上的几何关系。Calibre的规则相当于是行业的标准了。其规则是基于边(edge)的DRC/LVE工具,所有的计算都是基于边来计算的,其中”边“分为”内边“和”外边“常见的三个指令:internal:检查多边形的内边距external:检查多边形的外边距enclosure:检查多边形的交迭3.棍棒图1、要求:①将棍棒图转为管级电路图、并且写出输出表达式;②将管级电路图转化为棍棒图2、特点:仅用象征性的符号表示电路的拓扑结构不需要标尺寸大小棍棒图中棍棒的位置很重要3、棍棒图中的串并联以下为版图的:串联:并联:
2023年02月23日
214 阅读
0 评论
2 点赞
RAM与ROM及Verilog实现
概念RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。ROM 指的是“只读存储器”,即Read-Only Memory。只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。ROM所存数据通常是装入整机前写入的,整机工作过程中只能读出,不像随机存储器能快速方便地改写存储内容。ROM所存数据稳定 ,断电后所存数据也不会改变,并且结构较简单,使用方便,因而常用于存储各种固定程序和数据。PROM 指的是“可编程只读存储器”既Programmable Red-Only Memory。这样的产品只允许写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM)。最初从工厂中制作完成的PROM内部并没有资料,用户可以用专用的编程器将自己的资料写入,但是这种机会只有一次,一旦写入后也无法修改。EPROM 指的是“可擦写可编程只读存储器”,即Erasable Programmable Read-Only Memory。它的特点是具有可擦除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间。EEPROM 指的是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。它的最大优点是可直接用电信号擦除,也可用电信号写入。EEPROM不能取代RAM的原因是其工艺复杂, 耗费的门电路过多,且重编程时间比较长,同时其有效重编程次数也比较低。Flash memory 指的是“闪存”,所谓“闪存”,它也是一种非易失性的内存,属于EEPROM的改进产品。它的最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家的产品有不同的规格), 而EEPROM则可以一次只擦除一个字节(Byte)。目前“闪存”被广泛用在PC机的主板上,用来保存BIOS程序,便于进行程序的升级。其另外一大应用领域是用来作为硬盘的替代品,具有抗震、速度快、无噪声、耗电低的优点,但是将其用来取代RAM就显得不合适,因为RAM需要能够按字节改写,而Flash ROM做不到。二、编程1.要求:编程实现512x8的ROM和RAM。ROM、RAM至少应该包含的端口包括地址线、数据线、片选线、读写使能端,复位端和时钟端(其中部分信号线只适用于RAM)。ROM、RAM和总测试模块分别包含在不同的.v文件中。端口意义:2.设计思路:512x8的ROM和RAM,至少需要9位地址线和8位数据位。3.RAM实现代码//模块声明,指定模块名和端口引脚 module RAM (Data,Addr,CS,RWEnable,Reset,Clk); //参数定义,指定数据总线和地址总线的宽度,以及内存单元的数量 parameter width=8,msize=512; //端口引脚的方向和位宽定义 input CS,RWEnable,Reset,Clk; //输入信号,分别为芯片选择、读写使能、复位和时钟 input[width:0] Addr; //输入地址总线,宽度由width参数决定 inout[width-1:0] Data; //双向数据总线,宽度由width参数决定 //内部信号和寄存器的定义 reg [width-1:0] Data_temp; //用于暂存读出的数据的寄存器,宽度与Data总线相同 reg [width-1:0] Mem [msize-1:0]; //用于存储所有数据的内存数组,大小与内存单元数量相同 integer i; //用于遍历内存单元的整数变量 //always块,指定模块中所有操作的逻辑 always @(posedge Clk or posedge Reset) begin //复位条件,当Reset为1时,所有内存单元都被置为0 if(Reset) begin for(i=0;i<msize;i=i+1) //用一个for循环遍历所有内存单元 Mem[i] <= 0; //将每个内存单元赋值为0 end //写操作条件,当RWEnable为1且CS为1时,将Data总线上的数据写入到Addr指定的内存单元中 else if((RWEnable==1'b1)&&(CS==1'b1)) begin Mem[Addr] <= Data; //将Data总线上的数据赋值给Mem[Addr] end //读操作条件,当RWEnable为0且CS为1时,将Addr指定的内存单元中的数据读出并暂存在Data_temp中 else if((RWEnable==1'b0)&&(CS==1'b1)) begin Data_temp<=Mem[Addr]; //将Mem[Addr]中的数据赋值给Data_temp end //其他条件,当CS为0或RWEnable为不确定值时,将Data_temp置为高阻抗状态 else begin Data_temp <= 8'bz; //将Data_temp赋值为高阻抗状态 end end //assign语句,指定Data总线与Data_temp之间的连接关系 assign Data=RWEnable?8'bz:Data_temp; //当RWEnable为1时,Data总线处于高阻抗状态;当RWEnable为0时,Data总线接收Data_temp中的数据 endmodule //模块结束测试代码如下://模块声明,指定模块名为RAM_TS module RAM_TS; //信号和寄存器的定义,指定与RAM模块相连的端口引脚和内部变量 reg CS_t,RWEnable_t,Reset_t,Clk_t; //芯片选择、读写使能、复位和时钟信号,都是1位的寄存器 wire [7:0] Data_t; //数据总线,是8位的线网 reg [8:0] Addr_t; //地址总线,是9位的寄存器 reg [7:0] Data_temp_t; //用于暂存写入数据的寄存器,也是8位的 //initial块,指定测试RAM模块的过程,只会在仿真开始时执行一次 initial begin RWEnable_t = 1;//w //初始化读写使能信号为1,表示写模式 Reset_t = 1; //初始化复位信号为1,表示复位模式 Clk_t = 0; //初始化时钟信号为0 Addr_t = 0; //初始化地址总线为0 Data_temp_t = 0; //初始化暂存数据为0 CS_t=1; //初始化芯片选择信号为1,表示使能模式 #5 Reset_t=0; //延迟5个时间单位后,将复位信号置为0,表示正常工作模式 repeat(10) //重复10次以下操作 begin #5 //延迟5个时间单位后 Addr_t=Addr_t+10; //将地址总线加10,表示访问下一个内存单元 Data_temp_t=Addr_t; //将地址总线上的值赋给暂存数据,表示要写入的数据与地址相同 end #70 //延迟70个时间单位后 RWEnable_t = 0;//r //将读写使能信号置为0,表示读模式 Addr_t=0; //将地址总线置为0,表示从第一个内存单元开始读取数据 repeat(10) //重复10次以下操作 begin #5 //延迟5个时间单位后 Addr_t=Addr_t+10; //将地址总线加10,表示访问下一个内存单元 end end //assign语句,指定数据总线与暂存数据之间的连接关系 assign Data_t=RWEnable_t?Data_temp_t:8'bz; always #5 Clk_t=~Clk_t; //实例化一个RAM模块,并且用定义好的信号和寄存器与之相连 RAM myRAM( .Data(Data_t), //将数据总线与RAM模块的Data端口相连 .Addr(Addr_t), //将地址总线与RAM模块的Addr端口相连 .CS(CS_t), //将芯片选择信号与RAM模块的CS端口相连 .RWEnable(RWEnable_t), //将读写使能信号与RAM模块的RWEnable端口相连 .Reset(Reset_t), //将复位信号与RAM模块的Reset端口相连 .Clk(Clk_t) //将时钟信号与RAM模块的Clk端口相连 ); endmodule //模块结束4.RAM仿真测试:① 数据写入操作② 数据读取操作5.ROM实现代码:ROM代码如下://模块声明,指定模块名和端口引脚 module ROM(Data,Addr,CS,RDEnable,Reset,Clk); //参数定义,指定数据总线和地址总线的宽度,以及内存单元的数量 parameter width=8,msize=512; //端口引脚的方向和位宽定义 input CS,RDEnable,Reset,Clk; //输入信号,分别为芯片选择、读使能、复位和时钟 input[width:0] Addr; //输入地址总线,宽度由width参数决定 output [width-1:0] Data; //输出数据总线,宽度由width参数决定 //内部信号和寄存器的定义 reg [width-1:0] Data_read; //用于暂存读出的数据的寄存器,宽度与Data总线相同 reg [width-1:0] Mem [msize-1:0]; //用于存储所有数据的内存数组,大小与内存单元数量相同 integer i; //用于遍历内存单元的整数变量 //always块,指定模块中所有操作的逻辑 always @(posedge Clk or posedge Reset) begin //复位条件,当Reset为1时,所有内存单元都被置为其地址值 if(Reset) begin for(i=0;i<msize;i=i+1) //用一个for循环遍历所有内存单元 Mem[i] <= i; //将每个内存单元赋值为其地址值 end //读操作条件,当RDEnable为1且CS为1时,将Addr指定的内存单元中的数据读出并暂存在Data_read中 else if((RDEnable==1'b1)&&(CS==1'b1)) begin Data_read<=Mem[Addr]; //将Mem[Addr]中的数据赋值给Data_read end //其他条件,当CS为0或RDEnable为不确定值时,将Data_read置为高阻抗状态 else Data_read <= 8'bz; //将Data_read赋值为高阻抗状态 end //assign语句,指定Data总线与Data_read之间的连接关系 assign Data=Data_read; //当RDEnable为1时,Data总线输出Data_read中的数据;当RDEnable为0时,Data总线处于高阻抗状态 endmodule //模块结束测试代码如下://模块声明,指定模块名为R0M98_TS module R0M_TS; //信号和寄存器的定义,指定与ROM98模块相连的端口引脚和内部变量 reg CS_t,RDEnable_t,Reset_t,Clk_t; //芯片选择、读使能、复位和时钟信号,都是1位的寄存器 wire [7:0] Data_t; //数据总线,是8位的线网 reg [8:0] Addr_t; //地址总线,是9位的寄存器 //initial块,指定测试ROM98模块的过程,只会在仿真开始时执行一次 initial begin RDEnable_t = 1;//r //初始化读使能信号为1,表示读模式 Reset_t = 1; //初始化复位信号为1,表示复位模式 Clk_t = 0; //初始化时钟信号为0 Addr_t = 0; //初始化地址总线为0 // Data_read_ts = 0; //初始化暂存数据为0 CS_t=1; //初始化芯片选择信号为1,表示使能模式 #5 Reset_t=0; //延迟5个时间单位后,将复位信号置为0,表示正常工作模式 repeat(10) //重复10次以下操作 begin #10 //延迟10个时间单位后 Addr_t=Addr_t+10; //将地址总线加10,表示访问下一个内存单元 end end //always块,指定时钟信号的变化规律,每隔5个时间单位翻转一次 always #5 Clk_t=~Clk_t; //实例化一个ROM98模块,并且用定义好的信号和寄存器与之相连 ROM myROM( .Data(Data_t), //将数据总线与ROM98模块的Data端口相连 .Addr(Addr_t), //将地址总线与ROM98模块的Addr端口相连 .CS(CS_t), //将芯片选择信号与ROM98模块的CS端口相连 .RDEnable(RDEnable_t), //将读使能信号与ROM98模块的RDEnable端口相连 .Reset(Reset_t), //将复位信号与ROM98模块的Reset端口相连 .Clk(Clk_t) //将时钟信号与ROM98模块的Clk端口相连 ); endmodule //模块结束 6.ROM仿真测试:
2023年02月10日
525 阅读
0 评论
1 点赞
1
...
5
6
7
...
26