
日常工作技巧
文章平均质量分 56
日常工作中遇到的可提升工作效率的操作和技巧,记录一下
Bug_Killer_Master
以Bug为伴,以Bug为生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一些有用的SVA小技巧
(1)表达式a ##[1:$ ] b #̲#[1:$] c表明,如果信号a为高,那么从下一个时钟周期开始信号b最终将为高,接着在下一个时钟周期开始信号c最终也会为高。intersect构造要求两个序列必须在相同时刻开始且在相同时刻结束,即:两个序列的起始点和结束点都要相同。(3)最终属性P62的含义为:从序列的开始有效点(信号a为高)到序列成功的结束点(信号c为高),一共经过2~5个时钟周期。(2)使用1[*2:5] intersect来加以约束,1[*2:5]表示1持续2~5个周期。原创 2024-09-27 14:34:51 · 542 阅读 · 0 评论 -
dump fsdb实用攻略
太大,那就少dump点呗。转载 2024-09-10 13:47:10 · 1597 阅读 · 1 评论 -
[VIM] MiniBufExplorer插件
我们在开发环境或者debug环境的时候,经常需要在不同的路径下的不同file中切换,一种可行的方法是开多个vim窗口,并排放着,需要开哪个的时候点哪个,但是打开的file很多的时候就不太方便了,这里推荐一个vim 插件:MiniBufExplorer。下载安装方法比较简单,有很多教程,我就不介绍了,使用方法也有人提到,但是不够清晰明了,这里梳理一下,以备所需。原创 2024-04-18 15:50:10 · 694 阅读 · 0 评论 -
[Verdi] fsdbreport的妙用
到处到文本中后,我们就可以利用gvim相关命令简单处理成方便对比的形式,比如文本排序sort等。1.数据只在跳变的时候写出。原创 2024-03-14 16:32:00 · 3298 阅读 · 0 评论 -
gvim自动对齐插件--Align
我们在看别人的代码的时候,一定看到过有人的代码看起来非常的美观,缩进对齐这些都非常的工整,这里推荐一款自动对齐的插件,经过实测,简单方便又好用。原创 2024-02-29 15:35:19 · 1941 阅读 · 2 评论 -
利用gvim宏快速生成连续带数字下标的信号
现在我们需要instance 4份dut(dut_0-3),那么端口上对接的信号就会有16个req_x,req_0-3对应dut0 .req_4-7对应dut_1,以此类推,在手动连完dut_0之后,怎么快捷完成其他几个的连接呢,这里介绍宏录制的方法:(以dut_1连接为例)c.光标定位到my_req_0中的数字0上面,依次按下4和Ctrl+a(功能是执行+4,0变成4)d.移动光标到下一行的my_req_1中的数组1上面,然后按下q,结束宏录制。b.按下x,x是宏的名字,可以是其他字母。原创 2024-02-22 18:06:44 · 297 阅读 · 0 评论 -
component内多个uvm_analsys_port/imp的两种实现方法
在我们的验证环境中,某个component 需要接多路tlm的需求很常见,比如uvm书上介绍的,SCB需要接两路tlm,一路来自monitor,一路来自refmodel。除此之外,在稍微复杂一点,或者有多路输入输出的环境,我们的refmodel需要接收来自多个agent.mon的trans,然后经过ref之后送到SCB,本文介绍这两种场景的两种实现方法。原创 2024-01-29 17:05:04 · 980 阅读 · 0 评论 -
Xargs批量操作
在实际工作中因为各种各样的原因,可能需要对文件及文件内容进行批量化的操作。在 Linux 环境中,使用xargs命令可以方便地批量操作文件。xargs是给命令传递参数的一个过滤器,可以用于组合多个命令。xargs可以将管道或者标准输入数据转换成命令行参数,这正是文件处理过程中需要的一个桥梁。关于xargs命令的更多细节及参数,可以在命令行中输入man xargs查看。接下来举例一些可能遇到的场景。转载 2024-01-25 14:29:57 · 403 阅读 · 0 评论 -
vcs 加速编译-分块编译
当我们的验证环境比较大的时候,尤其是soc仿真环境,编译一次可能就需要数小时,验证阶段我们很可能只是修改了我们的vseq或者checker,但是需要全部重新编译一次,又需要花费数小时,为了减少来回的迭代时间,减少不必要的重复编译,vcs userguide里面有提到分块编译的方法,经过笔者实测,可用并且效果明显,本文介绍一下flow,然后对比一下效果。原创 2024-01-19 16:45:29 · 2419 阅读 · 0 评论 -
VCS 中途手动ctrl+c 退出后复原fsdb文件
有时我们在跑仿真的过程中可能会发现case hang住了,已经没有必要继续跑下去了,但是还是想基于已经dump好的波形就行debug,如果直接ctrl+c,然后ctrl+d退出后会发现波形文件被损坏,无法正常打开,今天介绍一种解决办法,亲测有效。2. 这个时候我们敲入以下命令:fsdbDumpFinish , 这个命令会将fsdb波形的临时文件合并产生唯一的。1. 我们在仿真过程中在terminal直接敲:ctrl+c之后,这个时候系统会自动切入UCLI 命令窗口。这样就能正常打开verdi查看波形了。原创 2024-01-18 16:24:25 · 1723 阅读 · 0 评论 -
GIT 命令
记录用到的有用的git 命令:原创 2024-01-08 14:49:44 · 453 阅读 · 0 评论 -
用UCLI(TCL)控制verdi dump 波形
在我们的验证环境中,通常跟ucli打交道的地方是用来控制开始dump和结束dump 波形的时间,以及dump 的hierarchy。depth表示要加载波形的层次:0表示当前instance下的所有变量以及其它module实例的波形;1表示当前instance中的变量的波形,不包括当前instance中的其它module实例的波形;2表示包含当前instance以及其中的第一级子instance的波形;instance指定要加载波形的module名。+mda – 加载memory和MDA信号;原创 2024-01-04 15:51:52 · 4790 阅读 · 0 评论 -
Linux 命令
【代码】Linux 命令。原创 2023-12-15 10:08:38 · 645 阅读 · 0 评论 -
画时序图的工具
在进行电路时序或总线时序的学习,研究,开发,教学时总是需要阅读和绘制波形图,一款好用强大的波形图软件将极大提高你的绘制效率,让你更准确专业的表达时序逻辑。波形图绘制五大神器如下:TimeGenAndyTimingWaveDrom。转载 2023-12-05 15:42:44 · 1769 阅读 · 0 评论 -
uvm环境获取系统时间的方法和使用案例
有时候我们想统计一下验证环境中某个步骤总共花费了多少时间,有什么比较方便的方法呢,利用$realtime理论上也是能做到的,不过这个和timescale绑定起来了,需要手动换算成单位是秒的数,现在提供一种利用Linux系统函数date来统计时间差的方法。1. 首先$system("date")的返回值是0,不能直接得到系统时间,例子中采用的是把系统时间打印到临时文件中,然后再读出来的方式来间接得到系统时间。2. 在想要统计的操作前后分别call 一次以上function,相减即是想要的结果。原创 2023-11-20 17:21:07 · 658 阅读 · 0 评论 -
VIM 技巧
如果你用过vim的cscope插件,你就知道cscope可以用来查找相当的代码,但cscope需要事先生成一个数据库,对一些简单的查找,其实,我们用vim的grep命令就可以了,不需要专门为之生成数据库。我们可以看到,光标回到了一开始我输入的位置,然后你可以干两件事,一个是继续输入(这可以帮助过滤关键词),另一个是用“光标键”上移或下移来选择下拉列表中的关键字,选好后回车,就补全了。有时候,我们需要看多个文件,所以,传统的做法是,我们开多个tty终端,每个tty里用Vim打开一个文件,然后来回切换。转载 2023-08-03 16:37:16 · 132 阅读 · 0 评论 -
profile 使用和firefox打开失败的解决方法
profile用于分析仿真过程中的时间和内存消耗状况,帮助我们解决一些写法导致的仿真时间消耗太多的问题,例如不合理的constrain写法等。仿真目录下:目录名:profileReport 网页文件名: profileReport.html。仿真选项:-simprofile [mem/time/noprof]查看方式,一般用firefox看: firefox profileReport.html &1.地址栏输入:about:config。编译选项:-simprofile。原创 2023-07-28 13:53:33 · 1829 阅读 · 1 评论 -
sv 生成数独的constraint
生成3x3的数独的constraint:原创 2023-07-07 17:49:03 · 142 阅读 · 0 评论 -
rm -rf 报错 xxx Device or resource busy
杀掉进程,或者退出所有访问Linux的终端或者软件。发现有进程锁定了文件。原创 2023-06-25 14:05:55 · 2265 阅读 · 0 评论 -
吐血整理 ctags 配置 for systemverilog
c.执行ctags --langmap=verilog++:+.sv -R,把.sv文件加入Verilog支持库,然后发现还是不能跳转。d.执行ctags --list-kinds=verilog,查看支持的Verilog对应的元素,发现是如下,显然不支持sv的语法结构。b.执行ctags --list-maps,显示Verilog支持的文件后缀名是.v,而我的文件都是.sv/.svh。a.在根目录下创建.ctags文件,gvim ~/.ctags。a. 在上层执行ctags -R 产生打包好的tags。原创 2023-05-25 18:32:32 · 2412 阅读 · 14 评论 -
Coverage 相关技巧
把原始vdb copy一份就行,注意第一个-dir后面的vdb是base,这样就能把三份IP(IP0/1/2)的coverage merge成一份(IP0).2. DVE 打开vdb文件。原创 2023-05-06 11:30:51 · 2700 阅读 · 0 评论 -
Linux 常用命令
示例:chmod u+x myfile 常用参数:u 用户权限,g 组权限,o 其他用户权限,+ 添加权限,- 去除权限,r 读取权限,w 写入权限,x 执行权限。示例:chmod 755 myfile 常用参数:u 用户权限,g 组权限,o 其他权限,a 所有权限,+ 添加权限,- 取消权限。示例:ls /home/user/ 常用参数:-l 显示详细信息,-a 显示所有文件(包括隐藏文件),-h 人性化显示文件大小。示例:netstat -a 常用参数:-a 显示所有连接,-n 显示IP地址和端口号。转载 2023-04-28 16:42:32 · 152 阅读 · 0 评论 -
Verdi 相关技巧
4. 有时想看bus信号中间的若干bit的值,其中一个好用的方式如下:右键要拆分的bus信号,以此点击截图选项,最后手动修改想看的bits。单击要测量信号的起始点,中键选择截止点,然后点波形窗口的view->signal event report。额外提一下,除了force xxx之后,用uvm_hdl_force/write也会有同样的效果。source -> Active Annotation(快捷键x)平时遇到或者用到了一些好用的选项,用法,这里记录一下。7. cycle数数。原创 2023-04-19 16:35:04 · 2821 阅读 · 0 评论 -
vim 技巧
删除Vim打开文件中所有空白行的命令为。原创 2023-04-19 11:00:19 · 96 阅读 · 0 评论