个人理解电子产品Bug调试的难易程度取决于以下几点:
1)从上电到产生bug的时间是不是足够长,这个很大程度上决定了你的样本bug是不是足够多?时间越长越难办。
2)产生bug的条件是不是足够复杂?很久之前参与了一款反向数字芯片的Debug,这种芯片的验证思路一般是RTL下载到FPGA上,同时有一个原版芯片作为对照。FPGA和原版芯片的输入一致,FPGA输出接测试板,芯片输出不接。同时,所有的的输入,输出都接逻辑分析仪,将逻辑分析仪设置至RTL与原版芯片输出不同即触发。同样的输入,如果RTL功能正确,则输出完全一致。该测试平台,前期非常好用。但是到了项目后期,芯片要运行到20多分钟才出现Bug,深度再深的逻辑分析仪也只能抓到Bug前后的信号变化,而无法提供从芯片上电以来的信号变化,基本无解了。
3)Bug出现是否随机?我心目中,随机bug堪称Bug之神,每次发生Bug条件不确定,搞到最后自己都不相信自己,怀疑人生了。
![](https://img.jasve.com/2024-8/5816a6e3bdc9e00919362e3a66e68ffe.webp)
下面讲一个随机bug的例子。以下内容都是道听途说,全是杜撰,如有雷同