测试告诉我们现在在那里,而仿真告诉我们应该往那里走,可以走多远
也许,你刚刚毕业,每天做着繁琐的小事,看到别人示波器上花花绿绿的波形,觉得无比新奇……也许,你在其他方面已做的娴熟无比,看到各式各样的眼图,总是忍不住想去试试……也许,你整天埋头测试,抱着示波器跑来跑去,看到做仿真的一台电脑走天下,总是无比羡慕……也许,你已是仿真老鸟,对于仿真的态度,经历了神秘,兴奋,混沌,绝望,自大,迷惑…… 还也许,你是仿真界的大牛,那么请你,给我们解惑……
对于我自己,除了最后一个,其他都有所经历,一路走来,跌跌撞撞,从未放弃希望和梦想,也从未消除迷茫和绝望。仿真的意义到底是什么?也许是每一个SI工程师值得思考的问题,我所能想到的,也许只是黄金中的沙砾,期待你的补充。
首先,仿真可以缩短产品研发周期,在没有仿真的情况下,一般会根据理论知识和经验,做出第一版产品,然后测试,发现问题,改善问题,重新打板,重新测试……周而复始,直到没有问题发生。而如果可以做仿真呢?在第一版设计过程中,就可以对各个信号进行仿真,评估,改善,再仿真,直到所有仿真都可以满足系统要求的情况下,才正式生产。一般来说,第一种情况大概需要三到四版PCB,才可以上市,而第二种情况,大部分时候,两版就可以上市了,而现在有很多设计公司,都承诺一版成功。这其中,不仅节省了研发周期,研发人员,更可以提早上市,抢占市场先机。
其次,我猜大部分人小时候都玩过类似叠硬币的游戏,一个一个硬币错落的叠上去,看谁的硬币先倒,仿真在很多时候,就是在做类似的事情,仿真可以让我们的设计在没有任何错误的前提下,达到性能和成本的极限,在我们不想做这些的时候,应该意识到,我们的竞争对手们都在孜孜不倦的不断尝试。不断提高时钟频率,提高数据速率,缩小PCB面积,减小PCB层数,找到产品的极限,只有如此,才可以在产品手册中,写上领先竞争对手或市场预期的性能指标。当然,成本和性能永远是一对欢喜冤家,这里所说的性能极限,是在成本,市场,技术等等许可的情况下,做到最好的权衡。
另外,仿真还可以预测产品发生错误或故障的概率,而这种概率,对于不同产品,经常会有不同的要求,而且往往都是很难测试的,比如,个人用的笔记本电脑,三四个月发生一次死机或蓝屏,大概没有人会特别在意,可是如果微信的后台服务器,三四个月就发生一次故障,几亿用户同时掉线,就不是一件小事了。所以,你的产品错误发生概率到底有多大?一个月一次?一年一次?十年一次?还是一百年一次?这种事,大概也只有仿真可以做了吧。
还有,仿真可以做很多测试做不了的事情,比如,测试的时候,人们都知道要测试Worst Case, 可是什么情况才是Worst Case,仿真中,可以把整个系统链路中各个参数(buffer, slew rate, TXLE, CTLE,各段传输线阻抗,长度,各种不同ODT, 温度,湿度,加工工艺带来的性能误差……)随机组合,整一个大大的表格(学名叫DOE),然后整个成千上万个case进行仿真,总会有一个是worst case, 可是测试中,可以测试的样本总是有限的,很难去包括大部分情况。
那么,测试就不重要了吗?仿真和测试的关系又是什么样呢?
一个不太准确的例子,假如你是公园管理员,而公园里面有下面两块石头,经常有人在下面去乘凉,需要去评估它们到底安不安全。普通的管理员,大概会拿一根很长的木棍,从各个方向,各个角度,用各种力气,去推这块大石头,然后看它是纹丝不动,还是有点晃动,或者晃动很厉害,来判断它是否安全。如果这个管理员实在无聊,用木棍捅了之后,他还不放心,另外一种可能的方法,大概会先对石头进行建模,石头形状,大小,重心位置,接触面积……然后模拟各个方向,各种条件下,多大的力才能让石头倒塌,从而判断它的安全性到底有多大。
其实,这两种方式,有点类似测试和仿真,那么,到底那种更好呢?我觉得,我们应该综合两种方法,它们各自得到的数据都有各自的优势,人的力气总是有限的,也不可能从每一个角度去推石头,可是仿真,大概也不会注意到石头下面有一个蚂蚁窝,时间久了,这个区域有会土地松软的可能。所以,仿真和测试总是应该相互验证,相互补充,才能得出更加合理的设计。相濡以沫,总是好过相忘于江湖。
仿真最具有优势的地方,是可以得出各个参数对设计结果的敏感度,从而有目的性的对设计进行取舍,优化,比如一个设计有三个变量,第一个变量对结果几乎没什么影响,而第三个变量却对结果很敏感,那么在设计优化的时候,我们就不会不断的尝试调试第一个变量的值。
所以,在很多设计中,测试和仿真都同等重要,测试告诉我们现在在那里,而仿真告诉我们应该往那里走,可以走多远。
归根结底,做仿真的目的,无外乎是,在合理的时间和成本允许下,帮助我们做出更加明智的选择。
仿真虽好,可是要得出精确的仿真结果,并不容易,需要所有的建模都是合理的,所有的仿真方法都是相对准确的,而这些,正是我们孜孜以求的动力和方向。SI大师Eric曾说,每做一个仿真之前,都应该用你的知识和经验,来预测仿真结果是什么样子的,如果你预测对了,你的自信心又提高了一点,如果你预测错了,你就又得到了一次提高自己的机会。
那么,一起努力吧!
信号完整性之旅
本公众号所有文章,虽力求正确,准确,但由于水平有限,错误在所难免,欢迎各位公正,友好的指正。
请你怀疑:
本文所写的每一句话,
都可能是错的。
领取专属 10元无门槛券
私享最新 技术干货