热度 6
2016-3-29 09:30
1059 次阅读|
1 个评论
FPGA设计不是简单的语言描述,更应关心它的底层逻辑实现。状态机不仅仅是一种时序电路的设计方式,更是一种思维模式,能够让人理顺思路,攻克设计中的难点。希望把这些点滴记录下来,以便强化FPGA设计思想, 将自己的不足呈现出来,供大家批评 。 我在FPGA的板子上做了8051的简单功能的实现,目的在于熟悉Quartus环境与语法的使用。我发现FPGA的学习只是刚刚开始,毕竟我还是太年轻。 在学习中,抛开书本,自己独立尝试新的设计,很是吃力。我知道我遇到麻烦了,很多东西知道涵义,但表达出来却是十分苦难。我意识到我的知识还不成架构,没有一个清晰的体统条理。我为什么要写这样的语言,是因为我看了他人的模块,学习书本上的方法。但学以致用,知识迁移还存在很大问题。而最大的问题是,我知道问题,可我无法解决。 我承认学习是一个效仿的过程,但设计的思想是自己养成的。早期的可编程设计是根据原理图输入,工程师知道自己要设计什么,于是对应的电路图有了。于是后来才在原理图的基础上将语言代替逻辑设计,简化了设计的复杂度,渐渐语言描述流行起来,语言描述分析综合,在RTl网表中呈现逻辑电路。我发现我的设计是已知语言再去拼凑我的设计现实,结果只是差强人意吧,没有从根本上解决问题。 在数码管动态显示设计中,原理很简单,控制显示时间,控制发光管的电平输出实现效果。但我设计中,总会疏忽一些考虑,在仿真验证中错误不断。我开始怀疑是仿真软件的问题。于是开始板级验证,可想而知,结果是注定失败的。也许我会检查到错误,但结果没有意思,因为我的设计思维就是一个问题。没有清晰地条理,浪费的时间可想可知。无意间 ,在网上博客中找到一篇以原理图设计为主,还原语言实现的设计思想吸引了我, 思路清晰,值得我学习 。数码管动态显示呈现原理设计:分频器—显示时间控制;移位寄存器—位选选择;多路选择器、查找表—位选对应的0-F段选显示。依照原理图对应语言描述就清晰了不少,具体实现不加赘述。 不是因写代码而拼凑设计,而是根据设计需要选择合适的语言描述。这是我体会最深的一点。为写而写,是学不好的。没有扎实的数电知识,没有原理图与语句之间的丰富联想,没有熟练的逻辑设计思维,想要利用FPGA从事优秀的设计开发,可能还需要天赋吧。然而我还没有这份自信。 备注:我会在智慧科技(优先)、 EDN 、电子产品世界更新内容,信息不涉及商业用途