自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 module命令

module load/add xx:设置某软件的环境变量只需要使用module load 命令加载相应环境变量即可;module av|grep python :把python的grep出来。module list: 查看已经加载上的软件环境。module purge:清空已经加载的全部模块。目的:提供通过模块文件动态修改用户环境的功能。module unload xx:卸载模块。module avail:查看系统可用软件。

2024-04-26 19:19:34 138

原创 vcs编译选项--不常用

值得说明的是,glitch 对 design 是非常不好的,需要规避,设计代码中应该具有检查 glitch 的机制”需要添加仿真选项:+fsdb+glitch=0。默认情况是没有expand delta;1)如何查看波形的毛刺(glitch)2)查看仿真的time_slot过程;仿真选项:+fsdb+delta。参考:公众号:IC学社。参考:公众号:IC学社。

2024-03-24 12:55:44 298

原创 git reset

写完代码后,我们一般这样git add . //添加所有文件git commit -m "本功能全部完成"执行完commit后,想撤回commit,怎么办?这样就成功的撤销了你的commit注意,仅仅是撤回commit操作,您写的代码仍然保留。

2024-03-11 17:15:00 204

原创 system verilog的常用系统函数

是向上取整,x可以是浮点型, $ceil(1.1)=2.0, $ceil(1.8)=2.0。

2024-01-30 11:52:51 393

原创 通过命令行输入参数控制激励

1)在命令行的仿真参数(SIM_OPT)加上:“+var_a=100 +var_b=99”2)在环境中调用:如果命令行存在这个字符,返回1,否则返回0;就可以把命令行var_a的参数100提取出来到tc_var_a变量了$test$plusargs和$value$plusargs作为进行Verilog和SystemVerilog仿真运行时调用的系统函数,可以在仿真命令直接进行赋值,并且不局限于不同仿真器对于参数在仿真命令中定义格式不同的限制,也避免了调换参数带来的频繁编译等问题。

2023-12-09 14:47:22 107

原创 sv&uvm的踩坑案例

另一个问题是,如果子类加了一个变量,再在test这里对这个变量赋值,会报编译错误,说没有在父类找到这个变量;所以推测,外面在赋值的时候其实是对父类已经声明的变量进行赋值。base_class(父类)和extend_class(子类)内部都有相同的变量int var[$];把子类的var[$]删掉后,子类才能看到这个push进来的00;在test的run_phase阶段,赋值:env.refm.var.(type)后,这个类在env这里被实例化,实例化名refm;父子类不能声明相同名字的变量;

2023-09-21 11:16:46 217

原创 git获取远端分支和merge

`` git checkout ``` 其中,``是你要拉取的远程分支的名称。如果这个分支在本地已经存在,Git会自动切换到该分支,并将远程分支的最新代码合并到本地分支。现在,你已经成功将`master`分支的更改合并到了`slave`分支上。``` git fetch origin ``` 这个命令将会将远程仓库`origin`的分支信息下载到本地。这将会将`master`分支的更改合并到当前的`slave`分支上。

2023-08-21 15:48:30 827

原创 system verilog中sv文件和svh文件的区别

来源chatGPT

2023-08-04 15:01:37 3453

原创 新思的DW ECC计算模块

截图新思dw ecc的计算文档内容;

2023-07-26 18:29:59 273

原创 uvm_create和uvm_send

简要说明uvm_create和uvm_send

2023-05-06 14:07:08 265

原创 TCAM与HASH表的差异

记录hash与tcam的关联

2023-05-05 13:48:27 388

原创 CPU方面的学习记录

记录一些与cpu相关的通用知识点;

2023-05-05 13:44:40 121

原创 验证的仿真结束检查和其他检查

记录一些ic仿真结束后应该要检查的内容

2023-05-05 11:25:12 110

原创 X态仿真方面

记录一些网上和实践中遇到的一些X态场景;

2023-05-05 10:32:13 2

原创 verdi常用debug功能

记录verdi中常用的功能,以便自查使用

2023-04-28 09:44:02 1826

原创 S家的AXI vip使用记录

参考vip的example:/share/tools/eda1/synopsys/vip-2021.09/vip/svt/amba_svt/latest/examples/sverilog/tb_axi_svt_uvm_basic_active_passive_sys/env。set给apb_sys_env:uvm_config_db#(svt_apb_system_configuration)::set(this, "apb_sys_env", "cfg", apb_cfg);他们已经做好了归类了。

2023-03-12 19:16:31 3690 4

原创 Interface连接

interface例化连接;

2023-01-29 11:00:13 39

原创 sv 功能覆盖率

覆盖率常见编写;

2023-01-03 16:54:31 391

原创 SV之随机化

1、 约束表达式的求解是由SV的约束求解器完成,满足约束的值是由**伪随机数发生器(PRNG)**从一个初始值(seed)产生,只要改变种子的值,就可改变随机的行为。2 不同仿真工具对于同一个约束类和种子值求解出的数值可能不同3 SV只能随机化2值数据类型,也就是不能随机出X值和Z值,也无法随机化字符串(logic也只能随机出0和1)4 注意定义变量位宽对约束的影响,比如 bit [2:0] month ,只能在0~7中选SV基础知识4----随机化和约束_持续学习_ing的博客-CSDN博客_sv

2022-05-05 19:32:51 1053

原创 XX-工程积累-SS

XSCH的sequence的实现架构:一共是2层;L1层seq的body:create或new L2层的seq; fork join里面调用2个task(get_tr_from_slave_port和send_rsp) get_tr_from_slave_port:主要是在while(1)线程里从slave_port获取DUT发出的req,push_back到一个队列xx_queue里(由L1seq声明的) send_rsp:基于for+fork;会产生多个线程根据req_tr让L2 ...

2022-04-10 15:56:27 326

原创 激励-sequence

模块A与模块B是有来有回的两个模块,典型的场景是调度场景,可能一个request需要多个rsp,可能还有不同通道之间的交织场景等;需要采样模块A的request,发送给与B_agent.seqr挂载的sequence,让它决定发生什么rsp给回模块A;所以需要在B_agent.seqr里面声明一个port,以便sequence能通过这个port得到采样道德request包;对于一些一拍req,一拍rsp,的类型,可以直接agent里面实现,不需要通过slave_sequence这种方式;对于

2022-02-23 21:06:21 202

原创 system verilog之数据结构

1、结构体和联合体(参考黄皮书)联合体:只存储一个元素,这个元素是不同的数据类型;其本质是提供了一种允许多种方式方式来使用同一块存储空间。典型应用:一个值可能是有符号或没符号的,但每次只使用其中一种。typedef union{ // 使用了typedef来定义的这种方式,叫自定义联合体;否则就是匿名联合体 int i ; int unsigned u_i;} data_t每一次读联合体的成员与上一次存储联合体的成员,必须相同,否则会报错。结构

2022-02-16 09:20:23 551

原创 system verilog 宏

1、在双引号里面不能直接使用宏;“`xx_define”:这种是会被视为文本,不会把宏的文本替换过来?`“`xx_define ` ”:要采用这种形式;(参考黄皮书P30)

2022-02-11 08:52:28 1664

原创 APB3和APB4

内容参考:APB协议详解_Ky-CSDN博客_apb协议https://blog.csdn.net/burningCky/article/details/109630018APB2协议的特点:低成本 低功耗 低带宽 无流水线 所有信号都是时钟上升沿有效 进行一次数据传输至少需要两个周期 APB3: 信号 描述 P_clk APB2 时钟。所有信号都是时钟上升沿有效。 P_rese

2022-02-10 09:37:30 6166

原创 .vim插件

autocomplpop自动打开弹出菜单,以便于文字或单词补全。使用本插件后,vim会自动打开弹出菜单并显示相应补全项,它在输入字符或插入模式下移动光标时完成, 不会阻止继续输入字符。autocomplpop插件是以vim脚本的形式存在,因此只需要将其下载下来放到相应的目录即可。具体安装方法如下:1)从下面网址下载taglist的安装包,并解压,得到doc/acp.txt、 autoload/acp.vim和plugin/acp.vim文件;Vim online https://vim.sou

2022-01-25 10:21:12 63

原创 UVM降龙十八掌

第一手:sequence内的方法调用(sequence或item的启动或发送)下面的parent是指父节点。(以下内容参考uvm源码src/seq/uvm_sequence_base)pre_body/start和post_body/start是只用于sequence方面的任务采用start启动sequence会调用以下方法:(可以在test_case和sequence这两层使用start)//| sub_seq.randomize(...); // optional//| sub_

2022-01-11 19:21:38 682

原创 system verilog(降龙十八掌)

第一式:开启多个线程initial begin 语句1; #10; fork 语句2; 语句3; join_none 语句4; 语句5;end// #0 语句1// #10 语句2,语句3,语句4并发执行// #10 语句4执行完之后才执行语句5。4执行完之后,即使2,3没执行完,也会接着执行5,因为fork块内语句与之后的语句是并行的,不会阻塞之后的语句// 来源:https://www.dazhuanlan.com/ida

2022-01-09 10:44:50 760

原创 SV工程杂记

1、创建多个并行的线程:参考绿皮书P186 例子7.11

2022-01-05 17:53:04 57

原创 linux 工程使用杂记

1、在xx_filename.sv文件的末尾加入 xxx hello world;12334 hello;cat >> xx_filename.sv <<EOFxxx hello world12334 helloEOF>>:输出附加定向符( >> )的作用是把命令/程序的输出附加到指定文件的末尾;这种方式叫 Heredoc。csh、bash 和 zsh 都支持这种语法,是用于给某个指令(示例中就是cat)传递多行参数的,然后 c....

2021-12-30 09:10:04 683 1

原创 VCS和UVM常用编译选项

VCS编译选项 -full64 在64bit模式下编译、仿真,用于64位操作系统 -j8 指定编译器可以并行编译的进程数为8 -timescale=1ns/1ps 指定仿真时间和精度 +libext+.v+.V+.sv+.svh 识别.v、.sv、.svh等多种格式文件 -sverilog 支持system verilog 编译 -f xxx.lisf 指定包含所有设计文件列表的文件名 -top test 设置顶层模块为test。(指包含.

2021-12-26 20:15:48 6026

原创 git 版本管理使用初体验

1、为了解决冲突不得已采用回退版本的方法(记得提前备份好,自己修改的文件)git reflog:可以查看操作记录以及对应得版本号;git reset --hard 版本号 :回退到该版本;(git log 命令可以显示所有提交过的版本信息;加上参数 --pretty=oneline,只会显示版本号和提交时的备注信息)2、不要轻易pull 某一整个分支到自己的分支上;(会带来大量文件冲突,当你想commit或者再pull时)3、创建分支并上传文件到分支:创建分支XXX_..

2021-12-26 12:54:08 273

原创 UVM工程杂记

1、对于一个定宽数组的注册采用下面这种即可:int mai_port[9] ;int mai_XX[] ;`uvm_field_sarray_int(mai_port, UVM_ALL_ON) // sarray for array.size is fixed`uvm_field_array_int(mai_port, UVM_ALL_ON) //2、针对多维度队列注册:int unsigned mqui_XX[4][$] ;foreach(mqui_XX

2021-12-24 11:16:26 1782

原创 system verilog 工程杂记

子类和父类的方法调用问题:(参考绿皮书P227)B extend A;A和B都有方法 fun,且fun前面都有virtual修饰:此时根据句柄指向的对象类型来决定调度谁的fun;如果fun前面没有virtual修饰:则会根据句柄类来决定调用谁的fun,而不是对象类型;......

2021-12-17 10:38:22 2887

转载 uvm_config_db与uvm_resource_db的区别(转载)

1.uvm_config_db与uvm_resource_db的区别与联系(1)uvm_config_db是从uvm_resource_db派生而来的,它对uvm_resource_db的一些功能进行了扩展,这种扩展主要体现在对资源的写入和读取上.(1.1)在资源的写入操作上,它重载了uvm_resource_db的set函数;(1.2)在资源的读取操作上,它新建了一个称为get的函数;(2)uvm_resource_db虽然也是一种用来共享数据的类,但是层次关系在该类中没有作用;...

2021-12-12 13:07:53 2600

原创 python杂记

1、大小写切换:'字符ABC'.lower()#所有字母都转换成小写'字符abc'.upper()#所有字母都转换成大写2、

2021-12-02 09:04:22 613

原创 python正则匹配方面

str = <ab_cd>(ef_g)_<A_B>_interface需求1:删除str中的<>()和里面的字符:import restr = "<ab_cd>(ef_g)_<A_B>_interface"rule_sub = r'<(.*?)>\((.*?)\)' # 建立正则匹配模式的规则tmp_X = re.sub(rule_sub,"",str) # print("tmp_X is %s" % tmp_X)

2021-11-28 11:25:10 497

原创 python从命令行中获取参数(入门)

首先要导入argparse模块argparse模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后argparse将弄清如何从sys.argv解析出那些参数。argparse模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。import argparseimport os # 这里因为调用了os.getcwd()来获取当前路径# 使用 argparse 的第一步是创建一个 ArgumentParser 对象:parse_xls = ar...

2021-11-28 11:13:28 2213

原创 python创建文件夹A1,并在A1里面再创建文件夹A2,再在A2里面创建文件

pythonimport os####### linux 环境 ###### 创建 xx/A1/A2/xxx.svname_A1 = "A1" name_A2 = "A2"file_name = "xxx.sv" # .sv表示文件类型A1_folder_name = your_path_str + "/" + name_A1 if not os.path.exists(A1_folder_name): os.mkdir(A1_folder_name) # create A

2021-11-20 14:38:49 566

转载 python正则匹配两个字符之间的内容(转自:小晓酱手记)

输入:我要听<梁博>的<男孩>输出:梁博 男孩Python 实现:#coding:utf8import reimport sysreload(sys)sys.setdefaultencoding('utf8')template = "我要听<歌手名>的<歌曲名>"def subString(template): rule = r'<(.*?)>' # 正则规则 slotList = re.find...

2021-11-20 14:08:35 5480 1

原创 fifo测试点提取

假设同步fifo深度32,读写2port;fifo测试点:fifo为空时 发起的读使能时,要能输出fifo为空信号fifo已满时 发起的写使能时,要能输出fifo已满信号fifo为快空时 发起的读使能时,要能输出fifo almost_empty空信号fifo快满时 发起的写使能时,要能输出fifo almost_full信号写入33个随机数据到fifo,同时读出fifo数据,测试fifo32个单元都能正常写入和读出和fifo的读写指针的循环翻转;先写入33个0数据到fifo并读出比对,在写

2021-11-14 11:48:05 1490

空空如也

空空如也

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

TA关注的人

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