周一流的芯片就要回来了,基本的测试工作也做了好多,大概总结一下吧,也算是个留念
首先,出现问题了最先考虑的一定是板级的外围电路是否正常工作了
0. 连接线, 这个东西绝对是最基本的问题,但是往往一些同学会被这玩意坑的很深,不多说,一定要全部测量,不能省下任何一个连接线不去测量。
1. 测量仪器,这个东西出了问题真的是要命的,比如用示波器测量的时候就一定要关注探头是否是好的,是否接错了通道,是否幅值调整的有问题,是否触发源设置的有问题,是否因信号过快结果没法采样到待观测信号。而万用表如果只是测量通断的时候还好说,用来测量真正的电压的时候也不要以为万用表就不会坏,有可能没有坏,但是可能出现测量值不准确的情况,对就是测量值总会差个几百毫伏的时候,我们就遇到过。
2. 硬件, 这个东西就首先有外围电路入手,首先如果仿真可以通过,但是FPGA验证的时候出现问题,那么先关注,FPGA和仿真的时候外围的输入有没有不同的地方,往往是在仿真的时候给了高电平,结果在FPGA上面没有接上拉,结果导致悲剧。另外输入给的信号没问题了,也要考虑到有可能是信号没能正确的输入到FPGA的硬件电路里面,这个时候最好的方法(其实就是验证pin脚),就是直接使用拉进拉出的方式进行测量,第一先看reset和clock这种信号是否有问题,信号的毛刺也是一个问题,但是这不是第一步应该考虑的问题,接下来的时候如果问题还存在的话就可以关注一下信号线有没有混搭的情况,别忽视这种问题,常常有同学就会栽在这里。
3. RTL, 硬件调试真的没问题,如果现象不好判断这时候再看rtl的代码分析一下问题吧,先说最低级的问题就是有时候在rtl里面有的input output声明反了,这下你完蛋了,综合和布线工具的warning如果你没有仔细看的话估计一辈子自己也找不到问题的所在。实在找不到,好,再看看是不是FPGA的对应bit文件搞错了。没问题,那就可以开始可以分析硬件代码逻辑了,当然是结合前面的测试信号,先分析逻辑结合仿真,再把一些关键的信号拉到板子上看,不推荐使用chipscope这类软件逻辑分析仪,拉到板子外面最直观,而且在布线工具上面加上chipscope往往会花上更长的时间,不一定值得。
4. 软件(如果有的话), 这里的软件问题不一而论, 我就说说遇到的,比如再430调试的过程中,本来是用到了一组SPI结果开的pin设置错误了,导致测量的SPI引脚上面没有了信号,还得从头找,很麻烦的。还有后来软件里面用了一个timer来计时,结果在一个timer计时的时候,调用了一个函数这个函数里面又再次有将这个timer开关的逻辑,那么这个嵌套的逻辑就2b了,后来好不容易才发现了这个问题,换用了另外一个timer,问题成功解决。
其他基本都是软件逻辑的方面了不一而足,就是认真分析逻辑的问题了,还有因为是在FPGA平台上面进行调试,与软件的接口就那么几个,那么就多用串口把关心的变量打印出来,多获得信息才能更好的把握问题的所在。得,就这么啰嗦了许多,全当是对自己调试过程天天泡在那里消耗时间的一点纪念~