自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大型Soc仿真全流程控制

本文提出了一种使用单一脚本控制大型SoC仿真流程的方法。该方案支持灵活编译DUT和TB,通过宏定义实现代码选择;支持测试用例动态加载,包含通用环境和用户自定义环境;提供完整的工具链支持(VCS/Vlogan编译选项、Simv仿真参数、Verdi调试功能);可配置覆盖率收集和后仿真流程。核心思想是通过解析每个测试用例的sim_flow配置文件,自动生成对应的编译仿真流程,实现前后仿真的无缝切换和模块化调试。该方法显著提升了大型芯片验证的效率,通过脚本自动化减少了人工干预,同时保持各环节的高度可配置性。

2026-02-13 14:27:24 621

原创 仿真全流程脚本

本文摘要: 这是一个VCS仿真流程控制脚本,用于自动化芯片设计的前后仿真流程。脚本主要功能包括:参数解析、版本控制、仿真流程管理、目录创建和DPI编译等。支持UVM测试用例、覆盖率收集、波形dump等功能,可配置为二步法或三步法编译流程。通过环境变量和命令行参数实现灵活配置,自动生成仿真目录结构,并支持前后仿真的不同流程控制。脚本采用模块化设计,包含参数检查、文件解析、流程合并等关键步骤,确保仿真过程符合设计规范。

2026-02-13 14:19:13 89

原创 vcs后仿详细实操说明

后仿(门级仿真,Gate-Level Simulation, GLS)是芯片流片前的关键验证环节,基于综合输出的门级网表(Gate Netlist),结合工艺库、时序约束、Sdf延迟文件,模拟芯片物理实现后的真实工作状态,核心验证两大维度:① 门级网表功能正确性(与RTL代码一致);② 时序正确性(满足setup/hold约束、无时序违规),规避流片风险。与前仿(RTL功能仿真)核心区别:前仿仅验证逻辑,不考虑任何时序延迟;

2026-02-11 17:12:50 768

原创 层次嵌套filelist宏定义分枝选择脚本

本文介绍了一个用于解析层次嵌套filelist并支持宏定义分枝选择的Python脚本。该脚本能够处理包含宏定义条件分枝(ifdef/else/`endif)和多层嵌套引用的filelist文件,根据用户指定的宏定义自动筛选对应分枝的文件路径。脚本核心功能包括:解析嵌套filelist结构、处理宏定义条件分枝、路径自动拼接与去重、输出规范化dut.vc文件。支持工业界常用的filelist格式规范,包括注释、宏定义嵌套、相对/绝对路径引用等特性。脚本独立运行,不依赖VCS编译环境,适用于复杂芯片设计中的文件管

2026-02-10 13:14:47 603

原创 VCS 两步法与三步法编译说明

VCS编译方法分为两步法和三步法。两步法通过单条vcs命令隐式完成分析、精化和链接,适合小型设计和快速调试,但不支持增量编译。三步法显式拆分为vlogan/vhdlan分析阶段和vcs链接阶段,是工业界标准流程,支持增量编译、多语言混合仿真和精准错误定位,适用于大型工程和UVM验证。三步法虽步骤较繁琐但灵活性高,能显著提升大型设计的编译效率。两种方法均可生成仿真文件并支持Verdi波形查看,用户可根据项目规模和需求选择合适方法。

2026-02-10 10:51:10 412

原创 simv 常用 option 详细说明+plus_argus

本文详细介绍了simv仿真阶段常用参数,涵盖覆盖率控制、仿真运行、调试排查、日志输出等核心场景。主要内容包括:1) 仿真运行控制参数,如-maxcycles、-parallel等控制仿真流程的选项;2) 调试排查参数,如-debug、-break等用于问题定位的选项;3) 信号与激励相关参数,如-input、-signal等配置仿真输入的选项。文档还提供了参数组合示例和关键注意事项,强调选项区分大小写、部分参数需编译时配置等要点,并给出5个典型场景的参数组合范例,便于用户直接参考使用。

2026-02-09 15:10:15 538

原创 vcs coverage收集

本文档详细介绍了VCS和simv工具中与覆盖率相关的参数使用说明。核心参数-cm用于指定覆盖率收集类型,包括line(代码行)、cond(条件)、branch(分支)、fsm(状态机)、toggle(信号翻转)等多种类型,支持组合使用。文档区分了VCS编译阶段和simv仿真阶段的应用场景,并提供了常用示例。同时列出了与-cm配合使用的所有相关参数,如-cm_dir(指定存储目录)、-cm_name(数据库命名)、-cm_stop(阈值停止)等,明确标注各参数适用的工具阶段(VCS专用、simv专用或通用)。

2026-02-09 14:19:34 547

原创 #VCS 参数ntb_opts ,partcomp使用说明

本文介绍了VCS仿真工具中两个核心参数的使用方法。-ntb_opts参数用于配置验证框架,支持UVM/OVM等,提供调试、覆盖率收集等功能,需注意子参数需用逗号分隔且版本兼容性。-partcomp参数实现部分编译优化,适用于大型设计,支持多核并行和增量编译,能显著提升编译效率,使用时需注意缓存管理和作业数设置。两个参数配合使用可构建高效的验证环境,文档提供了可直接复用的典型配置示例和常见问题解决方案。

2026-02-06 17:47:48 670

原创 Python 原生ANSI转义码 彩色打印使用说明(轻量化无依赖)

本文介绍了Python原生ANSI转义码实现彩色打印的方法,无需安装第三方库。核心语法使用\033[样式码;颜色码m内容\033[0m格式,必须包含重置码\033[0m。提供了常用颜色码对照表(如31红色、32绿色)和实用示例,包括基础打印、变量结合和封装函数的方法。注意事项包括必须重置样式、Windows7兼容性问题等。适用于Linux/Mac终端和Windows10/11的Terminal/PowerShell,是轻量化的终端彩色输出解决方案。

2026-02-06 13:50:32 373

原创 factory - UVM工厂机制的实现详细解析

UVM Factory机制解析摘要: UVM Factory采用单例模式实现动态类型替换和统一对象创建,其核心组件包括类型注册表(m_type_table)和重载映射表(m_type/inst_overrides)。通过uvm_object_wrapper作为类元标识,工厂在注册时记录类信息,创建时根据重载规则返回目标类型实例。关键流程包括:1)宏自动生成包装器类并注册;2)通过type_id提供创建接口;3)支持类型/实例级重载。该机制通过分离类型声明与实例化,实现了测试场景的灵活配置。

2026-01-29 19:36:56 752

原创 蒙提霍尔问题计算(Monty Hall problem)贝叶斯定理

本文通过Python代码模拟验证了经典的蒙提霍尔问题(三门问题)。实验设定:三扇门后随机放置一辆汽车和两只山羊,玩家初始选择后,主持人会打开一扇无奖的门并询问是否换门。通过30次模拟测试,结果显示换门策略的中奖概率达到2/3(20/30),验证了该问题的反直觉结论。关键点在于主持人的非随机行为(必然避开奖品门)提供了额外信息,导致概率分布发生变化,这是贝叶斯更新的典型实例。

2026-01-28 16:07:24 312

原创 UVM callback的流程-含示例

UVM回调机制简介: 回调机制是一种在不修改类原代码的情况下,向类的特定执行点插入自定义逻辑的扩展方法。通过在核心类中预设回调点(hook),用户可注册自定义回调函数来增强或修改类行为,提升验证环境的灵活性和可扩展性。 该机制包含三个关键步骤: 在目标类中预设回调点,使用uvm_register_cb和uvm_do_callbacks宏; 自定义回调类继承uvm_callback并实现回调方法; 在高层组件中实例化并注册回调对象。

2026-01-27 17:50:51 346

原创 AMBA总线性能分析-demo

摘要:本文介绍了AMBA总线性能分析的关键指标,包括带宽、吞吐量、延迟、总线利用率等7个维度。通过Synopsys提供的amba_svt验证IP示例,演示了如何利用VIP自带性能分析功能:1)配置使能XML生成;2)运行测试用例;3)使用Verdi的Performance Analyzer工具查看自动生成的性能报告和可视化图表。分析结果会输出波形文件和HTML报告

2026-01-19 17:37:06 916

原创 ARM A系列CPU系统上下电(包含pchannel和Qchannel上下电控制流程)

ARM A系列CPU系统上下电流程包含pchannel和Qchannel控制。上电时依次拉高core和DSU的pchannel请求,控制电源开关、复位和时钟,确认握手成功后设置Qchannel状态。下电时确保core进入WFI状态,依次处理pchannel请求并设置Qchannel状态,最后关闭电源。注意事项包括时钟源端控制、复位信号管理及握手响应等待。整个流程需要严格遵循步骤以确保系统稳定运行。

2026-01-16 13:32:23 285

原创 一个解决torchvision.datasets下载过慢的办法

摘要:通过打印获取数据集下载URL后,直接将链接粘贴到迅雷下载工具,可实现高速下载。该方法操作简单,只需复制粘贴URL到迅雷即可显著提升下载速度,效率极高。

2025-12-30 15:40:42 139

原创 vcs option -deraceclockdata 避免竞争问题,附带案例

VCS的-deraceclockdata选项用于动态检测数据竞争和跨时钟域问题,提供basic/fullmem/none三级检测强度。通过案例分析展示了该选项的实际价值:在AXI接口仿真中,发现跨时钟域采样竞争导致信号X态

2025-07-14 16:17:08 2548 1

原创 axi3 和 axi4 总线的区别

AXI4相较于AXI3的主要改进包括:1) burst_length扩展至8bit,支持256长度的INCR传输;2) 新增QoS优先级控制信号;3) 引入多区域接口功能;4) 取消写交织和锁定事务,改用更高效的独占访问机制;5) 对写响应时序要求更严格。AXI4通过优化信号设计(如去除WID、简化锁定机制)提升了系统性能,同时新增QoS和区域接口增强了功能灵活性。这些改进使AXI4更适合高性能SoC设计,兼顾了效率与复杂性平衡。两版本互连时需注意信号兼容性处理。

2025-07-11 16:31:03 1659

原创 后仿波形太大,仿真过慢痛点解决--ucli

后仿真中针对大网表导致波形文件过大的优化方案:通过VCS提供的ucli工具选择性dump关键模块信号。相比传统$fsdbDumpvars()全量dump,ucli允许在仿真阶段动态指定模块层级(如module1、module2等),显著减小fsdb文件体积。该方法支持不重新编译即可修改dump范围(通过编辑.ucli.cmd脚本),其中0表示dump当前模块及子层信号,1仅dump当前层信号。使用时在simv命令添加"-ucli-i.ucli.cmd"参数即可实现高效波形采集

2025-06-26 14:44:58 572

原创 带pg后仿,cpu子系统重新上电失败问题

CPU子系统重新上电后出现X态问题分析:主要由于无复位寄存器在下电后未重新初始化导致。问题根源在于$deposit函数仅执行一次,无法在重新上电时再次初始化寄存器。解决方案:修改initial块,在下电后(检测复位信号变化)延迟一定时间再次调用$deposit函数为无复位寄存器赋初始值。。

2025-06-26 14:18:23 597

空空如也

空空如也

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

TA关注的人

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