FPGA逻辑设计:通往设计自由之路

面包板社区 2020-06-01

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


初学英语的时候有这样的体会,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++协议设计的本质也是一样的。只要学会了渔,就可自由撒网。


之前你肯定看到过这样的结构图:


换个角度看,也可以是这样的:



后面我们将共同探讨如何渔,希望能帮助到您。


作者:大工小工, 来源:面包板社区

链接:https://mbb.eet-china.com/blog/uid-me-3885609.html

版权声明:本文为博主原创,未经本人允许,禁止转载!


-END-


欢迎关注@面包板社区
及时收看工程师技术干货
↓↓↓

关注我菜单栏查看100+篇干货



#推荐阅读#

  • 有一个懂机械、懂焊接、懂电子的爹是什么概念。。。

  • 信号与系统公式大全(全记下来的都是大神)

  • 下顿馆子,完美诠释了电子工程师为什么不愿意改设计?

  • 工程师谈第一次PCB上电的各种“奇幻”经历!

  • 加速和改进PCB布线

  • 工程师第一定律:电器坏了,肯定是电容器问题!

  • 最全的硬件测试5个流程,少一个都不行!

  • 嵌入式必须会的一些硬件面试题,你敢来试试吗?

  • 学模电很头痛?那是因为你没吃透清华老师总结的这3点核心能力!

  • 常用电路图符号大全

  • MOS场效应管基本知识


点击阅读原文,下载《cadence入门教程》

面包板社区 面包板社区——中国第一电子人社交平台 面包板社区是Aspencore旗下媒体,整合了电子工程专辑、电子技术设计、国际电子商情丰富资源。社区包括论坛、博客、问答,拥有超过250万注册用户,加入面包板社区,从菜鸟变大神,打造您的电子人脉社交圈!
评论
热门推荐
相关推荐
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦