一,概念

在数字电路设计时,无论是组合、时序,还是FPGA电路中,都需要考虑竞争冒险现象(Race and Competition)。

竞争:由于信号在传输和处理过程中经过不同的逻辑门、触发器或逻辑单元时产生时差,造成信号的原变量和反变量状态改变的时刻不一致,这种现象称为竞争(Race)。

冒险:由于竞争而引起电路输出信号中出现了非预期信号,产生瞬间错误的现象称为冒险(Competition)。表现为输出端出现了原设计中没有的窄脉冲,常称为毛刺(Burr)。

关系:有竞争不一定产生冒险,但有冒险就一定有竞争。

分类:竞争分为临界竞争和非临界竞争。冒险分为静态冒险和动态冒险。

临界竞争:产生暂时或永久性错误输出。

非临界竞争:没有导致冒险发生,或虽有冒险发生但不会产生错误输出,不影响系统的工作的竞争。

静态冒险:输入信号变化前后,输出的稳态值一样,但在输入信号变化时,输出信号产生了毛刺。在组合逻辑电路中,由于产生冒险的原因不同又分为功能冒险和逻辑冒险。

动态冒险:输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,即输入变化输出应变化的情况下,输出在变化的过程中产生了短暂的错误输出的现象。

产生原因:

组合逻辑电路中,产生竞争冒险的主要原因是时延。

时序逻辑电路中,产生竞争冒险的原因主要有两个方面:1,组合逻辑电路部分可能发生的竞争冒险现象。2,存储电路工作过程中发生的竞争冒险。同步时序电路不存在竞争现象。异步时序电路中,当输入信号和时钟信号同时改变是,而且是通过不同路径到达同意触发器时,就有可能导致竞争冒险。

FPGA中:在FPGA中,延时主要是由连 线的长短和逻辑单元的数目决定的,同时还受器件的制造工艺、工作电压、温度等因素影响。信号的电平转换也需要一定的过渡时间。由于FPGA以及其他的 CPLD器件内部的分布电容和电感不能过滤电路中的毛刺,从而使得毛刺逐级传递,对电路早晨的影响更加突出。即使是在最简单的逻辑运算中,如果出现多路信 号同时跳变的情况,在通过内部走线以后,也一定会产生毛刺。

二,消除方法

1,组合逻辑电路中

(1)加选通脉冲信号
(2)修改逻辑设计(增加乘积项法)
(3)输出端并联电容器(电容滤出法)
(4)卡诺图法
(5)加封锁脉冲

2,时序逻辑电路中

(1)修改电路法(加D触发器)
(2)信号同步法
(3)信号延时同步法
(4)灵活运用时钟信号法
(5)状态机控制法

FPGA 竞争与冒险的更多相关文章

  1. 基于FPGA的有限状态机浅析

    前言:状态机大法好,状态机几乎可以实现一切时序逻辑电路. 有限状态机(Finite State Machine, FSM),根据状态机的输出是否与输入有关,可分为Moore型状态机和Mealy型状态机 ...

  2. 【不定期更新】FPGA/IC岗位常见笔试面试题总结(基础知识)

    1 数字IC(ASIC)设计流程: IC设计分为前端和后端.前端设计主要将HDL语言-->网表,后端设计是网表-->芯片版图. 前端主要有需求分析与架构设计.RTL设计.仿真验证.逻辑综合 ...

  3. FPGA笔试必会知识点1--数字电路基本知识

    组合逻辑与时序逻辑 组合逻辑电路:任意时刻电路输出的逻辑状态仅仅取决于当时输入的逻辑状态,而与电路过去的工作状态无关. 时序逻辑电路:任意时刻电路输出的逻辑状态不仅取决于当时输入的逻辑状态,而与电路过 ...

  4. FPGA大疆考试准备内容

    1.寄存器与锁存器 锁存器:电平触发的存储单元,在有效电平时间里可以多次改变数据. 优点:    占触发器资源少,缺点是容易产生毛刺.(附上去毛刺的方法:格雷码计数器(*https://blog.cs ...

  5. 硬件设计原理图Checklist 参考案例二 【转载】

    类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...

  6. 硬件原理图Checklist检查表(通用版)

    类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...

  7. 嵌入式开发—C语言面试题

    嵌入式开发—C语言面试题 源地址:http://blog.csdn.net/xdx2ct1314/article/details/7358929   1. 用预处理指令#define 声明一个常数,用 ...

  8. 原理图Checklist

    类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...

  9. cancel_delayed_work和flush_scheduled_work【转】

    转自:http://blog.chinaunix.net/uid-9688646-id-4052595.html 是不是觉得很玄?像思念一样玄?那好,我们来看点具体的,比如935行,INIT_DELA ...

随机推荐

  1. python之json模块的基本使用

    json模块的作用:将字符串和字典相互转换 json和eval的区别: eval函数不能识别null转换成None json可以将null转换成python可以识别的None json序列化和反序列化 ...

  2. 如何通过http接口使用f12b实现批量提交链接

    这里我们分别叙述了如何在浏览器直接使用此接口,以及通过java和python如何使用此接口. 一.以浏览器为例 (一)提交一个指令 serverURL=http://120.79.247.23/f12 ...

  3. 深入理解JVM2

    1 JVM简介 VM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. ...

  4. HBase-集群状态信息

    代码如下 package com.hbase.HBaseAdmin; import java.io.IOException; import java.util.Collection; import j ...

  5. windows编译hadoop 2.x Hadoop-eclipse-plugin插件

    本文转载至:http://blog.csdn.net/congcong68/article/details/42098391 一.简介 Hadoop2.x之后没有Eclipse插件工具,我们就不能在E ...

  6. Eclipse安装SVN客户端

    在Eclipse中安装SVN客户端有个好处,不用兼容其它操作系统都能保持一致的操作.比如再Linux下SVN客户端软件体验相对较差,但是基于命令行的操作却在Linux下无所不能. 一.通过在线安装 地 ...

  7. GreenDao 多表事务操作

    场景:Android APP多表操作事务管理 使用Android自带的sql操作类操作的时候需要手动处理事务,使用GreenDao的时候不用管了,啥都处理好了.但是,如果是多表操作的话,怎么统一管理事 ...

  8. jquery下json数组的操作用法实例

    jquery下json数组的操作用法实例: jquery中操作JSON数组的情况中遍历方法用的比较多,但用添加移除这些好像就不是太多了. 试过json[i].remove(),json.remove( ...

  9. NAT(网络地址转换)协议

    NAT(Network Address Translator)是网络地址转换,它实现内网的IP地址与公网的地址之间的相互转换,将大量的内网IP地址转换为一个或少量的公网IP地址,减少对公网IP地址的占 ...

  10. CentOS 6.6 中 mysql_5.6 主从数据库配置

    [mysql5.6 主从复制] 1.配置主从节点的服务配置文件 1.1.配置master节点 [mysqld] binlog-format=row log-bin=master-bin log-sla ...