小小verifier
码龄5年
关注
提问 私信
  • 博客:719,424
    社区:277
    动态:18
    719,719
    总访问量
  • 111
    原创
  • 2,306,591
    排名
  • 37,087
    粉丝
  • 850
    铁粉

个人简介:材料转IC验证,分享每天学习笔记和心得...Keep hungry!Keep foolish!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2020-05-02
博客简介:

SummerXRT的博客

查看详细资料
个人成就
  • 获得1,537次点赞
  • 内容获得393次评论
  • 获得10,678次收藏
  • 代码片获得3,008次分享
创作历程
  • 2篇
    2022年
  • 109篇
    2021年
成就勋章
TA的专栏
  • systemverilog
    23篇
  • 工具使用
    10篇
  • UVM
    21篇
  • 脚本语言
    4篇
  • 计算机组成原理
    2篇
  • 计算机基础
    3篇
  • 交换机
    1篇
  • assertion断言
    4篇
  • 经验总结
    1篇
  • verilog
    18篇
  • Debug总结
    2篇
  • 笔试题
    7篇
  • 工作空间
  • 验证杂谈
    3篇
  • 总线协议
    9篇
  • 项目笔记
    5篇
  • 数字电路基础知识
    5篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

uvm_reg_bit_bash_seq 源码分析

文章目录1.源码解析2. 知识点补充有关 uvm_reg_hw_reset_seq 源码请看: uvm_reg_hw_reset_seq 源码 。uvm_reg_bit_bash_seq 会对reg_model 中每个可以读写的寄存器域分别写入 0 、1,然后再读回,用于检查寄存器的每个bit的读写功能是否正常。1.源码解析1.先将reg_model 复位。2.通过搜索 resource_db,判断哪些 reg_block 和 reg 不需要测试。然后对每个需要进行测试的reg 进行 sin
原创
发布博客 2022.01.10 ·
6680 阅读 ·
16 点赞 ·
9 评论 ·
70 收藏

uvm_reg_hw_reset_seq 源码分析

文章目录1.代码解析2.知识点补充设置reg不测试关于resource_dbuvm_reg_hw_reset_seq用于初期检查DUT中的寄存器硬件值是否与reg_model 中的复位值一致,防止设计在实现时弄错复位值。1.代码解析1.先reset reg_modle 。将reg_modle中的镜像值和期望值复位。2.判断是否在外部设置了哪些 reg_block 不需要进行 reset 测试 。3.判断是否有哪些 reg 不需要测试。4.对所有需要进行测试的 reg 通过前门的方式读回DU
原创
发布博客 2022.01.10 ·
3269 阅读 ·
7 点赞 ·
0 评论 ·
38 收藏

Arbiter的仲裁方案 — 数字IC验证

    最近在做一个对同一个RAM访问的 Aribiter,由此想到了一些有关arbiter仲裁方案的思考。下面介绍几种方案,并分析其中的优劣。方案一:固定优先级    比如我有8个 port 同时向 Aribiter 发送请求,Arbiter的总裁波形有两种情况,如下:情况一:情况二:考虑最 worse 的情况,根据上面冲裁方案(情况一),由于port8的优先级最低,最worse情况如下:当前port1、…port7 同时request,进入仲裁后,下一拍 port8 request
原创
发布博客 2021.12.24 ·
5738 阅读 ·
6 点赞 ·
0 评论 ·
33 收藏

正则表达式

????通过perl来介绍正则表达式。快速入门    先写一个最简单的正则表达式,查到是否有匹配的字符串,如下:$_ = "little verifier";if(/little/){ # 查找 little 字符 print "find it!
";}else{ print "cannot find it!
";}    如上,我们可以用 / 斜杠符号作为开始匹配正则。用/ … /的方式,在其中写正则表达式。其实/ … / 的方式是 m 匹配的简写,你可以用m{ }、m( )、
原创
发布博客 2021.12.23 ·
1009 阅读 ·
3 点赞 ·
1 评论 ·
11 收藏

Perl脚本 — 数字IC验证

文章目录一、基本语法1.1 标量1.1.1 数字1.1.2 字符串1.1.3 标量的定义1.1.4 标量的赋值1.2 列表与数组1.2.1 定义列表与数组1.2.2 数组的索引1.2.3 关于 qw 的使用1.2.4 关于$_的使用1.2.5 数组的存取1.3 上下文1.4 子程序1.4.1 定义子程序1.4.2 传递参数1.4.3 静态变量二、输出2.1 读取文件2.2 输出文件三、哈希一、基本语法1.1 标量    Perl中两个最基本的变量,即标量和列表。标量可以是数字和字符串。1.1.1 数
原创
发布博客 2021.12.22 ·
3976 阅读 ·
7 点赞 ·
2 评论 ·
125 收藏

typedef class 的使用 — SystemVerilog,sv

    在同一个文件中有好多的类,如果两个类之间都需要另一个类的句柄。,当编译器在处理第一类声明的过程中,编译器遇到对第二个类C2的句柄声明,此时对第二个类的引用还未定义,编译器这时会一个未定义的错误。如下所示:    这时我们就可以使用typedef class的方式,将第二个类提前声明。此外,诸如 sequencer 中我们一般不做特别的处理,所以我们可以使用如下的方式,可以避免去再写一个sequencer 的类。typedef uvm_sequencer#(my_transaction) my_
原创
发布博客 2021.12.21 ·
5958 阅读 ·
8 点赞 ·
2 评论 ·
35 收藏

VCS的ralgen命令产生UVM寄存器模型

文章目录前言一、寄存器描述表格二、生成 .ralf 寄存器文件2.1 field2.2 register2.3 register block2.4 system三、产生UVM寄存器模型前言    在验证时,寄存器模型是必不可少的一个环境,且在项目中可能面临着需要不断更新迭代的需求。那么如何快速建立 UVM寄存器模型 呢?采用VCS ralgen脚本的主要步骤如下:中心化的寄存器描述文件,如 ods、CSV、XML等;根据寄存器描述文件产生ralgen需要的 .ralf 格式的寄存器文件;vcs的
原创
发布博客 2021.12.16 ·
6535 阅读 ·
13 点赞 ·
6 评论 ·
120 收藏

以太网交换机的通识

前言在介绍交换机之前,首先要了解的 OSI 七层网络模型。1.OSI 七层网络模型序号名称描述一层物理层(PHY)负责驱动网络上信号的收发器,发送和接受位 。二层数据链路层(MAC)负责创建在网络上传送的帧,包含mac地址的帧。三层网络层(IP)负责创建在网络上传送的包,包含IP地址的包。四层传输层层(TCP/UDP)负责不同主机上的应用程序之间建立连接。五层会话层六层表示层七层应用层应用层是一组需要网络通信的应用程
原创
发布博客 2021.12.14 ·
4055 阅读 ·
1 点赞 ·
0 评论 ·
21 收藏

计算机网络笔记

文章目录一、基本概念1.1 计算机网络的分类1.2 计算机网络的性能指标1.3 OSI参考模型一、基本概念    计算机网络是互联的、自治的计算机集合,是为了实现数据通信、资源共享、分布式处理等功能,其主要由硬件(光纤、路由器、交换机等)、软件(QQ、微信等)、协议组成。1.1 计算机网络的分类按照不同角度分,如下:按照分布范围分:广域网WAN(使用交换技术)、城域网MAN、局域网WNA(使用广播技术)、个人局域网PAN ;按使用者分:公用网(如电信、移动)、专用网(如军队银行、铁路系统网路)
原创
发布博客 2021.12.13 ·
2791 阅读 ·
4 点赞 ·
0 评论 ·
7 收藏

减少仿真时的内存占用-- systemverilog,UVM

????此篇文章会随着工作年限的增加,持续更新…文章目录1. transaction 的例化方案一方案二方案二小结1. transaction 的例化你是不是习惯性的在 monitor 的 forever 循环中不停的例化 transaction 对象,如下:my_transaction trans;task my_monitor::main_phase(); forever begin ... // wait sample condition trans = new("trans");
原创
发布博客 2021.12.08 ·
1765 阅读 ·
5 点赞 ·
0 评论 ·
16 收藏

UVM寄存器模型的作用和优势?

文章目录一、对寄存器模型的配置怎么反映到总线上?二、怎么保证寄存器模型与寄存器保持一致 ?三、寄存器模型的优势?????寄存器模型的基础知识可以看:UVM寄存器模型寄存器模型是根据寄存器描述文档所建立,是真实硬件寄存器在软件世界的模型。在验证的过程中,只有先保证寄存器的功能正确,才能使寄存器模型能够准确反映硬件的状态。那么怎么通过寄存器模型完成对寄存器的访问?寄存器模型又具有什么样的优势呢?一、对寄存器模型的配置怎么反映到总线上?这其中关键的一环就是adapter的事务级转换 和 map 提供寄
原创
发布博客 2021.11.30 ·
3818 阅读 ·
10 点赞 ·
1 评论 ·
78 收藏

UVM仿真时@事件无效

这两天出现了一个很让我费解的bug,暂时还没有找到具体的原因。如下:BUG: @(vif.mon_cb) 时钟事件没有等待一个clk。source:有可能相邻的时钟事件被合并。​ 代码如下:​ 仿真log如下:solution:方案一:不要用 clocking 的方式方案二:如果非要用 clocking ,可以加一个很小的 delay。...
原创
发布博客 2021.11.22 ·
983 阅读 ·
0 点赞 ·
1 评论 ·
6 收藏

UVM中sequence的启动方式

你是否在面试或笔试中被问到了sequence有哪些启动的方式?今天就来梳理一下sequence的启动到底有哪些。
原创
发布博客 2021.11.22 ·
2767 阅读 ·
4 点赞 ·
1 评论 ·
28 收藏

域的自动化—UVM

????最近在写代码时,常常忽略了field automation机制带来的便利性,这里做一个全面的总结。下面我将分为 object 和 component 类型的对象中做域的自动化。首先,常用的宏包括:uvm_field_int(arg,FLAG) ,需要传递:变量+ 标志位uvm_field_enum(T,arg,FLAG) ,需要传递:类型+ 变量+ 标志位uvm_field_object(arg,FLAG)uvm_field_string(arg,FLAG)uvm_field_arr
原创
发布博客 2021.11.18 ·
4655 阅读 ·
10 点赞 ·
0 评论 ·
89 收藏

dump fsdb波形文件

前言dump fsdb文件主要有两种方法:在Verilog的TB中调用系统函数;使用 ucli / tcl的命令行;一、调用系统函数在TB里面直接调用系统函数,操作是比较简单,但是受限比较明显,其实不推荐使用。1.tb调用系统函数可以直接在TB中加入这样一段Verilog代码,initial begin if($test$plusargs("DUMP_FSDB")) begin #仿真时添加条件判断是否需要dump fsdb $fsdbDumpfile("TEST.fsdb");
原创
发布博客 2021.11.09 ·
7852 阅读 ·
6 点赞 ·
1 评论 ·
90 收藏

Makefile脚本启动VCS+Verdi

文章目录一、快速入门二、Makefile的语法1.语法格式2.命令执行3.变量三、VCS仿真1.VCS常用命令注:主要侧重于VCS仿真时的Makefile入门介绍。一、快速入门Makefile带来的好处就是自动化编译和仿真,只需要一个 make 命令。make是Linux下的二进制程序,在shell命令行键入make命令时,将自动寻找名称为“Makefile”的文件作为编译文件。格式:make [option] [target] …二、Makefile的语法1.语法格式形式一:tar
原创
发布博客 2021.11.08 ·
14525 阅读 ·
48 点赞 ·
3 评论 ·
542 收藏

Python的脚本(二)

下面关于一些Python处理文件的脚本。一、解析CSV文件产生Systemverilog代码csv库中常用的方法,包括:方法描述reader( )返回一个列表对象,逐行读csv文件。默认每一行读取一个字符串组成的列表csv.DictReader( )返回一个字典对象,逐行读取文件。以第一行为每一列的key值,对象.write( )向文件中写入从一个最简单的解析csv文件的脚本开始。import csv #导入Python标准库sourceFile =
原创
发布博客 2021.11.04 ·
1279 阅读 ·
1 点赞 ·
0 评论 ·
16 收藏

Python学习(一)

快速入门1.Linux系统中是可以直接使用Python进行编程,具体如下:进入Python:在linux的Terminal中输入 Python ,进入Python的命令行;退出Python:在linux的Terminal中输入quit() 或 exit() 或 ctrl +d ,再回车,退出Python的命令行。2.python的源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件做Python的开发。3.Python程序的文件扩展名通常都是 .py。4.执行Python程序的方式:在
原创
发布博客 2021.11.04 ·
1076 阅读 ·
6 点赞 ·
0 评论 ·
19 收藏

从材料到芯片验证,是逃难还是人生的机遇?

  大家好,我是小小verifier。22届秋招进入尾声,一直想写这一篇转行经验贴,分享我的转行历程,并给即将要转行IC验证的同学一点小小的建议。  我是材料双非本、211硕,因为遇到神仙课题组,彻底地断了我想读博的念头。近三四年来,课题组每届超过70%以上延期拿学位甚至拿不到学位。本来就身处四大天坑,外加没有学位,找工作的时候连乞丐都不如。无能狂怒之后的无奈,心里着实咽不下这口气,我开始尝试各种转行的可能。2020年2月份,疫情爆发让我有幸在家自学了4个月的java,然后因为种种原因放弃了转Java的打
原创
发布博客 2021.10.17 ·
6098 阅读 ·
93 点赞 ·
39 评论 ·
166 收藏

AXI协议

前言AXI是一个并行总线,其主要特点包括:读写通道分离;支持多次对数据操作的请求(multiple outstanding address),一般支持8、16、32个outstanding;写地址和数据之间不是严格的先地址再数据,有些可能是先数据再地址;支持不对齐的数据传输;支持乱序访问;burst传输时不需要像AHB那样每笔传输都指定它的burst类型和地址,只需要指定首地址和对应的属性;channel signalsAXI 有5个通道,包括Write Address Channel
原创
发布博客 2021.09.13 ·
4508 阅读 ·
10 点赞 ·
0 评论 ·
96 收藏
加载更多