自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UVM宏与工厂机制详解

工厂模式是UVM验证方法学的核心,通过解耦对象的创建与使用,大幅提升了验证环境的可扩展性和复用性。例如,在回归测试中,仅需覆盖基类即可快速切换不同实现,无需修改原有验证组件代码。将类的“模板”存入工厂,后续可通过工厂动态创建实例,支持类型覆盖和批量生成。:通过覆盖机制,可在不修改原有代码的情况下替换组件类型(例如用子类替换基类)。:允许在运行时替换组件类型,提升验证灵活性(如测试不同场景时替换激励生成器)。:检查当前类是否被用户定义的类覆盖(如测试用例中的类型替换)。宏,将类注册到UVM工厂中。

2025-02-21 08:44:32 651

原创 UVM类库地图

首先,核心基类提供最底层的支持,包括一些基本的方法,如复制、创建、比较和打印。环境组件类则是构成验证结构的主要部分,组件之间的嵌套关系通过层层例化和连接形成结构层次关系。信息报告类使得从UVM环境报告的信息一致规范化,便于整体的控制和过滤。最后,寄存器模型类用来完成对寄存器和存储的建模、访问和验证。层次化的组件通过phase机制可以有序完成环境的创建、连接和运行,同样,层次化的sequence通过test可以完成不同的测试场景。·事务(transaction)和序列(sequence)类;

2025-02-19 08:32:37 546

原创 SystemVerilog的时钟采样问题

我曾被时钟采样问题困扰过,由于这个问题导致的仿真行为和预期不匹配,让我定位了非常久,至今记忆犹新。有时候clk1和clk2甚至是同频不同相位的,但是前仿真又体现不出来。这些情况往往是很难精确把控的。这样可以将仿真调度问题简化。这样将采样时间片完全区分开,由于所在仿真时刻不同,不存在仿真调度问题,也便于定位。实际芯片项目中,往往时钟情况会更复杂一些,比如下面这种必须要使用DUT内部产生的时钟给环境使用等情况。例子1:时钟被替换导致采样时间片后延 例子2:在program中进行采样。

2025-02-08 23:12:56 531

原创 SystemVerilog如何区分设计区域和验证区域

SystemVerilog 通过语法结构、代码组织和仿真/综合工具的区分,明确地将 **设计区域(Design Domain)** 和 **验证区域(Verification Domain)** 分开。| **语法结构** | `module`, `always_ff`, `assign` | `program`, `class`, `interface` |- 使用 **`program`**、`class`、`interface` 等面向对象和高级验证结构。

2025-02-07 08:43:40 540

原创 SystemVerilog模块定义例化及接口

此外要再次强调,如果用interface中的信号与DUT相连接,那么应该是四值逻辑,即logic/reg/wire等,而不是二值逻辑(bit/int/byte等)。在设计中,我们要求所有变量都要通过宏来表示,没有宏名称表示的数字,我们会戏称其为“魔鬼数字”,因为其含义需要追溯才能理解,不便于调试及模块代码传承。这里往往是要求强制执行的,原因还是团队成员流动导致的验证水平的差异,我们需要通过明确的规则来抹平这个差异,让整个团队每个成员都能够在及格线上工作,提升流片成功率。

2025-02-04 23:11:38 468

原创 SystemVerilog变量的符号

过年这几天,偷懒了,没有认真创作,但是素材收集了一些,今天专门聊聊变量的符号,我们只从书中的一个点来切入。引用《漫游》原文:从仿真器得到的结果是:如果按照有符号和无符号的类型划分,那么可以将常见的变量类型划分为:·有符号类型:byte、shortint、int、longint、integer。·无符号类型:bit、logic、reg、net-type(如wire、tri)。

2025-02-03 21:23:51 928

原创 SystemVerilog中数据类型的一些关键点

虽然做了这么久的验证,但实际上基本技能很早就没有再系统性的学习过了,很多SV的语法和UVM的特性其实可以在关键节点上解决实际问题,但由于平时用的很少,真的需要的时候,是联想不起来的,所以今后的文章,我依然会优先以《漫游》中SV和UVM的内容为主,系统的输出完成后,再针对前面的部分进行阐述。因为其他变量默认值为0,可能会导致误收集,这种可能性,在实际验证项目中,会被放大,因为团队成员是流动的,验证水平参差不齐,所以一般会制定这样的规则,强制要求功能覆盖率必须用logic类型进行声明。

2025-01-27 23:23:42 275

原创 关于《芯片验证漫游指南》

可能很多同学更多关注的是后面SV和UVM的部分。但我认为前半部分才是最有价值的,这部分内容是“道”,在这部分的基础上,SV和UVM的“术”才能更好的发挥价值。我后面的创作,都会以《芯片验证漫游指南》这本书为引导,会存在大量的引用,所有引用都会注明原书出处。

2025-01-25 23:07:51 253

原创 今天,开启我的芯片验证之旅

这十年,前后经手验证过将近10颗芯片,完全端到端跟下来的也有3颗,BT、IT、ST、后仿都负责验证过,带过三五人的小团队,也负责过芯片从TR5到TR6阶段的维护工作。正好赶上国内芯片蓬勃发展的浪潮,我希望能够通过这个平台,给这个行业贡献一些力量。之前只是将其当做养家糊口的工作,随着生活条件的满足及年龄的增长,越发需要能够获得认可,实现个人价值。由于早年对职业缺乏规划,现在已经赶不上晋升的班车了。但塞翁失马,焉知非福,我反而能够沉下心来思考自己究竟想要什么。不知不觉,已经在大厂做了十年芯片验证了。

2025-01-23 22:54:24 289

空空如也

空空如也

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

TA关注的人

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