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

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

3天内不再提示

FPGA内部接口设计

CHANBAEK 来源:FPGA的现今未 作者:FPGA的现今未 2023-09-07 17:05 次阅读

FPGA设计中,我们通常采用的都是“自顶向下”的设计方法,即现有顶层设计,再有细节设计。比如先有整个项目的功能框图、数据流程图等,然后再细分功能到一级模块,每个一级模块再细分到二级、三级甚至更低级别的模块。除了每个模块的设计,如何把模块连接起来?也是一个很有趣且重要的话题,这就是我们通常说的内部模块接口。这里先介绍几种常见的内部模块接口。

AXI接口

目前xilinx或者intel提供的IP core中的接口越来越多的都支持AXI接口,这种接口是业界非常通用的接口,使用的频率也非常的高,关于这个接口的说明,网上有很多资料,本文不在这里介绍该接口相关的信息

采用这种接口有什么好处呢?显然IP的移植性非常好,只要是使用AXI接口的设计,都可以直接调用这样的IP,不需要做任何接口上的修改,也不会出现对接口理解上的差异,确实很方便。尤其是你的模块需要和外部模块对接的时候,这里的外部可能是外部的客户、外部的合作伙伴等,标准的接口也能减少对接的沟通成本。

AXI接口笔者觉得也有一些缺点,接口相对比较复杂。如果我们的FPGA设计只是公司或者部门内使用,不需要对外,甚至都不需要重用的时候,那有没有一些更加简单的接口呢?这里重点介绍2种内部模块间通用接口,最后再说明这样接口的好处。

req-ack接口

先看时序图,这种接口通常是请求方有数据要发送之前,先发送一个req请求信号,同时保持数据不变,一直等待响应方的应答。当响应方处理完数据后,给一个ack应答信号,表示一次数据传送完成。

图片

这种接口的应用场景是什么呢?它一般应用在低速、无缓存数据传输场景。当2个模块之间的接口传输数据的性能较低,且有相互依赖,就可以采用这类接口。从时序图可以看出,在req阶段,整个data是不会变化,直到有ack后,再发送下一个数据。数据的传输依赖请求和响应双方的配合,彼此牵制。另外,发送发等当前数据处理完成后,才会有一下次数据发送,所以这类场景无需数据缓存,比较节省资源,但是性能较低。

流式接口

先看时序图,该接口共有5个信号, data_vld(数据有效信号)、 data(数据本身)、 data_sop(表示数据开始)、 data_eop(表示数据结束)、 data_index(和data相关的其他信号,位宽和格式可以用户自定义,往往在data_sop = 1或者data_eop = 1的时候有效,或者在整个data_vld = 1期间保持不变)、 data_afull(数据反压信号,通知对端不要再发送data)。

图片

这种接口信号,非常的像fifo的写接口信号,通过这种接口在发送数据的过程中,只要对端不反压就可以不停的发送。这种接口实现简单,模块之间高度解耦,性能较好。

也有人会想,用这样的私有接口,为什么不用标准axi_stream接口呢?确实这2种接口已经非常非常的相似了,唯一的不同就是反压的处理,私有接口是不反压的时候数据就可以无限制的发送,即发数据依赖data_afull = 0。但是axi_stream接口的vld和ready之间是没有相关关系的,协议规定不能相互依赖,这点这内部处理起来就稍稍麻烦点点。

另外即使afull = 1以后,一般都还可以继续发送2-3拍数据,时序处理起来也非常的简单。而axi_stream中的vld和ready之间是严格的时序关系,必须同时为1,数据才能正常发送,时序处理起来相对麻烦。

总结

当有对外的接口时,应该还是要采用业界标准的接口,但是模块内部的设计,还是要遵循设计简单、实用可靠、无依赖,性能高的基本原则。

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

    关注

    1602

    文章

    21323

    浏览量

    593214
  • FPGA设计
    +关注

    关注

    9

    文章

    425

    浏览量

    26273
  • 接口
    +关注

    关注

    33

    文章

    7640

    浏览量

    148496
  • AXI
    AXI
    +关注

    关注

    1

    文章

    126

    浏览量

    16286
收藏 人收藏

    评论

    相关推荐

    fpga内部主要结构及其功能分析(Kintex-7FPGA内部结构)

    Kintex-7 FPGA内部结构相比传统FPGA内部结构嵌入了DSP48E1,PCIE,GTX,XADC,高速IO口等单元,大大提升了FPGA
    发表于 08-24 09:26 1564次阅读
    <b class='flag-5'>fpga</b><b class='flag-5'>内部</b>主要结构及其功能分析(Kintex-7<b class='flag-5'>FPGA</b><b class='flag-5'>内部</b>结构)

    FPGA经典试题】FPGA内部资源模块——打响FPGA学习第一炮

    ⑴ 结合Xilinx、Altera 等公司的FPGA 芯片,简要罗列一下FPGA 内部的资源或专用模块,并简要说明这些资源的一些作用或用途。(至少列出5 项,越多越好)⑵ 如果,对内部
    发表于 03-08 11:03

    FPGA设计实例】基于FPGA的串行接口(RS-232)

    本帖最后由 eehome 于 2013-1-5 09:44 编辑 串行接口(RS-232) 连接到PC与FPGA的串信接口是一种简单的连接方式。本节课程将向大家展示了如何在一个FPGA
    发表于 03-20 14:05

    fpga内部结构和各接口实验怎么学

    fpga内部结构和各接口实验怎么学,看什么资料
    发表于 05-10 18:38

    通过FPGA实现温控电路接口及其与DSP通信接口的设计

    公司的 ACEX系列的EP1K100,它时钟频率高,具有丰富内部资源,提供大量可编程 IO管脚,配置十分方便。基于 FPGA的温控电路接口在整个电路中具有非常重要的作用。FPGA本身的
    发表于 08-19 09:29

    如何避免FPGA内部操作和ADC数据之间的同步问题?

    接口是LVDS2. FPGA驱动FSMC接口所需的最低内部时钟为40MHz3. 14位ADC(7个差分对)支持并行和LVDS接口,1个差分
    发表于 08-25 09:23

    基于FPGA的十端口千兆以太网接口的设计与实现

    当前的路由器或交换机产品都提供多端口千兆以太网接口。采用高性能FPGA 设计十端口千兆以太网接口, 阐述了系统平台的硬件设计及主要单元模块的功能,并对FPGA
    发表于 08-29 09:30 51次下载

    基于FPGA的SPI4.2接口设计

    本文介绍了一种FPGA和IPX2805之间的SPI4.2接口模块设计的方法,对硬件设计进行了说明,着重阐述了FPGA内部SPI4.2接口模块
    发表于 07-28 16:56 33次下载

    基于FPGA的SDI接口设计_苏建

    基于FPGA的SDI接口设计,學習FPGA的好資料!!!!
    发表于 06-06 10:00 29次下载

    _FPGA内部的RAM M9K

    FPGA内部的RAM M9K
    发表于 04-07 11:40 4次下载

    将UART功能集成到FPGA内部实现多模块的设计

    FPGA芯片却没有这个特点,所以使用FPGA作为处理器可以有两个选择,第一个选择是使用UART芯片进行串并转换,第二个选择是在FPGA内部实现UART功能。
    的头像 发表于 10-18 07:54 2345次阅读
    将UART功能集成到<b class='flag-5'>FPGA</b><b class='flag-5'>内部</b>实现多模块的设计

    怎么让FPGA内部超高带宽逻辑互连的方法

    了革命性的新型二维片上网络(2D NoC)。2D NoC如同在FPGA可编程逻辑结构上运行的高速公路网络一样,为FPGA外部高速接口内部可编程逻辑的数据传输提供了超高带宽(~27Tb
    发表于 03-04 15:59 1540次阅读

    FPGA内部详细架构

    为了便于管理和适应多种电器标准,FPGA 的 IOB 被划分为若干个组(Bank),每个 Bank 的接口标准由其接口电压 VCCO 决定,一个 Bank 只能有一种 VCCO,但不同 Bank 的 VCCO 可以不同。
    的头像 发表于 10-20 09:56 2230次阅读

    内部通信接口介绍

    内部通信接口:主要用于板级信号传输,通常应用于设备内部,特点是速度快,距离短,常用的有UART,IIC,SPI等接口。 外部通信接口
    的头像 发表于 04-04 15:18 1263次阅读
    <b class='flag-5'>内部</b>通信<b class='flag-5'>接口</b>介绍

    FPGA和外围接口总结

    FPGA和外围接口-基础版
    的头像 发表于 05-22 10:57 602次阅读
    <b class='flag-5'>FPGA</b>和外围<b class='flag-5'>接口</b>总结