【芯片设计- RTL 数字逻辑设计入门 7 -- 同步复位与异步复位详细介绍】

文章目录

转自https://blog.csdn.net/qq_40281783/article/details/128969188

复位的类型和划分

通常,芯片的复位信号分为两大类,全局复位和局部复位;

  • 全局复位:能够确保每个寄存器都处于可控的状态;

  • 局部复位:基于软件功能的需求而存在的独立复位,对于某一个模块的单独控制,建议使用局部复位;

同步复位

定义

只有在时钟有效沿采样到复位信号的有效电平时,才会执行复位操作;

代码

bash 复制代码
always @(posedge clk) begin
    if(!rst_n)
        out <= 1'b0;
    else
        out <= in;
end

综合后电路

或者

优缺点

优点

  • 一般可以确保电路是同步电路,有利于静态时序分析;

  • 有利于仿真器的仿真;

  • 可以滤除复位信号频率大于时钟频率的毛刺;

缺点

  • 如综合电路图所示,因为逻辑器件库中的DFF只有异步复位端口,所以综合器会在DFF的数据输入端增加组合逻辑,浪费资源;

  • 复位的有效时长必须大于一个时钟周期;

  • 如果时钟关闭,则无法完成复位;

异步复位

定义

无论时钟有效沿是否到,只要复位信号有效,就会立刻进行复位操作;

代码

bash 复制代码
always @(posedge clk or negedge rst_n) begin
    if(!rst_n)
        out <= 1'b0;
    else
        out <= in;
end

综合后电路

优缺点

优点

  • 复位信号不依赖于时钟,可以实现无时钟复位,这是低功耗技术之一;

  • 与同步复位相比,可以节省资源,保证数据路径上相对干净;

  • 与同步复位相比,复位逻辑与数据路逻辑无关,所以数据路径更好收敛;

缺点

  • 电路容易受到复位信号上毛刺的影响;

  • 复位信号具有随机性,容易导致recovery time/removal time 为例,进而导致亚稳态;

  • 不利于进行静态时序分析;

异步复位的时序分析(recovery time/removal time)

定义

异步复位,时序违例是发生在复位信号释放的时候(从复位状态到非复位状态);下面以rst_n为例

恢复时间和移除时间(recovery time/removal time)

  • removal time :移除时间

    复位信号释放时,有效电平在时钟有效沿到来之后的保持时间,类似于hold time;

  • recovery time :恢复时间

    复位信号释放时,恢复到无效电平在时钟有效沿到来之前的保持时间,类似于setup time;

异步复位,同步释放

定义

就是在复位信号到来的时候不受时钟信号的同步,在复位信号释放的时候受到时钟信号的同步;

代码

bash 复制代码
always @(posedge clk or negedge rst_n) begin
    if(!rst_n) begin
        rst_n_d0 <= 1'b0;
        rst_n_d1 <= 1'b0;
    end
    else begin
        rst_n_d0 <= 1'b1;
        rst_n_d1 <= rst_n_d0;
    end
end
assign rst_n_sync = rst_n_d1;
always @(posedge clk or negedge rst_n_sync) begin
    if(!rst_n_sync)
        out <= 1'b0;
    else
        out <= in;
end

综合后电路

优缺点

优点

  • 快速复位,只要复位信号有效,电路会立刻复位;

  • 有效捕捉复位,短脉冲复位不会丢失;

  • 复位的释放是同步的,有良好的撤离时序和足够的恢复时间;

相关推荐
DS小龙哥5 小时前
基于Zynq FPGA的雷龙SD NAND存储芯片性能测试
fpga开发·sd nand·雷龙·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
上理考研周导师15 小时前
第二章 虚拟仪器及其构成原理
fpga开发
FPGA技术实战16 小时前
《探索Zynq MPSoC》学习笔记(二)
fpga开发·mpsoc
bigbig猩猩1 天前
FPGA(现场可编程门阵列)的时序分析
fpga开发
Terasic友晶科技1 天前
第2篇 使用Intel FPGA Monitor Program创建基于ARM处理器的汇编或C语言工程<二>
fpga开发·汇编语言和c语言
码农阿豪1 天前
基于Zynq FPGA对雷龙SD NAND的测试
fpga开发·sd nand·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
江山如画,佳人北望1 天前
EDA技术简介
fpga开发
淘晶驰AK1 天前
电子设计竞赛准备经历分享
嵌入式硬件·fpga开发
最好有梦想~1 天前
FPGA时序分析和约束学习笔记(4、IO传输模型)
笔记·学习·fpga开发