相关阅读
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
本教程提供了在多个设计阶段中运行Spyglass的操作指导,旨在通过实操获得对Spyglass设置及其结果调试/分析的深入理解,涵盖多个动手练习,每个练习之间是相互依赖的,需要按顺序完成。
实验概述
实验内容包括以下方面:
- 调试时钟设置问题并即时应用CDC约束
- 识别未同步的跨时钟域并通过CDC约束进行修复
实验目录的内容
教程目录包含以下子目录:
- RTL:与设计相关的RTL文件
- spyglass:实验的工作目录,所有Spyglass的运行将在该目录下进行
- SGDC:包含SpyGlass约束文件(.sgdc)
- sg_results(运行后创建):实验的项目目录,用于保存运行结果
实验一、CDC设置
本实验旨在帮助用户掌握进行CDC分析所需的基本设置流程,并初步熟悉Spyglass图形用户界面(GUI)的使用。实验中将介绍GUI的主要区域、帮助菜单及右侧的快捷提示信息。
通过本实验,用户将学习以下内容:
- 如何进行交互式时钟设置
- 如何从潜在的候选时钟中识别出真实的时钟
- 如何验证时钟设置信息的正确性
- 如何完成复位信号的设置
运行Spyglass
1、进入名为spyglass的目录。
% cd SpyGlass_CDC_training/spyglass
2、在命令行使用-batch选项以批处理模式运行Spyglass,运行目标为cdc/cdc_setup,该目标包含一些规则,能自动识别设计中的时钟与复位信号并自动生成约束文件,作为后续检查和验证的准备步骤。
% spyglass -project training.prj -batch -goals cdc/cdc_setup
查看GUI界面
1、打开GUI界面查看运行结果。
% spyglass -project training.prj
2、GUI界面启动后切换为cdc/cdc_setup目标的结果分析界面,如图1所示。
图1 结果分析界面
3、在GUI左上角确保选中cdc/cdc_setup目标(目前只运行了一个目标,无需选择),这样才能分析该目标的运行结果,如图2所示。
图2 选择目标
4、在Violations窗口选择Group By Goal by Rule,这表示将结果按照目标->规则的方式分组,如图3所示。
图3 选择分组方式
5、点击Design Read目标(该目标是运行其他目标时自动运行的目标)前的加号以展开分组,如图4所示。
图4 展开分组
6、可以看出有一个来自ErrorAnalyzeBBox规则的错误,Spyglass没有找到这些模块的定义,因此将其标记为黑盒(black box),如图5所示。
图5 黑盒错误
7、打开项目文件training.prj,其中training.prj文件的读取命令被注释了,取消该注释、保存,重新读取项目(其实一般情况下,一旦项目文件在打开时被人为修改,Spyglass会立刻重新读取项目文件,但由于该项目将project_read_only选项设置为yes,所以不会自动读取),并再次运行cdc/cdc_setup目标并查看错误是否解决。
8、点击cdc/cdc_setup目标前的加号以展开分组,结果如图6所示。
图6 cdc/cdc_setup目标
9、可以看出有十二个来自Clock_info01规则的信息,它们有些是主时钟(定义在输入端口的时钟)、有些是派生时钟(定义在触发器输出引脚)还有黑盒时钟(定义在黑盒输出引脚),如图7所示。
图7 时钟识别
10、双击选中第一条信息(黑盒时钟),使用快捷键I或者点击Violations窗口上的符号查看原理图,如图8所示。
图8 黑盒时钟
11、在以下路径查看Clock_info01规则生成的约束文件。
sg_results/training/training/cdc/cdc_setup/spyglass_reports/clock-reset/autoclocks.sgdc
12、回到图6,以看出有十三个来自Reset_info01规则的信息,它们可以是主复位/置位(定义在输入端口的时钟)、有些是派生复位/置位(定义在触发器输出引脚)、黑盒复位/置位(定义在黑盒输出引脚)、未驱动复位/置位、门控复位/置位、同步复位/置位,如图9所示。
图9 复位/置位识别
13、在以下路径查看Reset_info01规则生成的约束文件。
sg_results/training/training/cdc/cdc_setup/spyglass_reports/clock-reset/autoresets.sgdc