FPGA逻辑设计系列文章☞通往设计自由之路

       看到题目,你可能会略感迷惑,听说过财富自由,设计自由又是什么呢?

初学英语的时候有这样的体会,26个英文字母都认识了,单词也没啥大问题,但只知道些基础语句,不能随心所欲的表达自己的意思。

       学FPGA的时候,也有这样的感觉:UART、SPI等一些协议都熟悉了;DDR及FLASH等一些存储器件也都实机用过了;硬件语言verilog及VHDL的语法也都了解了。甚至做过的项目都有十多个,但是总感觉心里不是很踏实:

       接下来的项目超出自己的能力范围怎么办?

       新的通信协议没有用过,甚至没有听过怎么办?

       需要处理的case太多,只会堆ifelse怎么办?

       用到的时钟个数多,时钟域之间处理不好怎么办?

      时序约束只是懵懂,实机测试不稳定怎么办?

       需要用到多张板卡,功能划分没有依据怎么办?

       ...........................等等

      之所以有上述一些困扰,多半是对自己的设计没有信心,不知道自己处于一个怎样的水平。很想做一个复杂项目来证明一下或者提升一下自己,如果只做些初级的案子或模块,很难有进一步的成长的,毕竟并不是所有的量变都能引起质变。

      然而真正遇到复杂的设计时,有前辈指导还好,如果没有,要独自闯过去,估计要扒一层皮才行。真正的问题在于,即便侥幸闯过去了,内部代码设计的怎么样只有自己知道,是否为了凑时序而生硬的堆砌语句?是否根据实机调试的结果反过来不知所以的修改代码?是否有理不清的关系的模块?如果是这样,那么后面的项目我们是否还有运气趟过去。

      项目是永远做不完的,升级打怪,最终的BOSS又在哪里?技术更新更是日新月异,学会了A,后面还有A+、B+等等。所以我们要的不是鱼,而是渔。

      相对其他软件工程师,国内做FPGA的人相对还是较少的,查看目前FPGA的相关书籍,也不是很多,在寥寥数本中大部分还是入门级的:

      介绍vivado工具如何使用

      介绍FPGA的内部架构

      来个跑马灯之类的程序

      讲讲数字信号的基础知识

...........................

      厚厚的一本,里面的内容大部分是图片,占据的页面没有最大,只有更大。或者讲些案例,但只是案例而已。只讲是这样做的,没有进行一步讲为什么这样做。总之给人的感觉是零零散散,形不成系统,书中讲的是1加1,但实际项目一上来就是微积分,给人以沉重的打击。

       那么FPGA逻辑设计有没有一些方法可寻呢?答案肯定是有的。有时候我们需要通过现象看本质,比如设计uart的程序和设计dma的程序,哪个困难一些呢?实际上都是由D触发器搭建成的,无非一个数量可能少一些,一个数量可能多一些。复杂项目也一样,是可以拆分成一个个简单的模块的,每个模块内部是可以拆分成一个个的功能段的,每个功能段又是可以用基础语句实现的。所以问题的关键在于怎么拆,如何拆。这样的话我们就不必担心未知的协议,uart和dma其实是一样的,A协议和A++协议设计的本质也是一样的。只要学会了渔,就可自由撒网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值