PCIE之RIFFA框架接口时序

一、概述

  RIFFA是一个开源框架,用于实现简便的PCIE通信,使开发者只需要关注与数据相关的接口,不必花费大量时间用于TLP包的解析核封装。一个简单的结构框图如下:
在这里插入图片描述
二、接口时序
  使用RIFFA框架开发只用关注用户侧的数据接口时序,RIFFA模块可以自己完成TLP封包解包。硬件接口如下图:
在这里插入图片描述
  接口名称红色的为握手信号,黑色的为FIFO端口(RIFFA模块中用FIFO作为数据缓冲)。I/O的方向以USER LOGIC为起点,例如对于USER LOGIC,CHNL_RX_CLK为output,对于RIFFA则为input。具体的接口功能如下:

  • CHNL_RX_CLK:用户端(USER LOGIC)从RIFFA读数据的时钟(其实就是从FIFO中读);
  • CHNL_RX:高电平表明RIFFA中有数据到来;
  • CHNL_RX_ACK:高电平表明可以接收来自RIFFA的数据;
  • CHNL_RX_LAST:高电平表明这是最后一个事务(最后一个TLP包);
  • CHNL_RX_LEN[31:0]:数据长度,单位是4字节。意思就是LEN*4是数据的字节数;
  • CHNL_RX_OFF[30:0]:四字节偏移,指示包头包尾不是整DW时的字节有效位;
  • CHNL_RX_DATA[DWIDTH-1:0]:数据;
  • CHNL_RX_DATA_VALID:数据有效标志;
  • CHNL_RX_DATA_REN:其实就是RIFFA中FIFO的读使能。当数据标志一般为CHNL_RX_DATA_VALID & CHNL_RX_DATA_REN;
  • CHNL_TX_CLK:用户端(USER LOGIC)向RIFFA写数据的时钟(其实就是FIFO写时钟);
  • CHNL_TX:高点平表明有数据要发送;
  • CHNL_TX_ACK:当有高脉冲来临时,才可以向RIFFA写入数据;
  • CHNL_TX_LAST:高电平表明这是最后一个事务(最后一个TLP包);
  • CHNL_TX_LEN[31:0]:数据长度,单位是4字节。意思就是LEN*4是数据的字节数;
  • CHNL_TX_OFF[30:0]:四字节偏移,指示包头包尾不是整DW时的字节有效位;
  • CHNL_TX_DATA[DWIDTH-1:0]:发送数据;
  • CHNL_TX_DATA_VALID:数据有效标志;
  • CHNL_TX_DATA_REN:高电平时USER LOGIC中的数据才被RIFFA读走;
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值