- 博客(16)
- 收藏
- 关注
原创 第2章:设计类和对象的属性与行为
在面向对象设计中,**属性(属性/成员变量)方法(函数/操作)**是构建类的两个关键要素。我们通过访问器(accessor)和变更器(mutator)方法,来安全地访问和修改对象的数据。这是实现封装的基础方式。
2025-04-23 10:52:34
390
原创 第1章:面向对象的基本概念
对象(Object)是面向对象程序设计的核心概念,它是数据(属性)和行为(方法)的封装体。你可以将对象理解为现实世界中的某个“事物”,比如一本书、一辆车、一名学生,它们都有自己的特征和能执行的动作。
2025-04-23 10:51:58
275
原创 AXI 写事务 wstrb [valid_write_strobe_check]错误问题调试记录
该错误指示AXI 写通道的wstrb与wdata不一致,违反了 AMBA AXI 协议的写数据对齐要求。检查项说明是否按 beat 对齐地址awaddr是否 128 字节对齐是否根据 offset 偏移放数据wstrb和wdata是否从开始填入wstrb=0对应位置是否清 0否则触发VIP 报错是否真实对应当前 beat有时是前一拍或后一拍错位本次问题的根因不在数据内容,而在写入位置未对齐地址偏移,这是高位宽度 AXI 写事务中最容易出错的陷阱之一,尤其当数据不是从 Byte[0] 开始写时。
2025-04-22 15:05:45
283
原创 AXI VIP Reset 调试完整记录与版本行为差异分析
✅ 使用新版本 AXI VIP,可避免 reset 时因 monitor 死循环、handle 未归还导致仿真卡死;✅ 使用精准定位卡死根因;✅ 若保留旧版本,需在 monitor/ref_model 加入reset_test判定逻辑;✅虽真实模拟,但需搭配对象回收保护机制;✅较温和,需在 reset 后手动清理 ref_model。
2025-04-21 20:58:19
621
原创 AXI VIP Reset 测试配置与调试问题记录
本次问题由配置✅ 首选使用✅ 或在使用时加入发包状态判断,避免冲突✅ reset 控制中设置好reset_test状态标志,便于多线程判断同步通过这次调试过程,不仅对 AXI VIP reset 类型行为有了清晰认识,也建立了 reset-case 调试与验证的基本流程。如需配套.md导出、reset-case waveform 示例、或 AXI monitor 中保护机制封装方法,可继续拓展。
2025-04-17 20:50:29
866
原创 UVM 中 Phase Jump 与 Reset 调试思路指南
通过「停线程 → 清数据 → 配置 VIP」的顺序,就能在任意 UVM 项目中获得干净可控的复位切换不留悬挂线程;不被旧数据污染;不被工具内部日志干扰。希望本文的通用调试思路能帮你在面对任何带复位跳转的场景时游刃有余。
2025-04-17 20:26:29
622
原创 SystemVerilog Flit ID 资源池设计与实现解析
✅ 单例设计模式保证全局一致性✅ 实例成员避免 static 跨包失效✅ 封装 reset / print_status / size 查询接口✅ 可扩展支持多类 flit_id 池为复杂 UVM 验证环境中的 ID 管理提供了统一、可控、可调试的解决方案。建议将该类加入,在所有使用模块中统一 import,并作为标准组件推广使用 ✅。
2025-04-17 14:59:48
312
原创 设计模式:单例模式在验证中的应用
单例(Singleton)是一种创建型设计模式,它确保某个类在系统中只有一个实例,并提供一个全局访问点。“确保某一个类只有一个实例,并提供一个访问它的全局访问点。资源池管理全局配置共享(如 config objects)监控与统计对象唯一化避免多次重复初始化或冲突状态优势说明✅ 状态一致全局唯一、管理方便✅ 易于调试可集中打印状态✅ 支持模块共享避免重复初始化✅ 跨组件共享资源驱动/配置/池通用建议在所有资源类、配置类中优先采用单例模式,配合。
2025-04-17 11:40:05
240
原创 SystemVerilog Static 成员在多包环境下失效的真实案例分析与解决
在 UVM 验证平台中使用 static ID 池类(如 flit_id_pool)时,发现其在多个 package 中状态不一致,导致分配失败。原因在于 SystemVerilog 中 static 成员在不同编译单元中是隔离的。最终通过将 static 状态改为实例成员,统一用 get_inst() 管理,并封装进唯一 package 统一引用,成功解决跨模块共享失效的问题
2025-04-17 11:35:26
829
原创 sed -i ‘1d‘详解
的第一行,并将更改直接保存到原始文件中。这对于从文本文件中删除不需要的标题或介绍性行等任务很有用。,这意味着更改会直接应用于原始文件,而不会创建临时副本。第一行“第一行要删除”被删除,其余行相应上移。
2024-06-26 15:11:32
878
原创 sed 使用教程
Sed 是一种强大的工具,可用于各种文本处理任务。通过学习 Sed 的基本语法和命令,您可以轻松地执行各种文本操作。例如,以下命令将把所有 “Hello, World!” 替换为 “Goodbye, World!Sed 通常用于 Unix 和 Linux 系统,但它也可用于 Windows 和 macOS。例如,以下命令将把 “hello, world!” 转换为 “HELLO, WORLD!Sed 有许多命令,用于执行各种文本处理任务。Sed 有许多选项,用于控制 Sed 的行为。
2024-06-26 15:07:43
473
原创 UVM 中的 config_db 机制详解:set 和 get 的源码原理与实践
在构建阶段(build_phase)设置参数;在各组件中通过get()方法获取参数;支持类型安全、分层查找、路径匹配;替代了旧的方法。是连接 UVM 各组件的胶水机制,它保证了配置数据在构建前能优雅、统一地传递。通过源码可知,它是的类型封装,提供了路径匹配、类型安全等特性。
2022-09-20 10:39:49
1113
原创 Sublime text 4 + Anaconda3 + conda配置Python开发环境(记录)
Sublime Text 4 配置Python环境
2021-11-28 01:12:43
4153
15
原创 树莓派源文件遇到的问题(2019.7.4)
参考https://blog.csdn.net/iteye_21199/article/details/82230824的解决方法,并未解决遇到新的问题:W: The repository 'http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian wheezy Release' does not have a Release file.N:...
2019-07-04 10:45:18
2660
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人