【异步电路碎碎念5】 —— 跨异步处理的几个注意事项

简介: 【异步电路碎碎念5】 —— 跨异步处理的几个注意事项

前言

继续上篇写,最近沉迷游戏一直没有恢复学习状态,今天开始恢复!

【异步电路碎碎念4】 —— 跨异步的处理方法

今天这个内容跟之前的好像有些重复,不过没关系就当水一水吧~

注意事项

多比特信号进行同步时,如需要进行逻辑运算必须在源时钟域完成组合逻辑并寄存处理,不能分别同步到目的时钟域后再进行逻辑处理

这个老生常谈了,每个比特在同步过程中收敛的时刻不同,有的在第2拍采到正确值,有的在3拍采样到正确值,在目的时钟域对多个同步信号进行组合逻辑的话,产生的结果可能与预期不一致导致整个逻辑的混乱与传播。

同步器之间不能有任何组合逻辑

同样是老生常谈的一个点,同步就干干净净的处理就对了,千万别有组合逻辑,一是触发器路径延迟不同,高低电平传播时间不一致,组合逻辑会有错误逻辑以及竞争冒险与毛刺,同时也增加了采样的不稳定区间。

同源信号扇出多个触发器的情况,需要先同步再复制同步后的信号

典型的场景就是A -> B,A -> C,BC都在目的时钟域,此时不要讲同步器复制对A分别跨异步,而是要先将A同步到目的时钟域后再驱动多个逻辑路径。

使用格雷码跨异步,格雷码必须是依次变化的

比较典型的场景是计数器非整2的幂次计数翻转,这过程中会有格雷码多比特跳变的场景,不能使用格雷码同步器。此外使用格雷码同步器时,格雷码必须打拍输出,格雷码多比特的走线延迟建议不要大于Tmin_cyc(min 源、目的时钟周期


相关文章
|
7月前
|
安全 Go
Go语言并发新特性:单向通道的读写控制
Go语言并发新特性:单向通道的读写控制
99 0
|
前端开发 Shell 芯片
【芯片前端】保持代码手感——跨异步DMUX
【芯片前端】保持代码手感——跨异步DMUX
113 0
|
5月前
|
调度
【浅入浅出】Qt多线程机制解析:提升程序响应性与并发处理能力
在学习QT线程的时候我们首先要知道的是QT的主线程,也叫GUI线程,意如其名,也就是我们程序的最主要的一个线程,主要负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。但是当我们只限于在一个主线程上书写逻辑时碰到了需要一直等待的事件该怎么办?它的加载必定会带着主界面的卡顿,这时候我们就要去使用多线程。
160 6
|
7月前
|
网络协议 算法 开发者
如何实现网络同步?
【5月更文挑战第3天】如何实现网络同步?
133 9
|
前端开发 芯片
【芯片前端】保持代码手感——握手型同步FIFO设计
【芯片前端】保持代码手感——握手型同步FIFO设计
|
存储 数据处理
想让系统更具有弹性?了解背压机制和响应式流的秘密!
想让系统更具有弹性?了解背压机制和响应式流的秘密!
102 0
|
设计模式 算法 安全
并发 并行 同步 异步 你分清了吗
并发 并行 同步 异步 你分清了吗
【异步电路碎碎念4】 —— 跨异步的处理方法
【异步电路碎碎念4】 —— 跨异步的处理方法
【异步电路碎碎念4】 —— 跨异步的处理方法
【异步电路碎碎念3】 —— 跨异步的处理原则
【异步电路碎碎念3】 —— 跨异步的处理原则
116 0
【异步电路碎碎念3】 —— 跨异步的处理原则
|
前端开发
【异步电路碎碎念2】 —— 跨异步引发的电路危机
【异步电路碎碎念2】 —— 跨异步引发的电路危机
254 0