马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
在回答这个问题之前,我们先看看一位FPGA大师的工作日常:
设计代码:
开始写第一个always代码
发现要增加一个信号,因此写第二个always,设计这个新增的信号
回到第一个always上,继续完善这个代码
开始写第三个always代码
感觉第一个always有情况没考虑到
一阵重新思考
回去修改第一个always的代码
写完后,得了,不检查代码了,仿真再说吧。
仿真过程:
每个时钟上升沿一个一个检查
发现这时某信号没有变高
检查代码,把BUG补上
继续检查波形,继续补BUG
发现信号A和B时序对不齐
思考是打补丁呢还是打补丁呢
是改这个信号呢,还是改那个信号,还是加一个信号
一番折腾后,终于对齐了
修改测试文件,再测试
还是有BUG,继续打补丁
该上板调试了
系统跑一会没问题,长时间跑就出BUG
用调试工具各种分析各种定位
一番折腾后,终于找到BUG
一个corner没想到/粗心大意漏了个条件/
早知道,要没这BUG,我早就做完了
又出现BUG了,又要来折腾啦。
是不是觉得很熟悉?我们每天满负荷的工作,原来竟然居然大部分时间在做这些!有没有什么方法让我们去掉上面的烦恼,一步到位?有的。
通常来说,编写FPGA程序好像完成一个命题作文题,我们根据中心思想去发挥去写作。如果,我们能运用一种方法,将这个过程变成填空题,所有设计环节都按照一定的步骤进行。从架构设计到每行代码,就是一道道的填空题填写进去,其效果可想而知。我们总结了一种FPGA设计的“八步法”,目的就是为了解决这个问题。有兴趣的朋友请留意我的系列文章或者加我QQ1504098466 |