原文地址:FPGA之家

首选我们来聊聊时序逻辑中最基础的部分D触发器的同步异步,同步复位即复位信号随系统时钟的边沿触发起作用,异步复位即复位信号不随系统时钟的边沿触发起作用,置数同理,rst_n表示低电平复位,我们都知道D触发器是一个具有异步复位异步置数的器件,那么怎么样Verilog来具体描述这个器件呢,接下来我们就来看一下,这里以Vivado 2017.3为例。

D触发器的几种表示形式
同步复位

异步复位

异步置数,同步置数。


 

异步复位,异步置数

同步异步无非就是一个是否受系统时钟边沿触发,如果想要异步就直接加一个敏感信号就好了。不过一般工程中的书写形式就是异步复位,不过这种设计方法也有弊端,原因就是时序逻辑的冒险与竞争的问题。

异步复位、同步释放

如下图可以看到异步复位的结构图,D触发器是复位优先级高于clk优先级,所以采用通异步复位的方法,但是异步复位D触发器存在竞争与冒险,比如当clk的上升沿和rst_n的下降沿同时来临的时候这时候系统应该听谁的,同样当clk的上升沿和rst_n的上升沿同时来临的时候容易使寄存器出现亚稳态。

亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态引时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。这时系统是处于极不稳定的状态,这也是我们需要考虑的。

有人说既然异步复位会出现冒险竞争那我们使用同步复位不就行了,我们来看看同步复位的逻辑结构图,同步复位虽然解决了当clk的边沿来临的时候rst_n的边沿也正好来临所出现的冒险与竞争,但是从综合的电路上可以看出,多了一个组合逻辑,选择器(MUX),可想而知如果所有的寄存器复位都是这样,那会多浪费多少资源。那么这样就没有办法再解决了吗?答案是有的,一位前辈曾经说过,从正确到完美的道路是十分艰辛的,我们为了追求完美,引入异步复位、同步释放机制,即解决了同步复位浪费资源问题,又解决了异步复位带来的亚稳态。

这是复位信号同步化代码,系统时钟不变化,还是采用异步复位的方法,但是当复位信号操作时会进入一个同步寄存器,使得复位信号同步化,这样既避免了异步复位的冒险与竞争,又避免了同步复位耗费太多资源。只需要将复位信号同步化编写成独立模块,然后顶层例化就好了。系统时钟信号不变化。

上电延时  

开发板接通电源后会有一小段不稳定的状态,在比较大的工程中,逻辑资源利用的比较多的情况下,如果加上电源后直接进行复位操作,同样会使寄存器不稳定,所以,类似于按键消抖的方法,我们也给板子加电源后延时50ms,当系统稳定后在进行复位操作,再看bingo的书时,他是将这两个个分成两个模块然后实例化到一起,但为了提高代码的可移植性,我将异步复位同步释放和上电延时50ms写在一个模块。具体实现如下。

对于较小的工程,进行这些操作与否也就无可厚非,如果对于一个项目,需要要求必须尽善尽美,FPGA的优势便是数字信号处理,速度快,我们在保持速度的前提下,还需要使其准确率也提高,尽量占用少量的资源。这样异步复位,同步释放的机制就体现出来了。

异步复位同步释放机制-系统完美稳定相关推荐

  1. verilog异步复位jk触发器_异步复位同步释放原理

    关键词:同步释放,recovery,removal 在数字IC设计中肯定会涉及到异步复位的问题,因为需要对电路进行复位操作.这种复位设计主要依靠前端设计以及工具来检查,从数字IC后端的角度上讲,只要在 ...

  2. 异步复位同步释放原理

    深度揭秘异步复位同步释放原理 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 明天就放端午小长假了,提前祝大家节日快乐.腾讯官网已经给小编公众号开通了赞赏功 ...

  3. 异步复位同步释放 打两拍

    同步复位问题:复位信号持续时间太短,在clk下没采集到就没了. 异步复位问题:释放时可能会出现亚稳态(见最后两张图). 文章目录 1. 异步复位 2. 同步复位 3. 异步复位同步释放 今天好好理一理 ...

  4. 同步复位和异步复位同步释放

    目录 同步和异步时序电路 同步复位 1.原理图 2.Verilog实现 3.TB代码 4.波形 5.PS 异步复位 1.原理图 2.Verilog实现 异步复位同步释放 1.原理图 2.Verilog ...

  5. 关于“异步复位,同步复位,异步复位同步释放”的理解

    文章目录 1. 异步复位 2. 同步复位 3. 异步复位同步释放 今天好好理一理异步复位,同步复位,以及亚稳态中的异步复位同步释放. 1. 异步复位 一般让复位信号低电平有效 复位信号不受时钟的控制, ...

  6. (47)FPGA同步复位与异步复位(异步复位同步释放)

    (47)FPGA同步复位与异步复位(异步复位同步释放) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA同步复位与异步复位(异步复位同步释放) 5)技术交流 ...

  7. (61)FPGA面试题-使用Verilog语言编写异步复位同步释放代码

    1.1 FPGA面试题-使用Verilog语言编写异步复位同步释放代码 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-使用Verilog语言编写异步复位 ...

  8. (10)Verilog HDL异步复位同步释放

    (10)Verilog HDL异步复位同步释放 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL异步复位同步释放 5)结语 1.2 FPGA简介 F ...

  9. 三种复位方式: 同步复位、异步复位、异步复位同步释放

    一.特点:    同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效.否则,无法完成对系统的复位工作.用Verilog描述如下:             always @ (p ...

最新文章

  1. eselasticsearch入门_ElasticSearch入门 附.Net Core例子
  2. 基于double-check模式尝试将消息放到batch中
  3. python元组类型_什么是python元组数据类型
  4. 知识图谱 (1)基本概念
  5. pypypy python_聊聊Python中的pypy
  6. 【jquery模仿net控件】简单的dropdownlist与datalist
  7. python如何实现共享报表系统_使用python来实现报表自动化-阿里云开发者社区
  8. 同事反馈环:如何实现持续改进的文化
  9. 【机器人】四元数与旋转矩阵的转换关系
  10. SpringMVC之二:配置 Spring MVC
  11. 关于使用easyui dataGrid遇到的小bug问题
  12. php 跨域提交,php实现跨域提交form表单的方法
  13. echarts饼状图设置位置
  14. 关于推广个人博客的经验_博客推广
  15. BLE蓝牙的配对过程浅析
  16. c语言n的阶乘 longfact,如何定义函式fact(n) 计算n的阶乘:n!=1*2*……*n,函式返回值型别是double?...
  17. 双人聊天php,js实现双人五子棋小游戏
  18. JIRA Service Desk获得 ITIL 认证
  19. 2018-CVPR-Harmonious Attention Network for Person Re-Identification
  20. 计算机管理主分区改成逻辑分区,win10系统电脑的四个分区都是主分区,主分区如何改为逻辑分区?...

热门文章

  1. 关于Windows系统中一些实用的修改常识
  2. 语言中根号打法_知识的诅咒,数学老师在教学中不得不防的陷阱
  3. 简单hbase java,Hbase 简单java API 操作
  4. 计算机监控防误,计算机监控防误操作系统专利_专利申请于2007-10-25_专利查询 - 天眼查...
  5. 组合数学-容斥原理-求指定区间内与n互素的数的个数
  6. android马赛克代码,android图片马赛克 mosaic
  7. Go语言基础进阶—程序结构—类型
  8. 贪心法——LeetCode376 摆动序列
  9. 设系统中有三种类型的资源(A,B,C)的五个进程(P1,P2,P3,P4,P5)。A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如表所示。
  10. bzoj 3781: 小B的询问(莫队)