短裙怎么做视频网站,网络推广 SEO优化 网站建设,杭州市做网站,html网页制作总结作者#xff1a;Hello,Panda
各位FPGAer周末愉快#xff0c;今天熊猫君分享一个基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案。 一、方案背景
先说方案的应用背景#xff1a;众所周知#xff0c;较为上层的如基于AI的机器视觉应用#xff0c;大多基于高端的专用SoC、AI专…作者Hello,Panda
各位FPGAer周末愉快今天熊猫君分享一个基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案。 一、方案背景
先说方案的应用背景众所周知较为上层的如基于AI的机器视觉应用大多基于高端的专用SoC、AI专用计算卡等比如说英伟达NVIDIA的一系列高端器件国内的海思Hisilicon、瑞星微RockChip等。在工业和科研应用领域一些超高速或超大面阵的图像传感器因输出图像需要极大带宽的缘故常常采用SLVS-EC接口输出为解决专用芯片无法直接支持SLVS-EC输入的问题这个SLVS-EC桥接到PCIe的设计方案便应运而生。
二、FPGA选型
桥接型的方案除了需要实现基本功能外还要求功耗低、面积小且成本不要太高。那么咱们先看这些SLVS-EC输出的图像传感器大多都是基于SLVS-EC Spec 2.0规范8-Lanes输出Lane速率4.752Gbps。那么对桥接FPGA的基本要求是
18对高速Serdes实现8-Lanes 4.752Gbps SLVS-EC数据接收
2至少PCIe Gen3 x4输出采集到的数据
3PCIe采用Stream模式对主控的控制要求太高主要是熊猫君在这种几乎满带宽情况下没怎么调好过所以不敢推荐Stream模式因此采用Memory Map模式因此需要至少32位宽的DDR缓存。
那么能够同时满足12对高速Serdes可接DDR缓存封装小且功耗低的器件截止本文发布似乎只有AU15P用起来刚刚好。其资源如下图所示12对SerdesPCIe用去4对还有8对可用来接入SLVS-EC170K的逻辑、144个RAM36K实现PCIE、SVLS-EC和DDR控制器能用上65%~75%也是刚刚好。器件选用SBVB48419mm×19mm封装全功能运行功耗3W左右均比较合适。 当然如果是图像传感器是4-LANEs SVLS-EC输出也可以支持两颗Sensor同时接入。
三、软件设计
本文以接入两颗4-Lanes SLVS-EC图像传感器为例描述软件设计架构。 如图所示
1SoC配置和控制Sensor时序FPGA接收SLVS-EC接口数据并可经PCIE接口输出相当于是数据透传
2SoC通过PCIe接口XDMA控制FPGA各模块和读取FPGA各模块的状态FPGA相当于是SoC的一个外设
3XDMA配置为AXI Memory Mapped模式SoC在收到XDMA给出的数据中断后读取图像数据。
1、SLVS-EC接收模块
SLVS-EC接收模块的设计框图如下 SLVS-EC的物理层支持1-Lane/2-Lanes/4-Lanes/8-Lanes 的 SLVS-EC 数据通道输入。SLVS-EC 核心组件由 RX 协议解析状态机、packet Parser 和字节到像素的转换等模块构成实现如Packet Header、Packet Footer等链路层功能和链路层协议管理等功能。支持的数据格式有 RAW8、RAW10、RAW12、RAW14、RAW16。
2、XDMA配置
通过AMD官方IP XMDMA实现PCIe传输。Vivado下关键配置如下图 如上图所示因为接入的是2组SLVS-EC相机因此用户中断请求配置为2个每个相机的数据对应一个独立的中断。同理DMA H2C/C2H也配置为独立的2个。M_AXI_LITE接口用于配置FPGA和读取状态。
3、主控读取
对PCIe主控而言Linux系统下面直接编译AMD提供的官方驱动即可不过需要注意的是不同版本的Linux内核头文件可能有些许差异根据编译信息处理即可下图是在Ubuntu 2022.4上使用QT取PCIe图显示效果。 今天的分享到此结束了希望对大家有所启发。大家有更好的设计想法有问题有需求均可与熊猫君联系一起学习、讨论、进步。