【Verdi实用技巧-Part2】

Verdi实用技巧-Part2

  • 2 Verdi实用技巧-Part2
    • 2.1 Dump波形常用的task
      • 2.1.1 Frequently Used Dump Tasks
      • 2.1.2 Demo
    • 2.2 提取波形信息小工具--FSDB Utilities
    • 2.3 Debug in Source code view
      • 2.3.1 Find Scopes By Find Scope form
    • 2.3.2 Go to line in Souce code View
      • 2.3.3 Use Bookmarks for Source Code
      • 2.3.4 Identify False Logic
      • 2.3.5 Source Code Folding
    • 2.4 反标宏--Annotate Macro
    • 2.5 Verdi UVM debug Advanced Tech
      • 2.5.1 Trace this value
      • 2.5.2 Trace X
      • 2.5.3 Auto Trace

【博客首发于微信公众号《漫谈芯片与编程》,欢迎专注一下,多谢大家】

本篇文章继续介绍Verdi的实用技巧;

2 Verdi实用技巧-Part2

2.1 Dump波形常用的task

FSDB: Fast Signal Data Base(就是快速的波形文件): The FSDB stores the simulation results in an effcient and compact format foramt;
使用system tasks对verilog/VHDL设计文件来dump values into FSDB during simulation.
在这里插入图片描述

2.1.1 Frequently Used Dump Tasks

  • $fsdbDumpfile:Specify FSDB File Name and limit the FSDB file size; 用来设置名字和限制FSDB文件大小;
----$fsdbDumpfile("chip.fsdb");
----$fsdbDumpfile("chip.fsdb",1000);
  • $fsdbDumpSVA: Dump SVA results into FSDB;
----$fsdbDumpSVA;
----$fsdbDumpSVA(1,system.arbiter);
----$fsdbDumpSVA(system.arbiter,"+fsdbfile=SVA.fsdb");
  • $fsdbDumpVars: Dump signal value changes of specified Instances and depth;
----$fsdbDumpvars;
----$fsdbDumpvars("+fsdbfile+my.fsdb");
----$fsdbDumpvars(0,system.i_cpu);
----$fsdbDumpvars(0,system,"+fsdbfile+novas.fsdb");
  • fsdbDumpon–$fsdbDumpoff --Turn on/off FSDB dumping;
    $ $fsdbAutoSwitchDumpfile–Limit FSDB file size and switch dumping to new FSDB file;
    ----option + no_overwrite: stop dumping into the file when the file number hits the restriction.
----$fsdbDumpoff("+fsdbfile+rtl.fsdb");
----#5us;
----$fsdbDumpon("+fsdbfile+rtl.fsdb");
  • $fsdbSuppress -suppress unwanted signals or scopes during dump;
    ----must be specified before f s d b D u m p v a r s , fsdbDumpvars, fsdbDumpvars,fsdbDumpvarsByFile,$fsdbDumpMDA;Otherwise $fsdbSuppress will not work.
--$fsdbSuppress(instance[,instance]*);	//instance means scope or signal
--$fsdbSuppress("suppress_file");
--$fsdbSuppress("file=",file_name|file_var);
--$fsdbSuppress("module_file=",module_file_name|module_file_var);
  • $fsdbAutoSwitchDumpfile: limit the fsdb file size and switch dumping to new FSDB file automatically.
    ---- option +no_overwrite: stop dumping into the file when the file number hits the restriction.
--$fsdbAutoSwitchDumpfile(200,"my.fsdb",10); # automatically switch to a new dump file when the working FSDB size reaches 200MB;Totally keep 10 fies;
--$fsdbAutoSwtichDumpfile(1000,aaa,10,"+no_overwrite");
----FSDB file are:
-- aaa_000.fsdb
-- aaa_001.fsdb
-- aaa_002.fsdb
-- ...fsdb
-- aaa_009.fsdb

----Stop dumping;

2.1.2 Demo

写一个Dump tasks 的Demo.

initial begin
	$fsdbSuppress(system.i_pram);
	$fsdbDumpvars;
	$fsdbDumpvars(0,system.i_cpu.i_ALUB,"+fsdbfile+My.fsdb");
	#5000
	$fsdbDumpoff("+fsdbfile+my.fsdb");
	#2000
	$fsdbDumpon("+fsdbfile+my.fsdb");
	#5500
	$finish;
end

//--$VERDI_HOME/demo/verilog/rtl/system.v

2.2 提取波形信息小工具–FSDB Utilities

  • fsdbdebug: dump the FSDB info and generate a log file for debugging;
  • vcd2fsdb: convert VCD into FSDB;
  • fsdb2vcd: convert FSDB into VCD;
  • vfast: convert Verilog,Spice,xp,rawfile,wfm, and VCD files to FSDB files;
  • fsdbextract: extract signals,scopes,time periods from existed FSDB without re-simulatiing.
  • fsdbreport: generate a report of value of value changes for specified signals.
  • fsdbedit: modify scope hireachies in the FSDB file.

#使用 utility -h # for a list of all options or $VERDI_HOME/doc/verdi.pdf

Demo:

fsdbdebug novars.fsdb -info

在这里插入图片描述

2.3 Debug in Source code view

nTrace User Interface: The nTraceMain window is a souce code viewer and analyzer that operates on KDB to display the design hierarchy,signals and source code(Verilog,VHDL,SV and SystemC) for selected design blocks.

  • Design Browser Pane;
  • Signal List Pane;
  • Source Code View;
  • Message Pane;

2.3.1 Find Scopes By Find Scope form

To search for instances by Module name; Source–>Find Scope to open the form.
在这里插入图片描述

2.3.2 Go to line in Souce code View

  • HotKey:G–>go te line;
  • Go to 1st Executable command;
    在这里插入图片描述

2.3.3 Use Bookmarks for Source Code

直接使用快捷键:

  • 设置BookMark: ctrl+F2;
  • Previous BookMark: Shift+F2;
  • Next BookMark: F2;

2.3.4 Identify False Logic

Turn on the View–>Identify False Logic toggle in nTrace.non-active logics will be grayed out in Source Code View.

2.3.5 Source Code Folding

Source code folding make it easier to understand and view complex designs.

在这里插入图片描述

2.4 反标宏–Annotate Macro

When debugging designs that contain `define macros, it is often helpful to view a macro defination in the context of a macro reference.

  • show tip when moving the cursor over a macro.
  • Source -> Expand Macro(M key)to show macro info.

2.5 Verdi UVM debug Advanced Tech

  • Highlight for the whole Verdi:selecte signals in any window. invoke RMB–>Highlight command.the color will be appied to any window.
  • View Signal Values on SouceCode window. Source–>Active Annotation(X keys).
  • Add to waveform : Drap and Drop the signal.
  • 开启多线程启动Verdi
setenv FFR_MT_THREAD_COUNT 2
lscpu # for view the cpu core.

2.5.1 Trace this value

  • trace Drives and Loads:这个是最经常用的,这就不用多说;debug的入门基本功;
  • Temporal Flow View: select a signal in source code pane,click the “create Temporal Flow View”; one command for the root cause.
    在这里插入图片描述

trace this value to locate the cause of a specific value.

在这里插入图片描述

2.5.2 Trace X

right-click–>trace x;

2.5.3 Auto Trace

在这里插入图片描述

use Verdi for tracing signals.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web-前端小实验4

实现以上图片中的内容 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用户注册</title&…

NLP项目实战——基于Bert模型的多情感评论分类(附数据集和源码)

在当今数字化的时代&#xff0c;分析用户评论中的情感倾向对于了解产品、服务的口碑等方面有着重要意义。而基于强大的预训练语言模型如 Bert 来进行评论情感分析&#xff0c;能够取得较好的效果。 在本次项目中&#xff0c;我们将展示如何利用 Python 语言结合transformers库&…

TAS测评倍智题库 | 益丰大药房2025年中高层测评BA商业推理测评真题考什么?

您好&#xff01;您已被邀请参加360评估。您的评估与反馈将有助于被评估人更深入地了解个人情况&#xff0c;发现个人优势和潜在风险。请您秉持公正、开放的心态进行评估。请尽快完成评估&#xff0c;在此衷心感谢您的配合与支持&#xff01; ​ 相关事宜&#xff1a; 请您在…

优秀的大模型会不会做坏事?

主要围绕大型语言模型&#xff08;LLMs&#xff09;在特定情境下可能出现的欺骗行为及相关研究展开&#xff0c;具体如下&#xff1a; 研究背景与核心发现&#xff1a;研究发现即使在用户无意激励的情况下&#xff0c;LLMs 也可能说谎&#xff0c;而能使用工具的模型更易被诱导…

fiscoBcos落盘加密介绍

落盘加密 落盘加密是在机构内部进行的&#xff0c;每个机构独立管理自己硬盘数据的安全。内网中&#xff0c;每个节点的硬盘数据是被加密的。所有加密数据的访问权限&#xff0c;通过Key Manager来管理。Key Manager是部署在机构内网内&#xff0c;专门管理节点硬盘数据访问秘…

完全二叉树的删除

&#xff08;1&#xff09;删除叶子节点 找到要删除的节点 targetNode找到要删除节点的父节点parent&#xff08;父节点是否存在&#xff09;要删除的节点是父节点的左子树还是右子树如果是左子树&#xff0c;则parent.leftnull;如果是右子树则parent.rightnull。 &#xff08;…

ModuleNotFoundError: No module named ‘setuptools_rust‘ 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【算法】时间复杂度以及O(N^2)的排序

目录 1.常数时间的操作 2.时间复杂度 2.1.以选择排序为例 2.2.O(n^2)从何而来 2.3.冒泡排序 2.3.1.抑或运算 2.4.插入排序 3.二分法 3.1.局部最小 4.递归 4.1.递归行为时间复杂度的估计 1.常数时间的操作 一个操作如果和样本的数据量无关&#xff0c;每次都是固定时…

uni app 写的 小游戏,文字拼图?文字拼写?不知道叫啥

从下方的偏旁部首中选在1--3个组成上面文章中的文字&#xff0c;完成的文字标红 不喜勿喷 《满江红》 其中用到了两个文件 strdata.json parameters.json 这两个文件太大 放到资源中了 资源文件 <template><view class"wenzi_page_main"><view c…

【杂记】qt

1、终端下载PySide6以转换文件格式&#xff1a;pip install PySide6 -i https://pypi.tuna.tsinghua.edu.cn/simple 命令提示符下载完毕后&#xff1a;powerShell &#xff1a;cd 跳转到文件对应地址 &#xff08;1、pyside6-uic.exe test.ui -o test.py #将Ui界面文件转换成…

宁德时代2025年Verify入职测评语言理解及数字推理真题SHL题库汇总、考情分析

宁德时代社招Verify入职测评对薪酬有着重要影响&#xff0c;其规定正确率达到80%才能顺利通过测评。这体现了公司对人才专业素养与能力的严格要求&#xff0c;旨在筛选出真正符合岗位需求的优秀人才。测评内容涵盖了专业知识、技能运用、逻辑思维等多方面&#xff0c;只有综合能…

Jenkins-持续集成、交付、构建、部署、测试

Jenkins-持续集成、交付、构建、部署、测试 一: Jenkins 介绍1> Jenkins 概念2> Jenkins 目的3> Jenkins 特性4> Jenkins 作用 二&#xff1a;Jenkins 版本三&#xff1a;DevOps流程简述1> 持续集成&#xff08;Continuous Integration&#xff0c;CI&#xff0…

Flink系统知识讲解之:如何识别反压的源头

Flink系统知识之&#xff1a;如何识别反压的源头 什么是反压 Ufuk Celebi 在一篇古老但仍然准确的文章中对此做了很好的解释。如果您不熟悉这个概念&#xff0c;强烈推荐您阅读这篇文章。如果想更深入、更低层次地了解该主题以及 Flink 网络协议栈的工作原理&#xff0c;这里有…

Go学习:多重赋值与匿名变量

1. 变量的多重赋值 1.1 基本语法格式 go语言中&#xff0c;可以将多个赋值语句 合并成 一句&#xff0c;比如&#xff1a; a : 10 b : 20 c : 30//a,b,c三个变量的赋值语句可以简练成以下格式a, b, c : 10, 20, 30 1.2 交换变量值 当需要交换两个变量的值时&#…

ArkUI-应用数据持久化

应用数据持久化&#xff0c;是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象&#xff0c;存储介质上的数据形态可能是文本、数据库、二进制文件等。 HarmonyOS标准系统支持典型的存储数据形态&#xff0c;包括用户…

SOLID原则学习,开闭原则

文章目录 1. 定义2. 开闭原则的详细解释3. 实现开闭原则的方法4. 总结 1. 定义 开闭原则&#xff08;Open-Closed Principle&#xff0c;OCP&#xff09;是面向对象设计中的五大原则&#xff08;SOLID&#xff09;之一&#xff0c;由Bertrand Meyer提出。开闭原则的核心思想是…

西电-算法分析-研究生课程复习笔记

24年秋的应该是张老师最后一次用卷面考试&#xff0c;他说以后这节课的期末考试都是在OJ上刷题了张老师上课还挺有意思的&#xff0c;上完之后能学会独立地思考算法设计问题了。整节课都在强调规模压缩这个概念&#xff0c;考试也是考个人对这些的理解&#xff0c;还挺好玩的哈…

插入实体自增主键太长,mybatis-plaus自增主键

1、问题 spring-boot整合mybtais执行insert语句时&#xff0c;主键id为长文本数据。 2、分析问题 1)数据库主键是否自增 2&#xff09;数据库主键的种子值设置的多少 3、解决问题 1&#xff09;数据库主键设置的时自增 3&#xff09;种子值是1 所以排查是数据库的问题 4、继…

上海亚商投顾:沪指探底回升微涨 机器人概念股午后爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天探底回升&#xff0c;沪指盘中跌超1.6%&#xff0c;创业板指一度跌逾3%&#xff0c;午后集体拉升翻红…

基于深度学习算法的AI图像视觉检测

基于人工智能和深度学习方法的现代计算机视觉技术在过去10年里取得了显著进展。如今&#xff0c;它被广泛用于图像分类、人脸识别、图像中物体的识别等。那么什么是深度学习&#xff1f;深度学习是如何应用在视觉检测上的呢&#xff1f; 什么是深度学习&#xff1f; 深度学习是…