相关阅读
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识别到毛刺)。