异步电路是我们在进行IC设计时候必须要跨越的一道坎,必须要掌握的基础知识。个人认为对异步电路的理解以及处理经验是衡量一个IC前端水平的重要指示。不过最可怕的是哪怕你想的再明白理解的再清楚,也还是可能会翻车,简单说异步电路堪称IC芯片出错重灾区。当然正因为如此,一般的IC设计中会把异步处理做单独的模块设计,需要进行异步处理时调用对应功能的module即可。
下文综合了我自己对异步电路的理解和实操,书中所学技巧与经验以及网上其他大牛的总结讲解,我尝试用最易于理解掌握的方式进行表达也算是对自己所学的记录,如有侵权请告知立即删除。
无论我们是去面试、和前端后端交流还是听大佬们聊天,总会听到“跨异步”“异步处理”“异步FIFO”“跨异步打拍”“异步电路”这些词没事就蹦出来,所以第一篇文章我们就来探讨下到底什么是异步电路。
有异步就肯定有同步,基本含义上来说异步和同步都是针对时钟而言的。同步时钟sync是指时钟之间相位相对确定,异步时钟async是指时钟之间相位不确定。看到一些地方认为同步时钟sync是指时钟之间频率和相位都相对确定,异步时钟async是指时钟之间频率或相位不确定,也不能说没有道理吧。不过我坚持认为根源是在相位确不确定上,例如33M和100M时钟