快速上手SpyGlass——基本流程

        SpyGlass,这是一个很强大的RTL验证级工具。它不仅仅能检查sdc的错误,还能做以下各种检查:Low Power, DFT,CDC(Cross Domain Check)。

一、基本概念

1、方法学相关

  1. Rule: 是SpyGlass 进行RTL分析的最小单位.
  2. Goal: 是一系列相关Rule的集合,组合起来完成RTL分析的某个特定任务. user可以用GuideWare定义好的Goal, 也可根据工程项目要求来选择一系列rule的集合形成自定义Goal. GUI里面点Goal的button来选择设定, 当然也可在Prj file 里定义.
  3. Sub-Methodology: 是一系列相关Goal的集合, 用以达成某方面特定目标, 如完成CDC check.目前包括 SpyGlass CDC/Constraints/DFT/Power/TXV Methodology2

2、 其他

  1. SGDC : Constraint 文件, 主要包含clock和reset等约束信息.
  2. Waiver : 用以过滤一些结果的文件.
  3. Severity : report结果中分Fatal, Error, Warning和INFO四等级信息.
  4. parameter: 可以在进行RTL分析之前设定某些参数, 对检查过程进行一些约束

二、流程简介

        SpyGlass的功能模型总结如下图:

1、设置阶段(setup stage)

        设置阶段的主要工作是:

  • 添加设计文件、SGDC文件、预编译文件和技术文件。
  • 指定影响SpyGlass运行的各种设计读取选项。例如,你可以在设计中指定顶层模块、更改语言、指定宏等等。。
  • 运行design-read流程来执行第一级的HDL分析。在进入下一阶段之前,必须解决此阶段报告的致命错误(FATAL)。

        Spyglass 可以运行在BATCH 或者 GUI 模式。通常模式下是在batch模式下执行分析,在GUI模式下进行debug。使用命令如下:

spyglass -gui&
spyglass -project xxx.prj -designread -batch 

1)工程(Project)文件

        采用BATCH模式,这些设置都会添加到工程(Project)文件中,Project一般定义了以下内容:

preview

        需要读入的文件及命令如下:

        下面提供一个脚本范例:

#!SPYGLASS_PROJECT_FILE
#!VERSION 3.0
--------------------------------------------------------------
# This is a software generated project file. Manual edits to this
file could be lost during the next save operation
# Copyright Synopsys Inc.
# Last Updated By: SpyGlass SpyGlass_vL-2016.06
# Last Updated On Mon Dec 2 17:25:10 2019
-------------------------------------------------------------
##Data Import Section
read_file -type sourcelist cmd_files_ic
read_file -type sgdc xxx.sgdc
##Common Options Section
set_option top xxx
set_option projectwdir .
set_option language_mode mixed
set_option designread_enable_synthesis no
set_option designread_disable_flatten no
set_option enableSV yes
set_option disablev2k yes
set_option 87 no
set_option sdc2sgdc yes
set_option top xxx
set_option active_methodology
$SPYGLASS_HOME/GuideWare/latest/block/rtl_handoff
set_option sdc2sgdcfile xxx_sdc2sgdc.sgdc
set_option extractDomainInfo true
set_option stop { saradc_10bit_5vp15 reg_1p5_5vp15 por_lvd_5vp15
pch_5vp15 sensoradc_5vp15 osc800k_trim_5vp15 crystal_32k16m_5vp15
pll_800kto48m_5vp15 pad_cp pad_vdd pad_vss RASP256X9 RASP1536X9
pfm_1110skh32kx32_v1a0 gpio_ana_pad_5vp15 pad_vpp pad_avdh pad_avs
por2_5vp15 }
##Goal Setup Section
current_methodology
$SPYGLASS_HOME/GuideWare/latest/block/rtl_handoff
#current_goal cdc/cdc_setup_check -top xxx
set_parameter enable_generated_clocks yes
set_parameter write_sdc yes
set_parameter report_indirect_port_clock yes
set_parameter report_detail Clock_check10,all
set_parameter allow_combo_logic yes
set_parameter debug_proc yes
set_parameter enable_glitchfreecell_detection yes
set_parameter show_sdc_progress yes
set_parameter strict_sync_check no
set_parameter use_inferred_clocks yes
set_parameter show_all_sdc_violations yes
#set_parameter gen_block_sgdc -default
set_parameter allow_clock_on_output_port yes
set_parameter clock_gate_cell "ICG_V ICG"
set_parameter enable_sync_cell "sync_level, Sync_Pulse"
############

2)约束(SGDC)文件

        SGDC包含的内容一般如下:

         SDC文件可以直接被SpyGlass读取,自动转换成SGDC,需要设置以下内容完成sdc2sgdc的转换:

set_option sdc2sgdc yes

        在.sgdc 文件中只需要写入下面语句就可以

current_design sssss
sdc_data -file sssss_src.sdc

        在目录/constraints/sdc_check/spyglass_reports/sdc2sgdc/会有转化后的sdgc 文件。在sdc2sgdc 时,sdc 和sgdc 可以混合,如下:

current_design sssss
clock -name clkA -period 10 -edge 0 5
//时钟约束include ssss.sgdcset_case_analysis -name "sssss.atpg_test_en" -value 0
set_case_analysis -name "sssss..osc_sel" -value 1
//设置路径分析sdc_data -file sssss_src.sdc //综合时使用的约束文件reset -name "sssss.uAnd2.Z" -async -value 0
reset -name "sssss..POR_SRC" -async -value 0
//设置异步复位信号

2、目标(Goal)设定和运行(Run)阶段

        在此阶段将选择并运行目标。目标是规则的集合。可以选择规则,也可以指定规则执行的顺序。

        在SpyGlass CDC分析期间可以在不同的阶段运行不同的SpyGlass CDC目标。在每个阶段中,修复所报告的违例并转移到下一个阶段。如果不遵循这个分步骤的方法,可能会看到大量违反CDC的情况,其中大多数是由于不正确的设置或没有修复前几个阶段的违例引起的。

        这里我们以GUI界面为主进行介绍。

        输入命令进入gui 界面如下:

        spyglass 类似pt,是静态验证工具。特点就是不需要编写testbench,就可以验证。

        1. Adding Design Files----加入rtl 和sgdc 文件。这里需要通过set optin对Top Level Design Unit 进行设置。
        2. Viewing and Changing Design Read Options
        3. Running Design Read
        点击file -> new_project (对应sg_shell>new_project spyglass-1 –force 命令)

        点击Run Design Read 开始进行设计文件编译和分析,在读取完成后会在下方窗口列出问题。如下图所示:

        其中三个问题类型都为ErrorAnalyzeB Box,这是因为有的模块文件没有添加,SPYGLASS找不到,后面SPYGLASS会将其作为黑盒子处理。

        左侧instance下文件不同颜色标识意义为:

  1. 绿色表示该模块可进行分析,但不可进行综合;
  2. 黑色表示该模块作为黑盒子存在;
  3. 白色表示该模块可综合。

        需要注意,只是读取设计并不会完成综合,因此也不会创建相关的原理图。因此,为了使用spyglass,首先应该解决黑盒子问题。

        然后选择不同目标进行检查:

        ​ 然后点击Run Goal(s) ,当运行完成,会自动弹出Analyze Result窗口。

        得到分析结果后,首先查看Lint分析结果。首先展开lint/lint_rtl文件夹消息。错误信息以红色显示,警告以橙色显示,信息以绿色显示。双击违规消息,此时与错误相关的代码会在RTL代码窗口中显示出来。 此时可以对该问题进行分析。

        可以通过手动添加waivers来放弃对一些电路的检查:鼠标在违规信息上 -> 右键 -> Waive Selected Messages…

        这将打开waivers编辑器窗口,并为其填充相关信息(违规消息、规则和设计单位(DU)):

        可以在Comments字段中添加放弃的原因。做出任何更改后,单击Apply。可以将Waiver设置保存为文件然后重复使用:在waivers编辑器窗口中右键点击左侧面板中文件,然后选择Save Waiver Files。 SpyGlass会为每个Goal保存一个关于检查过滤的文件。

3、生成报告

        报表内容为运行的Goal的分析结果。有的功能需要使用SpyGlass的组件完成,如果具有相应的License则会将相应的运行结果包含在报表中。报表包括datasheet 和dashboard 。

​        在GUI界面下打开shell命令窗口,输入如下命令生成报表:

write_aggregate_report datasheetwrite_aggregate_report dashboard

        生成的报表可以用浏览器打开,下面两张图为报表示例:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速上手SpyGlass——CDC检查

随着技术的发展,数字电路的集成度越来越高,设计也越来越复杂。很少有系统会只工作在同一个时钟频率。一个系统中往往会存在多个时钟,这些时钟之间有可能是同步的,也有可能是异步的。如果一个系统中,异步时钟之间存在信…

数字后端——低功耗单元库

在之前的文章中,介绍了低功耗设计物理实施的方案: 数字后端——低功耗设计物理实施_沧海一升的博客-CSDN博客_低功耗设计低功耗设计方案所涉及到的物理实施相关内容https://blog.csdn.net/qq_21842097/article/details/119918312 为了实现例如门…

NandFlash详述

1. 硬件特性: 【Flash的硬件实现机制】 Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。这类设备,除了Flash,还有其他比较常见…

史上最全的MySQL高性能优化实战总结!

1.1 前言 MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器…

低功耗设计——基于UPF进行设计

UPF, 统一电源格式UPF(Unified Power Format)是新思(Synopsys)公司通用的电源格式,是一组标准的类Tcl 语言的集合,用来描述芯片设计中的低功耗意图(Low-Power Design Intent)。 使用UPF 的语言,可以描述供电…

用公众号获取 任意公众号文章列表 软件还是免费

用公众号获取 任意公众号文章列表 软件还是免费还不快点下载 下载 地址 https://pan.baidu.com/s/1jI44Wjs转载于:https://www.cnblogs.com/wx85437898/p/7488590.html

CentOS7时间设置问题

本地安装一个VMWare player虚拟机客户端,并安装了Linux CentOS7 Basic Web Server系统,时区在安装时已经选择了Asia/Shanghai,但是安装完成后,时间和当前外部的时间不一致,如下图 图一 图二 图三 后经搜索发现,由于未开…

低功耗设计——功耗估算

根据在功耗分析的过程中是否有输入向量的提供,功耗估算方法可以分为仿真的方法(Simulative)和非仿真的方法(Non-simulative): 仿真的方法是根据用户所提供的大量输入向量来对电路进行模拟,利用…

Deep Learning(深度学习)学习笔记整理系列三

Deep Learning(深度学习)学习笔记整理系列 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的。具体引用的资料请看参考文献。具体的版本声明也参考原文献。 2)本文仅供学术交流&…

Conformal ECO 流程介绍

之前听说过一句话,没有修过ECO的人生是不完整的。最近就给我整得再次完整了。。。。。。 最近赶项目,RTL freeze之后,后仿发现出了bug(还好拦下来了,不然头更大),于是做了一次function ECO&…

Zabbix discoverer processes more than 75% busy

原文发表于cu:2016-06-22 Zabbix discoverer processes more than 75% busy原因及处理。 一.现象 配置了discovery任务后,zabbix dashboard 告警如下: Zabbix discoverer processes more than 75% busy 二.原因 1. 配置…

图像紫边消除(depurple)

图像紫边广泛存在于目前的手机摄像头、数码相机、监控摄像头等数字成像系统所得图像中,当我们使用这些设备在逆光、大光圈等条件下拍摄时,所得图像的局部区域,特别是高反差区域(亮暗对比反差很大的图像区域,比如天空、灯管与物体相接的边缘)会比较容易观察到紫边,解决图…

Swift 性能相关

起初的疑问源自于「在 Swift 中的, Struct:Protocol 比 抽象类 好在哪里?」。但是找来找去都是 Swift 性能相关的东西。整理了点笔记,供大家可以参考一下。 一些疑问 在正题开始之前,不知道你是否有如下的疑问: 为什么说 Swift 相…

HTTPS 路径配置

1: 首先安装 fiddlercertmaker.exe 文件2:Tools -> HTTPS 3: Connections 勾中Allow remote computer to connect转载于:https://www.cnblogs.com/eason-d/p/7492177.html

CMOS图像传感器——相位对焦

之前介绍了许多自动对焦的方案 自动对焦方法学习_沧海一升的博客-CSDN博客自动对焦的各类方法学习介绍https://blog.csdn.net/qq_21842097/article/details/121373263 在里面提到了遮蔽像素相位检测法,原理上算是相位检测法(Phase Detection Auto Focus,PDAF)的一种。…

Spring Cloud Config 和Spring Cloud Bus实现配置中心

2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud是很多组件的集合,Spring将常用的技术框架进行包装和整合,如mybatis zookeeper rabbitmq redis等等,还有一些科技公司贡献出来的一些经过生产环境验证的组件如奈飞公司贡献…

CMOS图像传感器——闪烁(flicker)现象

一、概述 闪烁(Flicker),通常发生在室内场景,曝光时间设置如果不是光源能量周期的整数倍,则图像不同位置处积累的信号强度不同,并呈周期性变化,这是单帧图像的情况。在视频序列上,如果满足一定条件,视频会出现条纹模式在垂直方向上缓慢移动。 二、形成原因 1、光源 …

CMOS图像传感器——图像传感器噪声

图像传感器噪声取决于图像传感器的制作工艺、内部结构及内部补偿技术等原因,噪声反应了图像传感器的内部特性。CMOS图像传感器基本原理见: CMOS图像传感——概述_沧海一升的博客-CSDN博客_cmos图像传感器CMOS图像传感器基本介绍https://blog.csdn.net/qq_21842097/article/d…

TI Davinci DM6441嵌入式Linux移植攻略——UBL移植篇

目录(?)[] 一DM6441的Boot过程简介二DM6441的UBL移植 CCS文件夹Common文件夹GNU文件夹 移植DDR2移植Nand Flash其它 声明:本文参考网友zjb_integrated的文章《TI Davinci DM6446开发攻略——UBL移植》和《DAVINCI DM365-DM368开发攻略——U-BOOT-2010.12及UBL的移…

python接口自动化测试(二)-requests.get()

环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括: requests常用请求方法使用,包括:get,postrequests库中的Session、Cookie的使用其它高级部分:认证、代理、证书验证、超时…