Spyglass:官方Hands-on Training(一)

相關閱讀

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


????????本文是對Spyglass?Hands-on Training中第一個實驗的翻譯(有刪改),Lab文件可以從以下鏈接獲取。Spyglass Hands-on Traininghttps://download.csdn.net/download/qq_43699362/85585058?ops_request_misc=%257B%2522request%255Fid%2522%253A%25225fb1922ab549e363d5c551d14bebd31a%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fdownload.%2522%257D&request_id=5fb1922ab549e363d5c551d14bebd31a&biz_id=1&utm_medium=distribute.pc_search_result.none-task-download-2~download~first_rank_ecpm_v1~rank_v31_ecpm-30-85585058-null-null.269^v2^control&utm_term=Spyglass%20Get%20Start&spm=1018.2226.3001.4451.31


? ? ? ? 本教程提供了在多個設計階段中運行SpyGlass的操作指導,旨在通過實操獲得對SpyGlass設置及其結果調試/分析的深入理解,涵蓋多個動手練習,每個練習之間是相互依賴的,需要按順序完成。

實驗概述

????????圖1展示了實驗使用設計的模塊框圖。該設計包含一個USB控制器和一個音頻解碼器核心(IMA_ADPCM),使用Wishbone總線協議,這些模塊通過Wishbone總線矩陣(WB_Connmax)相互連接,然后再通過Wishbone-to-AHB橋接模塊(wb2ahb)連接至AMBA AHB總線。順帶一提,該設計是一個混合語言RTL設計,即同時使用Verilog和VHDL。

圖1 設計框圖

實驗目錄的內容

????????教程目錄包含以下子目錄:

  • rtl:與設計相關的RTL文件
  • spyglass:實驗的工作目錄,所有SpyGlass的運行將在該目錄下進行
  • doc:包含實驗文檔(即本手冊)
  • tools:實驗中會使用到的其他腳本

實驗一、Spyglass概述

? ? ? ? 實驗一的目標是快速開始使用SpyGlass,在其中運行分析并查看結果。由于該案例將用于后續的多個實驗,建議將實驗一創建的項目文件保存以供以后使用。

????????實驗一中,為了簡便使用圖形用戶界面(GUI)創建一個項目文件作為起點,之后的實驗將繼續使用該項目文件以批處理方式(Batch)進行操作。

將設計讀入SpyGlass

1、進入名為spyglass的目錄。

% cd Training_labs/spyglass

2、使用以下命令啟動SpyGlass圖形界面(SpyGlass Explorer):

% spyglass

? ? ? ? 由于Spyglass是Synopsys收購自Atrenta,最初使用的GUI是Atrenta Console,但目前已經被新的SpyGlass Explorer替代,不再進行任何更新。感興趣的讀者可以通過添加-gui=console選項啟動Atrenta Console。

3、此時你將看到以下的主界面窗口:

圖1?SpyGlass Explorer

4、點擊窗口左欄的Add File(s),打開名為Add File(s)的窗口,在該窗口中添加以下來自rtl目錄的兩個RTL文件,如圖2所示。

rtl/ahb2wb.v  
rtl/wb_subsystem.v

圖2?Add File(s)窗口

5、接著點擊窗口左欄的Set Options,然后設置頂層設計模塊為"wb_subsystem",如圖3所示。

圖3 設置頂層模塊

6、現在選擇Design Setup階段下的Read Design,勾選Synthesize Netlist選項框并點擊Run Design Read以啟動設計讀取(這其實是啟動了一個名為Design_Read的目標)。一旦運行完成,就可以查看SpyGlass報告的設計讀取錯誤,如圖4所示。

圖4?Design_Read的結果

? ? ? ? 注意圖4在Violations窗口選擇Group By Severity,可以看出有三個來自ErrorAnalyzeBBox規則的錯誤,SpyGlass沒有找到這些模塊的定義,因此將其標記為黑盒(black box)。

? ? ? ? 左邊的實例窗口(Instances)使用不同顏色的文件形狀標記狀態:

  • 黃色:已綜合的最底層實例。
  • 黑色:黑盒實例。
  • 綠色:未綜合的最底層實例。

使用SpyGlass進行分析

1、選擇Goal Setup階段,并點擊lint_rtl目標,使其綠色高亮,所選目標的用途可以在右邊的Help窗口中查看,用于檢查設計中的基本連接性問題,例如輸入懸空、位寬不匹配等,如圖5所示。為了簡便,實驗一只勾選這一個目標,如果有多個目標被勾選,它們將會順序執行(順帶一提,lint_rtl目標是來自/Guideware/latest/block/rtl_handoff方法的lint子方法,Guideware是Spyglass提供的一些預設的檢查參考)。

圖5 選擇目標

2、點擊Run Goal(s),一旦運行完成,工具將自動跳轉至Analyze Results階段,還是在Violations窗口選擇Group By Severity,可以看出除了之前的三個來自ErrorAnalyzeBBox規則的錯誤,多了三個InferLatch規則的錯誤,雙擊選中第一個規則,相關的RTL代碼行將在上方的HDL查看器中被紅色高亮顯示,如圖6所示。

圖6?Lint的結果

? ? ? ? 可以看出RTL代碼中包含了不完整的if語句,這確實是導致Latch產生的原因,同時注意到三個InferLatch規則的左邊有NAND門符號,這代表可以查看用于調試的原理圖。可以使用快捷鍵I或者點擊Violations窗口上的符號查看原理圖,如圖7所示。

圖7 原理圖

? ? ? ? 可以看出hready信號綜合成了一個鎖存器,如果設計意圖就是需要hready信號相對于選通信號stb_o被鎖存,那么可以該規則進行豁免(waive);如果確實需要修復該問題,可以點擊RTL代碼行,并按下鍵盤上的快捷鍵e(或右鍵選擇Open Editor選項),Spyglass會使用默認文本編輯器(Vim)打開RTL文件并將光標定位到該行,如果想更改默認文本編輯器,可以看下面的博客。

Spyglass:更改默認編輯器https://chenzhang.blog.csdn.net/article/details/143947206

3、保存項目文件,點擊File選項欄下的Save Project,然后輸入wb_subsystem作為文件名),并退出。

4、使用文本編輯器打開項目文件wb_subsystem.prj,如下所示。

#!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_vW-2024.09-SP1
#  Last Updated On Wed Apr 30 17:35:59 2025
#
#  -------------------------------------------------------------------##Data Import Sectionread_file -type verilog ../rtl/ahb2wb.v
#BackRefFile:/home/zhangchen/Training_labs/spyglass/wb_subsystem.prj #LineNumber:13
read_file -type verilog ../rtl/wb_subsystem.v
#BackRefFile:/home/zhangchen/Training_labs/spyglass/wb_subsystem.prj #LineNumber:15##Common Options Sectionset_option projectwdir .
set_option language_mode mixed
set_option designread_enable_synthesis yes
set_option designread_disable_flatten no
set_option top wb_subsystem
set_option active_methodology $SPYGLASS_HOME/GuideWare/latest/block/rtl_handoff##Goal Setup Sectioncurrent_methodology $SPYGLASS_HOME/GuideWare/latest/block/rtl_handoff

? ? ? ? 可以看出,其中的Data Import Section包括了一些文件讀取的命令,而Common Options Section包括了工作目錄、語言模式、頂層設計和方法的設置。在實驗二中,需要繼續向項目文件中添加額外的命令和選項。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81157.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81157.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81157.shtml

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

相關文章

PCB設計工藝規范(三)走線要求

走線要求 1.走線要求2.固定孔、安裝孔、過孔要求3.基準點要求4.絲印要求 1.走線要求 印制板距板邊距離:V-CUT 邊大于 0.75mm,銑槽邊大于0.3mm。為了保證 PCB 加工時不出現露銅的缺陷,要求所有的走線及銅箔距離板邊:V-CUT邊大于 0.75mm,銑槽邊…

抓取工具Charles配置教程(mac電腦+ios手機)

mac電腦上的配置 1. 下載最新版本的Charles 2. 按照以下截圖進行配置 2.1 端口號配置: 2.2 https配置 3. mac端證書配置 4. IOS手機端網絡配置 4.1 先查看電腦上的配置 4.2 配置手機網絡 連接和電腦同一個wifi,然后按照以下截圖進行配置 5. 手機端證書…

【CSS】精通Flex布局(全)

目錄 1. flex布局體驗 1.1 傳統布局 與 flex布局 1.2 初體驗 2. flex布局原理 2.1 布局原理 3. flex布局父項常見屬性 3.1 常見父項屬性 3.2 屬性值 3.3 justify-content 設置主軸上的子元素排列方式 3.4 flex-wrap設置子元素是否換行 3.5 align-items 設置側軸上的…

力扣第447場周賽

這次終于趕上力扣的周賽了, 賽時成績如下(依舊還是三題 ): 1. 統計被覆蓋的建筑 給你一個正整數 n,表示一個 n x n 的城市,同時給定一個二維數組 buildings,其中 buildings[i] [x, y] 表示位于坐標 [x, y] 的一個 唯一 建筑。 如…

AI中常用概念的理解

1. RAG(檢索增強生成) 通俗理解:就像你寫作業時,先查課本 / 百度找資料,再根據資料寫答案,而不是純靠記憶瞎編。 AI 模型(比如 ChatGPT)回答問題時,先去 “數據庫 / 互聯…

SQLServer多版本兼容Java方案和數據采集

Maven引入 <dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>sqljdbc4</artifactId><version>4.0</version></dependency><dependency><groupId>net.sourceforge.jtds</groupId><ar…

【每日八股】復習 Redis Day4:線程模型

文章目錄 復習 Redis Day4&#xff1a;線程模型介紹一下 Redis 的線程模型核心線程模型&#xff08;Redis 6.0 之前&#xff09;Redis 6.0 的多線程改進Redis 真的是單線程嗎&#xff1f;Redis 的線程模型剖析 上一篇 Redis 的應用我今天才完成&#xff0c;因此明天一并復習 Re…

樹莓派智能攝像頭實戰指南:基于TensorFlow Lite的端到端AI部署

引言&#xff1a;嵌入式AI的革新力量 在物聯網與人工智能深度融合的今天&#xff0c;樹莓派這一信用卡大小的計算機正在成為邊緣計算的核心載體。本文將手把手教你打造一款基于TensorFlow Lite的低功耗智能監控設備&#xff0c;通過MobileNetV2模型實現實時物體檢測&#xff0…

vs2019編譯occ7.9.0時,出現fatal error C1060: compiler is out of heap space

問題描述 visual studio 2019編譯opencascade 7.9.0時&#xff0c;出現編譯錯誤 fatal error C1060: compiler is out of heap space 解決方案 修改vs2019并行編譯的線程個數&#xff0c;默認是12個&#xff0c;我改成了4個&#xff0c;問題解決 Tools > Project and Sol…

vue跨域問題總結筆記

目錄 一、Websocket跨域問題 1.nginx配置 2.VUE CLI代理 3.env.development配置 4.nginx日志 5.解決 一、解決跨域的幾種常用方法 1.Vue CLI代理 2.JSONP 3.WebSocket 4.NGINX解決跨域問題 6.Java解決跨域 二、Vue跨域問題詳解 1. 什么是跨域 2. 跨域的例子 3.…

數據結構篇:線性表的另一表達—鏈表之單鏈表(下篇)

目錄 1.前言 2.是否使用二級指針 3.插入/刪除 3.1 pos位置前/后插入 3.2 查找函數 3.3 pos位置刪除 3.4 pos位置后面刪除 3.5 函數的銷毀 4.斷言問題 4.1 斷言pphead 4.2 斷言*pphead 5.三個文件的代碼 5.1 頭文件 5.2 具體函數實現 5.3 測試用例 1.前言 之前是講…

完美解決react-native文件直傳阿里云oss問題一

前言 通常情況下&#xff0c;作為前后端分離的項目來說&#xff0c;文件上傳是最尋常的功能之一。雖然每個公司選擇的文件管理云庫各不相同&#xff0c;但實現思路基本一致。我所在公司使用阿里云oss文件管理&#xff0c;之前服務端做了透傳&#xff0c;但是由于每個測試環境的…

5.運輸層

5. 運輸層 1. 概述 第2~4章依次介紹了計算機網絡體系結構中的物理層、數據鏈路層和網絡層&#xff0c;它們共同解決了將主機通過異構網絡互聯起來所面臨的問題&#xff0c;實現了主機到主機的通信然而在計算機網絡中實際進行通信的真正實體&#xff0c;是位于通信兩端主機中的…

告別手動時代!物聯網軟件開發讓萬物自動互聯

清晨&#xff0c;智能窗簾隨著陽光自動拉開&#xff1b;運動時&#xff0c;手表精準記錄著健康數據&#xff1b;回到家&#xff0c;室溫早已調節至最舒適狀態...這些場景的實現&#xff0c;都離不開物聯網軟件開發的技術支撐。在智能家居軟件開發、智能穿戴軟件開發、醫療器械軟…

Fiori學習專題十二:Shell Control as Container

為了讓我們的app更加適應不同的設備&#xff0c;這節課我們引入shell控件作為根元素 1.修改App.view.xml&#xff0c;加入Shell控件 <mvc:ViewcontrollerName"ui5.walkthrough.controller.App"xmlns"sap.m"xmlns:mvc"sap.ui.core.mvc"displa…

AI 與高性能計算的深度融合:開啟科技新紀元

在當今科技迅猛發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;與高性能計算&#xff08;HPC&#xff09;正以前所未有的態勢深度融合&#xff0c;這種融合宛如一場強大的風暴&#xff0c;席卷并重塑著眾多領域的格局。從科學研究的突破到商業應用的革新&#xff0c…

「Unity3D」TextMeshPro使用TMP_InputField實現,輸入框高度自動擴展與收縮

先看實現效果&#xff1a; 要實現這個效果&#xff0c;有三個方面的問題需要解決&#xff1a; 第一&#xff0c;輸入框的高度擴展&#xff0c;內部子元素會隨著錨點&#xff0c;拉伸變形——要解決這個問題&#xff0c;需要將內部元素改變父類&#xff0c;然后增加父類高度&am…

多模態大語言模型arxiv論文略讀(四十七)

AdaShield: Safeguarding Multimodal Large Language Models from Structure-based Attack via Adaptive Shield Prompting ?? 論文標題&#xff1a;AdaShield: Safeguarding Multimodal Large Language Models from Structure-based Attack via Adaptive Shield Prompting …

美的人形機器人即將投入實際應用

國內家電巨頭美的集團近日公布了其自主研發的人形機器人的具體落地計劃。根據公司披露的信息&#xff0c;這款機器人將于5月在湖北荊州的洗衣機工廠率先投入使用&#xff0c;承擔設備運維、質量檢測和物料搬運等工作任務。預計今年下半年&#xff0c;該機器人還將進入美的線下門…

從零開始搭建你的個人博客:使用 GitHub Pages 免費部署靜態網站

&#x1f310; 從零開始搭建你的個人博客&#xff1a;使用 GitHub Pages 免費部署靜態網站 在互聯網時代&#xff0c;擁有一個屬于自己的網站不僅是一種展示方式&#xff0c;更是一種技術能力的體現。今天我們將一步步學習如何通過 GitHub Pages 搭建一個免費的個人博客或簡歷…