ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

Spyglass:CDC官方Hands-on Training(三)

Spyglass:CDC官方Hands-on Training(三)

相关阅读

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


本文是对Spyglass CDC Hands-on Training中第一个实验的翻译(有删改),Lab文件可以从以下链接获取。

Spyglass CDC Hands-on Traininghttps://download.csdn.net/download/weixin_45791458/90875640


实验三、CDC结构验证

本实验旨在帮助用户掌握如何分析并解决跨时钟域中出现的结构性问题,特别是与亚稳态(metastability)相关的问题。

通过本实验,用户将学习以下内容:

  • 执行并理解cdc_verify_struct目标
  • 理解与亚稳态相关的检查规则
  • 学习如何修改参数以影响检查
  • 学习使用使用表格查看器

验证同步复位

1、首先编辑SGDC/training.sgdc文件,并将同步复位约束注释,如图1所示。

图1 注释同步复位约束

2、选择Goal Setup阶段,勾选cdc/cdc_verify_struct并点击Run Goal(s),如图2所示。

图2 选择目标

3、在Violations窗口选择Group By Goal by Rule,这表示将结果按照目标->规则的方式分组,如图3所示。

图3 选择分组方式

4、点击cdc/cdc_verify_struct目标前的加号以展开分组,结果如图4所示。

图4 cdc/cdc_verify_struct目标

5、选中Ac_unsync01错误,右键单击在菜单中选择Open Spreadsheet,将打开一个表格显示所有未同步的跨时钟域,如图5所示。

图5 打开表格

6、点击窗口上的符号可以使每项不换行显示,每个未同步的目标触发器由一项表示,如图6所示,可以看出其中有些违规项被分组了(比如编号4和5的违规项),这是Spyglass中的Instance-Based Grouping行为,将disable_inst_grouping参数设置为yes可以禁止这种分组。

图6 表格不换行显示

7、点击D列DEST.以目标触发器排序,找到值为training.u_ACS01.u_sync2s.meta的项目,如图7所示。

图7 排序并寻找

8、单击该项目将打开二级表格,展示了该项跨时钟域的详细信息,如图8所示。

图8 跨时钟域详细信息

9、使用快捷键I或者点击窗口上的符号查看原理图,如图9所示。

图9 同步复位

10、从图9中可以看出触发器输入端的与门构成了同步复位逻辑,沿着与门输入引脚回溯到主输入端口(右键单击与门的输入引脚in1在菜单中选择Show Input Cone->Primary Inputs),以确认这确实是一个复位信号,如图10所示。

图11 展示输入锥

11、使用Schematic Debug Data窗口,单击选择线网主输入端口,看到该端口只设置了一个异步复位约束,这会导致跨时钟域错误,如图12所示。

图12 观察端口信息

12、取消SGDC/training.sgdc文件中对于同步复位约束的注释,重新运行cdc/cdc_verify_struct目标,查看错误是否解决。

RELATED READING

延伸阅读

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