电平设计基础01:逻辑门电路高速特性(2)

文章探讨了量子计算机的原理,尤其是其并行计算能力和对加密算法的潜在影响。同时,讲解了传统电子计算机中的速度挑战,包括电流突变导致的干扰和电压容限的重要性,确保信号的正确传输。此外,还讨论了高速信号封装时面临的寄生电感、寄生电容及散热问题对信号质量的影响。
摘要由CSDN通过智能技术生成

说在开头:关于量子计算机

电子计算机是人类有史以来最伟大的发明之一,虽然现在的计算机(手机也是计算机)跟当初刚发明时千差万别,但从本质上来说,它之从诞生以来却没有什么变化:阿兰.图灵为它种下灵魂,而冯.诺依曼为它雕刻了骨架;变化的只是一些细枝末节而已。根据当年图灵和冯.诺依曼设计好的框架,把所有计算机简化为:在一端读入信息数据流,按照特定算法来处理它,并在另一端输出结果。传统计算机处理的是二进制编码信息:0/1bit。

对于量子计算机来说,假如我们的信息由一个个的电子来传输,我们规定:当电子左旋时表示0,而右旋时表示1。那当电子到达时,它是处于量子叠加态的,岂不是同时代表了0和1?是的,在量子计算机里,一个bit不仅仅只有0或1的可能性,它还代表了0和1的叠加。一个“比特”可以同时记录0和1,我们称它为“量子比特”;假如量子计算机读入了10量子比特的信息,所得到的就不仅仅是一个10bit的二进制,事实上由于每个bit都处于0和1的叠加,我们计算机所处理的是2¹⁰个10bit数的叠加;那么我们可以知道它相对于传统计算机可以并行多出2¹⁰倍处理能力。

1985年,大卫.德义奇仿照图灵当年的路子,成功地证明过了一台通用量子计算机是可能的,这样一来一切形式的量子计算便能够实现。德义奇的证明意义重大,他从理论上奠定了量子计算机的实现基础,德义奇证明量子计算机无法实现超越算法的任务,即,无法比普通计算机做的更多;但是它具有比传统计算机大得多的效率,即执行同一任务时所要求的复杂性要低得多,同样的任务能做得更快更好,因为量子计算机执行的是一种并行计算。

量子计算机的实验使得所有加密算法在瞬间人人自危,因为它的并行计算机制使得大数不再成为障碍;1994年,贝尔实验室的彼得.肖创造了一种利用量子计算机的算法,可以有效的分解大数,例如传统计算机要分解一个250位的数字,把全世界所有的计算机联网一起工作,也要花几百万年的时间;但是如果使用量子计算机的话,只需要几分钟,因为它同时处理了10⁵⁰⁰个不同的计算。

那为什么量子计算机有那么神奇的计算能力呢?

德义奇声称,唯一的可能是它利用了多个宇宙,把计算放在多个平行宇宙中同时进行,最后汇总了那个结果。以分解250位数为例,量子计算机同时进行这10⁵⁰⁰个计算,德义奇说:如果不是把计算同时放到10⁵⁰⁰个宇宙中进行的话,它哪来的资源可以进行如此惊人的运算?他特别指出,整个宇宙也只不过包含大约10⁸⁰粒子而已。但是虽然把计算放在多个平行宇宙中进行是一个可能的说法,基本上量子计算机所依赖的只是量子论的基本方程,而不是某个解释。(参考自:曹天元-上帝掷骰子吗)

三,速度

在逻辑器件中,关于速度的描述如下图所示:最小翻转时间。

1. 较快的翻转时间会导致信号电流增大,串扰和振铃等与传播延迟无关问题的增加;

——最小转换时间很小(相对于传播延时),则电路系统:器件封装,PCB设计以及连接器等都必须适应器件的快速转换时间。

2. 快速翻转时间的输出信号边沿更陡(边沿时间小),信号高频分量更大,EMC影响更大;

——过快翻转速度带来的种种问题主要源于两个方面:1,电压的突变;2,电流的突变

3. 更小的翻转延时则有利于逻辑时序的设计。

1,电流突变的影响:dI/dt

电流突变(dI/dt)会影响附近电路的信号,通过电路之间的耦合电感产生干扰;可以明确的是:电路的电流变化率越高,电路之间的电感耦合越严重(具体参考《信号完整性基础:串扰》章节相关内容),如下图所示,电流耦合的影响:

1. 上升电压波形V(t)引起的负载电阻和电容中流过的电流为:I(t) = V(t)/R + C* dV(t)/dt ;

2. 得到电流变化率:dI(t)/dt = (1/R)*dV(t)/dt + C*d²V(t)/d²t

3. 对于下图中电阻和电容来说,电流变化率最大值分别为:

1, 电阻电流最大变化率:dI(t)/dt(电阻) = (ΔV/T10-90)*(1/R);

2, 电容电流最大变化率:dI(t)/dt(电容) = (1.52*ΔV/ T²10-90)*C;

3, 当驱动一个既有阻性又有容性的元件组合负载时,只需要将电阻和电容最大值相加即可,该值可能稍高于实际峰值,但已经足够精确。

4. 所以我们可以得出结论:互感电流的变化率与10%~90%上升时间的平方成反比;如果将上升时间减少一半,需要把电容流过容性负载的dI/dt数值增加4

——举个栗子:TTL门电路驱动一个50pF容性负载(TTL电路一般是容性负载),ΔV = 3.7V,CL = 50pF,Tr = 2ns;那么可得:dI(t)/dt = (1.52*ΔV/ T²10-90)*CL = 7.0*10⁷ A/s。

——举个栗子:ECL门电路驱动一个50欧姆阻性负载(ECL电路一般是阻性负载),ΔV = 1.0V,RL = 50Ω,Tr = 0.7ns;那么可得:dI(t)/dt = (ΔV/T10-90)*(1/R) = 2.8*10⁷ A/s;ECL系统的速度更快且噪声更小。

2,电压容限

电压容限是指:逻辑驱动器可靠输出与接收器在最差情况下逻辑电平之间的差;即,Voh和Vih之间的差值或则Vol和Vil之间的差值。如下图所示。

1. 输出电压VOHmin要保证在输入高电平电压门限在 VIHmax数值之上;

2. 输出电压VOLmax要保证在输入低电平电压门限在VIHmin数值之下;

3. 如果输入电压落在VIHmin和VIHmax之间,那么是一个不确定状态。

——要保证输出范围和不确定输入范围之间没有重叠,无重叠意味着静态传输的值,无论是0还是1,总会被正确的接收到

那为什么需要电压容限呢?因为电压容限能对系统中数字信号的非理想发送和接收的缺陷进行补偿,主要有如下集中情况导致:

——这句话是啥子意思嘛?我们知道实际信号的传输并非完美,如果胖友们看了《信号完整性基础》专题,就知道信号从输出端发送出来要完整的被接收端所接收,是相当不容易的;会有噪声、反射、串扰,还有不可避免的线路损耗等等,所以输出端信号电压相对于输入端信号电压要求必须留有一定的裕量,使得在线路较差的情况下,也能保证数据的正确传输。

1. 器件接地通路的DC电阻导致逻辑器件之间存在电位差,可能导致信号偏移;

2. 高频电流流过地线,由于电感存在,每个器件地电位不一致(地弹);

3. 相邻信号的互容或互感相互耦合;

4. 长线传输线的反射、振铃使信号变形;

5. 不同器件的温度敏感度不一样,温度影响器件的翻转参考电平波动。

电压容限与输出电压幅度的比,称为噪声容限百分比;那噪声容限百分比有什么好处呢?这种表现形式更加直观:(VOHmin - VIH)/(VOHmax - VOLmin)或(VIL - VOLmax)/(VOHmax - VOLmin),两者中取小值。举个栗子来比较器件的噪声抗干扰度,ECL逻辑器件的噪声容限百分比是:17.8%;而TTL逻辑器件的噪声容限是9.1%;那么我们可以清楚的看到ECL逻辑比TTL有更好的噪声抗干扰度

四,封装

我们看到不同的器件有各种的封装,这源于对实际应用的不同需求;但对于高速信号来说,封装带来的影响主要是:管脚的寄生电感、寄生电容以及散热问题

1,寄生电感

器件的地(不要理解错,这个“地”是GND)管脚寄生电感会引发地弹;这种现象发生在逻辑输出发生翻转时导致逻辑输入端出现毛刺,如下图所示。

如上图所示,1个Die连接4个不同的管脚:包含1个发送和1个接收电路,1个电源和1个地。

1. 假设开关B刚刚关闭,负载电容C对地放电,电容上积累的电荷流向地,回路上电流浪涌:I放电;

2. 随着放电电流的建立然后衰减,电流变化引起接地管脚电感产生感应电压Vgnd:Lgnd*dI/dt;

3. 由于输出转换而引起了,内部参考地电位与单板地(不同器件之间的公共地)之间形成了Vgnd的电压漂移,称为地弹。

1, 一般情况下Vgnd很小,地弹对输出电压影响很小,但严重干扰了信号接收,从输入端看到电压差等于:Vin – Vgnd;

2, 如果芯片上有N个输出管脚同时翻转,那么Vgnd会增大N倍;

3, 地弹电压与经过地线的电流变化率成正比。

举个栗子,如下所示为8bit输入/输出的触发器,由单一时钟输入,驱动1组32个存储器的芯片组,以每条线5pF计算,每条地址线的负载为160pF;如下左图所示。

如上右图所示,假设进入D触发器输入点的数据建立时间较长,而保持时间较短(例如:建立时间:3ns,保持时间:1ns);

1. 在时钟边沿A,触发了锁存数据FF;和在时钟边沿B,触发锁存的数据为00,这两种情况下,该触发器3ns的传输延时都略长于所需的保持时间;

——A时刻之后,当8个输出Q跳变为正,负载为充电电流(从Vcc引脚输入到器件,而非GND引脚),所以Vgnd上并没有出现噪声(但在Vcc电源上会出现一个电源塌陷)

2. 在C时刻,使输入变化为任意数据XX,而C时刻在B时刻后的1ns时间,此时触发器内部已经锁存为00,但Q输出尚未从FF变为00。

——D时刻,8个输出Q跳变为0,我们看到一个大的Vgnd噪声脉冲,因为所有电流回流经过的GND管脚,影响到了输入信号(时钟)的判断,从而引起了一个逻辑错误

——在外观测时钟输入,显示的是一个完全干净的信号,错误只会出现在触发器的内部

那地弹一般会有多少呢?我们使用74HC174触发器,通过连接3个负载,当Q输出跳变为H时,可以测得Vgnd毛刺,当Q输出跳变为L时,出现了大的地弹脉冲;大约为150mv。那如果有8个负载同时翻转,那么噪声为:150mv*8/3 = 400mV,可能已经超过了器件的噪声容限。

对于容性负载C,我们可以用之前的容性负载公式得到地弹的幅值:|Vgnd| = (1.52*ΔV/ T²10-90)*C;我们可以通过器件资料获得:ΔV和T10-90的值,如下表格所示;通过器件封装类型可以评估器件封装引脚电感。如下图所示。

2,寄生电容

器件相邻管脚之间的寄生电容会使噪声耦合到输入引脚,如下图所示。管脚之间的互容Cm使得管脚1和管脚2产生了耦合。计算由电路1传入电路2的串扰的百分比:串扰 = (R2*Cm)/T10-90;按照Cm =4pF,R2 = 37.5Ω,T10-90 = 5ns计算,串扰约为3%。

1. 干扰管脚信号上升时间越短,容性串扰越大;

2. 被干扰管脚输入阻抗越高,容性串扰越大。

——对于高频信号,线路上的寄生电容降低了接收电路的阻抗,阻值了容性串扰问题的产生。

如下图所示,为不同封装的相邻引脚电容:

4,热传导(ΦJC, ΦCA)

关于热传导的一些基本概念,我们已经在《开关电源基础》专题中有所涉及,而且后续会有《热设计基础》专题来深入分析这块内容,本章内容就不再重复。

写在最后

我们先进入了器件的内部,了解到器件I/O管脚的内部结构,当然我们了解到的是最简单的推挽结构。但有一些内容是相通的,例如:输出负载,信号干扰,地弹/电源塌陷,以及输出功耗等等。有了本章的基础之后,能更加容易理解其它电平的设计原则。

本章部分相关内容和图片参考自:霍华德.约翰逊 -《高速数字设计》。下一章《电平规范-TTL&CMOS》。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
GeoPandas是一个开源的Python库,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python库,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其中存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其中至少一列是几何列(geometry column),用于存储地理空间几何图形(如点、线、多边形等)。 GeoSeries:GeoPandas中的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据源中加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括点、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等库来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值