本系列将对sunburst design网站的2008最佳文章《Clock Domain Crossing (CDC) Design & Verification Techniques Using SystemVerilog》进行翻译和基于自我理解的分析阐述,本文介绍多信号跨时钟域传输。
时钟与信号命名
当一个整体设计中包含较多时钟时,推荐在信号命名时体现其时钟域。例如uclk代表微处理器时钟,vclk代表视频处理时钟,dclk代表显示模块时钟,那么在命名信号时,可以在微处理器模块命名:uaddr,uwr_en,udata,同理在其他模块也以各自的时钟代号开头,增加代码易读性,并且在跨时钟域时也更加清晰更易于bug定位。
以时钟分割设计
指导方针:每一个模块只允许有1个时钟
原因:对静态时序分析(STA)更容易
例外:顶层模块必然需要连接多个模块的多个时钟,所以顶层模块例外,但是尽量做到只有1个多时钟的顶层模块
至此,本系列就翻译和理解结束了,欢迎大家翻阅我前面的文章,并一键三连。
参考文献:http://www.sunburst-design.com/papers/CummingsSNUG2008Boston_CDC.pdf
--------------------------------------END------------------------------------