自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 dpi使用介绍

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

2024-05-25 19:13:16 19

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

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

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

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

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

2024-04-12 09:18:02 721

原创 assert debug

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

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

原创 对象的复制

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

2024-01-10 13:10:43 409

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

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

2024-01-09 18:23:54 436

原创 axi4,求awlen

已知awaddr,bksize,求awlen。

2024-01-04 00:13:59 396

原创 axi4,求wstrb

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

2024-01-03 23:59:13 609

原创 UVM中参数化类的使用

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

2023-12-26 14:48:53 705

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

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

2023-11-20 18:10:06 224

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

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

2023-09-27 16:27:01 68

原创 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 79

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

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 65

原创 搭建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 569

原创 CPU & GPU

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

2023-07-10 23:33:19 116

原创 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 879

原创 vcs仿真资源分析

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

2023-07-07 19:19:54 368

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

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

2023-04-09 00:02:18 2257

原创 生成波形相关参数(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 1673

原创 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 893

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

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

2023-03-24 23:05:30 266

转载 与、或、同或、异或

以“与”运算为例说明如下:我们知道在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 7254

原创 verdi基本操作

verdi基本操作

2023-02-16 09:56:36 2354

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

foreach遍历二维数组注意点

2023-02-02 20:21:01 614

转载 vim查找替换

vim查找替换

2022-11-28 16:41:08 510

原创 vim常用命令

vim 的基本操作

2022-11-07 00:07:56 1721

原创 VNC链接和配置

VNC链接和配置

2022-10-09 10:47:50 766

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

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

2022-08-09 09:24:52 385

原创 shell相关命令总结

shell相关命令总结

2022-07-25 19:56:03 361

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

Makefile相关语法总结(Openc910)

2022-07-25 19:49:12 544

原创 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 3475

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

关联数组

2022-06-09 13:55:34 643

原创 虚拟存储机制

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

2022-06-05 14:29:01 253

原创 并行存储结构

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

2022-06-05 14:14:14 1156

原创 存储器概念

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

2022-06-04 13:22:31 94

原创 CPU程序中断

中断概念计算机在执行程序过程中,遇到异常情况或者特殊请求时,暂停当前程序,转而处理异常,处理结束后返回程序的间断处,继续执行原程序,这就是中断。中断源包括哪些? 人为设置中断 程序性中断,如除法非法,操作码不能识别 硬件故障,如突然断电 I/O设备发送中断请求,如向内存发送读写请求 外部事件,如按键各中断源如何向CPU提出中断请求?中断请求标记触发器 置1; 每个中断源对应一个触发器,多个触发器组成中断请求寄存器;CPU什么条件下会响.........

2022-06-04 13:00:56 2110

原创 risc_v 汇编指令(1)

bgtz:-用法:bgtz rs,offset;作用:if rs > 0 then branchblez:-用法:blez rs,offset;作用:if rs <= 0 then branchbne:-用法:bne rs,rt,offset;作用:if rs != rt then branchbeq:-用法:beq rs,rt,offset;作用:if rs = rt then branch,将地址为rs的通用寄存器的值与地址为rt的通用寄存器的值进行比较,如果..

2022-05-27 09:52:34 3266

原创 SV 知识点细节(二)

get_name(), get_full_name(),get_type_name() $display(“%0s”,get_name()); //打印当前类所实例化的名字 “u_jerry_so_cool” $display(“%0s”,get_full_name()); //打印当前类所实例化的路径 “uvm_test_top.u_jerry_env.u_jerry_so_cool” $display(“%0s”,get_type_nam.

2022-05-26 21:23:27 3289

原创 SV 知识点细节(一)

1. `ifndef 条件编译 它是if not define 的简写,最主要目的是防止头文件的重复包含和编译; 用法如下:'ifndef DV_CHECK //先测试DV_CHECK 是否被宏定义过 'define DV_CHECK(T_, MSG_="") 程序段1 //如果没有被宏定义过,定义DV_CHECK ,并编译程序段 1'endif 程...

2022-05-26 20:22:11 4145

原创 处理器基础知识(二)

**一、指令格式**一条指令由地址码和操作码组成;操作码:指令的具体操作 (指令的唯一标识)地址码:指定参与操作的操作数的地址码二、操作码分类固定长度所有指令操作码的长度相等 例如:某计算机共有64条指令,采用固定长度操作码,需要6位编码,从000000~111111 2的6次方为64 优点:编码方法简单,便于指令的译码 缺点:不方便指令系统中增加新的指令(扩展不方便)可变长度这是操作码不固定的指令格式,四位是基本的操作码,还可以扩充,但是指令的字数不变,就是说把不

2022-05-25 20:34:27 1183

VCS Release Notes

VCS Release Notes

2023-04-06

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

TA关注的人

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