相信大部分人都遇到过这种情况,花大力气改好了代码与测试文件,满心欢喜开始跑仿真,结果一仿全是错,又开始花大力气去debug。
本文总结两点好习惯能够提高开发的效率和体验。之所以叫做“习惯”是因为这是一种做事方式,和FPGA技术不相关的,我甚至认为可以应用到所有的类似的开发过程中。
一 确认 baseline
这一点的意思是你要明确你工作的起点的现状是什么样的,最好能是一个干净正确的起点。
假设现在我们要基于某个 code base 开发一个新的feature,那么我们要明确现在 code base 的情况。当我们准备开始开发写代码之前,很重要的一点是明确现有的 testbench 是不是能够跑通。
假如我们不明确这一点,当改好代码,增加完的新的feature,跑 testbench 发现仿真失败了,我们没法知道是原来就有的bug还是新加入的代码导致的。debug的过程会很痛苦,尤其是当系统比较复杂的时候。
而如果我们明确之前的 testbench 是好的,那么仿真的错误必然是新加入的代码导致的,那么我们可以直接定位相关的代码进行debug。
二 积少成多
这一点的意思是每次处理的改动少一些,简单一些,然后积少成多。
《独角兽项目》这本书里面有这么一句话:
如果在做出每个小更改之后都进行检查,那么永远不回有什么大问题需要解决了
我们还是以开发一个新的 feature 为例,假设现在这个新的feature需要在code base有5处大的改动,我们可以在每做完一处大的改动就跑一次仿真,确认新的baseline。如果我们选择另外一种做法,先完成全部的5出改动,再去跑仿真,仿真会有极大的概率出错,而且我们也需要花费极大的力气去debug。
另一个例子是做 code rebase。在整个项目的开发周期,可能会有好多次其他同事提交代码更新code base。如果我们只是在项目的尾期去做 code rebase,可想而知conflict会非常多,我们做rebase也会更艰难更容易出错,甚至导致项目的延期。比较好的习惯是,在 code base 有变化时,我们及时rebase,那么每次rebase的conflict没那么多,我们也可以很快完成继续下一步的开发。
全部0条评论
快来发表一下你的评论吧 !