Verdi 基礎教程

一、Verdi 功能

  • 查看設計
  • debug
  • Verdi不能自己產生波形

二、Verdi使用流程

1、Verdi環境配置

.bashrc中配置

export Verdi_HOME=$Synopsys_Dir/Verdi2015
#export NOVAS_HOME=$Synopsys_Dir/Verdi2015
export PATH=$Verdi_HOME/bin:$PATH
export LD_LIBRARY_PATH="/opt/Synopsys/Verdi2015/share/PLI/lib/linux64"$PATH
export LD_LIBRARY_PATH="/opt/Synopsys/Verdi2015/share/PLI/VCS/linux64"$PATH
//設置為verdi的安裝目錄

2、VCS產生Verdi波形

·tb文件中加入相應的系統函數

initial begin
$fsdbDumpfile("fifo.fsdb");
$fsdbDumpvars(0);
end

·makefile中加入相應的選項

#************parameter input*************#※prepare the source list file and then make add the soucefile name#for example ,the Verilog source file's name is vlog_list.f then :make norsim src_list=file_list src_list = simsimv_name = simv vpdpluse_name = vcdpluse cov_file_name = coverage vdb_name = $(simv_name)#************constant command************ #compile
NOR_VCS = vcs -full64 -sverilog +v2k -timescale=1ns/1ns??????????? \
-debug_all                                        ?????????????????\?????????????  
+notimingcheck???????????????????????????????????                  \
+nospecify???????????????????????????????????????                  \
+vcs+flush+all???????????????????????????????????                  \
-o $(simv_name)??                                                  \ 
-l compile.log?                                                    \
-f $(src_list).f#coverage compile switch
COV_SW = -cm line+cond+fsm+branch+tgl#verdi dump wave compile option
VERDI_SW = -P /opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/novas.tab \
/opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/pli.a#run option
RUN_GUI = -R -gui -l run.log
RUN_VPD = -R +vpdfile+$(vpdpluse_name).vpd -l run.logRUN_COV = -R $(COV_SW) -cm_name $(vdb_name) -cm_dir ./$(cov_file_name) -l run.log RUN_VER = -R +fsdb+autoflush -l run.log#************command***********************
#normally sim
norsim:
$(NOR_VCS) $(RUN_GUI)#post-process
postsim:
$(NOR_VCS) $(RUN_VPD) dve -vpd $(vpdpluse_name).vpd#coverage
covsim:
$(NOR_VCS) $(COV_SW) $(RUN_COV) dve -covdir $(cov_file_name).vdb#verdi
versim:
$(NOR_VCS) $(VERDI_SW) $(RUN_VER) verdi -sv -f $(src_list).f -ssf *.fsdb -nologo#rm
clr:
rm -rf *csrc ./*.daidir $(simv_name) *simv* DVE* ucli* *.vpd *.vdb *.log *.fsdb *novas* *.dat *Log *rc *conf

3、Verdi使用

1.打開Verdi

  1. verdi -nologo
  2. makefile 命令

2.nTrace使用

  • 查看包含的設計架構

  • 查尋模塊實例化的位置

①在設計結構中雙擊實例化模塊的名字->源代碼窗口高亮了模塊名
②再雙擊高亮的模塊名->看到在上層模塊中的哪一行被調用了

  • 在nTrace中查找模塊和信號
  • 查尋字符串

  • 查看驅動信號相關

? ??? ? ?

3.nSchema使用

  • 查看原理圖

  • 顯示原理圖各信號名

RTL級

  • 在當前的層次中查找某個信號

  • 使用Fan-In Cone追蹤某個信號的驅動邏輯

①首先要用上面的辦法來查找信號
②調用該工具:

  • 產生partial hierarchy schematic

用來查看與選擇特定信號有關的邏輯/模塊
①選擇需要查看的信號(可以通過shift鍵來選擇多個信號)

4.nState使用

  • 查看狀態機視圖?

  • 查看狀態的執行語句和轉移條件

  • 查看某個狀態的執行次數

5.nWare使用

  • 添加波形到nWave

①我們要打開.v文件
②打開nWave然后打開.fsdb波形文件

③正式添加波形:
-快捷鍵G或者:

-在nTrace中選中信號后,鼠標中鍵拖拽,或者ctrl+w進行添加

  • 查找某信號,添加到nWave中

①通過nTrave查找到該信號

②通過上面的方法進行添加

或者通過get signal來查找

  • 給Group重命名,排序,以及調整信號位置

(1)重命名:

?

(2)信號的拖拽:

通過鼠標中鍵進行拖拽。

(3)縮小:

快捷鍵z,或者100%匹配:F

(4)放大:

左鍵拖選放大范圍

shift+Z

ctrl+滑輪:進行放大或者縮小

(5)移動:

鼠標中鍵按住信號拖拽中鍵選擇位置:

?

(6)復制:

ctrl+P,或者右擊信號,選擇復制的選項

(7)粘貼:

ins鍵,或者右擊信號,選擇粘貼的選項

(注意:可以通過鼠標中鍵選擇粘貼的位置)

(8)刪除:

delete鍵

  • 改變信號的顏色:

第一步:Tools->preferences->waveform->viewoption->waveformpane->general->paint waveform with specified color/pattern

?

第二步:選中信號,然后按快捷鍵C改變信號顏色:

  • 查看信號及變化:

任意值:所有信號變化,一般會應用到組合邏輯的指示信號信號沿:用于查找有效指示信號,比如使能信號

總線值:主要是用來查找數據信號

模擬值:查看比如函數發生器產生的正弦波信號

進制之間的轉換:

符號數之間的轉換:

狀態寄存器顯示為狀態名字:

nTrace:

或者nWave:

可以通過移除關聯從狀態機名字恢復到原來的進制顯示:

可以看到,我們打開過狀態機視圖之后,我們也就可以在狀態名和進制之間轉換了:

  • 如何通過邏輯操作創建新信號?

  • 如何添加marker?

shift+M

  • 總線操作:

  • 如何查找信號的某個值、某個值跳轉到某個值?

? ??

  • 如何對比兩個波形?

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

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

相關文章

ida和idr機制分析(盤符分配機制)

內核ida和idr機制分析(盤符分配機制) ida和idr的機制在我個人看來,是內核管理整數資源的一種方法。在內核中,許多地方都用到了該結構(例如class的id,disk的id),更直觀的說&#xff0…

MIPI CSI-2學習

CSI(Camera Serial Interface)定義了攝像頭外設與主機控制器之間的接口,旨在確定攝像頭與主機控制器在移動應用中的標準。 關鍵詞描述 縮寫解釋CCICamera Control Interface(物理層組件,通常使用I2C或I3C進行通信&…

internet網絡 checksum校驗和計算方法

http://hi.baidu.com/%CE%C4%B3%AD%B9%AB/blog/item/7d9a4e08f82d72b32eddd4cb.html

最有效的創建大數據模型的6個技巧

數據建模是一門復雜的科學,涉及組織企業的數據以適應業務流程的需求。它需要設計邏輯關系,以便數據可以相互關聯,并支持業務。然后將邏輯設計轉換成物理模型,該物理模型由存儲數據的存儲設備、數據庫和文件組成。 歷史上&#xff…

【轉】Castle Windsor之組件注冊

【轉】Castle Windsor之組件注冊 注冊方式較多&#xff0c;大體有這么幾種&#xff0c;學習得比較粗淺&#xff0c;先記錄&#xff1a;1、逐個注冊組件即對每個接口通過代碼指定其實現類&#xff0c;代碼&#xff1a;container.Register(Component.For<IMyService>() //接…

Verilog 補碼加法溢出判斷及處理

補碼加法運算溢出判斷三種方法&#xff1a; 一、符號位判斷 Xf、Yf分別兩個數的符號位,Zf為運算結果符號位。 當Xf Yf 0&#xff08;兩數同為正&#xff09;,而Zf1(結果為負)時,負溢出&#xff1b;當出現Xf Yf 1&#xff08;兩數同為負&#xff09;,而Zf0&#xff08;結果為…

Android繪制(三):Path結合屬性動畫, 讓圖標動起來!

Android繪制(一):來用shape繪出想要的圖形吧! Android繪制(二):來用Path繪出想要的圖形吧! 目錄 效果圖前言繪制屬性動畫最后效果圖 不廢話, 直接上效果圖, 感興趣再看下去. 其實不單單是效果圖演示的, 運用熟練的話各種圖標之間都是可以切換的. 前言 之前的文章也說了, path還…

{{view 視圖層}}微信小程序

微信小程序 view 視圖層//自學 1.數據綁定 數據綁定WXML中的動態數據均來自對應Page的data。 簡單綁定數據綁定使用"Mustache"語法&#xff08;雙大括號&#xff09;將變量包起來&#xff0c;可以作用于&#xff1a; 內容<view> {{ message }} </view>Pa…

CMOS圖像傳感器——概述

一、概述 圖像傳感器是把光學圖像信息轉換成電信號的器件。圖像傳感器是隨著電視技術在20世紀30年代發展起來的,早期圖像傳感器技術的最重要貢獻在于建立了掃描(Scan)的概念,用掃描的方法把二維空間平面上的光電信息離散成行(Line)和幀(Frame),然后按空間順序讀出形成…

nand flash壞塊管理OOB,BBT,ECC

0.NAND的操作管理方式 NAND FLASH的管理方式&#xff1a;以三星FLASH為例&#xff0c;一片Nand flash為一個設備(device)&#xff0c;1 (Device) xxxx (Blocks)&#xff0c;1 (Block) xxxx (Pages)&#xff0c;1(Page) 528 (Bytes) 數據塊大小(512Bytes) OOB 塊大小(16Byte…

小白學git2

你已經在本地創建了一個Git倉庫后&#xff0c;又想在GitHub創建一個Git倉庫&#xff0c;并且讓這兩個倉庫進行遠程同步&#xff0c;這樣&#xff0c;GitHub上的倉庫既可以作為備份&#xff0c;又可以讓其他人通過該倉庫來協作&#xff0c;真是一舉多得。 首先&#xff0c;登陸G…

[LeetCode_5] Longest Palindromic Substring

LeetCode: 5. Longest Palindromic Substring class Solution { public: //動態規劃算法string longestPalindrome(string s) {int n s.length();int longestBegin 0;int maxLen 1;bool table[1000][1000] {false};for (int i 0; i < n; i) {table[i][i] true;}//對角…

冒泡排序java

一、最簡單粗暴的排序 思想為&#xff1a;讓每一個關鍵字都和它后邊的每一個關鍵字比較&#xff0c; 如果大則交換&#xff0c;這樣第一個位置的關鍵字在一次循環后一定變為最小值。 1 package demo01;2 3 class BubbleSort01 {4 public static void main(String[] args) {…

CMOS圖像傳感器——工作原理

一、像素陣列結構 一般像素陣列是由水平方向的行( Row ) 和垂直方向的列(Column)正交排列構成的。像素排列的最基本設計原則是:攝像器件像素排列的坐標,必須在顯示的時候能夠準確地還原在圖像原來的相對位置上。在大多數情況下,每個像素中心線在行的方向和列的方向,即…

追尋終極數據庫 - 事務/分析混合處理系統的交付挑戰 (3)

挑戰&#xff1a;支持多個存儲引擎 以下內容并不是新發現&#xff1a;行優化存儲適用于OLTP和運營工作負載&#xff0c;而列存儲適用于BI和分析工作負載。頻繁寫入的工作負載適用于行式存儲。對Hadoop而言&#xff0c;Hbase適合低延遲工作負載&#xff0c;列式ORC文件或Parquet…

hibernate快速入門

第一步:下載Hibernate的開發包:  http://sourceforge.net/projects/hibernate/files/hibernate3 第二步:Hibernate框架目錄結構:  documentation :Hibernate文檔  lib :Hibernate開發jar包    bytecode :操作字節碼jar包.    jpa :Hibernate的實現jpa規范.   …

U-boot給kernel傳參數和kernel讀取參數—struct tag

U-boot 會給 Linux Kernel 傳遞很多參數&#xff0c;如&#xff1a;串口&#xff0c; RAM &#xff0c; videofb 等。 而 Linux kernel 也會讀取和處理這些參數。兩者之間 通過 struct tag 來傳遞參數。 U-boot 把要傳遞給 kernel 的東西保存在 struct tag 數據結構中&#xf…

異步FIFO設計(Verilog)

FIFO&#xff08;First In First Out&#xff09;是異步數據傳輸時經常使用的存儲器。該存儲器的特點是數據先進先出&#xff08;后進后出&#xff09;。其實&#xff0c;多位寬數據的異步傳輸問題&#xff0c;無論是從快時鐘到慢時鐘域&#xff0c;還是從慢時鐘到快時鐘域&…

python中RabbitMQ的使用(路由鍵模糊匹配)

路由鍵模糊匹配 使用正則表達式進行匹配。其中“#”表示所有、全部的意思&#xff1b;“*”只匹配到一個詞。 匹配規則&#xff1a; 路由鍵&#xff1a;routings [ happy.work, happy.life , happy.work.teacher, sad.work, sad.life, sad.work.teacher ] "#"&am…