IC基础知识集
文章平均质量分 90
愤怒学习的白菜
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【UVM】UVM回调简单理解版
UVM 回调机制的使用分为 4 个标准步骤,缺一不可:2️⃣ 关于“不修改原始代码”的澄清 —— 这是个重要误解!问题:换句话说:这就像给插座预留插孔——插孔()早就装好了,你只需要插上不同的插头(回调类),而不用重新布线。基础组件库(如公司级 VIP)→ 在 、、 等类中预先加入标准回调钩子(如 )项目级验证环境→ 直接继承这些带钩子的组件→ 只写新的回调类 + 注册→ 完全不碰原始组件代码例如 UVM 自带的 就内置了回调支持:你只需继承 并注册,就能监控所有 sequence 行原创 2025-12-10 00:52:30 · 694 阅读 · 0 评论 -
【UVM】UVM回调机制与工厂机制深度对比
工厂机制是"换壳",回调机制是"加功能"。特性工厂机制回调机制核心目的替换类的实现(“换壳”)在特定操作前后插入逻辑(“加功能”)关键代码+ 回调类必须实现无回调函数(pre_*post_*调用时机创建对象时组件方法执行过程中影响范围整个类类的特定方法典型场景替换驱动器、序列生成器日志记录、数据验证、时序检查精准实现要点在build_phase中设置1. 在组件中添加2. 在回调类中实现完整回调函数工厂机制是"换壳",回调机制是"加功能"。工厂机制:当你需要改变类的实现。原创 2025-12-10 00:43:27 · 846 阅读 · 0 评论 -
【UVM】三种主流 UVM 配置共享方法(单例类、`uvm_config_db`、参数化类)
/ 公共配置数据结构(推荐单独放在 .svh 文件中)int sn;int fn;} a_s;💡 使用packed可选(非必须),但能提升仿真效率;若需动态数组等复杂类型,则去掉packed。uvm_object特性单例类(Singleton)(推荐)成员变量(Simple)配置隔离性全局共享(无隔离)✅ 按组件路径隔离❌ 无隔离(需手动传参)差异化配置❌ 所有组件用同一份✅ 支持 per-instance⚠️ 需手动管理UVM 兼容性中(自定义)✅ 官方标准低(绕过机制)调试支持。原创 2025-12-03 23:50:17 · 821 阅读 · 0 评论 -
【SV】SystemVerilog中静态方法、变量与默认方法、变量的全面解析
静态成员属于类本身,动态成员属于类的实例。静态成员在编译时初始化,动态成员在实例化时初始化。静态成员:属于类本身,所有对象共享,编译时初始化动态成员:属于对象实例,每个对象独立,实例化时初始化静态方法:通过类名调用,只能访问静态成员动态方法:通过对象调用,可以访问静态和动态成员。原创 2025-12-03 22:39:51 · 624 阅读 · 0 评论 -
【SV】SystemVerilog 进程控制与事件触发类语句全面解析
本文全面解析SystemVerilog中的进程控制与事件触发类语句,包括@、wait、always @和iff等关键字。这些语句主要用于控制仿真行为、同步多线程和响应信号变化,是构建高效验证环境的核心基础。文章通过思维导图将相关语句分为6大类:事件触发与敏感列表类、条件等待与阻塞控制类、事件限定与过滤类、进程启动与并发控制类、断言与采样事件控制类以及定时与延迟控制类。重点对比了@与wait、always_comb/always_ff与传统always @(*)的区别,并强调优先使用wait(conditio原创 2025-11-28 20:38:33 · 865 阅读 · 0 评论 -
【SV】SystemVerilog中逻辑运算符与按位运算符的区别及IC验证实际应用
在条件判断中,永远使用逻辑运算符&&||!而不是在位操作中,使用按位运算符而不是ERROR_FLAG;短路特性是IC验证的关键使用&&和||可以避免不必要的函数调用在验证环境中,这能防止很多潜在的错误🧠避免常见错误不要用或进行条件判断不要用进行逻辑判断。原创 2025-11-27 23:44:24 · 958 阅读 · 0 评论 -
【SV】SystemVerilog 关联数组在IC验证中的五大核心应用场景
关联数组不是“高级技巧”,而是现代验证工程师的“呼吸方式”。它让代码更简洁、仿真更高效、调试更轻松。当你面对“如何快速从 MAC 找到队列”这类问题时,别再遍历数组了——一个exists()+ 一次哈希查找,就是答案。希望本文能助你在验证之路上走得更快、更稳。欢迎在评论区分享你的关联数组实战案例!📌 附:五大场景速查表场景键类型值类型典型用途核心优势1. 寄存器映射stringbit[31:0]寄存器模型名字查找直观2. 错误统计stringint日志分析自动扩展3. 稀疏内存。原创 2025-11-27 23:34:02 · 777 阅读 · 0 评论 -
【SV】SystemVerilog数组声明深度解析:bit[7:0]a[7:0]与bit[7:0]c[0:7]的正确使用
维度硬件设计(RTL)软件/验证(TB)核心目标与物理电路一致与逻辑设计一致索引方向[7:0](高→低)[0:7](低→高)典型场景寄存器映射、FIFO、总线协议状态机、数据缓冲、测试序列错误成本高(可能导致硬件无法工作)中(可能导致测试失败,但不影响硬件)代码可读性重点匹配硬件手册匹配程序员直觉资源效率[7:0]无额外计算,资源最优[0:7]无额外计算,符合软件习惯💡终极建议在硬件设计中,永远用;在验证/软件中,永远用。这不是个人偏好,而是硬件设计的黄金法则。原创 2025-11-27 10:54:23 · 429 阅读 · 0 评论 -
【SV】SystemVerilog事件机制深度解析:为什么`@e`和`wait(e.triggered())`会导致完全不同的结果?
@e。原创 2025-11-26 17:11:23 · 671 阅读 · 0 评论 -
【SV】SystemVerilog位操作符详解:流操作符与移位运算符
⚠️ SystemVerilog中没有和用于循环移位!循环移位必须通过位连接操作符实现。3. 实际应用场景应用场景代码示例说明AES加密MixColumns步骤中的位移CRC校验位处理中的循环移位SPI协议串行数据移位处理帧同步以太网帧同步标志处理位反转快速实现4位位反转四、思维导图:SystemVerilog位操作符关系#mermaid-svg-VgpJItAGF7HmiIzv {font-family:"trebuchet原创 2025-11-26 15:11:45 · 890 阅读 · 0 评论 -
【SV】SystemVerilog结构体详解:使用场景、区别与应用
在SystemVerilog中,结构体(struct)是组织相关数据的关键机制。本文将系统阐述三种结构体声明方式的使用场景、技术区别、优缺点及典型应用,为硬件设计提供清晰指导。原创 2025-11-26 10:59:43 · 592 阅读 · 0 评论 -
【SV】如何正确检查 `logic` 变量是否为 `X` 或 `Z`?
想检查什么正确写法检查是否为 X 或 Z✅ 推荐检查是否为 X(单比特)a === 1'bx检查是否为 Z(单比特)a === 1'bz检查是否为确定值(0 或 1)!❌X和Z不等于整数 2 和 3。✅ 检查logic是否为X或Z,应使用。✅ 使用===而不是==来比较X/Z。✅是最简洁、最安全、推荐的方式。");end这样写,清晰、安全、符合硬件语义。原创 2025-11-26 10:02:00 · 255 阅读 · 0 评论 -
SV速通-偏验证
SystemVerilog 是数字系统设计和验证的必要语言。其高级功能使其成为创建全面且健壮测试平台的通用工具,提高了验证过程的质量和效率。SystemVerilog 凭借其高级功能和 UVM 等强大的方法论,是混合信号和数字设计验证中必不可少的工具。该语言的通用性与 UVM 等方法论相结合,确保测试平台不仅高效,而且提供高覆盖率,从而提高被测设计的可靠性。always 块在硬件描述语言中是描述数字电路响应变化或事件的关键结构。它与硬件的事件驱动特性紧密相关,能够模拟组合逻辑和时序逻辑。原创 2025-11-22 05:14:25 · 675 阅读 · 0 评论 -
UVM速通
通用验证方法学(UVM)是一种用于验证数字设计功能和性能的标准化方法学。UVM 基于 SystemVerilog(SV)构建,代表了提高设计和验证效率的著名最佳实践的集大成者。UVM 为验证过程带来了显著的标准化和可重用性,使设计和验证工程师能够创建灵活、模块化且可在多个项目中使用的测试平台。它是一种基于类的验证方法学,利用 SystemVerilog 的面向对象编程(OOP)特性,如封装、继承和多态性,来提供这些优势。原创 2025-11-23 23:40:30 · 906 阅读 · 0 评论 -
【SV】SystemVerilog 中 `new` 关键字的权威用法详解(附常见误区澄清)
用法类型正确语法作用说明重要提示创建类实例创建对象并调用构造函数类必须有构造函数创建动态数组分配指定大小的动态数组数组索引从 0 开始创建队列创建空队列(大小动态变化)无需指定初始大小构造函数配合类的初始化方法无构造函数则自动调用默认对象浅拷贝两个句柄指向同一对象(浅拷贝修改 obj1 会影响 obj2对象深拷贝手动复制对象内容(深拷贝需在类中实现copy方法❌ 常见错误SystemVerilog 无效语法!切勿使用!new= 内存分配 + 构造函数调用对象复制 = 浅拷贝(原创 2025-11-26 00:39:41 · 421 阅读 · 0 评论
分享