数字IC/FPGA——复位篇

本文主要介绍以下几点:

  • 复位的作用及什么时候需要复位
  • 复位的分类
  • 全局复位、局部复位的目的
  • 如何选择全局复位和局部复位
  • 同步复位、异步复位及异步复位同步释放的原理、优缺点

注:参考文章在文末给出

目录

    • 一、复位信号的作用和分类
      • 1.复位信号的作用
      • 2.复位信号的分类
    • 二、全局复位和局部复位
      • 1.全局复位
      • 2.局部复位
      • 3.如何使用全局复位和局部复位
        • (1)全局复位
      • (2)局部复位
    • 三、同步复位和异步复位
      • 1.定义
      • 2.同步复位
        • (1)同步复位实例
        • (2)同步复位的优劣
        • (3)不适合同步复位的情况
      • 3.异步复位
        • (1)异步复位实例
        • (2)异步复位的优劣
      • 4.Xilinx平台复位信号注意事项
        • (1)高电平有效
        • (2)综合注意事项
    • 四、异步复位同步释放
      • 1.为什么会出现异步复位同步释放
      • 2.原理
      • 3.实例
      • 4.异步复位同步释放相比异步复位的优势
    • 五、过滤复位信号的毛刺

一、复位信号的作用和分类

1.复位信号的作用

复位信号的作用主要如下:

(1)使电路在仿真时具有可知的初始值,避免出现不定态;

(1)为寄存器赋初值,使系统状态机在上电后能够进入初始状态;

(2)使系统能够在发生故障的时候恢复到初始状态;

2.复位信号的分类

复位信号的分类可以从两方面考虑:

①从复位信号驱动的寄存器数量来看

复位信号可以分为全局复位和局部复位

②从复位信号与时钟的关系来看

复位信号可以分为同步复位和异步复位

二、全局复位和局部复位

1.全局复位

全局复位是对整个FPGA芯片进行复位,将所有逻辑和寄存器重置为初始状态。

2.局部复位

局部复位是对FPGA中特定的逻辑模块或寄存器组进行复位,只影响选定的部分。对于需要多个时钟区域内独立复位的设计,可以采用局部复位。

因为局部复位信号的扇出小,所以可以使用布线延时相对较小的本地布线资源,这样局部复位信号就能够很容易的满足时序要求,避免Recovery违例。

3.如何使用全局复位和局部复位

(1)全局复位

全局复位通常作为一个外部引脚来实现,用于在加电时初始化设计。这个全局复位引脚与任何其他输入引脚类似,对FPGA来说是异步的。设计时可以使用这个信号在FPGA内部对自己的设计进行异步或者同步复位。
但Xilinx官方不推荐使用全局复位,因为全局复位会占用许多逻辑和布线资源,导致布线拥挤,不利于时序收敛;再者扇出过大,很难满足时序要求。

(2)局部复位

通过二级寄存器同步化外部的异步复位信号,然后复制不同的复位寄存器连到不同的模块来作为复位控制。如果单个模块的复位扇出太大,还可以在模块内部复制复位寄存器,减小单个扇出。需要注意的是,那些在数据路径上不需要复位的寄存器不要在代码中复位,因为这样会增加复位信号的扇出,并增加逻辑资源和降低逻辑速度

下面是一个局部复位的例子:

电路结构图如下:

在这里插入图片描述

但是综合后的结果变成了通过一个寄存器加了四个OBUF来增加驱动能力。

在这里插入图片描述

三、同步复位和异步复位

1.定义

同步复位的复位和释放均在时钟边沿发生。

异步复位的复位信号与时钟无关,可以发生在任意时刻。

2.同步复位

同步复位的示意图如下:

在这里插入图片描述

当复位信号为高电平有效时,在时钟上升沿到来后若复位信号为高电平,则D触发器复位,输出结果为0。

(1)同步复位实例

下面给出同步复位的Verilog示例、电路结构、综合结果:

module reset_test(
    input clk,
    input rst,
    input single_bit,
    output reg out

    );
always@(posedge clk)
begin
  if(rst)
    out<=1'b0;
  else
    out<=single_bit;
end
endmodule

其电路结构如下,一个带同步复位的D触发器:

在这里插入图片描述

综合后的结果如下:

在这里插入图片描述

需要注意的是,上述的复位信号并非是直接由外部引脚接入,而是对其进行了同步操作后(一般为将其通过两级触发器),这样能够保证复位信号的宽度至少为一个时钟周期长度,复位信号能够被正确采样到。

(2)同步复位的优劣

同步复位的优势如下:

  • 能够滤除高于时钟频率的毛刺,使系统更加稳定;
  • 由于采用了同步复位,设计出来的电路均是同步电路,有利于时序分析

同步复位的劣势如下:

  • 同步复位需要时钟参与;
  • 复位信号的宽度要大于一个时钟周期,以免被当成毛刺率除掉
  • 对于只有异步复位端口的DFF来说,需要额外的逻辑资源来实现同步复位
(3)不适合同步复位的情况

门控时钟电路并不适合用同步复位,因为同步复位与时钟息息相关,当门控时钟由于使能信号无效而关闭时,复位信号将不能正常工作。

在这里插入图片描述

3.异步复位

异步复位的示意图如下:

在这里插入图片描述

时序图

当复位信号为高电平有效时,复位信号只要有效,D触发器立刻复位,输出结果为0。

(1)异步复位实例

下面给出同步复位的Verilog示例、电路结构、综合结果:

module reset_test(
    input clk,
    input rst,
    input single_bit,
    output reg out
    );
always@(posedge clk or negedge rst)
begin
  if(rst)
    out<=1'b0;
  else
    out<=single_bit;
end
endmodule

其电路结构如下,一个带同步复位的D触发器:
在这里插入图片描述

综合后的结果如下:

在这里插入图片描述

在异步复位中,对复位信号的长度没有要求。

观察同步复位和异步复位的电路结构及综合结果可以发现,Xilinx平台既有同步复位触发器也有异步复位触发器。

(2)异步复位的优劣

异步复位的优势如下:

  • 对复位信号的持续时间没有要求
  • 任何时候都可以复位,无需等到时候边沿到来;

异步复位的劣势如下:

  • 容易受到毛刺影响,发生假复位
  • 异步复位属于异步电路,无法避免亚稳态问题
  • 难以进行静态时序分析

4.Xilinx平台复位信号注意事项

(1)高电平有效

xilinx 7系列触发器,其 R 端口既可用作同步置位/复位端口,也可用作异步预设/清除端口,但无论哪种方式,都是高电平有效

在这里插入图片描述

上例中均采用高电平有效进行复位,下面给出利用低电平有效复位的实例:

module reset_test(
    input clk,
    input rst_n,
    input single_bit,
    output reg out
    );

always@(posedge clk or negedge rst_n)
begin
  if(!rst_n)
    out<=1'b0;
  else
    out<=single_bit;
end
endmodule

其电路结构如下,一个带同步复位的D触发器:

在这里插入图片描述

综合后的结果如下:

在这里插入图片描述

与采用高电平复位的综合电路相比,低电平有效复位的电路中在复位信号后紧跟了一个查找表。

如果RTL代码采用了低电平有效的复位模式,综合器将在复位信号驱动寄存器SR控制端之前的插入一个反相器(interver);综合时使用一个查找表(look up table)来实现反向器。因此低电平有效的控制信号带来的额外的逻辑可能拉长了执行时间(runtime),将导致更低的FPGA资源利用率,也将影响时序和功耗。

(2)综合注意事项

Xilinx FPGA综合规则中:有和没有异步复位的寄存器不能被包装在一个Slice,不同异步复位的寄存器不能被包装在一个Slice,这就导致在Slice中的资源无法充分利用从而造成资源浪费。

四、异步复位同步释放

1.为什么会出现异步复位同步释放

根据异步复位的时序图及原理我们可以知道,复位信号可以在任何时刻有效,也会在任何时刻撤销。如果当复位信号在时钟边沿附近撤销时,为了防止亚稳态的发生,复位信号也必须满足寄存器建立时间和保持时间的要求,这便是Recovery Time(恢复时间)和Removal Time(去除时间)。

恢复时间(Recovery Time)是指异步控制信号(如寄存器的异步清除和置位控制信号)在“下个时钟沿”来临之前变无效的最小时间长度。去除时间(Removal)是指异步控制信号(如寄存器的异步清除和置位控制信号)在“有效时钟沿”之后变无效的最小时间长度。

因此,对复位信号的处理就像处理亚稳态一样,对复位信号进行打拍操作。

2.原理

当复位信号有效时立即进行复位,但是当复位信号要释放时,通过对其进行同步化处理,这样可以防止发生亚稳态,有利于时序分析。

在这里插入图片描述

3.实例

module reset_test(
    input clk,
    input rst_n,
    output reg rst_n_2
    );

reg rst_n_1;
always@(posedge clk or negedge rst_n)
begin
  if(!rst_n)
    begin
         rst_n_1<=1'b0;
         rst_n_2<=1'b0;
    end
   else
   begin
         rst_n_1<=1'b1;
         rst_n_2<=rst_n_1;
     end
end
endmodule

对应的Vivado综合结果如下:

在这里插入图片描述

4.异步复位同步释放相比异步复位的优势

异步复位同步释放的优势如下:

  • 复位信号不依赖时钟,复位立即生效
  • 复位释放时与时钟保持同步,有适当的恢复时间和移出时间,可以进行时序分析

五、过滤复位信号的毛刺

由于异步复位信号对毛刺十分敏感,容易引起假复位,因此需要对毛刺进行滤除。下图给出了复位毛刺滤波器的电路:

在这里插入图片描述

将复位信号与经过一定延时的复位信号相与,这样对于脉冲宽度很窄的毛刺,可以做到有效滤除,其时序示意图如下:

在这里插入图片描述

复位输入引脚也必须是施密特触发器引脚才有助于毛刺过滤,原因是施密特触发器具有滞回特性,可以消除输入信号的噪声和干扰,从而过滤掉复位信号中的毛刺。施密特触发器是一种特殊的门电路,其输出状态仅由输入信号的当前状态决定,而与输入信号的变化过程无关。当输入信号从低电平向高电平变化时,只有当输入电压达到正向阈值电压时,输出电压才会发生跳变;而当输入信号从高电平向低电平变化时,只有当输入电压低于负向阈值电压时,输出电压才会发生跳变。这种滞回特性使得施密特触发器对输入信号的噪声和干扰具有较强的抑制能力,因此可以用于过滤复位信号中的毛刺

参考文章如下:
数字设计小思 - 谈谈复位那些事
深入理解复位
恢复和去除时间
Recovery和Removal分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/536277.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅尝一下ECS(Entity Component System)(学习笔记)

参考文章&#xff1a;浅谈Unity ECS&#xff08;一&#xff09;Uniy ECS基础概念介绍&#xff1a;面向未来的ECS - 知乎 (zhihu.com) 视频链接&#xff1a;【青幻译制】GDC讲座系列之三 守望先锋的游戏架构和网络代码_哔哩哔哩_bilibili 云风的 BLOG: 浅谈《守望先锋》中的 E…

政安晨:【Keras机器学习实践要点】(二十六)—— 内卷神经网络

目录 简介 设置 卷积 演变 测试逆卷积层 图像分类 获取 CIFAR10 数据集 数据可视化 卷积神经网络 逆向传播神经网络 比较 损失图和准确率图 可视化卷积核 结论 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Ke…

[2024最新]MySQL-mysql 8.0.11安装教程

网上的教程有很多&#xff0c;基本上大同小异。但是安装软件有时就可能因为一个细节安装失败。我也是综合了很多个教程才安装好的&#xff0c;所以本教程可能也不是普遍适合的。 安装环境&#xff1a;win 10 1、下载zip安装包&#xff1a; MySQL8.0 For Windows zip包下载地…

redis复习笔记08(小滴课堂)

案例实战需求之大数据下的用户画像标签去重 我们就简单的做到了去重了。 案例实战社交应用里面之关注、粉丝、共同好友案例 这就是我们set的一个应用。 案例实战之SortedSet用户积分实时榜单最佳实践 准备积分类对象&#xff1a; 我们加上构造方法和判断相等的equals和hascod…

【网安小白成长之路】6.pikachu、sql-labs、upload-labs靶场搭建

&#x1f42e;博主syst1m 带你 acquire knowledge&#xff01; ✨博客首页——syst1m的博客&#x1f498; &#x1f51e; 《网安小白成长之路(我要变成大佬&#x1f60e;&#xff01;&#xff01;)》真实小白学习历程&#xff0c;手把手带你一起从入门到入狱&#x1f6ad; &…

关于SpringCloud,你了解多少?

Why SpringCloud&#xff1f; Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用 spring boot 的开发风格做到一…

快速列表quicklist

目录 为什么使用快速列表quicklist 对比双向链表 对比压缩列表ziplist quicklist结构 节点结构quicklistNode quicklist 管理ziplist信息的结构quicklistEntry 迭代器结构quicklistIter quicklist的API 1.创建快速列表 2.创建快速列表节点 3.头插quicklistPushHead …

加固系统安全,防范ssh暴力破解之Fail2Ban

你是否还在担心你的服务器被攻击&#xff1f;你是否还在担心你的博客的安全&#xff1f;你是否还在担心你的隐私&#xff1f;别急fail2ban它来了&#xff0c;它可以解决你的一切问题。 Fail2Ban 是什么&#xff1f; 现在让我们一起来认识一下今天的主角 – Fail2Ban。简单说来…

浅析hex和bin文件格式以及使用Keil编译生成hex和bin文件

目录 概述 1 hex文件和bin文件 1.1 认识.hex文件 1.1.1 hex文件内容 1.1.2 hex文件格式介绍 1.1.3 认识几个数据类型 1.2 .bin文件 2 Keil 开发工具生成.hex和.bin 2.1 生成.hex文件 2.2 生成.bin文件 概述 本位主要介绍.hex文件和.bin文件的相关内容&#xff0c;重点…

Python+Django+Html网页版人脸识别考勤打卡系统

程序示例精选 PythonDjangoHtml人脸识别考勤打卡系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《PythonDjangoHtml网页版人脸识别考勤打卡系统》编写代码&#xff0c;代码整洁&#xf…

【Ubuntu】 Github Readme导入GIF

1.工具安装 我们使用 ffmpeg 软件来完成转换工作1.1 安装命令 sudo add-apt-repository ppa:jonathonf/ffmpeg-3sudo apt-get updatesudo apt-get install ffmpeg1.2 转换命令 &#xff08;1&#xff09;直接转换命令&#xff1a; ffmpeg -i out.mp4 out.gif(2) 带参数命令&…

怎么在外地控制自家的电视

怎么在外地控制自家的电视 随着科技的进步和智能家居的普及&#xff0c;远程控制家中的电器设备已经成为现实。电视作为家庭娱乐的中心&#xff0c;远程控制功能更是备受关注。那么&#xff0c;如何在外地控制自家的电视呢&#xff1f;本文将为你提供详细的步骤和有价值的信息…

中国网站数量竟然比2022年多了10000个

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 CNNIC发布了最新中国互联网报告&#xff0c;报告显示&#xff1a; 2018年中国有523万个网站&#xff0c;2023年13月下降到388万个&#xff0c;5年时间网站数量下降30%&#xff0c;但相比于2022年12月&#xff0c;竟…

Java后端基础知识(String类型)

String类的创建方式 String的特点 1.引用数据类型 2.是final类&#xff0c;一旦创建内容不可修改 3.String类对象相等的判断用equals&#xff08;&#xff09;方法完成&#xff0c;是判断地址数值 String的创建方式 1.直接创建 String str"hello";注意&#xff…

【ELFK】Filebeat+ELK 部署

FilebeatELK 部署 Node1节点&#xff08;2C/4G&#xff09;&#xff1a;node1/192.168.67.11 Elasticsearch Kibana Node2节点&#xff08;2C/4G&#xff09;&#xff1a;node2/192.168.67.12 Elasticsearch Apache节点&#xff1a;apache/192.168.67.10 …

二叉树的前序

1.递归 public boolean isSymmetric(TreeNode root) {if(root null){return true;}return deepCheck(root.left,root.right);}boolean deepCheck(TreeNode left, TreeNode right){//递归的终止条件是两个节点都为空//或者两个节点中有一个为空//或者两个节点的值不相等if(lef…

DePIN打猎之旅:AI算力作饵,道阻且长

出品&#xff5c;OKG Research 作者&#xff5c;Hedy Bi 香港Web3嘉年华已告一段落&#xff0c;然而Web3自由的脉搏还在跳动&#xff0c;并不断向其他行业渗透。和上一轮周期相比&#xff0c;本轮牛市开启的逻辑是由“原生创新叙事”转变成“主流认可&#xff0c;资金驱动”的…

ios包上架系列 四、虚拟机涉及网站

一、网站相关 苹果开发者平台 https://developer.apple.com/ 谷歌邮箱 https://mail.google.com/mail/u/0/#inbox 微云在线或者安装QQ https://www.weiyun.com/disk 下载下的为zip文件&#xff0c;需要复制里面的内容出来使用 二、环境配置 1、ios-upload 配置&#x…

水利自动化控制系统平台介绍

水利自动化控制系统平台介绍 在当今社会&#xff0c;水资源的管理和保护日益成为全球关注的重要议题。随着科技的进步和信息化的发展&#xff0c;水利监测系统作为一种集成了现代信息技术、自动化控制技术以及环境监测技术的综合性平台&#xff0c;正在逐步改变传统的水利管理模…

【Dijkstra单源最短路径解法】蓝桥杯2022年第十三届决赛真题-出差

我也来贡献一份题解&#xff1a;Dijkstra单源最短路径的简单变式【简单C代码】 这道题的前置知识的Dijkstra单源最短路径算法 如果还没学过&#xff0c;建议去看AcWing算法教程的**图论(2)**中最短路径问题的讲解,u1s1–y总讲的是真的通透&#xff01; 思路 这道题和单源最短路…