当前位置: 首页 > news >正文

毛刺现象 java_组合逻辑设计中的毛刺现象

和所有的数字电路一样,毛刺也是FPGA电路中的棘手问题,它的出现会影响电路工作的稳定性,可靠性,严重时会导致整个数字系统的误动作和逻辑紊乱。本文引用地址:http://www.eepw.com.cn/article/201710/365694.htm

信号在FPGA器件中通过逻辑单元连线时,一定存在延时。延时的大小不仅和连线的长短和逻辑单元的数目有关,而且也和器件的制造工艺、工作电压、温度等有关。另外,信号的高低电平转换也需要一定的过渡时间,由于存在这两方面的因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。任何组合电路,反馈电路和计数器都可能。

潜在的毛刺信号发生器。

电路布线长短不同造成各端口输入信号延时不一致,有竞争冒险,会产生毛刺。分立元件之间存在分布电容和电感可以滤掉这些毛刺,所以用分立元件设计电路时,很少考虑竞争冒险和毛刺问题,但PLD/FPGA内部没有分布电容和电感,不能滤掉任何毛刺(哪怕不到1ns)。

举个简单的例子:

365694_1_0.jpg

设计的一个二输入与门,output=A B;进行布局布线后仿真(此时没有加管脚约束文件)可看到:

365694_1_1.jpg

output_obuf_2处有一毛刺出现。毛刺高电平时间维持141ps.

365694_1_2.jpg

365694_1_3.jpg

从output_obuf到output输出处,虽消除了毛刺,但不能保证其它情况下都会消除,我想有可能是此处毛刺时间比较小的原因,所以才有output处输出是正常的。

首先毛刺的出现是由于输入端A由1到0和B由0到1的变化引起的。

365694_1_4.jpg

从静态时序文件中可以看到:A,B到达与门的时间相差141ps,这也正是上述中出现毛刺的原因。

下面将管脚约束文件加进去再进行后仿真:

365694_1_5.jpg

可看出此时output输出有明显的毛刺出现。

时序分析报告:

365694_1_6.jpg

对于信号A:(Trace delay of A)+AND gate internal delay=9.139ns;

对于信号B:(Trace delay of B)+AND gate internal delay=5.607ns;

即A和B到达与门的时间相差了3.532ns,下图显示毛刺的时间即正好相符。

365694_1_7.jpg

毛刺并不是对所有的输入都有危害,如触发器的D输入端,只要数据不出现在时钟的上长升沿,并满足数据的建立保持时间,就不会对系统造成危害,而当毛刺信号成为系统的启动信号,控制信号,握手信号,触发器的清零信号,预置信号,时钟信号,或锁存器的输入信号时就会产生逻辑错误。因此,判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须考虑的问题。

相关文章:

  • java 有界类型_java泛型之有界类型
  • oracle mysql8_这一刻,MySQL 8终于追赶上了Oracle 8
  • power of three java_【LeetCode】326. Power of Three 3的幂(Easy)(JAVA)
  • python2和pytho3切换_电脑上同时安装Python2和Pytho
  • 学JS对学Java有用吗_【JS】编程语言那么多,为啥学Java的人那么多?
  • java offset用法_Java OffsetTime plusMinutes()用法及代码示例
  • php 判断是否对象_利用PHP判断JSON对象是否存在
  • php链接数据库2000,Linux下PHP连接Microsoft SQL Server 2000(图)
  • java获取内存变量,java – 易失性变量,从主内存刷新/读取
  • java二维函数怎么放到表里,调用函数传递二维数组
  • jsonrpc php使用,基于php的json rpc原理及应用
  • php正则表达式变量替换,js正则表达式replace替换变量方法
  • php ab webbance,Apache的ab工具实例详解
  • 腾讯的PHP框架,腾讯音视频 TRTC
  • php定时刷新token,PHP定时任务获取微信access_token的方法实例分享
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [译]CSS 居中(Center)方法大合集
  • Angular6错误 Service: No provider for Renderer2
  • ECMAScript6(0):ES6简明参考手册
  • E-HPC支持多队列管理和自动伸缩
  • Javascript 原型链
  • JS数组方法汇总
  • Linux gpio口使用方法
  • nginx 负载服务器优化
  • PHP 的 SAPI 是个什么东西
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Webpack 4 学习01(基础配置)
  • 观察者模式实现非直接耦合
  • 简单基于spring的redis配置(单机和集群模式)
  • 前端临床手札——文件上传
  • 前端路由实现-history
  • 微信小程序开发问题汇总
  • 小程序 setData 学问多
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ###C语言程序设计-----C语言学习(6)#
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (分布式缓存)Redis持久化
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (顺序)容器的好伴侣 --- 容器适配器
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)创业的注意事项
  • (转)一些感悟
  • **CI中自动类加载的用法总结
  • .Net - 类的介绍
  • .NET Core 成都线下面基会拉开序幕
  • .NET/C# 获取一个正在运行的进程的命令行参数