#systemverilog# 之 event region 和 timeslot 仿真调度(三)Verdi 辅助查看

SystemVerilog 语言编程
专栏收录该内容
¥159.90
¥299.90
122 篇文章

前面的几篇文章,我们对SV仿真调度进行了理论分析和实战演练。那么工具厂商,对该类问题有没有提供相应的支持。这个应该是肯定的。因为我们知道,SV只是出于定义标准的角度,规定了仿真调度事件原理。但是具体实施细节,应是每家EDA仿真工具厂商根据自家的软件开发算法而定的。所以,EDA厂商也是很容易来做这件事的。VCS+Verdi工具,便提供了相应的feature,今天我们来学习和总结一下。

一 event sequence

为了想观测某个timeslot 处的所有event 的执行具体顺序是什么样子的,我们可以在仿真阶段通过传递 VCS 仿真参数 +fsdb+sequential  ,其主要用于记录同一时刻下,信号变化的先后顺序。

.simv ... +fsdb+sequential .... 

大家可以自行拿自己身边的例子来跑跑看,这里就不在贴具体代码。直接分析结果: 

如上图所示,我们分别按照 step1:鼠标左键单击选中要分析的波形时间点; Step2: 点击 nWave窗口中的 tool菜单,并找到Event Sequence... 选项, 点击按钮,然后窗口弹出下图指示的event sequence 执行序列。

VIP仿真】波形dump(vcd,shm,fsdb,saif,...) IC研发过程中,可能会涉及到多种工具,过程中也可能需要不同格式的波形文件。从网上搜索情况来看,介绍saif的较少,所以这里着重介绍一下saif的dump。 下面粘贴了两个相关背景知识的帖子,如其中介绍,saif主要用在功耗分析中。 gPTPX功耗分析实战, VCD, SAIF, FSDB的区别_RTL2GDS的博客-CSDN博客PTPX功耗分析实战, VCD, SAIF, FSDB的区别PTPX功耗分析VCD,SAIF,FSDB的区别注:文章转载自微信公众号 RTL2GDS (微信号:rtl2gds). 开通可读全文·1.2w 阅读·1 点赞·72 收藏 阅读全文

相关推荐

VCS-数字逻辑仿真工具实践(听课记录)

写在前面: 百度是这样介绍VCS的: VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLISDF。VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off的要求。 VCS结合了节拍式算法事件驱动算法,具有高性能、大规模高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。VCS已经将CoverMeter中所有的覆盖率测试功能集成,并提供VeraLite、Cycle

杰之行的博客 4155

#systemverilog#event region timeslot 仿真调度(五)实战

经过之前文章的学习,想必大家对systemverilog 仿真调度的理解,应该八九不离十了。今天,我们结合实际中的例子,来实战一下,对之前的理解,做一个考核。我们拿《UVM实战》中的2.2.1章节的例子,来讲解。

那么菜的博客 1065

怎么在fsdb波形中构造一个0ps的毛刺

写在前面: 1、按照大家通常的思维,其实题目应该取“怎么分析一个0ps的毛刺”,即从结果分析原因。但是0ps的毛刺产生的原因实在太多了,我们不如反其道行之,自己尝试去构造一个0ps的毛刺,以一种正向的思维去理解,当你能够自己构造出一个0ps的毛刺时,基本上也能够分析其它0ps毛刺产生的原因了。 2、看本文之前需要先去了解verilog/systemverilog调度机制,可以参考我以前写的一篇文章SystemVerilog调度机制与一些现象的思考。 3、我发现大家都喜欢白嫖啊,看完如果觉得文章对自己

kevindas的博客 7333

VCS+Verdi进行testbench调试

背景: 在进行testbench调试时,使用消息打印或者单纯的ucli进行调试效率较低,利用Verdi进行图形化界面调试可以提升效率。 方法: 编译选项:-kdb 仿真选项:-verdi tips: watch:在开始仿真时,会进入到verdi界面。在仿真暂停时,可以在左上角的导航栏切换到class标签(或者第一个标签,包含dut top),在搜索栏结合*搜索关注的class,如*refm*,class下面有此class的instance,点到instance,右边会显示member,class

253765952 4055

Verdi查看delta time 波形方法

simulation选项:before verdi 1509:simv +fsdb+sequential +fsdb+glicth=0 +fsdb+region。view -> Expand Delta -> 勾选Regin Mode->点击Expand/Collapse time at Cursor。Verdi 可以查看delta time块内信号的变化情况,可以方便我们更好的了解仿真软件是如何工作的。就可以看到在某一时刻delta 时间内各信号的变化,红色框内还可以显示光标所在timeslot区域。

zya1314125的博客 1725

数字前端验证中的时间片方案——time-slot学习笔记

前言 时间片time-slot(后简称ts)是EDA工具进行仿真进程中的抽象时间单位,该时间点内所有线程被划分为相应的优先级进行调度。如果线程在同一ts内被调度,从外部看他们仿佛属于同一时间点“并行”执行的,但是实际上是有先有后,因为软件行为中不存在绝对的并行。ts存在的主要价值是解决仿真中的竞争与冒险,使仿真行为尽量与实际电路行为保持一致。 归结起来一句话:通过一个ts中发生的行为,可以认为...

moon9999的博客 1万+

FSDB 波形文件产生以及截取

FSDB波形产生: FSDB:Fast Signal Database 相比较于VCD文件,FSDB文件的大小比VCD波形小5-50倍。 各家的仿真器都支持在simulation的过程中,直接生成FSDB文件 将VCD文件转换为FSDB文件的种方式: 1) vfast工具 2) 在nTrace中使用File---Load simulation Tesults打开 3) 在nWave中使用File---Open命令来打开 将Fsdb文件转换为Vcd文件: 1) fsdb2vcd工具, 在.

简单同学 2万+

#VERDI# 关于查看event sequenceevent region方法

svverilog虽然是并行语言,但是对于仿真而言细分到底其实是做不到的,事件发生总是有先后的,所以sv使用了event region,然后为了解决tbrtl的竞争后来出了program,再后来有了clocking block,验证中常犯的一个错误就是clkclocking block 的混用,用着用着就把自己搞迷糊了。那么遇到这种问题时是否有比较好的debug方式,其实是有的,下面介绍一下在verdi中如何查看event sequence,event region

那么菜的博客 1381

#VERDI# 关于使用Verdi 查看NBA 仿真调度的方法

在学习使用 Verilog 的过程中,难免会碰到需要深入理解仿真调度的问题。今天这篇聊聊使用 Verdi 去分析 NBA Delay 的问题。 NBA 就是 NonBlocking Assignment,非阻塞赋值 的缩写。它通常用来描述一个用时钟沿触发的寄存器。在 Verilog 普及早期,人们通常会在 NBA 的<=之后加个单位延时#1来解决早期仿真器行为不一致的问题。 所谓习惯成自然,NBA Unit Delay 在某些设计中一直沿用下来,那么如何去理解这个延时的作用呢?SNUG 上的.

那么菜的博客 2334

[sv] region & timeslot

sv region & slot

stm32stu的博客 1078

Clocking Block的相关使用

之前active/inactive/NBA区域全部执行完毕后,即设计部分的线程执行完毕,接下来为SV为验证准备的,observed区域为属性断言准备,用于检测所有数据对象被赋予最终的数值,该区域适合interface与程序块采样。input指定#0 skew,active region判断@(event) ,会在observed region采样,指定#n step,采样值会在clocking event之前的postponed region采样;

jj0709的博客 1365

使用Verdi或DVE分析波形的一些小技巧

本文记录使用Verdi或DVE查看Delta Cycle的方法分享一些分析波形的小技巧。

PoPo's Blog 4万+

#systemverilog#event region timeslot 仿真调度(七)Active/NBA 咋跳转的?

激活后,发现均是非阻塞赋值,那么非阻塞赋值的左侧变量更新,肯定是在下一个NBA 域,也就是NBA(2),因为没有Active(2) 存在,所有 NBA(2)紧挨着NBA(1)出现。在NBA(1) NBA(2)中间,没有active(2) 出现,大家不要固性思维,觉得每个调度域,会按照Active -> NBA 这样完整的跳转运行。其实,该电路非常简单,恰好在NBA(1) NBA(2) 之间,没有相应的Active(2) 事件进行调度,所以也就没有展示出Active(2) 域。这样解释,应该合理吧。

那么菜的博客 1355

算法求助

算法求助 给定一组元素X={x1,x2,…, xn}及其n×n关系矩阵R,其中R_ij=1,当x_i 与x_j 相关联,否则为0,设计一个回溯(或分支限界)算法,在X中找出两个非空子集AB,满足:① A∩B=Φ;② A中的每个元素都与B中的所有元素相关联;③B中的每个元素都与A中的所有元素相关联;④A∪B中的元素总数最多。 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdow...

weixin_44133949的博客 788

system verilog学习笔记--time slot division

Postponed区域是监视信号其它类似事件的区域,一旦到达Postponded区域后,在这个时隙中不允许有新的值变化。 ObservedReactive区域是新的区域,并且只有来自新的语言结构的事件才能被调度进这些新的区域。当特性表达式被触发的时候,Observed区域用来计算这些特性表达式。这个确定性的一个标准就是特性计算在任意时钟触发时隙中只能发生一次。在特性计算期间,通过/失败代码应

xavi_siege的专栏 3764

#systemverilog#event region timeslot 仿真调度(一)基础

虽然现在SystemVerilog仿真验证中占据主流的位置,不过了解一下Verilog是如何仿真的,对以后学习systemverilog仿真特性也是有帮助的。本文主要学习verilog的一些仿真特性,因为一方面,若是写的RTL代码质量不高,那么不同的仿真器/工具在进行仿真的时候,对verilog解释有可能不一样,导致仿真结果不一样;另一方面,由于在Verilog HDL 语言的IEEE 标准中,其语义采用非形式化的描述方法,因此不同厂家的仿真工具、综合语句的后台策略肯定存在差异,同一段RTL代码,在不同

那么菜的博客 2253

#systemverilog#event region timeslot 仿真调度(八)assign 赋值必在Active域调度

仿真调度

那么菜的博客 706

Simens EDA:在Modelsim/QuestaSim中观察一个时间片(Time Slot)中Simulation/Delta Cycle发生的事件

本文的目的是教会读者如何使用Modelsim/QuestaSim观察一个时间片(Time Slot)中Simulation/Delta Cycle发生的事件,有关Verilog/SystemVerilog中的时序调度的更详细信息,可以阅读Verilog/SystemVerilog Standard中的Scheduling semantics一章,其中详细给出了层次事件队列的定义。

博客是兴趣使然,大家互相学习 1271
上一篇: #systemverilog# 关于流操作符>>和<<引发的思考
下一篇: #systemverilog# 关于随机约束之 unique 关键字
那么菜
博客等级 码龄12年 1万+粉丝 415原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那么菜

你的鼓励和批评是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值