微信
投稿

芯片设计 | 异步电路碎碎念之到底什么是异步电路

2024-07-19 11:24 来源:芯时代青年 作者:尼德兰的喵

这个系列最开始是几年前帮朋友梳理面试重点时开始动笔的,后面结合了一些实际使用的注意点和拓展探索以及在异步专题学习小组中的知识获取,完成了整个系列的内容。系列的内容和前面异步FIFO以及异步复位相关文章耦合紧密,可以伴随阅读。

异步电路同步化是我们在进行IC设计时候必须要跨越的一道坎和必须要掌握的基础知识。个人认为对异步电路的理解以及处理经验是衡量一个IC前端水平的重要指标。不过这部分最可怕的点是,哪怕把注意项和坑想的再明白理解的再清楚也还是可能会翻车,简单说异步电路堪称bug重灾区。看之前一些项目案例的时候,一群那么有经验的大佬仍然会在异步场景里出问题,而且了问题之后是真的难定位。

当然正因如此,一般的IC设计中会把异步处理做单独的模块单元设计,需要进行异步处理时调用对应功能的module配合对应的约束文件即可。于是就出现了一个尴尬的情况,异步问题在校招和应聘时会被频繁的问到,但是在进入到实际工作中无论是ip设计还是soc设计,大部分场景下都不需要考虑太多异步的事情,因为这个事情有专门人在考虑和进行代码编写。对大多数同行而言,基本要到系统级交付比如PCIE这类之后才会比较频繁的考虑异步电路的场景。但即使这样,其实大部分问题还是被封装好的异步FIFO、同步器、异步握手信息传递模块解决了。

书归正传,这个系列综合自己对异步电路的理解,书中所学技巧与经验以及网上其他大佬的讲解,尝试用最易于掌握的方式对异步电路的一些知识点继续总结梳理。



无论我们是去面试、和前端后端交流还是听大佬们聊天,总会听到“跨异步”“异步处理”“异步FIFO”“跨异步打拍”“异步电路”这些词没事就蹦出来,所以第一篇文章我们就来探讨下到底什么是异步电路。有异步就肯定有同步,基本含义上来说异步和同步都是针对时钟而言的。同步时钟sync是指时钟之间相位相对确定,异步时钟async是指时钟之间相位不确定。看到一些地方和项目处理中认为同步时钟需要时钟之间频率和相位都相对确定,异步时钟是时钟之间频率或相位不确定,这个更加谨慎的处理方式也不能说没有道理吧。不过理论一些,异步时钟的根源还是在相位确不确定上,例如33M和100M时钟就一定不可能是同步时钟,因为无论如何做不到相位保持一致;而50M和100M时钟就有可能是同步时钟,因为相位可以保持一致。

下面就是典型的异步电路结构:

芯片设计 | 异步电路碎碎念之到底什么是异步电路

可以得出结论:频率不同不一定同步异步,同源时钟不一定同步异步,归根到底看有没有固定的相位。顺便多说一句,后端的大佬对于异步的理解跟前端可能偶尔有所出入,尤其是在进行时序收敛时候,典型的场景就是芯片子系统之间即使在同步时钟域,也会按照异步时钟域来进行时序收敛。

还有一种特殊场景,即使一组寄存器都由同一时钟驱动,也可能存在异步问题,那就是异步复位的情景。我们我们知道复位可以区分为同步复位和异步复位(以前讨论过就不多说了),画一下简图:

always @(posedge clk or negedge rst_n)

芯片设计 | 异步电路碎碎念之到底什么是异步电路

always @(posedge clk)

芯片设计 | 异步电路碎碎念之到底什么是异步电路

而对于同步复位,复位信号是不会放在敏感列表中的,因此在综合时会被综合成如图2的形式作为数据输入触发器,那么此时如果复位信号由异步时钟驱动,那么这个电路结构实际也构成了异步场景。

有时钟就可以划分出一块时钟域,一个时钟域是指使用某一同步时钟驱动的逻辑单元(当然一般是指时序逻辑单元,非时钟驱动的器件先往后站啊)集合,这个集合中一般有什么东西呢?最常见的肯定就是我们总写的D触发器啦,当然还有处于同步时钟下的FIFO啊、SDRAM啊、引脚啊都能算进来,总之在某一同步时钟驱动的所有时序单元都算进来就好了。一个芯片多模块之间可能是同一时钟域(单时钟域)下的,也有可能是在异步时钟域(多时钟域)下的,当然多时钟域必然是占大头毕竟现在的芯片越做越大越做越复杂了。

正是因为多时钟域的存在,才引出了信号的跨时钟域处理问题,也就是我们要探究的异步电路种种。

某天有人忽然和我讨论,“既然跨异步有这么多问题,那为啥不用同一个时钟呢,省了多少事啊”,这个问题当时也是懵了一下。很多场景下跨异步是不可避免的或者说多时钟域是不可避免的,例如前后两个模块的吞吐能力不同,串并转换模块,本来信号就属于不同系统但是必须进行交互(例如cpu通过cpu接口读写芯片内部信号),为了功耗考虑尽量降低部时钟域分模块的时钟频率等。

对于多时钟域的信号处理,必然是由发送时钟域(源时钟域)经过同步电路(同步器)到达接收时钟域(目的时钟域),这个过程可以称之为信号跨异步,电路结构称之为异步信号的同步电路。

芯片设计 | 异步电路碎碎念之到底什么是异步电路

芯片设计 | 异步电路碎碎念之到底什么是异步电路

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

精彩评论

暂无评论...
验证码 换一张
取 消

热门作者

东方

简介: 天马行空的文字之旅。

邮箱: liutingting03@hczyw.com

简介: 保持期待,奔赴山海。

邮箱: zhuangjiaxin@hczyw.com

松月

简介: 脚踏实地,仰望星空。

邮箱: wuxiaqing@hczyw.com

合作咨询:15889679808               媒体咨询:13650668942

广州地址: 广州市越秀区东风东路745号紫园商务大厦19楼

深圳地址: 广东省深圳市龙华区五和大道星河WORDC座5F506

北京地址: 北京市朝阳区小关东里10号院润宇大厦2层

慧聪电子网微信公众号
慧聪电子网微信视频号

Copyright?2000-2020 hczyw.com. All Rights Reserved
慧聪电子网    粤ICP备2021157007号