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
    +关注

    关注

    1664

    文章

    22502

    浏览量

    639106
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74373
  • Block
    +关注

    关注

    0

    文章

    26

    浏览量

    15174

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RDMA设计52:构建RoCE v2 高速数据传输系统板级测试平台

    HDL 工程和 Block Design 工程两部分。HDL 工程如图 1 所示,由于 CMAC 集成块外部接口较为繁杂, 出于精简接口的考虑,并没有将 RoCE v2 高速数据传输系统打包为 IP
    发表于 04-01 10:50

    利用Solido Design Environment准确预测SRAM晶圆良率

    。本研究开发出新型良率建模方法,将随机离散缺陷注入 SRAM 良率预测。实践表明,基于Solido Design Environment (Solido DE) 的新型位失效预测方法与硅实测数据几乎完全吻合。
    的头像 发表于 02-02 10:20 556次阅读
    <b class='flag-5'>利用</b>Solido <b class='flag-5'>Design</b> Environment准确预测SRAM晶圆良率

    利用NVIDIA Cosmos开放世界基础模型加速物理AI开发

    NVIDIA 最近发布了 NVIDIA Cosmos 开放世界基础模型(WFM)的更新,旨在加速物理 AI 模型的测试与验证数据生成。借助 NVIDIA Omniverse 库和 Cosmos,开发者可以大规模生成基于物理学的合成数据。
    的头像 发表于 12-01 09:25 1420次阅读

    NVMe高速传输之摆脱XDMA设计45:上板资源占用率分析

    Block Design 设计后进行综合与实现, NoP 逻辑加速引擎的在不同 FPGA 平台中的资源占用率分别如表 1 和表 2 所示。 从表中可以看到, 本课题设计的 NoP逻辑加速
    发表于 11-13 08:36

    NVMe高速传输之摆脱XDMA设计44:工程设计考量?

    。 基于 VC709 FPGA 的 Block Design 工程设计如图 1 所示。 图中 CPU 模块中包含了 Xilinx 提供的 Microblaze CPU 软核以及一些内存与复位模块, 除时钟
    发表于 11-12 09:52

    利用蜂鸟E203搭建SoC【1】——AXI总线的配置与板级验证

    由于Vivado中Block Design的友好的ui界面以及丰富的IP资源,在FPGA上实现SoC大多会采用Block Design进行设计与实现。对于基于蜂鸟e203内核的SoC设
    发表于 10-30 07:35

    利用蜂鸟E203搭建SoC【2】——外部中断扩展与验证

    /perips/sirv_plic_top.v,修改如下 加入后,对e203进行打包,如下图所示,其中usr_irq_0和usr_irq_1为扩展的外部中断端口,可以在Block Design中连接外设中断信号
    发表于 10-29 07:14

    利用e203中NICE协处理器加速滤波运算

    和加法器的方法来加速滤波运算。 使用NICE协处理器加速的程序为一个长循环,计算较长(100到1000量级)的两个浮点数组乘累加的结果,分别命名为ifm (Input Feature Map
    发表于 10-21 13:40

    序祯达生物利用NVIDIA Parabricks技术加速多组学分析

    序祯达生物是中国领先的多组学和测序服务提供商之一,该公司利用 NVIDIA Parabricks 来加速多组学分析。借助 Parabricks,序祯达生物将全基因组测序的时间从 7 小时缩短至 31
    的头像 发表于 09-29 16:05 1152次阅读

    如何利用硬件加速提升通信协议的安全性?

    产品实拍图 利用硬件加速提升通信协议安全性,核心是通过 专用硬件模块或可编程硬件 ,承接软件层面难以高效处理的安全关键操作(如加密解密、认证、密钥管理等),在提升性能的同时,通过硬件级隔离、防篡改等
    的头像 发表于 08-27 09:59 1173次阅读
    如何<b class='flag-5'>利用</b>硬件<b class='flag-5'>加速</b>提升通信协议的安全性?

    Diode.computer:AI 驱动的设计服务商(Design House)

    “  Diode.computer 公司提供一套从设计到制造的全方位电子工程解决方案,旨在通过代码和人工智能技术,革新并加速传统的硬件开发流程。它本质上还是个 design house,但却把用到
    的头像 发表于 08-14 11:28 2755次阅读
    Diode.computer:AI 驱动的设计服务商(<b class='flag-5'>Design</b> House)

    The Ocean Cleanup携手亚马逊云科技 利用AI技术加速清除海洋塑料

    The Ocean Cleanup (“海洋清理”)展开合作,充分利用亚马逊云科技在人工智能(AI)、机器学习(ML)及云计算的能力,助力其清理大太平洋垃圾带(Great Pacific Garbage
    的头像 发表于 07-24 14:07 1161次阅读

    全球各大品牌利用NVIDIA AI技术提升运营效率

    欧莱雅、LVMH 集团和雀巢利用 NVIDIA 加速的智能体 AI 和物理 AI,大幅提升产品设计、营销及物流等方面的运营效率。
    的头像 发表于 06-19 14:36 1350次阅读

    粒子加速器 —— 科技前沿的核心装置

    粒子加速器全称“荷电粒子加速器”,是一种利用电磁场在高真空环境中对带电粒子(如电子、质子、离子)进行加速和控制,使其获得高能量的特种装置。粒子加速
    的头像 发表于 06-19 12:05 4060次阅读
    粒子<b class='flag-5'>加速</b>器 —— 科技前沿的核心装置

    AN65974示例如何链接fifo_slave_block 和 video_out的IP块?

    代码。 我下载了 AN65974 示例,但我不知道如何链接 fifo_slave_block 和 video_out 的 IP 块。 如何描述 XDC 文件的 fmc 连接
    发表于 05-12 07:31