当前位置: 首页 > news >正文

一线验证工程师的实战经验-不要把上电复位当成理所当然的事情(9000字)


上电和复位,听起来是芯片最基础的环节,但恰恰是最容易出大问题的地方。很多刚入行的验证工程师,拿到testbench就开始跑功能case,觉得上电复位就是拉高拉低信号那么简单。等到流片回来芯片不工作,才发现问题出在最开始的芯片还没正式工作的那几个时钟周期。

为什么上电复位这么容易出问题

数字芯片不是独立存在的,它需要模拟电路提供稳定的电源、时钟、复位信号。但模拟电路的特性是渐变的、有延迟的、带毛刺的,数字电路却期望信号是干净的0和1。这个gap就是bug的温床

上电过程中,电源电压从0V慢慢爬升到1.8V或者1.2V,这个过程可能持续几百微秒到几毫秒。在这段时间里,时钟可能还没起振,POR(Power-On Reset)信号可能还没释放,LDO输出电压可能还在抖动,efuse可能正在读取配置。数字逻辑如果在这个时候就开始工作,很容易进入不可预期的状态。

更麻烦的是,RTL仿真默认是理想化的。仿真器给的电源就是稳定的1.8V,时钟就是完美的方波,复位信号就是干净的边沿。如果验证工程师不主动去模拟这些非理想情况,很多bug根本不会暴露。

第一类问题:时钟还没稳定就释放复位

这是最常见的上电bug之一。芯片上电后,晶振或者RC振荡器需要一段时间才能起振并稳定到目标频率。如果POR电路在时钟稳定之前就释放了复位信号,数字逻辑会在不稳定的时钟下开始工作。

不稳定的时钟意味着什么?数字逻辑在这种时钟下采样,寄存器可能采到错误的值,状态机可能跳到非法状态,计数器可能从一个随机值开始计数,甚至是亚稳态。

怎么在RTL仿真中发现这个问题?

首先要有一个能模拟时钟起振过程的模型。不能简单地在仿真开始时就给一个完美的时钟,而是要模拟时钟从无到有、从不稳定到稳定的过程。

模型可以很粗糙,但需要体现:时钟不是一开始就稳定的。在电压低的时候,时钟是不定态或者频率很低且带抖动。只有电压达到一定阈值后,时钟才稳定下来。

有了这个模型,再去跑仿真,就能看到数字逻辑在时钟不稳定时的行为。如果设计中没有等待时钟稳定的机制,很可能会看到寄存器采到X态,或者状态机进入非法状态。

解决方案是什么?

POR电路需要等待时钟稳定后再释放复位。具体做法是加入时钟检测逻辑,检测时钟频率是否达到目标值,或者简单地加一个足够长的延迟,确保时钟有足够时间稳定。

在RTL验证中,可以加一个checker,检查复位释放时时钟频率是否已经稳定。如果时钟还在抖动,就报错。

第二类问题:POR模型太理想化

很多项目的POR模型就是一个简单的assign语句:

http://www.jsqmd.com/news/829027/

相关文章:

  • 无线网络里的“快递小哥”:一文搞懂CAPWAP隧道直接转发和隧道转发怎么选
  • 基于Google Cloud Vertex AI的生成式AI应用开发实战指南
  • 【独家首发】ElevenLabs未公开的奥里亚文音色微调参数表,仅限前500名开发者下载
  • 从芯片选型到PCB布线:手把手拆解基于Zynq-7100的10Gbps雷达数据采集卡硬件设计
  • 【附C源码】从零实现C语言堆数据结构:原理、实现与应用
  • 模型广场功能如何帮助开发者快速选型与切换测试
  • 如何轻松实现专业级音频处理:5个AI场景完全指南
  • 解密Outfit字体:9种字重几何无衬线字体的实战秘籍
  • ShawzinBot终极指南:如何在Warframe中实现MIDI自动演奏
  • 小米手表表盘设计终极指南:用Mi-Create打造个性化表盘
  • ElevenLabs藏文语音生成上线仅72小时:开发者必须立即掌握的5个API调用避坑要点
  • 简单三步掌握OBS虚拟摄像头:让专业直播画面进入任何视频会议
  • 高性能Excel处理方案:解决大数据导入导出的痛点
  • React useWebSocket 社区贡献指南:如何参与开源项目开发
  • RISC-V开发踩坑实录:从编译错误‘csrr a5,mhartid’到GDB报错‘E14’的完整排错指南
  • 同向运算放大器实战指南:从理想模型到PCB布局的完整设计
  • B站缓存视频拯救指南:如何用m4s-converter快速解锁被封存的数字记忆
  • 通过Taotoken控制台审计日志追踪API Key使用情况与安全
  • 10分钟掌握终极笔记备份:evernote-backup工具完全指南
  • D2RML:暗黑破坏神2重制版终极多开指南 - 告别繁琐登录,实现一键多开
  • Verilog行为级描述:从语法到硬件映射的工程实践指南
  • Hermit-rs安全机制解析:Rust所有权模型如何保障unikernel安全
  • 通过curl命令直接测试Taotoken聊天补全接口的简易方法
  • 技能管理框架skill-mix:用YAML与声明式配置构建可量化技能体系
  • WarcraftHelper终极指南:3步解锁魔兽争霸3全部潜能
  • 窗口尺寸革命:如何用WindowResizer打破Windows应用程序的尺寸枷锁
  • 别再到处找安装包了!Windows系统下FreeCAD 0.18.4保姆级安装与汉化教程
  • WIN11下NFS21闪退终结指南:从黑屏到流畅狂飙的实战修复
  • ChanlunX缠论插件:5分钟实现通达信专业缠论分析的完整指南
  • MySQL 8.4 LTS版本模型解析与生产环境升级实战指南