FPGA从入门到精通(1) - 前序

       毕业后,从一个嵌入式硬件狗转做FPGA工程师,从中兜兜转转绕了不少弯路,为了给后人避坑,所以今天开始写有关FPGA从入门到精通的教程吧,这也算是给我国集成电路的发展做出微薄的贡献吧。

       本门课程主要是针对有一定数电基础的人看的。所以不会不像其他教程那样,上来就跟你讲verilog,跑马灯,按键,计数器等等。因为这么学,最后只会越来越让自己感觉所做的事情和个程序猿无差,与我的初心不符。所以我会更加偏向于从硬件设计的角度向读者加以讲解FPGA,这样才会在FPGA这条道路上越走越远,越吃越精。

        本门课程主要分为三部分:

        1.从FPGA的器件内部结构出发(这里以XILINX为主,其实无论是XILINX ,ALTERA,LATTICE,国产 。它们内部架构以及开发软件,其实都大同小异,一通则百通),讲解硬件描述语言是如何与内部单元和连线一一对应的。一般而言,FPGA内部(图1 XILINX A7系列的 Feature Summary)主要包含以下几大件。从实际出发,器件有啥我讲啥

        (1)不讲Logic Cells 因为Logic Cells是由 Slices组成的 ,Slices 数 * 6.4 =Logic Cells。

        (2)CLB(主要包括Slices ,DRAM)

        (3)DSP48E1

        (4)BRAM

        (5)CMTs(时钟管理单元,包括MMCM和PLL)

        (6)BANK 与 用户IO ,专用IO的关系

        (7)XADC

        (8)GTP(高速串行收发器)

        (9)PCIE

        2.讲解FPGA常用的IP 以及高速接口的应用,以及介绍在官方IP无法满足设计要求的前提下,如何根据官方IP的架构设计属于自己的IP 。举个栗子:官方的图像传感器相关的MIPI EXAMPLE的IP是最高只支持4通道的,然而实际应用中有可能用到8通道。我们不可能从零开始设计(这样做会很耗时间,并且做很多枯燥无味的无用功),但在已有的基础加以改进是一个很不错的选择。

        3.讲解FPGA相关的约束,这里会涉及到你们经常遇到的时序约束,以及布局约束等等。说到时序约束我不得不吐槽,一堆博文都是通过几张图在讲这个建立时间,保持时间是什么,然后告诉读者这个两个东东应该怎么算。实际上,从工程上来说,这个真的没啥屁用。因为计算的结果EDA软件早就帮你算好了,你需要做的是根据已有的计算结果,在时序余量不足的情况下对路径进行优化,在时序余量过剩的时候考虑相应的资源、功耗优化。       

        这是博主第一次系统的写博客,难免会有错漏的地方,如果有什么疑问或者建议,欢迎大家在下方留言。最后希望大家通过不断的学习,努力后能有所提升。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

参考文档:

       XILINX DS180 (7 Series FPGAs Data Sheet: Overview)

           

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章