自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在SystemVerilog中,rand_mode(0)和constraint_mode(0)的区别

用于关闭某个约束条件。,用于关闭某个被声明为。仍会被随机化,但不再受。

2025-03-14 16:30:00 209

原创 sv语言break和return的使用区别

sv语言break和return在foreach中的区别

2025-03-13 11:19:37 319

原创 sv语言中关于task传递二维数组及参数问题

SystemVerilog中,当参数列表包含动态数组和其他参数时,必须使用typedef明确数组类型,否则编译器无法解析参数类型,导致错误。在没有size时可能因为编译器隐式处理而通过,但添加size后参数结构变化,需要显式类型定义。笔者用task想要同时如下传一个二维数组和参数发现vcs会编译报错,去掉int size编译通过。

2025-03-07 17:42:00 204

原创 UVM寄存器模型后门访问硬件层次结构路径规则

通过 RTL 或验证工具(如 Synopsys VCS、Cadius)生成路径映射文件,自动填充到 UVM 模型中。在 UVM 寄存器模型中,后门访问能够帮助我们完成寄存器的测试。,宽度为 32 位。

2025-02-21 11:36:38 461

原创 SystemVerilog 中ref 的作用

在中,ref关键字用于将参数通过引用传递给函数或任务,使得在函数或任务中对该参数的修改会直接影响到调用者的变量。ref。

2024-11-13 17:44:29 599

原创 Verilog 中的位宽运算(bitwise operations)归纳

在 Verilog 和 SystemVerilog 中,位宽运算(bitwise operations)是对二进制数字进行操作的常见操作。这些运算符直接对操作数的每一位进行计算,常用于硬件设计和数字电路仿真。以下是常见的位宽运算符及其说明

2024-11-06 15:52:26 543

原创 寄存器模型无法通过前门访问reg_block里域问题

承接文章内容(通过该脚本生成寄存器模型)利用该寄存器模型对block的具体域做访问过程会报UVM_WARNING问题探究

2024-11-05 14:46:58 338 1

原创 为什么testbench中接口 信号用非阻塞赋值(<=)

在 testbench 中使用非阻塞赋值的主要原因是模拟硬件的并行行为和时钟同步,避免顺序依赖问题,确保多个信号的更新不会互相干扰。它使得信号更新的时序与实际硬件设计更加一致,并提高了仿真性能。

2024-11-05 10:52:55 391

原创 linux系统下添加工作区(workplace)的方法

Linux下添加工作区的方法

2024-08-26 10:24:40 1657

原创 如何利用寄存器模型对32为寄存器进行byte访问测试

给出了在UVM和SystemVerilog中,可以通过以下步骤来实现对32位寄存器的按byte写入和分段读取,并对读取回来的数据和期望数据进行对比,并在出现错误时进行报错的代码。

2024-07-12 15:14:31 1060 3

原创 cadence公司软件imc查看代码覆盖率问题

imc收statement覆盖率中的simulation statements can be viewed in blocks tab问题

2024-07-12 14:32:01 1096

原创 AXI总线寻址选择对照表

AXI 总线协议是基于 burst 的,并且主设备通过发送一次传输中第一个字节的地址和控制信息开始一次 burst 交易。Burst传输过程中,从设备负责计算 burst 中所有数据的地址。Burst 不能超过 4KB 的范围,防止在从设备之间超过范围,也限制从设备内地址增量的大小。

2024-03-26 09:54:25 649

原创 systemverilog中::和.符号的区别

:为域索引符,用于从一个域中索引某些类型,变量和方法,例如std::randomize()函数,是从预定义的std库中来引用randomize函数,不支持动态索引。.为层次化索引符号,可以用来索引绝对路径或相对路径下的变量,在SV搭建的验证环境中可以通过,可以索引结构体变量的成员也可以调用目标中的函数。

2024-03-15 18:49:44 247 1

原创 寄存器模型读/写操作后没有结束

我在利用Axi_vip做验证过程中发现调用uvm_reg::write操作发起之后没有结束,仿真挂死,本文介绍了这种情况常见原因及解决方案

2024-03-15 14:50:23 538 1

原创 简单高效,3步自动化生成UVM寄存器模型

验证工程师搭建寄存器模型既可以手写,也可以利用脚本转化实现,但是手写寄存器模型可能出现潜在错误,寄存器越多存在的风险越大,会影响后期验证平台的调试。使用寄存器模型生成脚本一方面可以减少错误,一方面可以加快平台搭建速度。本文介绍了一种简单为寄存器模型自动生成方法

2024-03-15 14:11:39 1333 4

原创 AXI 协议握手机制详解

数据在主设备和从设备之间传输,主设备通过写数据通道写数据到从设备, 通过读数据通道从从设备读取数据。写交易中,所有数据流从主设备流向从设备, AXI 协议提供一个额外的写响应通道,用于从设备通知主设备写交易完成。一个 AXI 模块的 VALID 信号不能依赖于另一个模块的 READY 信号,READY 信号可以等 VALID 信号可以在发送 VALID 信号之后发送 READY,也可以在发送 VALID 信号之前将READY 信号置为默认值,这样做可以得到更高效的设计。

2024-03-13 18:31:33 1152

原创 我的创作纪念日

通过解决问题、优化设计,我积累了丰富的经验,而这些经验不仅深刻影响了我的专业技能,也激发了我分享知识的决心。写文章不仅是记录,更是一个“喜剧台本”的创作过程,通过夸张的表达和有趣的插科打诨,将干巴巴的技术内容变得生动有趣。从中我获得了宝贵的反馈,不仅拓宽了我的视野,也提高了我的专业水平。在这个专业的领域里,我坚守初心,不断前行,期望通过自己的努力为电子科技的发展贡献一份微薄的力量。通过实际项目的经验分享和在优快云技术论坛的讨论交流,我在集成电路领域的技术水平得到了显著的提升。

2024-03-13 18:21:09 877

原创 M-PHY状态机详解

介绍M-PHY 5.0版本的FSM及子FSM

2023-11-10 17:37:58 1312 1

原创 UFS4.0 协议之M-PHY

M-PHY基于MIPI(Mobile Industry Processor Interface,移动产业处理器接口),是在移动系统中使用的串行通信协议,具有低功耗和高速率等优势,被越来越多应用到各种接口芯片中,例如PCIe 总线芯片、存储芯片。,在 UFS 闪存芯片中的位置如图所示,物理层 PHY处于整个 UFS 芯片的最底层,其上层依次为协议层和应用层。协议层独立于物理层,通过定义原语函数来实现和上下层的数据对接,避免直接对 PHY 内部进行细节操作,本文依据对M-PHY 5.0协议进行介绍。

2023-11-08 17:49:02 5028 1

原创 UFS4.0 逻辑单元(Logic Unit)简介

简要介绍UFS4.0 逻辑单元(Logic Unit)的特性和组成

2023-11-06 16:09:30 1536

原创 UFS 4.0 数据发送规则

UFS 4.0 协议数据发送规则

2023-11-03 17:30:56 605 1

寄存器模型生成文档(使用方式见文章:简单高效,3步自动化生成UVM寄存器模型)

寄存器模型生成文档使用方式见发布文章:简单高效,3步自动化生成UVM寄存器模型 验证工程师搭建寄存器模型既可以手写,也可以利用脚本转化实现,但是手写寄存器模型可能出现潜在错误,寄存器越多存在的风险越大,会影响后期验证平台的调试。使用寄存器模型生成脚本一方面可以减少错误,一方面可以加快平台搭建速度。以下资源为寄存器模型自动生成的文档。

2024-03-15

寄存器模型生成脚本(使用方式见文章:简单高效,3步自动化生成UVM寄存器模型)

使用方式见发布文章:简单高效,3步自动化生成UVM寄存器模型 验证工程师搭建寄存器模型既可以手写,也可以利用脚本转化实现,但是手写寄存器模型可能出现潜在错误,寄存器越多存在的风险越大,会影响后期验证平台的调试。使用寄存器模型生成脚本一方面可以减少错误,一方面可以加快平台搭建速度。以下为利用phython脚本自动化生产寄存器模型的工具。

2024-03-15

空空如也

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

TA关注的人

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