跨时钟(CDC)处理
当设计中存在多个时钟域,信号从一个时钟域传入另一个时钟域时,即存在Clock Domain Crossing(CDC),需要小心处理,防止出现亚稳态
按时钟快慢来划分,跨时钟域问题可以分成从慢时钟域到快时钟域以及从快时钟域到慢时钟域两种场景;按信号位宽来划分,可以分为单比特跨时钟域问题与多比特跨时钟域问题
对于单比特跨时钟域问题来说,在不握手的机制下,最基本的处理是需要打两拍。而如果为从快时钟域到慢时钟域,则需要将信号展宽,以确保慢时钟域下能够采样到。展宽的基本要求通常为展宽至慢时钟周期的1.5倍以上,或者说,要求展宽后的信号要跨越慢时钟3个时钟沿,为了保证代码更迭所可能存在的时钟比变化而导致的跨时钟处理失败,可在此处插入断言
跨时钟问题需要灵活处理,对于多个关联控制信号的跨时钟处理,往往可以通过分析它们之间的逻辑关系,做辅助信号或者辅助逻辑来变为单比特跨时钟域来处理
对于多比特的数据信号,可以通过多周期路径或者FIFO来处理,多周期路径即通过一个辅助控制信号握手来确保数据的顺利采样
更多详细内容,请参考:
http://www.sunburst-design.com/papers/CummingsSNUG2008Boston_CDC.pdf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!