随笔
文章平均质量分 53
hh199203
这个作者很懒,什么都没留下…
展开
-
verdi中的driver和load
driver: 谁给它赋值了===双击load: 它给谁赋值了。原创 2024-03-04 15:55:29 · 476 阅读 · 0 评论 -
记录一个仿真模型在前仿和后仿中遇到的问题
在写仿真模型的过程中,为了方便,我们通常在tb里边,通过层次引用的方式,将模块的接口assign出来给interface,再将interface用config_db送给环境去处理,RTL前仿这样做没问题,但是后仿的时候存在一定的风险。原创 2024-02-27 16:43:59 · 411 阅读 · 0 评论 -
vcs宏汇总选项
在用vcs仿真过程中,有时候宏不是在编译选项命令里面输入,不会出现在build.log,那么如何知道自己的仿真用到了哪些宏呢。原创 2024-02-04 17:38:36 · 429 阅读 · 0 评论 -
记录一些git的常用操作
记录一些常用的git操作,持续更新,方便自己查阅。原创 2024-02-04 17:29:24 · 674 阅读 · 0 评论 -
VCS自带的UPF低功耗仿真demo介绍
VCS工具安装路径下,自带了一个UPF低功耗仿真的演示用例,本文主要介绍一下这个演示用例的使用,同时解决一些使用过程中的问题。将MVSIM_NATIVE_DEMO文件夹拷贝出来,在该路径下输入tree查看层次结构,如下所示,其中,LP、LP_DVE、LP_LPA文件夹分别存放的是仿真环境,REF文件夹是不带UPF的参考对比仿真环境,RTL和UPF文件夹分别用来存放设计代码和UPF文件。原创 2022-11-15 16:35:44 · 3313 阅读 · 4 评论 -
irun和vcs工具,检测TB环境零延时无限循环以及zero-delay组合逻辑
在写TB代码时,如果循环退出条件没注意,可能使循环一直不能退出,而且该循环又是没有延时的,因此就出现了zero-delay(零延时)的无限循环。编写RTL,如果不注意,可能会写出zero-delay(零延时)的组合逻辑,也就是组合逻辑的输出,直接反馈到组合逻辑的输入上,导致零延时的组合逻辑。本文主要介绍irun和vcs如何利用工具去检测TB环境零延时无限循环以及zero-delay组合逻辑。https。...原创 2022-08-01 17:56:10 · 4395 阅读 · 1 评论 -
在excel内处理二进制和十六进制数据
有时候我们需要将大量数据,在十进制、十六进制、二进制之间进行转换,甚至需要提取二进制其中的某一个bit位。这里主要介绍如何利用excel,实现不同进制之间的转换,实现二进制bit位的提取。...原创 2022-06-23 14:19:48 · 7610 阅读 · 0 评论 -
uart打印仿真模型
在CPU仿真过程中,通常会用到uart打印来进行调试,但是如果我们用实际的uart IP来进行仿真,那么仿真速度会非常慢,这个时候我们就需要写一个uart的仿真模型,来替代实际的uart IP,来实现打印。原创 2022-05-11 11:43:48 · 469 阅读 · 0 评论 -
如何利用断言去卡时间
文章目录前言一、如何利用断言去卡时间总结前言在芯片仿真验证过程中,有时候需要去卡两个状态之间的时间差,是不是满足设计的需求,当测试用例有成百上千个的时候,不能挨个case去手动检查,这个时候就需要利用断言去卡时间,如果不满足设计需求,就自动报错。一、如何利用断言去卡时间断言的基本语法,这里不进行介绍,这里主要介绍如何利用断言,去卡两个状态之间的时间差。废话不多说,直接上代码:// 通过宏定义定义时间间隔的最大值和最小值parameter T_MIN 0;parameter T_MAX原创 2022-03-04 16:29:05 · 321 阅读 · 0 评论 -
VCS 加速编译的方法——VCS Partition Compile
文章目录前言1 Partition Compile2 Autopartitioning(Ease of Adoption)3 Specifying Partitions Manually(Recommended)3.1 topcfg.v file3.2 Two step commands for partition compile3.3 Three step commands for partition compile3.4 Profiling of Compilation Time4 Best Pract原创 2022-02-22 17:45:03 · 8230 阅读 · 2 评论 -
如何将verdi的默认编辑器设置为gvim
在RTL仿真过程中,我们通常用verdi打开v文件和fsdb波形,来进行debug。但是,有些时候需要对verdi中的v文件进行修改,直接用verdi中自带的编辑器,修改代码比较费劲,这里介绍一种方法,能够将gvim设置成verdi的编辑器,每次需要编辑文件的时候,自动通过gvim打开。原创 2022-01-11 15:48:52 · 4001 阅读 · 1 评论 -
卜算子 自嘲
文章目录本是后山人偶做前堂客醉舞经阁半卷书坐井说天阔大志戏功名海斗量福祸论到囊中羞涩时怒指乾坤错这首诗来自《遥远的救世主》中(电视剧《天道》),男主丁元英在一个饭局上的自嘲诗,觉得不错,在这里摘录出来。原著中,女主芮小丹是这么解读的:芮小丹一边记一边在脑子里解析——本是后山人:没见过世面、没有学识的人。偶做前堂客:偶然的机会登上大雅之堂。醉舞经阁半卷书:自我陶醉地卖弄藏经阁万卷之一的皮毛学问。坐井说天阔:坐井观天的一孔之见。大志戏功名:志向远大到戏弄功名,彻底超脱的至高境界。海斗量福祸:以海为斗量原创 2021-12-24 10:42:16 · 6092 阅读 · 0 评论 -
vcs导出定义了哪些宏
文章目录前言一、vcs如何导出定义了哪些宏总结前言VCS仿真的时候,想看看定义了哪些宏,可以批量导出吗?一、vcs如何导出定义了哪些宏编译选项加上-diag macro_values这是打印出所有的宏定义,包括uvm源码里面的,会比较多,存放在在编译log里面。总结编译选项加上-diag macro_values可以导出vcs仿真定义了哪些宏,存放在编译log文件中。...原创 2021-11-30 14:07:47 · 3129 阅读 · 1 评论 -
处理仿真中存在多个timescale的问题
文章目录前言一、总结前言在RTL验证过程中,有可能会用到多个VIP,不同的VIP,有可能会要求用到不同的timescale,那么如何在同一个仿真环境中,将这些不同的timescale进行统一呢。一、总结...原创 2021-11-12 14:20:01 · 4950 阅读 · 1 评论 -
后仿中的nonotifier选项
文章目录前言一、nonotifier的功能1、VCS2、NC二、关闭部分instance或者reg的时序检查方法1、VCS2、NC总结前言PostSimulation 由于一部电路的存在,经常出现X态,影响仿真结果。如何在vcs和nc的仿真工具中,排除这部分电路的timingcheck?一、nonotifier的功能nonotifier选项用于关闭电路中的时序检查。1、VCS在VCS中的选项为+no_notifier。+nospecifySuppresses module path d原创 2021-10-25 20:56:44 · 4379 阅读 · 1 评论 -
vcs分步编译仿真
文章目录前言一、Analysis二、Elaboration三、Simulation总结前言通常情况下vcs的仿真分为两步,先用vcs编译生成一个sim文件,再执行这个sim文件进行仿真。这样的仿真方式存在两个问题:问题一,当设计比较大的时候,每次都要全部重新编译一遍,比较浪费时间;问题二,当设计中存在VHDL文件时,两步法就无法使用,因为VHDL文件需要单独处理。本文主要介绍VCS的三步编译法,包括:AnalysisElaborationSimulation一、Analysis代码原创 2021-09-08 10:26:02 · 8987 阅读 · 4 评论 -
Warning-[INFL_DELTA] Too many events zero delay loop
项目场景:运用VCS工具执行仿真的时候,遇到如下错误提示,但仿真还在继续。Warning-[INFL_DELTA] Too many events Possible zero delay loop. Too many events in the simulation at time 0 fs.问题描述:为什么会有这个问题;什么导致了这个问题;原因分析:1、为什么会有这个问题由于竞争条件或编码风格不明确,可能会产生零延时回路,导致仿真挂起或仿真时间无限。2、什么导致了这个问题举原创 2021-05-18 10:16:48 · 6815 阅读 · 0 评论 -
启动Verdi自动加载波形和信号文件
文章目录前言一、verdi自动加载波形和信号文件的方法总结前言很多时候,在启动verdi时,希望软件能够自动加载fsdb波形和rc信号文件。一、verdi自动加载波形和信号文件的方法verdi -f filename.f -ssf ./test.fsdb -sswr ./signal.rc-ssf 选项加载fsdb波形文件;-sswr选项加载rc信号记录文件。总结本文主要记录启动Verdi自动加载波形和信号文件的方法。...原创 2021-04-27 20:39:08 · 5206 阅读 · 5 评论 -
简单实用的回归检查脚本
文章目录前言一、简单的回归检查脚本总结前言在数字前端验证仿真过程中,测试用例会越来越多,在最后收敛阶段,会利用脚本不断的对测试用例进行回归仿真,每个仿真测试用例都会产生一个log文件,如果脚本回归仿真完后,挨个的去查看log文件中是否有警告甚至错误,那么大量的时间花费在无意义的工作上,这个时候我们需要一个简单的脚本,能够帮助我们去查看所有的log文件中,是否存在异常信息。一、简单的回归检查脚本脚本如下:#!/bin/shrm -rf check_logmkdir check_logcd原创 2021-04-27 20:28:37 · 1921 阅读 · 0 评论 -
bin文件转换成hex的方法
文章目录前言一、hexdump1.1 hex文件8bit对齐1.2 hex文件32bit对齐二、在testbench中实现其他位宽对齐的方法总结前言这里记录一下在linux系统下,将bin文件转换成hex文件的几种方式,以及在testbench中编写for循环,去实现任意8的整数倍位宽mem的初始化。一、hexdump在linux系统下,利用hexdump这个命令,可以实现将bin文件转换成hex文件。1.1 hex文件8bit对齐其中hex文件中8bit对齐的指令如下,hello是需要转换原创 2021-04-16 17:09:18 · 9331 阅读 · 0 评论 -
Unescaped left brace in regex is illegal here in regex
问题描述:在执行perl脚本的时候遇到如下问题:Unescaped left brace in regex is illegal here in regex; marked by <– HERE in m/${ <– HERE ([^ \t=:+{}]+)}/ at xxx line xxx原因分析:原因是Perl不支持以前的写法。解决方案:将报错位置遇到的第一个左大括号,用中括号包起来。例如:将 - $text =~ s/\${([^ \t=:+{}]+)}/substitu原创 2021-04-09 16:40:18 · 2027 阅读 · 0 评论 -
libvcsnew.so: undefined reference to
文章目录问题描述:解决方案:问题描述:在利用vcs进行仿真的时候,遇到如下 “libvcsnew.so: undefined reference to xxxxxx" 这种报错,这里提供解决方法。/opt/synopsys/vcs_vO-2018.09-SP2/linux64/lib/libvcsnew.so: undefined reference to `vfs::vfsReleaseVirtualFileList(VFILE_LIST*)'/opt/synopsys/vcs_vO-2018.原创 2021-04-09 16:35:31 · 3867 阅读 · 7 评论 -
VCS dump fsdb 波形
文章目录前言一、dump fsdb二、开启记录波形总结前言每当仿真需要记录波形文件的时候,都需要满世界去找那几个系统函数,这里记录一下,方便下次快速查找。一、dump fsdbinitial if($test$plusargs("DUMP_FSDB")) begin $fsdbDumpfile("testname.fsdb"); //记录波形,波形名字testname.fsdb $fsdbDumpvars("+all"); //+all参数,dump SV中的struct结构体原创 2021-03-18 16:09:03 · 25282 阅读 · 0 评论 -
Can‘t locate Bit/Vector.pm in @INC
问题描述:调用perl的时候遇到如下错误信息:Can't locate Bit/Vector.pm in @INC原因分析:主要原因是Vector这个包没有安装。解决方案:下面这个链接提供了安装方法,但是没有提到安装包到哪里下载。https://blog.csdn.net/xnn_1993/article/details/86632293下面附上安装包下载的路径:https://cpan.metacpan.org/authors/id/S/ST/STBEY/Bit-Vector-7.原创 2021-03-09 11:56:26 · 464 阅读 · 1 评论 -
Undefined System Task call to ‘$fsdbDumpfile‘
问题描述:在使用VCS或者Irun进行仿真的时候,当需要dump FSDB波形的时候报错:Undefined System Task call to '$fsdbDumpfile'原因分析:主要原有是VERDI的工具库没有设置好。解决方案:下面分仿真工具为VCS和Irun分别提供两种解决方案:1、VCS首先要把FSDB dumper库的路径添加到LD_LIBRARY_PATH环境变量,32位Linux环境使用的C Shell命令格式如下: setenv LD_LIBRARY_PATH原创 2021-03-05 17:54:56 · 22529 阅读 · 0 评论 -
Ubuntu 18.04.5 RISCV编译仿真环境搭建:riscv-gnu-toolchain和riscv-tools
花了两天,搭建了RISCV编译仿真环境,网上的资料非常多,这里主要记录一下安装流程,以及安装过程中遇到的问题。本文分下载工具、设置环境变量、编译环境、测试环境这四个步骤,记录了RISC-V编译和仿真环境搭建的方法,以及过程中遇到的问题。原创 2021-02-22 16:12:56 · 6541 阅读 · 14 评论 -
verilog仿真测试中的参数传递——$test$plusargs和$value$plusargs
我们在进行verilog仿真时,经常喜欢采用宏定义,来做条件判断,但是通过宏定义做条件判断的这种方法,存在很大的弊端,就是条件改变的时候,需要重新编译,这样会导致,在项目后期进行回归测试和后仿的时候,很多时间都浪费在重复编译上面,效率非常低下。为了提高仿真效率,建议采用系统函数 $test$plusargs和$value$plusargs来实现,仿真命令到仿真环境之间的,条件判断和参数的传递。`endifend。原创 2021-01-26 17:47:43 · 4146 阅读 · 4 评论 -
VCS带UPF的RTL低功耗仿真介绍
文章目录前言一、UPF文件是什么1.电源域(power_domain)2.电源开关(power_switch)3.电源隔离(power_isolation)二、如何快速上手1.学习VCS自带的demo2.启动带UPF的仿真3.debug带UPF的仿真总结前言最近在做VCS带UPF文件的低功耗仿真,把这个上手的过程,以及要注意的事项记录一下。一、UPF文件是什么UPF(Unified Power Format)文件主要用来描述RTL代码的供电情况。在UPF文件中,描述RTL中的电源域(power_原创 2020-12-04 17:39:14 · 9960 阅读 · 1 评论