【数字IC基础】竞争与冒险

竞争-冒险

  • 1. 基本概念
  • 2. 冒险的分类
  • 3. 静态冒险产生的判断
  • 4. 毛刺的消除
    • 使用同步电路
    • 使用格雷码
    • 增加滤波电容
    • 增加冗余项,消除逻辑冒险
    • 引入选通脉冲

1. 基本概念

示例一

在这里插入图片描述
如上图所示的这个电路,使用了两个逻辑门,一个非门和一个与门,本来在理想情况下,gate2的输入端口同时变化, 输出 F 应该是一直稳定为 0 ,但是实际上每个门电路从输入到输出是一定会有时间延迟的,而且信号在互连线的传播也是有延时的,所以就会出现如下情况:
在这里插入图片描述
可以看到,输出端 F 出现了短暂的高电平,也就是说会输出端口会出现错误的的输出。

示例二

在图4.9.1(a)所示的与门电路中,稳态下无论 A=1,B=0 还是 A=0,B=1,输出皆为 Y=0。但是在输入信号A从 1 跳变为 0 时,如果B从0跳变为1,而且 B 首先上升到VIL(输入低电平)以上,这样在极短的时间内将出现A、B同时高于VIL的状态,于是便在门电路的输出端产生了极窄的Y=1 的尖峰脉冲,或称为电压毛刺,如图中所示(在画波形时考虑了门电路的传输延迟时间)。显然,这个尖峰脉冲不符合门电路稳态下的逻辑功能,因而它是系统内部的一种噪声

在这里插入图片描述
同样,在图4.9.1(b)所示的或门电路中,如果 A 从 1 变成 0 的时刻和 B 从 0 变成 1 的时刻略有差异,而且在 A 下降到 VIH (输入高电平)时,B 尚未上升到 VIH ,则在暂短的t时间内将出现 A 、B 同时低于 VIH 的状态,使输出端产生极窄的Y=0的尖峰脉冲。这个尖峰脉冲同样也是违背稳态下逻辑关系的噪声。

根据上述示例,将门电路两个输入信号同时向相反方向的逻辑电平跳变(一个从 1 变为 0,另一个从 0 变为 1 )的现象称为竞争

由于竞争往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。 如果一个组合逻辑电路中有“毛刺”出现,就说明该电路存在“冒险

由于竞争而在电路输出端可能产生尖峰脉冲的现象就称为竞争-冒险

需要注意的是,竞争不一会都会产生毛刺。例如,在图4.9.1(a)中所示的与门电路,如果在 B 上升到 VIL 之前,A 已经降到了 VIL 以下(图中的虚线),这时,电路的输出端时不会产生毛刺的。同理,对于或门电路,如果 A 下降到 VIH 之前,B已经上升到 VIH 以上(图中虚线部分),输出端也不会产生毛刺(逻辑门的控制值后变化,这样就不会产生毛刺)。

如果图4.9.1所示的与门和或门是复杂数字系统中的两个门电路,而且 A, B 又是经过不同的传输途径到达的,那么在设计时往往难于准确知道A, B到达次序的先后,以及它们在上升时间和下降时间上的细微差异。因此,我们只能说只要存在竞争现象,输出就有可能出现违背稳态下逻辑关系的尖峰脉冲(毛刺)。

示例三

对于下图的译码器电路,同样也会存在竞争冒险。由于G4和G5的传输延时不相同,信号到达G0的时间有所差异,这样就会倒是Y0出现毛刺。
如果译码器的负载是一个对尖峰脉冲敏感的电路(如触发器),那么就可能是的负载电路发生错误动作。
在这里插入图片描述

2. 冒险的分类

冒险按产生形式的不同可以分为静态冒险和动态冒险。

  • 静态冒险:输入有变化,而输出不应变化是产生的单个窄脉冲
  • 动态冒险:输入有变化时,输出也应该变化时产生的冒险
    动态冒险是由静态冒险引起的,所以存在动态冒险的电路也存在静态冒险。

静态冒险根据产生条件的不同,又可以分为功能冒险和逻辑冒险。
功能冒险:两个或两个以上输入信号同时变化时,在输出端口产生毛刺
逻辑冒险:只有一个比那辆产生变化时出现的冒险

3. 静态冒险产生的判断

在输入变量每次只有一个改变状态的简单情况下,可以通过逻辑函数表达式判断组合逻辑电路中是否存在竞争-冒险。

如果一个组合逻辑函数表达式 F,在某些条件下能化简成 F = A + A'F = A'A 的形式,在 A 产生变化时,就可能产生静态逻辑冒险。(其实就是输出端连接的是一个与门或者是或门,然后输入信号A沿着不同的路径,经过不同的延时之后,到达了该逻辑门的输入端口,这样就有可能产生毛刺。)

示例:

在这里插入图片描述
在这里插入图片描述

4. 毛刺的消除

首先确定竞争和冒险是否影响系统,毛刺并不是对所有的输入都有危害,例如 D 触发器的D 输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害,我们可以说D 触发器的 D 输入端对毛刺不敏感。

使用同步电路

根据这个特性,我们应当在系统中尽可能采用同步电路,这是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且满足数据的建立和保持时间,就不会对系统造成危害。(由于毛刺很短,多为几纳秒,基本上都不可能满足数据的建立和保持时间)因此我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。

使用格雷码

例如,在数字电路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变,消除了竞争冒险的发生条件,避免了毛刺的产生。

增加滤波电容

在输出端并接一个很小的滤波电容。
简单易行,但是同时会增加输出电压波形的上升时间和下降时间,使波形变坏。

增加冗余项,消除逻辑冒险

在这里插入图片描述

引入选通脉冲

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

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

相关文章

【javascript】refreshTime对象包括年月日时分秒;把一个时间戳转化为refreshTime对象并分别赋值

要将一个时间戳转换为包含年月日时分秒的 refreshTime 对象,您可以使用 JavaScript 的 Date 对象和其相应的方法。 以下是一个示例代码: function convertTimestampToRefreshTime(timestamp) {const date new Date(timestamp);const refreshTime {ye…

Windows 找不到文件‘chrome‘。请确定文件名是否正确后,再试一次

爱像时间,永恒不变而又短暂;爱像流水,浩瀚壮阔却又普普通通。 Windows 找不到文件chrome。请确定文件名是否正确后,再试一次 如果 Windows 提示找不到文件 "chrome",可能是由于以下几种原因导致的&#xff1…

selenium交互代码

一:selenium交互 用selenium打开网页后,也可以做一系列真人的操作,也就是利用selenium和浏览器进行交互,可利用以下几个函数进行操作: input.send_keys() 传递输入内容给某输入框button.click() 点击某按钮browser.e…

机器学习深度学习——模型选择、欠拟合和过拟合

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——多层感知机的简洁实现 📚订阅专栏:机器学习&&深度学习 希望文章对你们有…

【GitOps系列】使用 ArgoCD 快速打造GitOps工作流

文章目录 ArgoCD简介ArgoCD安装访问ArgoCDGitOps 工作流总览创建 ArgoCD 应用检查 ArgoCD 同步状态访问应用 连接 GitOps 工作流体验 GitOps 工作流生产建议1)修改默认密码2)配置 Ingress 和 TLS3)使用 Webhook 触发 ArgoCD4)将源…

Linux时间体系与LinuxPTP

Linux时间体系 Linux 需要提供“知道当前时间、计算时间长度、定时提醒”这三种功能。 其中知道当前时间和计算时间长度在某种程度上可以互相转换。即以UNIX Epoch计时开始可以知道当前时间。 一般硬件可以提供下列的硬件时钟: RTC 【真实时钟】 对于PC而言&…

Android usb host模式通信示例

当使用Android设备作为USB主机时,可以使用Android提供的USB API来进行USB通信。下面是一个简单的Android USB通信的示例。在这个示例中,我们将发送一条消息到连接的USB设备并从USB设备接收响应。 首先,在AndroidManifest.xml文件中添加以下权…

DoIP学习笔记系列:(二)VN5620 DoIP测试配置实践笔记

文章目录 1. 添加.cdd2. CAPL中调用接口发送DoIP请求3. “Ethernet Packet Builder”的妙用4. CANoe也可以做交互界面在进行测试前,先检查车载以太网硬件连线是否正确,需要注意连接两端的Master、Slave,100M、1000M等基本情况,在配置VN5620的时候就可以灵活处理了。成功安装…

数学建模-MATLAB三维作图

导出图片用无压缩tif会更清晰 帮助文档:doc 函数名 matlab代码导出为PDF 新建实时脚本或右键文件转换为实时脚本实时编辑器-全部运行-内嵌显示保存为PDF

【TypeScript】接口类型 Interfaces 的使用理解

导语: 什么是 类型接口? 在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement&#x…

【微信小程序】使用 WebSocket 进行订阅操作、连接监听、接收到服务器的消息事件

在微信小程序中使用 WebSocket 进行订阅操作,可以通过 wx.connectSocket 方法创建 WebSocket 连接,并通过相关事件处理函数进行订阅和数据处理。 以下是一个示例代码,演示了在微信小程序中使用 WebSocket 进行订阅: 创建 WebSoc…

JVM-类加载

1.了解冯诺依曼计算机结构 1.1计算机处理数据过程 (1)提取阶段:由输入设备把原始数据或信息输入给计算机存储器存起来 (2)解码阶段:根据CPU的指令集架构(ISA)定义将数值解译为指令 (3)执行阶段:再由控制器把需要处理或计算的数据调入运算器 (4)最终阶段:由输出设备把最后运…

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型 目录 区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRF随机森林分位数回归时间序列区间预测模型&#xff1…

Dooring-Saas低代码技术详解

hello, 大家好, 我是徐小夕, 今天和大家分享一下基于 H5-Dooring零代码 开发的全新零代码搭建平台 Dooring-Saas 的技术架构和设计实现思路. 背景介绍 3年前我上线了第一版自研零代码引擎 H5-Dooring, 至今已迭代了 300 多个版本, 主要目的是快速且批量化的生产业务/营销过程中…

empty module导致的lvs问题

write_verilog时-exclude empty_modules即可 这里也分享一下ICC2 write lvs netlist的命令 write_verilog -exclude {scalar_wire_declarations leaf_module_declarations empty_modules well_tap_cells filler_cells supply_statements} -hierarchy all -force_no_referenc…

django的ORM模板的fake更新

django存量数据表的migraions记录丢失,若要更新表结构,则需用到fake,否则报错: 解决步骤如下: 1)同步存量表结构,生成伪表 --fake sudo python3 manage.py makemigrations appname sudo pyt…

windows下面的python配置

安装包选择exe后缀的 链接:https://pan.baidu.com/s/1sTzQdHMqI4KZwyJHl79Q3w 提取码:1111 PIP安装脚本 python版本pip安装脚本下载地址n3.6https://bootstrap.pypa.io/pip/3.6/get-pip.py3.7及以上https://bootstrap.pypa.io/get-pip.py 控制面板新…

在react项目中如何引入国际化

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 react-i18next 在 React 项目中引入国际化(Internationalization,简称 i18n)可以使用第三方库来实现。其中,最常用且流行的国际化库是 react-i18next&am…

手风琴案例(jQuery)

案例效果 代码实现 jQuery代码(两种方法) 方法一:hover版 $(function () {$(".king li").hover(function() {$(this).addClass("current").siblings().removeClass("current");}, function() {$(".king…

单机部署NGINX

​ 1、找到合适的nginx资源包,可以去官网下载 这里用的是 nginx-1.24.0.tar.gz 2、上传下载下来的nginx软件包,并解压 tar zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0/ 3、安装nginx 编译 ./configure --prefix/usr/local/nginx --with-http_ssl…