【数字 IC】从底层重新认识 D 触发器、建立时间和保持时间

news2024/11/24 22:54:49

目录

1. NMOS 和 PMOS

2. MOS 管搭建逻辑门

3. 锁存器和触发器

3.1 交叉耦合反相器

3.2 SR 锁存器

3.3 D 锁存器

3.4 D 触发器

4. D 触发器的建立、保持时间


1. NMOS 和 PMOS

MOSFET(金属氧化物半导体场效应晶体管)或 IGFET(绝缘栅场效应晶体管)是一种场效应晶体管,它在栅极和主体之间利用绝缘体(如 SiO2)。如今,MOSFET 是数字和模拟电路中最常见的晶体管类型。

NMOS 和 PMOS 的区别体现在其衬底和掺杂类型的不同,NMOS 的衬底为P型半导体,掺杂两个高浓度的 N 型半导体,并用铝金属引出两个电极分别为作为源极(Source)和漏极(Drain),并在半导体表面覆盖一层很薄的 SiO2 作为绝缘层,在源极和漏极之间的绝缘层上添加一个多晶硅(Polysilicone)作为栅极(Gate),最后在衬底引出电极,这样就构成了 N 沟道增强型 MOS 管。

PMOS 和 NMOS 大体相同,在衬底变成 N 型半导体,在掺杂的为 P 型半导体,其余和 NMOS 如出一辙,但是仅仅就是这两点区别,却使得它们的特性完全不同。

对于 NMOS 管,当对栅极进行正向偏压(高于阈值电压)时,在绝缘层下方就会汇集大量的电子,由于 N 型半导体多电子,就会与两侧的 N 型半导体形成 "N 沟道",进而实现整个回路的导通,如果施加的电压低于阈值电压,则无法实现导通。

同样的对于 PMOS 管,由于衬底和掺杂物互换,如果施加的电压高于阈值电压,在绝缘层下方就会汇集大量空穴,在两个 P 型半导体之间就会形成阻隔,无法导通。如果施加电压低于阈值电压,则可以导通。

NMOS 和 PMOS 在专业电路图如下所示,NMOS 由栅极指向源极,PMOS 由源极指向栅极,并且 PMOS 在栅极处有取反标识。

NMOS 的特性:Vgs 大于一定的值就会导通,适合用于源极接地时的情况(低端驱动),只要栅极电压达到阈值电压就可以了。

PMOS 的特性:Vgs 小于一定的值就会导通,适合用于源极接 VCC 时的情况(高端驱动)。但是,虽然 PMOS 可以很方便地用作高端驱动,但由于导通电阻大,价格贵,替换种类少等原因,在高端驱动中,通常还是使用 NMOS。

同时衍生一个问题:PMOS 管比 NMOS 管宽的原因是什么?

因为 PMOS 管是空穴导电,NMOS 管是电子导电,而电子的迁移率约是空穴的 2 倍,因此PMOS 管要宽一些增加迁移速率。

2. MOS 管搭建逻辑门

MOS 管搭建非门

将 PMOS 与 NMOS 的漏极和栅极相连,给 PMOS 的源极接 VDD,给 NMOS 的源极接 GND,给两个的共同栅极 In 输入高于阈值电压,在前面介绍过,此时 PMOS 截止,NMOS 导通,所以输出 Out 相当于接 GND 拉低,而输入 In 低于阈值电压时,此时 PMOS 导通,NMOS 截止,所以输出 Out 相当于接 VDD 拉高。

以此可以得到其真值表:

InOut
01
10

可以发现就是反相器,这是最经典的 CMOS 结构,需要消耗 2 个晶体管搭建

基于此可以进行更多扩展,衍生出各种逻辑门电路。

MOS 管搭建与非门

首先看与非门的真值表

输入 A输入 B输出 OUT
001
011
101
110

从与非门的真值表中可以看出,只有输入 A 和 B 都为 1 的情况下,输出才为 0,其他情况输出均为 1,结合到 PMOS 和 NMOS 的性质来看,对于输出为 0 的情况,NMOS 输入为 1 则导通也就是接地为 0,并且需要输入同时为 1,相当于把两个 NMOS 串联,而对于输出为 1 的情况,只要两个输入其中有一个为 0 则输出为 1,因此相当于把两个 PMOS 并联,于是得到了以下的逻辑门电路。搭建与非门逻辑门需要耗费 4 个晶体管

MOS 管搭建或非门

同样的先看或非门的真值表

输入 A输入 B输出 OUT
001
010
100
110

有了上面与非门的铺垫,或非门就更好理解了,由真值表可知,只有在输入都为 0 的情况下输出为 1,只要输入有 1 则输出为 0,和与非门恰好相反,需要将 PMOS 串联接在上端,NMOS 并联接在下端,便得到了或非门的逻辑门电路。同样需要消耗 4 个晶体管

MOS 管搭建与门

与门的真值表如下

输入 A输入 B输出 C
000
010
100
111

与门就是在与非门的基础上,在输出端接上一个非门即可。可以发现搭建与门电路需要消耗 6 个晶体管,在一些文章或书籍中看到说在设计中使用与非门比与门更节省资源,其实就是这个原因。

同理或门也是一样,这里就不一一列举了,或门所需要的晶体管同样为 6 个

3. 锁存器和触发器

3.1 交叉耦合反相器

交叉耦合反相器主要有两种结构:

  • 顺序结构

  • 对称结构

顺序结构

这种结构较为简单,当输入为 1 时,经过两级反向器输出仍为 1,输出又作为输入。

对称结构

在对称结构中,Q 的输出作为 Q' 的输入,同样 Q' 的输出作为 Q 的输入。这里先假设 I1 的输入为 1,经过反相器输出得到 Q 为 0,同时作为 I2 的输入为 0, Q' 的输出为 1。这样输出就能稳定为 1。反过来假设 I1 的输入为 0,经过反相器输出得到 Q 为 1,同时作为 I2 的输入为 1, Q' 的输出为 0。这样输出就能稳定为 0。Q 和 Q' 互为对方的输入,构成双稳态结构。

这种双稳态结构虽然结构简单,但是缺点在于无法控制其最终的输出,并且在结构上是没有输入的。

3.2 SR 锁存器

在上面的双稳态结构中形成的是闭合的回路,无法给到输入,这样的结构是无法保存数据的,因此就有了下面的结构,带有两输入的 SR 锁存器结构,主体由两个或非门构成,设上下的或非门为 N1、N2。

以下分情况进行讨论

R = 1,S = 0

R 端输入为 1,N1 的输出 Q 为 0,而 Q 又作为 N2 的输入,Q' 为 1,此时表示 R(Reset,复位)有效,Q 输出恒为 0。

R = 0,S = 1

S 端输入为 1,N2 的输出 Q' 为 0,而 Q' 又作为 N1 的输入,Q 为 1,此时表示 S(Set,置位)有效,Q 输出恒为 1。

R = 0,S = 0

R 端和 S 端输入为 0,假设 N1 的输出 Q 为 0,而 Q 又作为 N2 的输入,Q' 为 1,Q' 又作为 N1 的输入,得到 N1 的输出仍然为 0。假设 N1 的输出 Q 为 1,而 Q 又作为 N2 的输入,Q' 为 0,Q' 又作为 N1 的输入,得到 N1 的输出仍然为 1。此时表示 R(Reset,复位)和 S(Set,置位)都无效,输出保持输入不变(hold),也即是常说的产生 latch,把数据给锁存起来了。

R = 1,S = 1

在这个条件下是无意义的,此时 Q 和 Q' 都为 0,显然是不对的,不能同时复位和置位。

由此可以得到 SR 锁存器的真值表

RSQQ'
0110
1001
00latchlatch
1100

对比前面的双稳态结构,SR 锁存器就有了锁存数据的功能,即当 S 和 R 都为 0 时,输出会一直保持原有的输入值不变。

RS 锁存器有两个或非门组成,所以需要消耗 4×2=8 个晶体管。

3.3 D 锁存器

RS 锁存器虽然可以锁存数据,但是当 S 和 R 同时为 0 时结果会出错,对使用带来不必要的麻烦,因此需要去规避,所以有了 D 锁存器。

D 锁存器在 RS 锁存器的基础上增加了一些控制,E 可以看做使能信号,一般也可以为时钟 Clk 信号,基于此对此电路结构进行分析。

E = 0,D = 0

E = 0,则对应 R、S 输入都为 0,参照 RS 锁存器的真值表得到此时为 latch,可以锁存数据。

E = 0,D = 1

E = 0 和上面的情况一样,此时数据仍被锁存,等效为 latch。

E = 1,D = 0

E = 1 且 D = 0,此时上面的与门由于 D 取反为 1,与门输出为 1,相反的,下面的与门输出为 0,对应 RS 锁存器为 R = 1、S = 0,对应 Q 为 0。

E = 1,D = 1

E = 1 且 D = 1,此时上面的与门由于 D 取反为 0,与门输出为 0,相反的,下面的与门输出为 1,对应 RS 锁存器为 R = 0、S = 1,对应 Q 为 1。

由此可以得到以下的真值表。

对上面的结果进一步分析,可以发现 Q 值和 E 值息息相关,当 E = 1 时,此时 Q 输出为 D 的值,当 E = 0 时,此时数据被锁存。这样可以发现 D 锁存器是电平敏感的器件,控制信号 E 一般为时钟信号,并且这个例子的 D 锁存器为高电平敏感的。

D 锁存器所消耗的晶体管个数:

反相器(2)+ 与门(6)* 2 + RS 锁存器(8)= 22 个。

总共需要消耗 22 个晶体管。

3.4 D 触发器

触发器的类型有很多,这里以 D 触发器为例

D 触发器其实就是将两个 RS 锁存器串联起来,第一个 RS 锁存器称为 Master,第二个 RS 锁存器称为 Slave,Master 的输出作为 Slave 的输入,但是两个 RS 锁存器的时钟使能输入恰为相反。

再来分析一下 D 触发器是如何运作的。

  1. 假设输入为 Data1,当 Clk = 1 时,此时 Master 工作,Slave 锁存。根据 RS 锁存器的真值表,Data1 顺利从 Master 输出。

  2. 当 Clk 由 1 变化到 0 时,Clk = 0,此时 Master 锁存保持原来的数据 Data1,Slave 工作,Slave RS 锁存器将此前输入数据 Data1 输出。

  3. 当 Clk 由 0 再次变化到 1 时,Clk = 1,此时 Slave 锁存保持原来的输出 Data1,Maste 锁存器开始工作,接收下一次输入数据 Data2,

  4. 当 Clk 由 1 再次变化到 0 时,Clk = 0,此时 Master 锁存保持原来的输入数据 Data2,Slave 锁存器开始工作,将之前 Master 输出的 Data2 输出。

就这样循环往复的运作,可以看出这个例子的 D 触发器是下降沿有效的,也就是在时钟下降沿到来时,将输出数据,其他时候数据保持不变。如果是上升沿有效的,只需要将反相器接在 Master 上。

搭建 D 触发器所需要的晶体管数:

D 触发器组成 = RS 锁存器×2 + 反相器 = 22×2 + 2 = 46 个。

4. D 触发器的建立、保持时间

在之前的学习中,对于触发器的建立时间和保持时间的概念一般就是以下定义:

  • 建立时间:在时钟有效沿到来之前,数据必须维持一段时间保持不变,这段时间就是建立时间 Tsetup

  • 保持时间:在时钟有效沿到来之后,数据必须维持一段时间保持不变,这段时间就是保持时间 Thold

当时只知道触发器需要建立时间和保持时间使得工作稳定,但是为什么需要建立时间和保持时间呢?秉持着对知识点刨根问底的态度,这里就从更底层出发,去深究触发器为什么需要建立时间和保持时间。

下图就是 D 触发器的内部结构展开图,其主要有两个 RS 锁存器组成,在前面的为 Master,后面的为 Slave,两个锁存器串联共用一个时钟信号,但是两者极性相反,为了更符合习惯,这里的触发器定为上升沿敏感的。

为什么需要建立时间?

在前面分析过,在数据传输时,Master RS 锁存器负责将数据锁存,Slave RS 锁存器负责将 Master 稳定锁存的数据输出。因此输入在从 Master 输入到 Slave 输出是一个顺序执行的过程,也就是说要想从 Slave 顺利输出数据,那么在 Master 就必须顺利锁存好数据。

那就先看 Master RS 锁存器是如何对输入数据进行锁存的,数据的路径如下图中的红线所示,当时钟 Clk 为 0 时,数据从 D 输入(假设数据输入为 0)经过反相器历时 t1,数据变成 1,经过与门历时 t2 数据变成 1,再经过或非门历时 t3,由于此时数据为 1,所以经过或非门 Q 端输出为 0,Q 端输出又作为下面的或非门输出为 1,并且在此历时 t4,最终在 Q 端输出 0,此时数据便顺利被锁存起来。

这里忽略不计门与门之间的路径延时时间,只对时间做个大概分析,从这里可以计算得到所历经的总时长为:t1+t2+2*t3+t4,这个时间就可以大致认为是触发器的建立时间 Tsetup。当经过 Tsetup 后数据被稳定的锁存,当时钟上升沿到来时(0->1),Slave RS 锁存器就可以接受到正确的数据并输出,如果不满足建立时间需求的话会发生什么情况呢?

假设此时不满足建立时间需求,当需要被锁存的数据在还未进入到第一个或非门时,时钟上升沿就已经来到,此时 Q 端输出的数据仍然是上一次被锁存的不确定数据,可能为 1 也可能为 0,这样 Slave 输出的数据就可能会出错。

为什么需要保持时间?

再来分析一下保持时间,如下图中绿线为时钟到达与门的路径延时假设为 t5,蓝线为数据到达与门的路径延时假设为 t6,因为时钟路径存在反相器延时,所以延时会大一些,即 t5>t6,假设在 Slave 输出数据的过程中,输入数据 D 由原来的 0 跳变到 1,此时由于 t5>t6,就有可能使得与门的两个输入同时为 1(时钟上升沿来临之前 Clk 为 0,经反相器输出为 1),此时与门输出为 1,推出 Q' 输出为 0,进而 Q 输出为 1,于是新到来的输出 Q = 1 就会将影响原来的 0,最后导致锁存的数据为 1,最终 Slave 的输出为 1,导致数据出错,这就是为什么输入数据需要在时钟上升沿来临之后仍然保持一段时间(t5-t6)不变。

从上面的分析可以得出,D 触发器的建立时间要求比保持时间要求要更严苛,这也是在 RTL 设计综合后,建立时间违例比保持时间违例更频繁的原因,要求高了自然就更难达到,同时建立时间和保持时间也是相悖的,建立时间要求数据路径延时更小,数据路径延时越小,Master 锁存器更容易将数据锁存;保持时间希望数据路径延时更大,一旦使得数据路径延时 t6>t5,Slave 锁存器输出的数据就不会出错。

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

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

相关文章

Web3中文|又一巨头入局?亚马逊或将正式进军NFT领域

行业的风向总随着巨头公司而动。 自从亚马逊公司推出 NFT 市场的消息传出后,大众的目光就锁定在了亚马逊的身上,作为科技巨头的亚马逊入局 NFT 对整个行业都有着举足轻重的意义。 受 FTX 的崩溃的影响,亚马逊 NFT 市场的推出几经波折&#xf…

InnoDB和MySAM有什么区别?

首先,MySAM和InnoDB都是mysql里面的两个存储引擎,mysql5.5版本之前的存储引擎默认是MySAM,mysql5.5版本以后的存储引擎默认是InnoDB,它们底层数据结构都是基于B树的。 Mylsam存储引擎: Mylsam索引是非聚簇索引,Mylsa…

旅游景点剧本杀小程序

旅游景点剧本杀小程序是一种基于微信、支付宝等平台的应用程序,其主要功能包括以下几个方面: 游戏规则和背景介绍:小程序可以提供游戏规则和背景介绍,让玩家更好地了解游戏内容和任务。 队伍组建和角色选择:在…

API网关简介|TaobaoAPI接入

API网关是什么 在日常工作中,不同的场合下,我们可能听说过很多次网关这个名称,这里说的网关特指API网关(API Gataway)。字面意思是指将所有API的调用统一接入API网关层,由网关层负责接入和输出。 那么在什…

智慧安监方案:AI及视频技术在企业安全生产中的风险预警作用

安全生产是企业生产管理中十分重要部分,在实际场景中,很多作业人员普遍存在安全意识薄弱的问题,大大增加了作业风险。如何建立健全的安全风险研判与监测预警机制,引入大数据、视频识别等技术手段,对安全生产领域潜在风…

EasyCVR视频融合平台设备接入的步骤及端口配置的相关注意事项

EasyCVR视频融合平台基于云边端架构,能实现视频汇聚与集中管理、视频多端分发、多屏展示。平台可支持多协议与多类型设备接入,具体包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等,能对外分发RTMP、RTSP、HTTP-F…

SYSU程设c++(第十二周)派生的类型兼容性、对象的类型转换、多重继承、虚基类

派生的类型兼容性 1.可以将派生类的对象赋值给基类对象,反之不可 2.可以将公有派生类对象赋值给基类指针,反之不可 (该点必须是公有派生类才兼容) 即基类可以被派生类赋值,基类兼容派生类,派生类不兼容基…

采购系统平台在选型中需要考虑那几点?

对于一家企业来说,上线一套系统,不仅仅意味着将业务实现了线上化,还有流程,规则,甚至是人的行为习惯都要随之改变,今天小编和大家一起聊聊采购系统平台选型,需要关注的几点。 1.系统和自身需求的…

图像常见格式及转换(BGR,YUV,NV12,YUV444)

常见格式 RGB RGB 是最常用于显示器的色彩空间,R(red)是红色通道,G(green)是绿色,B(blue)是蓝色通道。这三种颜色以不同的量进行叠加,就可以显示出五彩缤纷的色彩。RGB 格式里(0,0,0)代表着黑色,(255,255,255)代表着…

Unittest自动化测试之单元框架unittest忽略用例

忽略用例 在执行测试脚本的时候,可能会有某几条用例本次不想执行,但又不想删也 不想注释,unittest通过忽略部分测试用例不执行的方式,分无条件忽略和有条 件忽略,通过装饰器实现所描述的场景。 提供的装饰器如下: u…

迅为RK3588开发板打包update.img怎么做

在 uboot kernel android 都编译完成的情况下,才可以打包 update.img,所以一般在完整编 译的时候用。输入以下命令: ./build.sh -u 打包完成会在 rockdev/Image-rk3588_s 目录下生成 update.img 镜像。 iTOP-3588开发板采用瑞芯微RK3588处…

HTTP消息结构

目录 2、客户端请求消息 3、服务器响应消息 4、消息结构(同上) 5、实例(GET) 6、HTTP的8种请求方法 7、HTTP中Get和Post 比较 HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换…

科大讯飞AI大模型实测——使用讯飞“星火”设计团队组织架构和工作流程-是骡子是马拉出来溜溜~对比ChatGPT实测体验来啦

讯飞星火是什么 讯飞星火是科大讯飞研发的认知智能大模型,可以和人类进行自然交流,解答问题,高效完成各领域认知智能需求。5月6日下午,科大讯飞召开的“讯飞星火认知大模型”成果发布会上,科大讯飞董事长刘庆峰表示&am…

springcloud项目,localhost:port 可以访问,但是外网IP:port不行

springcloud项目启动后,localhost:port 可以访问,但是外网IP:port不行 现象原因及解决方法解决方法:规则1:规则2:规则3: 现象 springboot项目,localhost:port 可以访问,但是外网IP:…

差分信号知识点

概念 关于差分信号,简单的说就是两根线同时传输信号,振幅相等,极性相反。 优点 1、抗干扰能力强。一般的噪声干扰施加到差分信号上,由于两根线的噪声基本一致,差值仍不变,不会影响到逻辑信号。 2、可以有效…

音视频八股文(7)-- 音频aac adts三层结构

AAC介绍 AAC(Advanced Audio Coding)是一种现代的音频编码技术,用于数字音频的传输和存储领域。AAC是MPEG-2和MPEG-4标准中的一部分,可提供更高质量的音频数据,并且相比于MP3等旧有音频格式,AAC需要更少的…

【webrtc】编译webrtc

目录 编译webRTC1.visual studio2019 commity安装2.安装depot_tools3.安装ninja4.设置一下网络5.glicent6.拉代码7.切到我们要的分支上8.编译 编译mediasoup1.安装cmake2.编译libmediasoupclient3.生成mediasoup3.1一些报错 3.5 生成socketIO3.6 生成sdptransform4.生成rtn-win…

MapReduce调优

MapReduce调优 MapReduce应用场景优点缺点擅长应用场景不擅长应用MapReduce优化需求与方向 文件存储格式行式存储、列式存储Sequence File优缺点Sequence File格式Sequence File 未压缩格式Sequence File 基于record压缩格式Sequence File基于block压缩格式生成Sequence File文…

KU地址提供》什么是HTML 标签

HTML 标签 下拉选单- select 单选选单 下拉式选单让使用者可以从一堆选项中选择出一个(或多个)选项【KU地址K͜W͜9㍠N͜E͜T͜娜娜提供】。本身做为选单的容器&#xff0c;在select 里面用标签来建立个别选项。 <select><option value"dog" selected>…

Hardhat 开发框架 - Solidity开发教程连载

Decert.me 要连载教程了&#xff0c; 《Solidity 开发教程》 力求系统、深入的介绍 Solidity 开发&#xff0c; 同时这是一套交互式教程&#xff0c;你可以实时的修改教程里的合约代码并运行。 本教程来自贡献者 Tiny熊&#xff0c;让我们正式开始学习吧。 如果你已经是 Hard…