查看: 638|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2019-11-4 13:48
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2020-6-2 09:58:30 | 显示全部楼层 |阅读模式
    分享到:
    学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++协议设计的本质也是一样的。只要学会了渔,就可自由撒网。

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

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


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

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 23:51 , Processed in 0.119400 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.