0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用Block Design加速设计

Comtech FPGA 来源:Comtech FPGA 作者:Comtech FPGA 2022-12-15 14:04 次阅读

一 Block Design设计方法

早期的FPGA,资源是比较有限的,设计规模相对也比较小,之前的设计流程中工程师常用的设计以HDL+Xilinx IP为结构,设计中也会顾虑到FPGA资源的节省。

随着FPGA的资源越来越大,设计的快速构建、易修改、随着版本可迭代的要求越来越高。好比在早期单片机时代,C语言是主流的工具;而处理器越来越强,脚本类语言能更快构建最终应用。

Xilinx越来越多的例程,给出的参考设计是基于Block Design设计方法的,block design设计方法具备如下优势:

A. 框图形式,直观易懂
Block Design基于框图的形式,搭积木+连线的方式; B. 节省大量的Coding时间

互联总线连线,可以鼠标单一连线。Block Design的一个IP往往可以独立运行,比代码的方式只是一个wrapper包含的内容更多;

C. 可以随着Vivado升级,快速更新IP,保持设计更新
传统HDL+IP的方式,IP升级后还需要检查对应HDL的适配。Block Design一般来说,IP作为一个模块升级,基本上Block Design直接升级,内部不用再干预; D. 包括大量的通用IP,可以灵活构建设计
尤其是基于AMBA的IP,可以帮助用户快速灵活构建设计;

二 Block Design设计实例

如何理解Block Design设计方法、工具如何使用等问题Xilinx有详细的文档手册来介绍,本文中不做介绍,本文简单以一个实际的案例,介绍使用Block Design加速设计。

本文描述的这个设计,需要4路光纤,运行Aurora协议,各路Aurora线速率不同。最终Aurora协议的数据部分,还需要通过PCIe上传到上位机。反过程是上位机的数据,通过PCIe最终分发到4路Aurora光纤,向外传输。

本文描述的这个设计中的两个要点:

1. 利用DDR做大容量缓存

有很多应用需要用DDR做缓存,例如常见的PCIe+Aurora收发,或者ADC/DAC,图像采集卡等,两边速率不匹配并且累计需要的容量超过FPGA内部FIFO的时候,需要外部的DDR做缓冲。

早期Xilinx DDR IP的用户接口,只提供了类似于FIFO那样的接口,并且只有一个用户接口。

05277c2c-7c3d-11ed-8abf-dac502259ad0.png

在传统的RTL设计方法中,需要将DDR作为缓存,需要自己做如下设计:

A. 多数据输入输出的接口,将app_接口扩展多个独立的接口,供不同的端口使用

B. 总线仲裁,多个独立接口仲裁,按照round-robin,或者抢占式的方式提供仲裁

C. 地址管理,不同的端口深度要求不同的情况下,对应管理不同的地址空间。

实现这些功能,大概需要写这么多代码,对一个工程师来说,这些代码可能需要2-4周的代码和仿真时间:

053e1f7c-7c3d-11ed-8abf-dac502259ad0.png

如果使用Block Design实现,1个小时差不多就可以实现上面的这些内容,在Block Design中:

A. 最右侧的DDR IP 直接出AXI接口;

B. 使用AXI Smart Connect实现多端口扩展,自带仲裁功能;

C. 使用DATAMOVER完成外围FIFO数据到DDR的数据读写;

05516a6e-7c3d-11ed-8abf-dac502259ad0.png

搭建这个Block只需要10分钟,到这一步为止,剩下的工作只需要控制DATAMOVER的命令接口即可。

2. 使用XDMA直接和DDR交互

过去Xilinx 平台设计DMA,从最早的XAPP1052,到后来一些付费的PLDA和NWlogicIP,设计复杂度不用说,哪怕购买了IP也需要一些时间融入到自己的产品中。

Xilinx有一个XDMA IP,这个IP的介绍和使用参考PG195。这里使用Block Design,添加XDMA。

XDMA对外有2个接口:

A. 一个是AXI_LITE接口,这里接AXI_BRAM IP,对外是一个bram接口,用作寄存器接口,控制PCIe卡内部的寄存器;

B. 一个是AXI Memory Full接口,可以直接对接DDR空间,访问所有的DDR部分;

05a198e0-7c3d-11ed-8abf-dac502259ad0.png

通过地址空间来看,DDR被PCIe XDMA和4路DATAMOVER共享,DATAMOVER外部接收的数据缓存在DDR空间,上位机可以直接读走这片缓存的数据,从而实现外部数据到上位机的过程。

05b4fdf4-7c3d-11ed-8abf-dac502259ad0.png

一个实际的PCIe Aurora光纤收发的工程,在Block Design中搭建这些框图,外围的代码非常简单。下面是一个实际的工程,4光口的Aurora收发卡,使用DDR缓存,并且使用PCIe和上位机交互。

Block Design中包含了PCIe部分,以及上面的DDR缓冲的部分,外部只需要1个DATAMOVER写控制、1个DATAMOVER读控制、1个寄存器接口,即完成整个设计。

05f96250-7c3d-11ed-8abf-dac502259ad0.png

三 结语

使用Block Design设计方法,主体部分都可以快速拖拽和连线完成,使得外围所需要的的代码大大简化,只需要区区3个模块代码,完成从数据流到DDR的缓冲以及通过XDMA读取DDR的过程,从而完成外围接口和上位机的通讯。

这个设计可以适配很多种Stream形式的设计:

A. Aurora光纤收发卡;

B. Camera Link图像采集卡;

C. AD/DA数据采集回放卡;

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21750

    浏览量

    604057
  • 代码
    +关注

    关注

    30

    文章

    4797

    浏览量

    68707
  • Block
    +关注

    关注

    0

    文章

    26

    浏览量

    14705

原文标题:利用Block Design加速设计

文章出处:【微信号:Comtech FPGA,微信公众号:Comtech FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    从版本控制到全流程支持:揭秘Helix Core如何成为您的创意加速

    加速
    龙智DevSecOps
    发布于 :2024年11月26日 13:42:47

    U50的AMD Vivado Design Tool flow设置

    AMD Alveo 加速卡使用有两种流程,AMD Vitis Software Platform flow 和 AMD Vivado Design Tool flow。比较常见的是 Vitis
    的头像 发表于 11-13 10:14 207次阅读
    U50的AMD Vivado <b class='flag-5'>Design</b> Tool flow设置

    GPU加速计算平台是什么

    GPU加速计算平台,简而言之,是利用图形处理器(GPU)的强大并行计算能力来加速科学计算、数据分析、机器学习等复杂计算任务的软硬件结合系统。
    的头像 发表于 10-25 09:23 258次阅读

    FPGA加速深度学习模型的案例

    FPGA(现场可编程门阵列)加速深度学习模型是当前硬件加速领域的一个热门研究方向。以下是一些FPGA加速深度学习模型的案例: 一、基于FPGA的AlexNet卷积运算加速 项目名称
    的头像 发表于 10-25 09:22 254次阅读

    请问TLV320AIC3204中Processing Block是做什么用的啊?

    TLV320AIC3204中Processing Block 是做什么用的啊?
    发表于 10-24 08:24

    加速度传感器的应用

    加速度传感器是一种能够测量加速度的传感器。通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。传感器在加速过程中,通过对质量块所受惯性力的测量,利用牛顿第二定律获得
    的头像 发表于 09-30 08:08 724次阅读
    <b class='flag-5'>加速</b>度传感器的应用

    AMD Vivado Design Suite 2024.1全新推出

    AMD Vivado Design Suite 2024.1 可立即下载。最新版本支持全新 AMD MicroBlaze V 软核处理器,并针对 QoR 和 Dynamic Function
    的头像 发表于 09-18 09:41 515次阅读

    利用NVIDIA RAPIDS加速DolphinDB Shark平台提升计算性能

    DolphinDB 是一家高性能数据库研发企业,也是 NVIDIA 初创加速计划成员,其开发的产品基于高性能分布式时序数据库,是支持复杂计算和流数据分析的实时计算平台,适用于金融、电力、物联网和零售等行业。
    的头像 发表于 09-09 09:57 478次阅读
    <b class='flag-5'>利用</b>NVIDIA RAPIDS<b class='flag-5'>加速</b>DolphinDB Shark平台提升计算性能

    利用边沿速率加速器和自动感应电平转换器

    电子发烧友网站提供《利用边沿速率加速器和自动感应电平转换器.pdf》资料免费下载
    发表于 09-02 11:58 1次下载
    <b class='flag-5'>利用</b>边沿速率<b class='flag-5'>加速</b>器和自动感应电平转换器

    浅谈Pango_Design_Suite工具的安装

    联系了小眼睛FPGA官方客服,获取了基于PGX-Mini 4K开发板的SDK包,这里有包含了两个版本的Pango_Design_Suite安装文件,笔者
    发表于 05-30 00:43

    请问STM8L052R8的EEPROM到底是几个block

    哪位知道STM8L052R8的EEPROM到底是几个block,手册上写的不清不楚,按FLASH说的话,052应该是高密度的,但是EEPROM只有256B,所以很乱,具体也不知道分为几块
    发表于 05-11 08:29

    Cadence与NVIDIA联合推出利用加速计算和生成式AI重塑设计

    中国上海,2024 年 3 月 25 日——楷登电子(美国 Cadence 公司,NASDAQ:CDNS)近日宣布,公司将深化与 NVIDIA 在 EDA、系统设计与分析、数字生物学和人工智能领域的多年合作,推出两款变革性解决方案,利用加速计算和生成式 AI 重塑设计。
    的头像 发表于 03-25 14:36 624次阅读

    利用GPU加速在Orange Pi 5上跑LLMs:人工智能爱好者High翻了!

    本期视频将会给人工智能爱好者们带来超级震撼!视频中,我们将深入了解利用GPU加速在OrangePi5上跑LLMs的精彩世界。最近知乎上的一篇文章《利用GPU加速,在OrangePi上跑
    的头像 发表于 01-22 15:29 1012次阅读
    <b class='flag-5'>利用</b>GPU<b class='flag-5'>加速</b>在Orange Pi 5上跑LLMs:人工智能爱好者High翻了!