经验:如何降低FPGA逻辑交接的难度

经验:如何降低FPGA逻辑交接的难度

更新历史
201901026:

  1. 首次发布

作为一名电子学工程师,本人在逻辑开发的经历中,经常看到以下这种情况的发生:

  • 甲把FPGA逻辑交接给乙后,乙要花很长的时间去熟悉逻辑代码,才能小心翼翼地尝试为新的需求做出相应的更改。

比较有趣的是,上述情况发生时,往往同时存在如下的因素:

  • 甲的FPGA逻辑风格混乱、缺少注释
  • 甲没有为FPGA逻辑编写方案或者手册的文档
  • 由于逻辑开发过程中多次出现需求更改,FPGA逻辑中的模块划分略有些(或者非常)混乱

在上述因素同时出现的情况下,不走运的乙就会面临如下的尴尬局面:

  • 想直接在原有逻辑的基础上进行修改,却不知道从哪里下手。。。
  • 想狠下心来重写逻辑,却很茫然:这个逻辑的设计需求是什么?
  • 有问题问甲总可以吧,却惊奇地发现:甲忘了,甲真的忘了。。。

以上的情况,想必接手过别人的FPGA逻辑的电子学工程师,都深有体会吧。那么问题来了,对于一个团队,怎样才能降低FPGA逻辑交接的难度呢?本人见过以下几种方法,在此进行分享:

方法实际效果
统一FPGA逻辑代码的风格执行后能略微降低FPGA逻辑交接的难度,但是前期执行难度大。比如:有人习惯于使用一段式状态机,有人习惯于使用三段式状态机;有人习惯于使用驼峰式命名(例如:MySig),有人习惯于使用下划线命名(例如:my_sig);更糟糕的是,有人压根就不愿意按统一的风格写逻辑代码。
必要的地方加入注释执行后能略微降低FPGA逻辑交接的难度,但是效果不理想。不同的人对"必要的地方"的理解大相径庭,并且更糟糕的情况是:经常有人更新了逻辑代码后忘了更新注释。
尽可能地统一各个模块的接口执行起来容易且能大幅度降低FPGA逻辑交接的难度。不过,要求设计的接口尽可能地具有通用性。
编写文档执行后能大幅度降低FPGA逻辑交接的难度,但是执行的难度大:1. 逻辑的需求总是变化,文档的修订会成为一项繁重的任务。这是因为,要确保文档的可靠性、可读性、非歧义性,相当费时费力。2. 如果选择先设计完整的逻辑方案再完成逻辑代码,则要求逻辑方案的设计者具有很高的经验水平;如果选择先完成逻辑代码再编写相应的手册,则会面临一个问题:由于缺乏前期规划,逻辑代码写得是随心所欲,事后谁有心情为其写手册啊?

窃以为,统一模块接口、编写文档是降低FPGA逻辑交接难度的正途,也是一个团队建立"FPGA逻辑生态"的关键,应当着力推行。如果一个团队在开发FPGA逻辑时不考虑模块接口的统一性,也不为逻辑编写文档,那么这个FPGA逻辑就是一次性的,用完之后就是垃圾。如果一个团队开发的FPGA逻辑基本都是一次性的,那么可以预料的是,这个团队是难以发展起来的,因为这个团队一直在重复造轮子。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值