快速上手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.pswp.cn/news/253494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253494.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253494.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NAND FLASH ECC

NAND需要ECC以確保數據完整性。NAND閃存的每一個頁面上都包括額外的存儲空間,它就是64個字節的空閑區(每512字節的扇區有16字節)。該區能存儲ECC代碼及其它像磨損評級或邏輯到物理塊映射之類的信息。ECC能在硬件或軟件中執行,但是,硬件執行有…

快速上手SpyGlass——CDC檢查

隨著技術的發展,數字電路的集成度越來越高,設計也越來越復雜。很少有系統會只工作在同一個時鐘頻率。一個系統中往往會存在多個時鐘,這些時鐘之間有可能是同步的,也有可能是異步的。如果一個系統中,異步時鐘之間存在信…

laravel session redis 設置

Laravel 在使用 Redis 作為 Session 驅動之前, 需要通過 Composer 安裝 predis/predis 擴展包 (~1.0)。 當然也可以用原生自帶的,具體使用見 https://laravel-china.org/docs/laravel/5.6/redis/1402#phpredis 操作即可。 然后在database 配置文件中配置…

數字后端——低功耗單元庫

在之前的文章中,介紹了低功耗設計物理實施的方案: 數字后端——低功耗設計物理實施_滄海一升的博客-CSDN博客_低功耗設計低功耗設計方案所涉及到的物理實施相關內容https://blog.csdn.net/qq_21842097/article/details/119918312 為了實現例如門…

【CUDA開發】CUDA面內存拷貝用法總結

【CUDA開發】CUDA面內存拷貝用法總結 標簽(空格分隔): 【CUDA開發】 主要是在調試CUDA硬解碼并用D3D9或者D3D11顯示的時候遇到了一些代碼,如下所示: CUdeviceptr g_pRgba 0; CUDA_MEMCPY2D memcpy2D { 0 }; memcp…

PerfMon常用計數器

摘要: 故事來源于《sql server2012 深入解析和性能分析》 1.重要的PerfMon CPU計數器 計數器查看內容發生問題的條件Processor%Processor TimeCPU為生產環境的請求提供服務消耗的時間占總CPU時間的百分比>80%Processor%Privilege Time  CPU為內核模式請求提供服務消耗的時…

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,但是安裝完成后,時間和當前外部的時間不一致,如下圖 圖一 圖二 圖三 后經搜索發現,由于未開…

關于Nand ECC 錯誤

Nand flash ECC數據錯誤怎么辦? 我編譯過kernel 當時選了ECC校驗 啟動以后報錯 去掉了,就不報錯了 所以我會先考慮是不是這個問題 一般來說,硬件ECC校驗出錯可能性比較小吧? 我啥也不懂 -----摘自網絡經典文章:“LINU…

低功耗設計——功耗估算

根據在功耗分析的過程中是否有輸入向量的提供,功耗估算方法可以分為仿真的方法(Simulative)和非仿真的方法(Non-simulative): 仿真的方法是根據用戶所提供的大量輸入向量來對電路進行模擬,利用…

uboot 與系統內核中 MTD分區的關系

分類: Nand 驅動 2011-11-06 23:48 705人閱讀 評論(2) 收藏 舉報 uboot 與系統內核中 MTD分區的關系: 分區只是內核的概念,就是說A~B地址放內核,C~D地址放文件系統,等等。 1:在內核…

Deep Learning(深度學習)學習筆記整理系列三

Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明也參考原文獻。 2)本文僅供學術交流&…

輾轉相除法 求最大公約數和最小公倍數

# include<stdio.h> int main() { int a,b,c,x,y; printf("請輸入兩個正整數&#xff0c;用逗號間隔&#xff1a;"); scanf("%d,%d",&a,&b); xa; yb; if (a<b) { ca; ab;      //要保證 a>b bc; } while (b!0) { ca; ab; bc%b; …

Conformal ECO 流程介紹

之前聽說過一句話&#xff0c;沒有修過ECO的人生是不完整的。最近就給我整得再次完整了。。。。。。 最近趕項目&#xff0c;RTL freeze之后&#xff0c;后仿發現出了bug&#xff08;還好攔下來了&#xff0c;不然頭更大&#xff09;&#xff0c;于是做了一次function ECO&…

最新天貓面試題(含總結):線程池+并發編程+分布式設計+中間件

最新天貓面試題&#xff08;含總結&#xff09;&#xff1a;線程池并發編程分布式設計中間件https://my.oschina.net/u/3892...

關于NAND flash的MTD分區與uboot中分區的理解 .

今天做內核移植&#xff0c;準備添加NAND flash的驅動&#xff0c;做到MTD分區時&#xff0c;想起在一本書上看到的一句話&#xff0c;說的是分區時每個區之間沒有間隙&#xff0c;前一個區的結束地址是后一個區的起始地址。可是當我看我的開發板的教程時&#xff0c;分區如下&…

Zabbix discoverer processes more than 75% busy

原文發表于cu&#xff1a;2016-06-22 Zabbix discoverer processes more than 75% busy原因及處理。 一&#xff0e;現象 配置了discovery任務后&#xff0c;zabbix dashboard 告警如下&#xff1a; Zabbix discoverer processes more than 75% busy 二&#xff0e;原因 1. 配置…