作者:搞FPGA开发的Tony老师,来源:CSDN博客
FPGA开发,虽然说行业应用千奇百怪,但是回归到平台设计这款,对外无非接口,对内无非片内总线
这里贴上Xilinx UG883的框图,聊一聊FPGA PCIE卡
带宽即是王道
不管面对怎么样的设计,明确用户的需求,完成带宽的评估是项目启动关键的第一步。这个步骤的进行,逻辑工程师也会对自己即将要处理的业务有个更深入的理解。
带宽的需求评估不妨从以下三个节点考虑
输入带宽
处理带宽
输出带宽
输入带宽
FPGA处理器输入的信源,是这个FPGA系统的入口,首先得考虑接不接的住的问题,不然从入口开始,我们就要考虑是采用一片FPGA还是多片FPGA的问题了。
处理带宽
信号到片内模块,经过各种算法处理、拆包、解析、打包…处理的过程中,处理带宽可能大于输入带宽,也可能小于输入带宽。根据带宽的变化以及处理延迟,需要考虑单片FPGA是否满足,同时是否需要外部存储及对应的带宽。
输出带宽
在完成处理之后,数据经过FPGA需要送出。输出多受限于数据流的下一级,需要跟俊数据流的下一级来选择合适的接口。
返璞归真——时钟与资源
完成了带宽的整体评估,从输入到输出,其实对应的逻辑时钟和资源其实可以评估的大差不差了。
FPGA对外接口需要注意的点:
GT的Lane数量、参考时钟与复位
DDR带宽与片内总线的适配
LVDS的bit clock 和 word clock
FPGA对内总线的注意点:
stream与memory mapped接口的选择
片内总线与片外接口总线的带宽(时钟与数据位宽)适配
片内总线的层级划分与地址空间划分
模块的划分,高内聚低耦合
复位网络单独拎出来,这个需要结合具体业务来考虑。