FPGA 竞争与冒险
一,概念
在数字电路设计时,无论是组合、时序,还是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 竞争与冒险的更多相关文章
- 基于FPGA的有限状态机浅析
前言:状态机大法好,状态机几乎可以实现一切时序逻辑电路. 有限状态机(Finite State Machine, FSM),根据状态机的输出是否与输入有关,可分为Moore型状态机和Mealy型状态机 ...
- 【不定期更新】FPGA/IC岗位常见笔试面试题总结(基础知识)
1 数字IC(ASIC)设计流程: IC设计分为前端和后端.前端设计主要将HDL语言-->网表,后端设计是网表-->芯片版图. 前端主要有需求分析与架构设计.RTL设计.仿真验证.逻辑综合 ...
- FPGA笔试必会知识点1--数字电路基本知识
组合逻辑与时序逻辑 组合逻辑电路:任意时刻电路输出的逻辑状态仅仅取决于当时输入的逻辑状态,而与电路过去的工作状态无关. 时序逻辑电路:任意时刻电路输出的逻辑状态不仅取决于当时输入的逻辑状态,而与电路过 ...
- FPGA大疆考试准备内容
1.寄存器与锁存器 锁存器:电平触发的存储单元,在有效电平时间里可以多次改变数据. 优点: 占触发器资源少,缺点是容易产生毛刺.(附上去毛刺的方法:格雷码计数器(*https://blog.cs ...
- 硬件设计原理图Checklist 参考案例二 【转载】
类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...
- 硬件原理图Checklist检查表(通用版)
类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...
- 嵌入式开发—C语言面试题
嵌入式开发—C语言面试题 源地址:http://blog.csdn.net/xdx2ct1314/article/details/7358929 1. 用预处理指令#define 声明一个常数,用 ...
- 原理图Checklist
类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...
- cancel_delayed_work和flush_scheduled_work【转】
转自:http://blog.chinaunix.net/uid-9688646-id-4052595.html 是不是觉得很玄?像思念一样玄?那好,我们来看点具体的,比如935行,INIT_DELA ...
随机推荐
- Scrapy安装方法
Scrapy安装在Python2.7环境下 1.配置环境变量: 2.安装基础软件 4个(64位系统) 安装twisted: C:\Users\Administrator>pip install ...
- linux下bwa和samtools的安装与使用
bwa的安装流程安装本软体总共需要完成以下两个软体的安装工作:1) BWA2) Samtools 1.BWA的安装a.下载BWA (download from BWA Source Forge ) h ...
- 【P2564】生日礼物(单调队列)
这个题看上去状态比较多,实际上由于题目的输出需要,又因为是一个线性的结构,所以我们可以有一些操作. 这么想,如果我们有了一个满足条件的区间,此时我们缩减左端点,然后判断此时是否还是满足,满足就继续缩减 ...
- 一个简单的Javascript闭包示例
//=====用闭包实现函数的Curry化===== //数字求和函数的函数生成器 function addGenerator( num ){ //返回一个简单的匿名函数,求两个数的和,其中第一个数字 ...
- 在Windows下使用adb logcat grep
在Windows下使用adb logcat grep 会提示 因为grep 为Linux命令,所以不能使用.怎么办呢? 这时候可以用到babun 下载地址:http://babun.github.i ...
- c#加密,java解密(3DES加密)
c#代码 using System; using System.Security; using System.Security.Cryptography; using System.IO; using ...
- MySQL InnoDB与MyISAM存储引擎差异
言: 之前简单介绍过 MySQL 常用的存储引擎,今天对两个主流的存储简单分析下差异,书上没有参考的笔试题解答注解: 差异: MyISAM 只支持表锁,不支持事务,表损坏率较高.较老的存储引擎. ...
- java中base64
// 将 s 进行 BASE64 编码 public static String getBASE64(String s) { if (s == null) return null; return (n ...
- vue-cli项目中如何使用锚点
两种方式: 1.使用vue-router实现锚点功能(利用html5的history模式,vue-router的滚动行为) import Vue from 'vue' import VueRouter ...
- (转)android webview用法小结
原文地址:http://blog.csdn.net/ethan_xue/article/details/7841431 将webview里常用的东西拿出来分享下 想要webview加载页面,只需web ...