资讯动态

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

发布时间:2026/10/26 9:48:45 来源:尧图企业网站定制
相关阅读Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482本文是对Spyglass CDC Hands-on Training中第二个实验的翻译有删改Lab文件可以从以下链接获取。Spyglass CDC Hands-on Traininghttps://download.csdn.net/download/weixin_45791458/90875640实验二、CDC设置检查本实验旨在验证CDC设置是否正确。通过本实验用户将学习如何检查设置中的问题并展示如何即时创建约束如set_case_analysis命令。通过本实验用户将学习以下内容如何进行交互式时钟设置如何从潜在的候选时钟中识别出真实的时钟如何验证时钟设置信息的正确性如何完成复位信号的设置添加主时钟约束1、选择Goal Setup阶段勾选cdc/cdc_setup_check并点击Run Goal(s)如图1所示。图1 选择目标2、一旦运行完成工具将自动跳转至Analyze Results阶段在GUI左上角确保选中cdc/cdc_setup_check目标这样才能分析该目标的运行结果如图2所示。图2 选择目标3、在Violations窗口选择Group By Goal by Rule这表示将结果按照目标-规则的方式分组如图3所示。图3 选择分组方式4、点击cdc/cdc_setup_check目标前的加号以展开分组结果如图4所示。图4 cdc/cdc_setup_check目标5、注意到有许多来自Clock_info03a规则和Reset_info09a规则的错误这是由于即使实验一中的cdc/cdc_setup目标生成了约束文件但并未进行读取。将autoclocks.sgdc文件和autoresets.sgdc文件的内容复制到SGDC/training.sgdc文件该文件最初为空已在项目文件中读取中并重新运行cdc/cdc_setup_check目标。% cat ../sg_results/training/training/cdc/cdc_setup/spyglass_reports/clock-reset/autoclocks.sgdc ../SGDC/training.sgdc % cat ../sg_results/training/training/cdc/cdc_setup/spyglass_reports/clock-reset/autoresets.sgdc ../SGDC/training.sgdc添加生成时钟约束1、查看结果发现大部分错误都解决选中Clock_info03a错误右键单击在菜单中选择Open Spreadsheet如图5所示。图5 打开表格2、点击表格中第一条消息使用快捷键I或者点击窗口上的符号查看原理图如图6所示。图6 生成时钟3、使用Schematic Debug Data窗口单击选择线网可以清晰地观察到该线网上并没有时钟信号只有数据/控制信号如图7所示其实默认情况下时钟信号可以跨越触发器传播但由于该项目将disable_seq_clock_prop参数和enable_generated_clocks参数设置为yes时钟信号不能传播。图7 观察线网信息4、下面将在原理图界面添加这个缺失的时钟约束右键单击线网在菜单中选择Set SpyGlass Constraints...如图8所示。图8 设置约束5、在窗口顶部的菜单中选择clock作为约束命令指定时钟域名字为MyDomain添加注释点击Generates生成最后点击Append将约束添加到约束文件中如图9所示。图9 添加约束6、在左侧的Constraints窗口点击第一个约束文件查看约束是否添加成功如10所示。图10 查看约束文件7、重新运行cdc/cdc_setup_check目标查看结果发现Clock_info03a错误已解决。添加时钟条件约束1、双击选中Clock_info05错误错误信息指出时钟信号在选择器上出现汇聚使用快捷键I或者点击窗口上的符号查看原理图如图11所示。图11 时钟汇聚2、从图1中可以看出两个时钟信号通过一个选择器汇聚了下面将此选择器约束为仅选择一个时钟。右键单击输入端口在菜单中选择Set SpyGlass Constraints...如图12所示。图12 设置约束3、在窗口顶部的菜单中选择clock作为约束命令指定值为0添加注释点击Generates生成最后点击Append将约束添加到约束文件中如图13所示。图13 添加约束4、重新运行cdc/cdc_setup_check目标查看结果发现Clock_info05错误已解决。查看端口约束1、查看来自Setup_port01规则的信息如图14所示该规则提供了端口的约束报告并生成了端口约束文件。sg_results/training/training/cdc/cdc_setup_check/spyglass_reports/clock-reset/training_input_abstract.sgdc图14 端口约束2、双击第二条消息将打开一个表格显示每个端口的约束信息如图15所示注意由于在2017.12版本后use_inferred_abstract_port参数的默认值为yes因此该处结果与原文结果不同。图15 端口约束情况可以看出有些端口定义了clock约束有些端口则由自动推导的abstract_port约束该约束与clock约束不一样无需用户显示读取因为use_inferred_abstract_port参数的默认值为yes而use_inferred_clocks的默认值为no还有一个端口由上一节中的set_case_analysis约束。3、双击第一条消息将打开Setup_port01规则生成的端口约束文件如图16所示。图16 端口约束文件请注意以下几点abstract_port -ignore约束会在输入端口的扇出为空时生成即端口为空或被阻塞。如果输入端口通过组合逻辑连接到未约束的输出端口不会生成abstract_port约束。如果输入端口连接到受时钟约束的时序单元的数据端口或使能端口该时序单元的时钟域会被添加到生成的abstract_port约束中。输入端口由用户定义如clock约束、quasi_static约束或set_case_analysis约束约束时不会生成abstract_port约束。实验三SpyglassCDC官方Hands-on Training三https://blog.csdn.net/weixin_45791458/article/details/148170047?spm1001.2014.3001.5501

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑