5224|0

11

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一个逻辑工程师的成长之路-实例篇 [复制链接]

上一章的模型,其实就是我自己的经历,大概套一下吧。
第一阶段(2008-2009)
第一阶段:能用
在我刚进公司时,勉强算是第一阶段,严格来讲,我虽然学过数字电路设计,但是当时用的教材很老,并没有讲述跟fpga相关。后来在实验室,买了一块开发板,才慢慢开始学习fpga
刚进公司的时候,完全没有硬件时钟的概念,没有时序约束的概念,刚刚处于能用verilog代码完成需求的阶段。
不过机会很好,当时就赶上了M1项目,负责了电源管理和视频逻辑。比较适合新人的两个设计。
比较顺利的完成了代码和仿真,调试的时候,也还比较顺利,开关机,屏幕显示,都按时完成了。
不过,此时并不太明确verilog代码与fpga器件实现之间的关系,写代码时,不是考虑fpga能否实现,而是考虑是否符合verilog代码的语法。
此时大概是2008年下半年和2009年初。
这个阶段,写的代码其实是比较差的,不管从代码风格,还是从代码设计,模块划分等。不过鉴于本人良好的重构习惯和对代码风格的极致追求,这段时期写的代码,基本上都看不到了。
后来做完M1之后,在做M22010)之前,大概有1年的时间,这段时间内,项目进度没有那么紧,有一些时间可以学习,开始进入第二阶段。
第二阶段(2009)
第二阶段:可用
2009年这段时间,做了dr的一块板子,M3的按键板,视频svideo,万能按键板等3个项目。
时间比较充足,加之本人的习惯,喜欢对一个事情追根究底,希望可以弄明白,想清楚。这段时间,学习了很多关于综合,关于器件结构等的知识,在网上也搜了很多资料,自己也研究了alteracyclone3的器件。还曾经想写一个ppt,把逻辑中常用的代码,对应的综合结构和布局布线结构都搞清楚,后来做的时候才发现,跟理论值不一致,才作罢。这个阶段也看了很多关于时序约束的内容,不过此时对时序约束的理解还不深入
而且随着做的项目的增加,debug经验的丰富,水平开始逐步提高,能算得上是一个合格的逻辑工程师了。
2010年,开始做M2项目和M4项目。涉及到了xx逻辑的重构和svideo视频的重构,开始进入第三阶段。
第三阶段(2010-2011)
第三阶段:好用
2010年主要做了两个设计,一个是M2xx逻辑,一个是M4的视频逻辑。
xx逻辑是一个比较典型的例子,当时对逻辑设计有了一定的认识,也有了一定的想法。M2xx逻辑是基于M1xx逻辑的,但是被我完全重构了,此时开始考虑逻辑的模块划分,接口时序。
而且由于xx逻辑扇出较多,开始考虑代码的布局布线与时序收敛。
同时,对代码的书写开始有要求,这个阶段的代码,应该说开始有了自己的风格,而且写的比较好。这部分的代码,后来未再修改,还可以在svn上看到。
M2xx逻辑是做的比较顺利的,在板卡回来之前1个月,基本上设计和仿真就全部完成了,也有一些时间来学习,后来调试也非常顺利,xx逻辑几乎没出bug
下半年做视频逻辑。
由于在M1做了视频逻辑,M2的视频逻辑由其他人负责,在做M4的视频逻辑时,水平有了一定的提高,而且时间也比较充足,兴趣也比较强烈。在M4的视频逻辑上,做了很多重构的工作。
其中,lpc总线模块,就重构过2次,对于状态机的写法进行了深入研究,svn上可以看到M4lpc代码和M1的代码是不一样的。
svideo部分的代码,起初是09年陈工写的,后来我接手后,曾经重构过一次,把代码全部整理了一遍,并彻底搞懂。由于M4的视频需求更改,由一路svideo变成两路:svideodvr,所以又将这部分代码再次做了颠覆性的重构。
这个阶段,可以说对逻辑的架构,已经有了初步的认识和一定的经验。而且视频逻辑大多跟外设打交道,此时对时序约束已经比较清楚了,有些时序上的问题,已经可以比较容易的解决了。
此时写的代码,不管是代码风格,模块划分,接口,逻辑架构,都已经比较好了。
不过,此时多是在折腾自己的代码,比较熟悉的代码。(svideo算是一个中小的,别人写的代码)。真正考验逻辑架构能力的,是对别人留下的一个中等的、复杂的、功能正常的逻辑做重构,变成一个架构合理、简单易用的逻辑,而且整个过程还要尽量少出bug
等待的时间不算太久,10年底到11年初,还做了一个M4newcolor,完全是一个全新的逻辑,也算是初步了解了信号处理,而且全部从新的设计,也增加了架构经验。11年中,做了任意xx的方案,虽然只做了方案,没做具体设计,但是此时对于逻辑方案,架构,已经有驾轻就熟的感觉了。
很快,机会就来到了。
2011年下半年,开始做M5pcie上传逻辑。
这个设计,完全满足一个架构能力进阶的要求。
第四阶段(2011-2012)
第四阶段:易用
2011年下半年的M5,到2012年的M6,是属于第四阶段的。
pcie上传逻辑是一个别人留下的一个中等的、复杂的、功能正常的逻辑,对此做重构,挑战还是非常大的。之前对此完全没有了解。不过svideo的重构也为此打好了一定的基础。
这段时间是进公司以来积极性比较高的阶段,不停的在学习,几乎将整本《PCIE系统体系结构标准教材》全部翻完。而且每天都在消化,修改代码。由于这段时间白天很多杂事,经常晚上写代码,写到半夜。
pcie上传逻辑的重构,应该说是做的比较好的,短时间内将一个复杂的设计重构,而且设计上仅出了1bug。后来该设计复用到后续所有的项目,M6M7M8M9
dcn3的出图,也仅用了2个星期,非常顺利。然后各种模式的出图,也都非常顺利的出了。
上传相关的总结,已经放在《pcie协议介绍,ip介绍,上传逻辑介绍,上传设计经验分享.ppt
2012年.开始做M6项目。
这个项目,是将全部的超声逻辑,都放入到了一片fpga当中,所接触到的、所能修改的架构,变得更大。也是一个非常好的可以提高水平的设计。
对于其中的xxxxx、数据缓存、pcie上传都做了修改。
不过,之前的重构之路一直很顺利,终于在M6上栽了跟头。数据缓存的重构失败,最终又退回到老版本。
其中种种,已经放在《M6项目总结-逻辑方向.ppt
经过两个项目的洗礼,对于逻辑设计,器件,时序,架构等等的认识,更加深入了。
此时,对于xxxx控制逻辑的重构,也有浓厚的兴趣。M5做完,M6开始之前,还曾花了3周看xx的代码,只是当时已近年关,效率较低,年后即投入M6xx重构未在进行下去。不过xx控制的重构后来倒是做了。
此时,应该算是一个比较优秀的逻辑工程师了。
对于器件和时序的认识,比较深刻。例如给出了《FPGA的管脚分配指南-时序相关.doc
2012年中,成为逻辑组组长,不过由于M6事物繁忙,直到下半年,才开始着手管理团队。
第五阶段(2013-)
第五阶段:逻辑架构师
之所以认为,要进入第五阶段,必须要成为逻辑相关管理人员,是因为此时需要操作的代码和设计是非常多和复杂的,所以需要一个团队来共同完成。而且,开始更多的从整体开始考虑。
这个阶段,主要主导完成了M7项目和M8项目。
开始对整体的逻辑架构有所考虑,并分配不同的工作任务。
对于整个项目的逻辑设计开始负责,完成整体方案,识别风险点,保证时间节点,并且熟悉整个业务流。
由于这2个项目换用了全新的fpga,因此再次加深了对器件和时序的认识。例如M8的管脚时序约束的风险解决。
并且开始搭建可重用,复用性好合效率高的仿真平台。
M7项目调通用了7周,但是基本相同的工作量和参与人员,M8调通只用了2周。对于项目整体的把握,有了提高。
此时,已经写过11万代码
目前,仍处于本阶段之中。
此帖出自FPGA/CPLD论坛
点赞 关注(1)
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表