ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Spyglass:跨时钟域同步(毛刺保护单元)

Spyglass:跨时钟域同步(毛刺保护单元)

相关阅读

Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm=1001.2014.3001.5482


简介

毛刺保护单元方案主要用于数据信号跨时钟域同步,该方案使用参数将驱动目标时钟域触发器的单元指定为毛刺保护单元,如图1所示。

图1 毛刺保护单元方案

图2是Ac_sync01规则提供的Spreadsheet,其中展示了控制信号跨时钟域相关细节,如果该信号同步失败,数据信号的同步也会失败。

图2 Ac_sync01规则提供的Spreadsheet

图3是Ac_sync02规则提供的Spreadsheet,其中展示了数据信号跨时钟域相关细节,注意到控制信号ee_ff2被识别为了Qualifier。

图3 Ac_sync01规则提供的Spreadsheet

除了图1所示的情况,Spyglass允许毛刺保护单元的一个输入的扇入中存在目标时钟域的触发器或输入端口(但一定需要一个由源时钟域同步来的控制信号),如图4所示。

图4 毛刺保护单元方案

需要注意的是,不能有连续两个毛刺保护单元在源时钟域和目标时钟域之间。

相关参数或约束

glitch_protect_cell参数

使用glitch_protect_cell参数可以设置某个模块为毛刺保护单元,下面给出了一个例子。

// test.prj set_parameter glitch_protect_cell​​​​​​​ prot

allow_combo_logic参数

默认情况下,Spyglass允许通过组合逻辑跨时钟域,将allow_combo_logic参数设置为no可以禁止这种情况,下面给出了一个例子。

// test.prj set_parameter allow_combo_logic no

图5 组合逻辑跨时钟域错误

图5展示了这种情况下通过组合逻辑跨时钟域时出现Ac_unsync02错误(实际上,即使allow_combo_logic参数设置yes,也只是不出现Ac_unsync02错误,但Ac_glitch03错误会出现,即Spyglass识别到毛刺)。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进