竞争和冒险

2024-08-21 20:52
文章标签 冒险 竞争

本文主要是介绍竞争和冒险,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

竞争和冒险


文章目录

  • 竞争和冒险
  • 总结


产生原因
数字电路中,信号传输与状态变换时都会有一定的延时。

在组合逻辑电路中,不同路径的输入信号变化传输到同一点门级电路时,在时间上有先有后,这种先后所形成的时间差称为竞争(Competition)。
由于竞争的存在,输出信号需要经过一段时间才能达到期望状态,过渡时间内可能产生瞬间的错误输出,例如尖峰脉冲。这种现象被称为冒险(Hazard)。
竞争不一定有冒险,但冒险一定会有竞争。
例如,对于给定逻辑 F = A & A’,电路如左下图所示。
由于反相器电路的存在,信号 A’ 传递到与门输入端的时间相对于信号 A 会滞后,这就可能导致与门最后的输出结果 F 会出现干扰脉冲。如右下图所示。
在这里插入图片描述
即:门级电路,有两个输入,在同时变化,由于布局布线延迟导致尖峰脉冲。

其实实际硬件电路中,只要门电路各个输入端延时不同,就有可能产生竞争与冒险。

例如一个简单的与门,输入信号源不一定是同一个信号变换所来,由于硬件工艺、其他延迟电路的存在,也可能产生竞争与冒险,如下图所示。
消除方法
对数字电路来说,常见的避免竞争与冒险的方法主要有 4 种。

1)增加滤波电容,滤除窄脉冲
此种方法需要在输出端并联一个小电容,将尖峰脉冲的幅度削弱至门电路阈值以下。

此方法虽然简单,但是会增加输出电压的翻转时间,易破坏波形。

2)修改逻辑,增加冗余项
利用卡诺图,在两个相切的圆之间,增加一个卡诺圈,并加在逻辑表达式之中。
3)使用时钟同步电路,利用触发器进行打拍延迟
同步电路信号的变化都发生在时钟边沿。对于触发器的 D 输入端,只要毛刺不出现在时钟的上升沿并且不满足数据的建立和保持时间,就不会对系统造成危害,因此可认为 D 触发器的 D 输入端对毛刺不敏感。 利用此特性,在时钟边沿驱动下,对一个组合逻辑信号进行延迟打拍,可消除竞争冒险。

延迟一拍时钟时,会一定概率的减少竞争冒险的出现。实验表明,最安全的打拍延迟周期是 3 拍,可有效减少竞争冒险的出现。

当然,最终还是需要根据自己的设计需求,对信号进行合理的打拍延迟。
4)采用格雷码计数器
递加的多 bit 位计数器,计数值有时候会发生多个 bit 位的跳变。

例如计数器变量 counter 从 5 计数到 6 时, 对应二进制数字为 4’b101 到 4’b110 的转换。因为各 bit 数据位的延时,counter 的变换过程可能是: 4’b101 -> 4’b111 -> 4’b110。如果有以下逻辑描述,则信号 cout 可能出现短暂的尖峰脉冲,这显然是与设计相悖的。
小结

一般来说,为消除竞争冒险,增加滤波电容和逻辑冗余,都不是 Verilog 设计所考虑的。

计数采用格雷码计数器,大多数也是应用在高速时钟下减少信号翻转率来降低功耗的场合。

利用触发器在时钟同步电路下对异步信号进行打拍延时,是 Verilog 设计中经常用到的方法。


总结

核心思想就是记住 **F = A & A’*对应的硬件和时序图,就能理解了。消除方法,一般就是打拍延迟。

这篇关于竞争和冒险的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094256

相关文章

Ajax 解决回调竞争

回调的竞争,即多次快速点击同一按钮导致多个异步的AJAX请求同时返回,导致数据更新顺序混乱。这种情况在异步编程中很常见,特别是前端开发时,AJAX请求的回调并不保证按顺序执行。 $.ajaxSetup() 可以设置全局的 beforeSend 和 complete 回调函数,这样每个 AJAX 请求在发送前和完成后都可以执行相应的逻辑。 let isRequestPending = false

《Rust避坑入门记》第2章:解决多线程并发数据竞争的不可变性

从第1章所讨论的出现数据竞争问题的多线程并发剧院订票系统的代码能够看出,虽然可变性能够方便地随时修改值,但滥用可变性,会在多线程并发编程时,带来数据竞争的难题。 共享可变状态所带来的多线程并发时的数据竞争难题,该如何解决? 2.1 使用不可变性避坑 Rust的不可变性,如果与Mutex<T>智能指针相配合,就能解决多线程并发数据竞争的难题。可以使用不可变性与Mutex<T>智能指针,将代

模型 错位竞争(战略规划)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。与其更好,不如不同。 1 错位竞争的应用 1.1 美团的错位竞争策略 美团,作为中国领先的电子商务平台,面临着阿里巴巴等电商巨头的竞争压力。为了在市场中获得独特的竞争优势,美团采取了错位竞争策略。 在竞争激烈的电商市场中,美团需要找到一种方式来避免与行业巨头的直接竞争,同时满足消费者未被充分满足的需求。 错位竞争的应用:美团通过

美学设计:重塑中国商业竞争力的关键驱动力,美学革命:中国商业竞争的新战场

​在中国经济发展的滚滚洪流中,一场悄无声息却又波澜壮阔的革命正在上演。这不是技术的革新,不是商业模式的颠覆,而是一场关乎感官、情感与价值观的美学革命。 长久以来,中国企业在全球市场竞争中扮演着"世界工厂"的角色,以价格优势和规模效应称雄。然而,随着国内市场的日益成熟,消费者需求的不断升级,单纯依靠成本领先已经难以在激烈的市场角逐中脱颖而出。无论是B2B还是B2C领域,一个不争的事实正在浮出水面:

Arista与英伟达IB网络竞争格局分析

&nbsp; 悄然崛起的英伟达新对手 &nbsp; &nbsp; 英伟达都有哪些对手? 当然首选AMD和英特尔。AMD具备AI加速卡业务,融合CPU和GPU设计能力;英特尔作为x86架构的开创者,如今也涉足AI加速卡领域。它们的产品在参数上与英伟达对标,同时在定位和售价方面展开激烈竞争。 英伟达的竞争对手博通和Marvell组成统一战线,推出创新定制芯片,逐步取代传统通用AI加速卡,给

多线程 --- 竞争与互斥

序言  经过前面的学习,我们知道多个线程共享同一个进程地址空间的资源,所以免不了存在多个线程同时访问同一个资源的情况,这对我们的程序会产生什么影响呢?该怎么避免呢? 1. 多线程竞争 1.1 引出竞争问题  为了更好地理解问题地来源,我们采用一段程序来引出今天的主题: #include <iostream>#include <pthread.h>#include <vector>

游戏行业如此竞争激烈,个人开发者是否仍存机会?

在当今这个数字化时代,游戏行业以其庞大的市场规模、高速的增长速度以及无限的创意空间,吸引了无数开发者投身其中。然而,随着技术的进步、资本的涌入以及大型游戏公司的强势扩张,游戏行业的竞争日益激烈,似乎形成了一片“红海”。在这样的背景下,不少个人开发者不禁要问:在这个高度内卷的游戏市场中,我是否还有希望立足?  一、游戏行业的现状与挑战 市场竞争激烈:大型游戏公司凭借雄厚的资金、强大的技术团

竞争激烈的音频市场中,如何开发脱颖而出的有声听书软件

近年来,有声书和在线音频市场迅速发展,吸引了众多企业纷纷进入这一领域。然而,随着市场参与者的增加,行业竞争日益激烈,利润率逐渐下降,市场份额争夺也愈发激烈。对于那些资源有限的小型企业而言,在如此激烈的市场环境中如何生存与发展,成为了一个亟需解决的问题。 一、专注特定受众群体或利基市场:突破竞争的关键 面对强大的市场竞争,小型企业不妨将目光投向特定的受众群体或利基市场。与大平台相比,专注于某一

在Flux和Ideogram 2.0的竞争压力下,Midjourney每日开放25张免费额度

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,分享独到的视角和思考;精选对您有价值的信息,帮助您在AI时代中把握机遇。 1分钟速览新闻 Meta新网络爬虫助力AI模型数据收集 百度领跑中国大模型市场,商汤、智谱紧随其后 OpenAI GP