一位工程师的FPGA项目开发经验总结

转自:http://bbs.ednchina.com/BLOG_ARTICLE_3018248.HTM?click_from=8800024401,6106445608,2014-11-10,EDNCOL,NEWSLETTER

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等等。在报表中输入关键字查找即可。

时间: 2025-01-01 16:37:47

一位工程师的FPGA项目开发经验总结的相关文章

招南京 .net 程序员!要求有项目开发经验!有应用程序开发经验佳!

问题描述 招南京地区.net程序员!要求有项目开发经验!有应用程序开发经验佳!详细情况请加qq:411545730面议:

三一裁员风波续:灭火培训门 70位工程师离开

经过一个短暂周末的"火线"处理,三一集团在员工反抗"变相裁员"的两大前沿阵地--沈阳三一重装研究院和上海三一重机研究院,暂时取得了"各方都满意"的处理进展. 7月9日,三一重装一位高管人士向记者表示:"事情我们已经解决了,员工不愿意去培训的就不去,愿意去的保留原有待遇,总之一视同仁.我们也对大家千方百计地进行了挽留." 上海三一重机方面亦给出了相同的承诺,不再强制员工转岗下车间.但即便如此,据记者从沈阳.上海两地了解,依旧有不

中欧商学院三位MBA学生的项目:关于纹身的App

到著名商学院就读MBA的,不止是500强金领候选人,还有充满五花八门想法的潜在创业者.中欧国际工商学院主办的2014创意中国"MBA创业大赛6月15日在上海举办,来自东道主中欧国际工商学院的参赛项目,所服务的对象是纹身行业,产品叫Yunmoco云墨客".没错,它倡导中国人去了解纹身文化,甚至勇于尝试纹身.演示一开始,三位中欧MBA学生上台,酷酷的演示者Felix Zhou提到:打算为大家介绍一些在CCTV或者电视台上看不到的新东西.纹身是一个非常有趣的.半透明的市场,很难找到中国地区有

项目开发经验-ASP.NET项目开发中的异常处理

前言:异常的处理在项目开发中是很有必要的,异常的处理不仅仅只是try..catch..finally就完事了的.异常处理绝对可以称开发中的重要组成部分.必须正确的面对异常,因为即使是最能干的开发人员,也要面对这个问题 .... 我们不知道客户是怎么样使用我们开发的软件的,所以我们必须处理这样的情况:如果系统不按照我们的设计时所想的运行,我们改怎么办? 下面我们就来具体的介绍在ASP.NET项目开发中的异常的处理方式,希望看完后,大家可以回答上面的问题. 本篇的话题如下: 应用程序级别异常处理的错

有C#移动项目开发经验的进'`|!.

问题描述 PPC2003工程读能读ACCESS数据库的吗?用什么方法?有代码的麻烦分享一下! 解决方案 解决方案二:我想用C#去下载邮件服务器上的邮件附件.本来用JMAIL,但不知道为什么不行,有的文件下不来.所以我自己写.我最后得到的邮件信息是.+OK153440octetsReceived:fromsmtp.263xmail.com(unknown[211.150.100.26])bymx8(Coremail)withSMTPidYYG0Gp7qB0QkpN0Y.10816S2;Fri,03

淘宝网苏大10万年薪签下本科生

近日,淘宝网来到苏州地区进行校园招聘,苏州大学计算机科学与技术学院2名本科生彭晨和杭鼎,在包括中国科学技术大学等"985"高校的研究生中脱颖而出,意外地获得了淘宝网伸出的橄榄枝,成为淘宝网核心技术岗位首次签约的非985高校本科生.据悉,这两名学生的年薪起薪就将达到10万元. "我的成功得益于学院推行的导师制",沉浸在喜悦之中的彭晨在接受记者采访时对他的本科生导师心怀感激.记者了解到,彭晨在大二下学期就进入了实验室跟着专业导师做项目,在导师的亲自指导下,学习了MFC编

Instagram 5位传奇工程师背后的技术揭秘(PPT)

Instagram 5位传奇工程师背后的技术揭秘(PPT) 发表于2013-03-28 22:13| 次阅读| 来源CSDN| 0 条评论| 作者郭雪梅 postgresqlredismemcachedInstagram开源AWS 摘要:Instagram,一家基于iOS和Android的社交图片照片分享应用开发商,以独特的运营理念,在仅有5位工程师,团队共有13人的情况下,成功将自己以7.5亿美元出售给 Facebook.奇迹的背后,是"为尽量减少运维负担而优化,监控一切,简洁的技术主张&qu

不该被隐藏的光芒:上世纪NASA三位被忽视的女性工程师

北京时间2月28日上午,第89届奥斯卡奖颁奖典礼在美国洛杉矶举行.本届奥斯卡奖最具话题性的事件无疑是最佳影片颁奖时的乌龙,而<月光男孩>和<爱乐之城>这些此前大热的影片也都将几个重要的奖项收入囊中,不虚此行.在最佳影片提名名单的9部电影中,有一部虽然最终空手而归,星光黯淡,但却不应该被我们忽略,而这部影片上映之后其实也是广受好评,它就是2017年1月13日上映的<隐藏人物>(Hidden Figures). 影片根据作家玛格特•李•谢特利(Margot Lee Shet

聘项目经理,.net 工程师(苏州)

问题描述 项目经理3人年薪:8万-12万,优秀者上不封顶工作地点:苏州岗位职责:1.带领项目组完成软件项目的开发和实施:2.制定项目开发和实施计划,项目进度.质量及范围管理与控制:3.预先正确分析项目中存在的风险,并提供相应的风险解决措施:4.确定项目的人员组织结构,对项目组人员进行绩效考核:5.及时.有效协调资源,解决项目开发过程中出现的疑难问题,确保项目顺利高效的完成:岗位要求:1.本科及以上学历,4年及以上软件开发经验,至少负责过2个中型项目的管理:2.熟悉Oracle/SQLServer