原创 硬件工程师做完又一个FPGA项目后的感言

2015-5-27 11:05 2744 14 18 分类: FPGA/CPLD

做了5年的FPGA了。手中经历的项目也不在少数。就在此刻又一个FPGA项目宣告结题,好多感受趁着现在还新鲜着,写出来和大家一起分享。不对之处,希望得到大家的指正。另外1234并没有绝对顺序,都是有感而发,随性而写。

 

1. 要和人配合。以我们做硬件的工程师为例,测试的时候一般都需要软件的配合,一个对硬件来说无比复杂的工作,可能在软件工程师看来就是几行简单的代码。所以要和人配合,多听听别人的意见,这样必然可以产生新know-how 从而加快测试和开发的速度,退一步讲,至少没有坏处。

 

2. 测试还是要别人来做。开发者看待自己的产品有如看待自己,大多是没有勇气去发现缺点的。一是源自自尊心,二是为了避免额外的工作。所以就算有问题,如果不严重就藏着掖着。但是这对项目来说是不行的,所以测试,verification,一定要旁人来做。

 

3. 多点时间思考。出现问题后,不要急着修改。要思考推测可能的原因,想清楚后把这些可能的原因都用debug pin或者chipscope引出来。

 

4. 注意复用已有的debug pin。很多时候,在测试过程中产生了一大堆测试信号,但是时间一长就忘了复用。实际上,当一个问题产生的时候,通过反复观察已有的debug-pin或许足以发现问题根源,而无需再引出新的pin,并浪费时间去综合和PAR。

 

5. 仿真加时序足矣。数字电路在时钟同步的设计原则下,其功能通过simulation就可以验证。simulation的结果和PAR后产生的FPGA-image完全等价。当然FPGA也要遵循同样的设计原则:即时钟同步。所以对于PAR的结果首先就要确保其时钟同步的特性。体现为寄存器之间的path必须在一个时钟周期内完成。(当然有其他约束的例外。)同时要满足FPGA器件的setup和hold要求。一旦出现timing-error必须通过各种途径消除error,因为error的存在,意味着时钟同步的大前提已经被破坏,这时,simulation取得的结果和FPGA是不等价的,继续测试也毫无意义了。

 

6. 注意不可控的接口部分。FPGA内部的寄存器之间的timing完全可以通过PAR报告来确认是否有问题。但是和外界的接口部分却充满了疑问。我们一般通过假定的input-delay和output-delay来对接口部分进行约束。由于从一开始就施加的是假定的delay,所以即使没有timing-error,其结果也存在诸多疑问。以我正在进行的测试为例,模块内部loopback测试完全正常,但是一过cable,传到对方FPGA,则马上产生很多误码。由于simulation没有问题,所以必然是我们的某个假定出现了问题,尤其是时钟同步的假定会得不到满足。这时候,就要想尽一切办法,使接口也满足假定的条件,或者调整设计,将不理想的接口adapting成理想的接口。

 

7. 向直接上司汇报情况,寻求各种可能的许可。懒得向直接上司汇报情况时,万一出现进度或者结果不符,所有责任都需要本人承担。如果提前向上司汇报情况并取得许可,则一切后果都在可控范围内。比如,工作繁忙时又被派给新的任务,则不能一味逆来顺受。应该向上司说明困难,并提前想好一个可行的解决方案供上司参考。

 

8. 外部接口是最大障碍。如前所述,FPGA内部如果timing没有问题的话,一般和仿真结果是一致的,问题是外部的接口,包括cable连线等,不在我们确切控制的范围内,比如其延时特性在40Mhz下仍然正常,但是在80Mhz时可能出现不可预料的情况。所以应该尽量使用经过验证的“cable--frequency”组合。或者通过设备测量并确认外部接口的延时特性。这样可以进行有针对性的调整。我最近的教训就是花了整整一个月调整并测试内部的结构,但是仍然失败。结果发现由于cable的问题,80Mhz的信号(数据+使能+others)无法正常并行传输。如果换成40Mhz的信号就通过了。

 

9. 综合PR后的结果要和代码等价。前面提到仿真加时序足矣,这里面的前提是PR的结果和原始代码要等价。为了确认这一点,就要把握syn和pr过程中的所有warning以及error,warning的内容不是完全可以忽略的。要特别关注综合报表中的以下内容:unused ports, removal of redundant logic, latch inference,simulation mismatch等等。在报表中输入关键字查找即可。

  

 

 

文章评论4条评论)

登录后参与讨论

用户1696769 2014-12-19 08:44

(微博回复)搞机圈老王:我感觉有缺陷。FPGA最大的问题是集成了各种外部设备,但也是其缺点。为啥太注意接口部分,就是因为接口信号的input_delay与output_delay不可能完全如预期,负载的阻抗,虽然大部分需要考虑的是模拟问题,但数字也要注意,这真的是经验问题

用户377649 2014-12-17 11:33

很深刻

用户377235 2014-12-17 07:53

万物皆有徐

用户377235 2014-12-17 07:53

万物皆有徐
相关推荐阅读
用户1648711 2016-05-11 14:44
华为为什么28年不上市?
任正非和华为公司,堪称当代商业史上的传奇。   1987年,年满43岁的任正非和5个同伴集资2.1万元成立华为公司,利用两台万用表加一台示波器,在深圳的一个“烂棚棚”里起家创业。   ...
用户1648711 2016-04-15 14:58
为啥中国丢了工匠精神,日本却没有?
    “工匠精神”,这个带着古早味的词语,被写入了中国政府工作报告。   中国历史上,工匠延绵不绝。技艺精湛的鲁班,“游刃有余”的庖丁,一直都是工匠的代表。往近了说,2015年央视...
用户1648711 2016-04-06 08:54
Marvell CEO及总裁双双离职
网易科技讯 4月5日消息,据《华尔街日报》报道,Marvell Technology Group(美满电子科技公司)的夫妻组合,CEO周秀文(Sehat Sutardja) 总裁戴伟丽(We...
用户1648711 2015-11-24 11:59
神秘职业大起底:NASA的EMC工程师都做些啥
无论是用望远镜观察星空还是送探测器前往遥远的行星,宇宙探索都是一份集众人之力完成的事业:成千上万的人精诚合作,在这看似不可能的工程中解决数不清的问题。   鉴于航空事业的复杂程度,“NAS...
用户1648711 2015-09-12 11:07
工程师实战经验:Beacon与Wi-Fi定位技术的精度/成本/开发难度
很多尝试进入移动互联网行业的人,对室内定位系统很感兴趣,这项技术带来了很多创新的O2O商业模式,包括产品思路。 但对室内定位的技术商业化前景,用WiFi还是Beacon?我想目前很多人都是不太确定...
用户1648711 2015-06-27 15:55
电路设计中电阻如何选择?
电阻在电子产品中是最常用的器件之一,基本上只要是电子产品,内部就会存在电阻。电阻可以在电路中用作分压器、分流器和负载电阻;它与电容器—起可以组成滤波器及延时电路;在电源电路或控制电路中用作取样电阻...
我要评论
4
14
关闭 站长推荐上一条 /2 下一条