原创 维护遗留代码(9)——尊重原代码,尊重原作者

2010-5-11 11:22 4005 9 16 分类: FPGA/CPLD

        第三方提供的代码,经过了两个多月的时序调整,最终达到了时序收敛的目标,小范围功能修改前后两次编译之间的功能不稳定现象消失了。我这一系列的文章也暂时告一段落。现在,这组代码还在维护中,旧的bug还在逐个解决,新的功能正在稳步地添加。
        在维护这组遗留代码的过程中,我的收获主要集中在时序分析和收敛技术的提高上。还有一个重要的收获是:在读不懂、没读懂代码之前,先要尊重原代码。

        虽然这套代码有很多不令人满意的地方,但它毕竟正确地实现了我们要求的95%以上的功能;虽然它用去了芯片95%以上的资源,而且寄存器用得很少,但它的时序最终还是能够收敛的;虽然它使用了我们最不常用的编码风格,但它可以仿真、可以正确综合;更重要的是与我们基于高端FPGA芯片的设计相比,它用1/2的逻辑资源和1/4的存储器资源,实现了2倍还多的功能;虽然重用这套代码的方法目前还不清晰,但是这样一组“寒酸”的代码中蕴含的智慧,并不比我们原先那些“豪华”的代码少,其重用的价值并不低。
        这样一组代码,不得不让人尊重。尊重原代码,就是尊重原作者。今天我尊重前人的工作,明天我的工作才会得到他人的尊重。

        回想接手代码之初,我很是因为这套代码陌生的编码风格而困惑、苦恼,进而抱怨、批评、诟病这套代码的质量。现在想想,这样的态度是不可取的。这其中的道理就像人与人之间的关系,因为缺乏沟通,相互之间很容易由不理解而产生误会和猜疑,进而发展为抵触甚至是敌对情绪;只有放下成见,尝试去理解对方,才能化解误会和猜疑,求同存异,取长补短,成为朋友。
        阅读代码、修改代码、维护代码,是对前人工作的学习和继承,只有抱着谦虚的心态,才能形成全面和深入的认识,才能最终有所收获,求得共同的进步。


维护遗留代码(9)——尊重原代码,尊重原作者
维护遗留代码(8)——当riple遇到ripple(行波时钟)
维护遗留代码(7)——必不可少的引脚时序约束(内空)
维护遗留代码(6)——缺少例外的约束就是“过约束“(内空)
维护遗留代码(5)——逆向添加时钟约束
维护遗留代码(4)——时序问题初露端倪
维护遗留代码(3)——缺少JTAG接口的遗憾
维护遗留代码(2)——从搭建仿真环境入手
维护遗留代码(1)——从代码移交说起

PARTNER CONTENT

文章评论7条评论)

登录后参与讨论

用户1532436 2012-10-16 14:56

有意思,博主很久

用户323289 2010-11-15 16:11

学海无涯!谦卑中尊敬着!!

用户859628 2010-5-11 10:32

完全是实践总结的经验。看了真是受益匪浅啊。期待补齐前几篇。

用户1303485 2010-5-2 22:36

今天我尊重前人的工作,明天我的工作才会得到他人的尊重。 这句话我喜欢:) 尤其是做维护工作,在没有看明白别人代码之前,不轻易下结论也是成熟的表现。

ash_riple_768180695 2010-3-10 16:09

嗯!前面三个标题还没时间整理,不过早在2个月前就列入计划了。

用户1584993 2010-3-10 15:56

期待riple其他内容的补充,呵呵,“谦卑谦卑再谦卑,追求追求再追求”,应该可以是每个人,不单单工程师吧

ilove314_323192455 2010-3-10 13:37

是的,“谦卑谦卑再谦卑,追求追求再追求”,我想这是每一个工程师应该共勉的话
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
EE直播间
更多
我要评论
7
9
关闭 站长推荐上一条 /3 下一条