芯动力——硬件加速设计方法学习笔记(第三章)亚稳态

发布于:2022-11-13 ⋅ 阅读:(416) ⋅ 点赞:(0)

系列文章目录

芯动力——硬件加速设计方法学习笔记(第一章)概述
芯动力——硬件加速设计方法学习笔记(第二章)高质量VerilogHDL描述方法(1)(常见语法对应硬件结构)
芯动力——硬件加速设计方法学习笔记(第二章)高质量VerilogHDL描述方法(2)(考虑面积、功耗、时延等)
芯动力——硬件加速设计方法学习笔记(第二章)高质量VerilogHDL描述方法(3)(RTL设计指导原则)



前言

打卡学习第四天,坚持就是胜利!


一、同步电路和异步电路

1、同步电路定义

即电路中的所有受时钟控制的单元(触发器、寄存器),全部由一个统一的全局时钟控制
在这里插入图片描述

2、同步电路优点和缺点

(1)EDA工具可以保证电路的时序收敛,有效避免了电路设计中竞争冒险现象
(2)由于触发器在时钟边缘才改变,很大程度上减小了整个电路受到毛刺和噪声的影响

缺点:由于是一个全局时钟,所以需要构建时钟网络/时钟树。触发器距离时钟的远近距离造成了时钟偏移和时钟抖动等,同时缓冲器的存在使得芯片面积和功耗增加

在这里插入图片描述

3、异步电路定义

区别:电路的数据传输可以在任意时刻发生,电路中没有一个全局或局部的控制时钟
在这里插入图片描述

4、异步电路优缺点

在这里插入图片描述

补充(很重要!!!)

建立时间Tsu (set up time):时钟上升沿来临之前,数据保持稳定的时间,使得触发器能够锁存住数据
保持时间Th (hold time):时钟上升沿来临之后,数据保持稳定的时间
输出延迟时间Tco (clock output delay):clk触发到输出信号有效之间的最大延迟时间

在这里插入图片描述
在这里插入图片描述
判断violation:看实际的数据的建立时间和保持时间要大于clk的Tsu和Th

1、同一个PLL(锁相环)出来的两个时钟相位和频率是可控的,他们属于同步时钟;不同锁相环出来的两个时钟是异步时钟。 2、两者最大区别: 电路触发是否与时钟驱动同步

3、同步复位和异步复位
参考链接

#同步复位,复位信号要时钟信号有效才可以
always @ (posedge clk) begin
           if (!rst_n)
                 data_out <= 1'b0;
           else
                 data_out <= data_in;
 end

在这里插入图片描述

#异步复位,复位信号优先级很高,有效就直接复位
always @ (posedge clk or negedge rst_n)
           if (!rst_n)
                 data_out <= 1'b0;
           else
                 data_out <= data_in;

在这里插入图片描述
在这里插入图片描述
同步复位
优点:有利于时序分析和仿真、过滤掉毛刺
缺点:消耗掉组合逻辑资源

异步复位
优点:设计简单、节约资源、库中触发器自带异步复位端
缺点:易受毛刺影响、亚稳态

4、当异步复位信号的撤销时间在Trecovery(恢复时间)和Tremoval(移除时间)之间时,输出结果就会出现亚稳态,造成复位失败
释放沿必须在时钟沿前面提前recovery time释放,或者在时钟沿后removal time之后释放

Trecovery(恢复时间):控制信号在下一个时钟沿到来之前,变无效的最小时间长度
Tremoval(移除时间):在“有效时钟沿”之后变无效的最小时间长度
Tmet:亚稳态振荡时间

(如果你想让某个时钟沿起作用,那么你就应该在“恢复时间”之前使异步控制信号变无效,如果你想让某个时钟沿不起作用,那么你就应该在“去除时间”过后使控制信号变无效。如果你的控制信号在这两种情况之间,那么就没法确定时钟沿是否起作用或不起作用了,也就是说可能会造成寄存器处于不确定的状态。而这些情况是应该避免的。所以恢复时间和去除时间是应该遵守的。)

在这里插入图片描述

5、异步复位同步释放

目的:防止异步复位信号 release 释放时出现亚稳态现象
为了防止亚稳态的出现,将rst_n信号用DFF向后延一周期,外部复位信号不会在出现释放时与clk信号竞争,整个系统将与全局时钟clk信号同步

always@(posedge clk or negedge rst_n) begin
	if(!rst_n) begin
		q1 <= 1'b0;
		q2 <= 1'b0;
	end
	else begin
		q1 <= 1'b1;
		q2 <= q1;
	end
end

assign rst_syn =  q2;

always@(posegde clk or negedge q2)begin
	if(!q2)
		q3 <= 1'b0;
	else
		q3 <= data_in;
end

在这里插入图片描述
在这里插入图片描述

二、亚稳态

在这里插入图片描述

1、亚稳态定义

亚稳态一般发生在异步电路和跨时钟域传播过程中
触发器在规定时间内无法达到一个确定状态

在这里插入图片描述

2、亚稳态参数:故障间隔平均时间MTBF

故障间隔平均时间MTBF(Mean Time Between Failure):衡量一个产品(尤其是电器产品)的可靠性指标

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、解决方法

(1)双锁存器电平同步器(慢时钟域到快时钟域)

优点:结构简单、易于实现、面积消耗较少
缺点:增加了两个触发器的延时
条件:适合于慢时钟域到快时钟域
三级以及更多级可以使亚稳态发生的概率降低更多,但是电路延时也会增加
该方法只是降低发生概率,不能从根本上进行去除

在这里插入图片描述
在这里插入图片描述

(2)边沿检测同步器(慢时钟域到快时钟域)

边沿检测原因:慢时钟的一个周期信号在快时钟看来就是几个信号周期,所以检测边沿是最合理的,检测边沿的上升或者下降。

适用条件: 输入数据宽度 > 一个接受时钟周期+Th(最安全的是两个接受时钟周期)
Output = A & ~B
在这里插入图片描述

(3)脉冲同步器(快时钟域到慢时钟域)

在慢时钟域去采样快时钟域信号,可能会采样不到,所以采用翻转电路
翻转电路:将快时钟域前后间隔多个周期的信号进行标定,形成了toggle的波形
Output = A ^ B
在这里插入图片描述
在这里插入图片描述

4、三种同步器比较

在这里插入图片描述

三、简答题

1、CDC跨时钟域检查的工具

可以使用EDA工具;业界三大EDA公司Synopsys, Cadence, Mentor都有各自的CDC工具:Synopsys Spyglass CDC, Cadence Conformal Constraint Designer, Mentor Questa,其中以Synopsys公司的Spyglass CDC最为常用,市场占有率最高。

2、同步复位也会产生亚稳态吗?

当复位信号的撤销时间在建立时间和保持时间以内时,也会产生亚稳态。
概率=(set-time + hold-time)/周期
频率越高,发送亚稳态的概率越大,因此要减小亚稳态发送的概率,要减小工作频率或者set-time 和hold-time(更好的FPGA工艺)
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到