自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 问答 (1)
  • 收藏
  • 关注

原创 force

弱force,force后可被其他驱动改变;强force,force后一直拉高;3.波形上看force的位置;仿真时加上“+fsdb+force”

2025-04-28 11:26:39 111

原创 将验证环境文件和设计文件一起编译

加入路径,通过+incdir+指定文件的查找路径:+incdir+/data/dut/;该行可以一并加入上面的*.f文件,也可以单独放一起编译;所有文件放入一个*.f文件中,文件为绝对路径,编译时通过-f指定;将所有验证文件放入一个*.sv的list文件中,通过include “文件相对路径”,如果设计文件很多,可以将所有设计文件放入一个 *.f 文件list中,用绝对路径;放入编译时,不需要-f指定,直接加入*.sv的绝对路径即可;编译的时候通过 -f 指定:-f *.f;方式一:同设计的方式相同。

2024-12-11 15:10:08 270

原创 正则表达式基本用法

正则表达式,Regular Expression,或缩写regexp,是一种用于描述文本模式(pattern)的表达式。通过该文本模式,我们可以从文本中高效和准确地匹配查找到想要的字符串。正则表达式的搜索和匹配功能非常强大,以至于几乎所有的脚本语言(比如Python, Perl,JavaScript),Java等高级编程语言,甚至grep等一些Linux命令,都支持正则表达式。

2024-09-30 00:02:32 648

原创 批量替换字符串

filename ---文件名,可以用*代替当前目录的所有文件。xargs ---接收grep列出文件名。1. 批量替换文件夹名字中的字符串。-rl ---列出符合条件的文件名。-i ---直接修改文件中的内容。-v ---替换过程下详细内容。2.批量替换文件中内容的字符串。old ---旧字符串。new ---新字符串。

2024-09-25 12:30:57 515

原创 UVM寄存器模型使用方法

4.编写自定义适配器adapter.sv,主要用于将自定义trans和reg_sequence的trans相互转换,主要包括两个回调task,在顶层reg_base_test.sv中例化;在改test中例化寄存器模型,例化adapter,例化sequence,其中sequence包括各种测试类型的,如RW/RO/W1C等;在build_phase中例化寄存器模型后,再寄存器复位,再将adapter和env.bugagt.sqr配置到寄存器模型;3.寄存器模型在顶层reg_base_test.sv中例化;

2024-08-23 20:26:59 227 1

转载 dpi使用介绍

svlib(1)-介绍 | 骏的世界

2024-05-25 19:13:16 72

原创 os.path 提供用于处理文件路径和文件的系统函数

在Python中,os.path模块提供了一系列用于处理文件路径和文件的系统函数。获取文件路径信息判断路径信息获取文件属性处理路径字符串其他函数。

2024-05-24 20:56:09 734 1

原创 linux删除目录提示Device or resource busy问题

确认哪个进程正在使用该目录。

2024-04-12 09:18:02 2127

原创 assert debug

Window >> Assertion Debug Mode >> Prooerty Statistics >> 列表中拉取相关case。仿真时,命令行加入 “+fsdb+sva_success”;在fsdb文件中加入 “$fsdbDumpSVA(0)”;

2024-01-27 15:26:48 293 1

原创 对象的复制

浅拷贝:仅拷贝变量和句柄,不拷贝句柄的对象;所有拷贝前后的两个句柄指向同一个对象;注:如果注册时使用了if,那么不满足条件的参数将不会被注册,以就不能使用函数了;2. 两种方式的拷贝均只用于浅拷贝,如果需要深拷贝,需要自行写出copy函数;深拷贝:拷贝变量/句柄/句柄所指向的对象;拷贝前后两个句柄指向两个不同的对象;方式二:uvm 域的自动化常用函数:copy / clone /1. 两个方式的拷贝结果一致,使用方式略有不同;方式一:sv 的new函数。

2024-01-10 13:10:43 517

原创 如何关闭trans中的软约束

【代码】如何关闭trans中的软约束。

2024-01-09 18:23:54 513

原创 axi4,求awlen

已知awaddr,bksize,求awlen。

2024-01-04 00:13:59 476

原创 axi4,求wstrb

已知awaddr,awlen,awsize,求wstrb。已知awaddr,bksize,求wstrb。方式二:一次只求出一个数据的wstrb。方式一:一次求出所有数据的wstrb。

2024-01-03 23:59:13 995

原创 UVM中参数化类的使用

声明和例化时都需要传参,否则报错或传参失败。注册时要专门的宏定义注册。1. 定义参数化的类。

2023-12-26 14:48:53 1162

原创 如果重复定义宏,两个值不同,最终的值是哪一个?

/ 后面的值会覆盖前面定义的宏,但不是覆盖所有域,按照编译顺序,只覆盖该位置往后的域。`define AA 5 //定义一个宏,先编译。`define AA 10 //重复定义宏,后编译。

2023-11-20 18:10:06 387

原创 linux常用命令(持续更新)

echo $PATH 显示PATH的环境变量(路径),执行shell时,会根据设置的路径去查找可执行文件。$ which rm 查看可执行文件rm的路径。$ ls -lhS 将目录下的文件按大小排序显示。

2023-09-27 16:27:01 99

原创 git操作

【在本地新建名为 rBranch 的分支,并追踪到远程的 rBranch 分支,其中的-t,是 -track 的缩写】拉取之前,可以使用git branch -a查看所有分支(或者使用git branch -r 查看所有远程分支)。git checkout -b dev 新建一个分支dev ,并切换到该分支。【在本地新建名为 lBranch 的分支,并追踪远程的 rBranch 分支】在使用git之前,要在本地新建一个代码库;git branch -r 查看远程分支。2.2、本地新建分支并提交到远程。

2023-09-25 13:35:34 123

原创 搭建环境时所遇到的问题

b.不可将空句柄传递,比如在顶层connect_phase中将cfg实例传递到agent中的句柄,再在agent的connect_phase中的cfg句柄传递到mon,这样mon中是无法访问顶层的cfg实例,会报错;但是要遵循编译的先后顺序,即编译时满足“宏的定义要在引用的前面”;a.顶层base_test中声明例化cfg,在顶层中可以将底层的句柄直接指向该该实例,比如mon,drv,agent中的句柄;2.句柄的声明/参数的声明,不可放在有延时语句后面,一般放在一个task或者类里面的最上面;

2023-08-28 13:53:27 110

原创 搭建UVM环境总结

其中uvm_seq_port为driver中的内建端口;uvm_seq_export为sequencer中的内建端口;starting_phase为sequence的内建参数,类型为uvm_phase,默认值为null;声明并例化virtual_sequence,并v_seq.start(env.v_sqr);声明并例化config类,底层环境中的cfg句柄指向该类中的cfg实例;sqr中的句柄指向各自底层agent中的sqr实例;实例seq 挂在到v_sqr中对应的句柄上;4、env 相当于一个容器;

2023-07-17 23:10:54 661

原创 CPU & GPU

CPU能执行的指令较复杂,能处理很多事务,如中断处理,内存管理、IO读写等;这些情况对于GPU是不存在的,GPU处理的指令非常简单,就是纯计算;,CPU不同的核心可以执行不同的指令(不同的进程),如A核执行office,B核执行浏览器,这就是多指令多数据,MIMD;而GPU上的所有核心只能运行相同的指令,只是操作数不同,这就是单指令多数据,SIMD;,CPU一般为2核、4核、8核等;GPU则可能有成百上千核;,如图形图像计算,神经网络计算,天气预报等;

2023-07-10 23:33:19 170

原创 run_test()的使用

在module 的tb_top的initial块中调用,且在uvm_config_db传递接口之后,这样才能保证接口信号在build_phase之前已经传递下来;3.如果两种传入方式同时存在,+UVM_TEST_NAME会覆盖掉run_test传入的case,执行通过+UVM_TEST_NAME传入的case;无论传入的my_case名字是什么,run_test实例化后的名字均为uvm_test_top;在tb_top中通过run_test实例化后,形成新的层次(独立于tb_top);

2023-07-09 14:14:04 1776

原创 vcs仿真资源分析

仿真时指定跟踪类型:"-simprofile mem"编译时加参数:"-simprofile"

2023-07-07 19:19:54 766

原创 生成覆盖率相关编译参数(verdi)

参数1,代码覆盖率:-cm line+cond+fsm+branch+tgl。参数3,指定覆盖率文件名:-cm_name。参数4,指定覆盖率路径:-cm_dir。参数2,功能覆盖率:-cm assert。

2023-04-09 00:02:18 3092

原创 生成波形相关参数(verdi)

用于编译阶段,生成 simv.daidir/kdb.elab++/这个目录,是VCS 为verdi生成的中间文件,方便verdi识别;命令:“verdi -sv -uvm +UVM_VERDI_TRACE=UVM_AWARE+RAL+HIER+COMPWAVE -ssf wave.fsdb -dbdir simv.daidir &”用于编译阶段,设置对整个设计的读写权限,+w是写 ,+r是读,+f是force, +all就是把所有的权限全开;仿真时,通过命令 -ucli -i run.tcl传入。

2023-04-08 18:21:49 2043

原创 covergroup多次例化,并查看总体覆盖率?

区别仅用于指定weight时,option.weight=0局部有效,即统计总计覆盖率,依然会统计该点的值;b. 该参数的作用,用于覆盖率合并过程中,将各instance 的覆盖率按加权统计到总计覆盖率中。a. per_instances=1的作用,用在仿真过程中,将每个实例的覆盖率单独统计出来;type_option.weight=0全局有效,即统计总体覆盖率时,不会统计该点的值;3. option与type_option的区别。a.该参数仅urg支持,dve不支持。

2023-04-07 23:29:52 1302

原创 throughout用法 、[=n]与[->n]区别

非连续”,指重复的最后一个值与后续序列有间隔,如图,32拍重复结束后,隔几(n)拍后,只要检测到bvalid为低及后续序列((!其中,‘在隔几拍时’,bvalid可以为高。2. “连续”,指重复的最后一个值与后续序列无间隔,如图,32拍重复结束后,下一拍,需立马检测到bvalid为低及后续序列为真,即成功,否则报错;1.expression 只能为表达式,sequence可以为表达式,可以为序列;1.“重复”,可以为连续,可以为非连续(间隔时钟);[=n]非连续跟随重复,[->n]连续跟随重复。

2023-03-24 23:05:30 362

转载 与、或、同或、异或

以“与”运算为例说明如下:我们知道在C语言中long型占4个字节,int型占2个字节,如果一个long型数据与一个int型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足,方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。(1)使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。方法:找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。

2023-02-27 18:19:47 8823

原创 verdi基本操作

verdi基本操作

2023-02-16 09:56:36 3263

原创 foreach遍历二维数组注意点

foreach遍历二维数组注意点

2023-02-02 20:21:01 876

转载 vim查找替换

vim查找替换

2022-11-28 16:41:08 573

原创 vim常用命令

vim 的基本操作

2022-11-07 00:07:56 1795

原创 VNC链接和配置

VNC链接和配置

2022-10-09 10:47:50 849

原创 软链接、硬链接——ln -s 使用

软链接、硬链接——ln -s 使用

2022-08-09 09:24:52 547

原创 shell相关命令总结

shell相关命令总结

2022-07-25 19:56:03 416

原创 Makefile相关语法总结(Openc910)

Makefile相关语法总结(Openc910)

2022-07-25 19:49:12 605

原创 VCS编译、仿真过程

预处理:使⽤命令:gcc -E -o hello.i hello.c编译: 使⽤命令:gcc -S -o hello.s hello.i汇编: 使⽤命令:gcc -c -o hello.o hello.s

2022-07-25 18:53:52 4114

原创 关联数组&正则表达式

关联数组

2022-06-09 13:55:34 836

原创 虚拟存储机制

概述虚地址,逻辑地址,用户编程的地址空间 实地址,物理地址,实际的主存单元地址 虚拟地址空间远大于实地址; 程序运行时发出虚地址,由操作系统(软件)和内存管理单元(硬件)负责将当前运行的程序片段调入主存,完成虚地址向实地址转换。 虚拟存储分类:页式、段氏、段页式页式存储机制基本概念实页,物理页,主存中固定大小的存储块; 虚页,逻辑页,每个进程被分成的大小相同的程序块; 页表,记录虚页和实页的映射关系 每个进程都有一个页表,页表在虚址中的首地址记录在页表基址寄存器中。分页式虚存.

2022-06-05 14:29:01 325

原创 并行存储结构

一、并行存储结构用于提高访问内存速度,包括以下两类: 双口RAM 多模块存储器;单体多字、多体并行 二、双口RAM:概念:在一个存储器中提供两组独立的读写控制电路和两个读写端口,可以同时提供两个数据的并行读写。用途:通用寄存器组; 指令预取部件,相当于队列,将指令提前放入队列; CPU和其他处理器的连接部分三、多模块存储器单体多字系统即一个存储体,增加存储器字长W—>4*W;每个存取周期,CPU从内存中取一个字W,增加了字长后,一个.....

2022-06-05 14:14:14 1272

原创 存储器概念

结构:阵列结构,行(字)*列(位);地址总线位数等于地址线根数n;寻址范围为2的n次方,且大于等于行数;组成:主要有4部分,存储体、地址译码器、总线(数据/地址/控制)、寄存器(数据/地址)读过程:1.通过地址总线将地址送到地址寄存器,通过译码器,选择一个字;2.打开数据总线;3.通过控制总线发出读信号,将选择的字送到数据寄存器,再送到数据总线。写过程:1.通过地址总线将地址送达地址寄存器,通过译码器译码,选择一个字;2.打开数据总线,送入数据到数据寄存

2022-06-04 13:22:31 141

VCS Release Notes

VCS Release Notes

2023-04-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除