axpro的个人空间 https://blog.eetop.cn/424254 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Multi-Channel PCIe QDMA&RDMA Subsystem

已有 359 次阅读| 2022-12-24 20:39 |个人分类:交流共享|系统分类:芯片设计| PCIe, SGDMA, CDMA, RDMA


可交付资料:

1.      详细的用户手册

2.      Design File:Post-synthesis EDIF netlist or RTL Source

3.      Timing and layout constraints,Test or Design Example Project

4.      技术支持:邮件,电话,现场,培训服务

 

联系方式:

Emailneteasy163z@163.com

1    介绍

基于PCI Express Integrated BlockMulti-Channel PCIe QDMA&RDMA Subsystem实现了使用DMA地址队列和DMA Ring缓冲的独立多通道、高性能ContinousScather Gather DMA,提供FIFO/AXI4-Stream用户接口。

1.1      特性

Ø  支持Ultrascale+Ultrascale7 SeriesPCI Express Integrated Block

Ø  支持64128256512-bit数据路径

Ø  64-bit源地址,目的地址,和描述符地址

Ø  多达8个独立的host-to-cardH2C/Read)数据通道或H2C DMA

Ø  多达8个独立的card-to-hostC2H/Write)数据通道或C2H DMA

Ø  AXI4-Stream/FIFO用户接口(每个通道都有自己的AXI4-Stream/FIFO接口)

Ø  每个DMA引擎支持DMA地址队列,队列深度可达32

Ø  每个DMA引擎支持DMA Ring缓冲,Ring缓冲深度和个数可配置

Ø  H2C DMA支持视频显示定时时序输入控制

Ø  AXI4-Lite Master接口允许PCIe通信绕过DMA引擎

Ø  Scather Gather描述符列表支持无限列表大小

Ø  每个描述符的最大传输长度为4GB

Ø  MSI中断

Ø  连续描述符的块获取

Ø  中断或查询模式

1.2      应用

本内核体系结构支持广泛的计算和通信目标程序应用,强调性能、成本、可扩展性、功能可扩展性和关键任务可靠性。典型应用包括:

数据通信网络

电信网络

宽带有线和无线应用

网络接口卡

用于各种应用程序的服务器add-in card

典型应用如下图所示:

 Multi-Channel PCIe QDMA&RDMA Subsystem Application.JPG                                              

1 Multi-Channel PCIe QDMA&RDMA Subsystem典型应用:8通道视频采集和视频显示

2    概述

Multi-Channel PCIe QDMA&RDMA Subsystem作为一个高性能DMA数据搬移器,内核通过AXI4-Stream/FIFO接口直接连接RTL逻辑。使用提供的字符驱动程序,AXI4-Stream/FIFO接口可用于PCIe地址空间和AXI地址空间之间的高性能数据搬移。除了基本的DMA功能,DMA支持多达8个独立的upstreamdownstream通道,每个通道支持深度为32DMA地址队列,以及深度和个数可配置的DMA Ring缓冲,另外还允许PCIe通信绕过DMA引擎。

Multi-Channel PCIe QDMA&RDMA Subsystem.JPG

2 Multi-Channel PCIe QDMA&RDMA Subsystem概述

2.1      特性概要

基于描述符提供的信息:源地址,目的地址和传输数据长度,Multi-Channel PCIe QDMA&RDMA Subsystem实现Host存储器和PCIe DMA子系统之间的数据搬移。这些DMA可以同时是Host to CardH2C)和Card to HostC2H)传输。每个DMA通道对应各自的AX4-Stream/FIFO接口,DMAHost存储器获取并解析描述符链表,基于描述符链表信息完成自己通道的数据传输,然后使用MSI中断发出描述符完成或错误的信令。内核也提供多达16个输出到Host的用户中断信号。

主机可以通过以下2个接口访问用户逻辑:

Ø  AXI4-Lite Master配置接口:这个接口是一个固定的32-bit端口,用于对性能要求不高的用户配置和状态寄存器的访问

Ø  User Register:这个接口是多个32-bit向量信号和1-bit信号,这些信号来自对应DMA通道数据搬移过程中产生的控制或状态信号

3    产品规格

结合Integrated Block for PCI Express IPMulti-Channel PCIe QDMA&RDMA SubsystemPCIe提供了一个高性能的DMA解决方案。

3.1            性能

Endpoint配置参数:Max Payload Size=256-byteMax Read Request Size=512-byte

8-Channel PCIe-SGQDMA SubsystemDMA Transfer Length = 4MB

1 PCIe 3.0 x16 C2H DMA速率


DMA0

DMA1

DMA2

DMA3

DMA4

DMA5

DMA6

DMA7

速率

1660MB/s

1660MB/s

1660MB/s

1660MB/s

1660MB/s

1660MB/s

1660MB/s

1660MB/s

2 PCIe 3.0 x16 H2C DMA速率


DMA0

DMA1

DMA2

DMA3

DMA4

DMA5

DMA6

DMA7

速率

1670MB/s

1670MB/s

1670MB/s

1670MB/s

1670MB/s

1670MB/s

1670MB/s

1670MB/s

3 PCIe 3.0 x8 C2H DMA速率


DMA0

DMA1

DMA2

DMA3

DMA4

DMA5

DMA6

DMA7

速率

880MB/s

880MB/s

880MB/s

880MB/s

880MB/s

880MB/s

880MB/s

880MB/s

4 PCIe 3.0 x8 H2C DMA速率


DMA0

DMA1

DMA2

DMA3

DMA4

DMA5

DMA6

DMA7

速率

890MB/s

890MB/s

890MB/s

890MB/s

890MB/s

890MB/s

890MB/s

890MB/s

5 PCIe 2.0 x8 C2H DMA速率


DMA0

DMA1

DMA2

DMA3

DMA4

DMA5

DMA6

DMA7

速率

450MB/s

450MB/s

450MB/s

450MB/s

450MB/s

450MB/s

450MB/s

450MB/s

6 PCIe 2.0 x8 H2C DMA速率


DMA0

DMA1

DMA2

DMA3

DMA4

DMA5

DMA6

DMA7

速率

455MB/s

455MB/s

455MB/s

455MB/s

455MB/s

455MB/s

455MB/s

455MB/s

 

3.2            资源

8-Channel PCIe-SGQDMA Subsystem

7 PCIe 3.0 x16 DMA Subsystem资源


LUTs

FFs

BRAMs

PCIe

资源

46985

101938

150

1

8 PCIe 3.0 x8 DMA Subsystem资源


LUTs

FFs

BRAMs

PCIe

资源

26388

51935

78

1

9 PCIe 2.0 x8 DMA Subsystem资源


LUTs

FFs

BRAMs

PCIe

资源

26945

38687

55

1

 

8-Channel PCIe-CQDMA Subsystem

10 PCIe 3.0 x16 DMA Subsystem资源


LUTs

FFs

BRAMs

PCIe

资源

34976

75994

150

1

11 PCIe 3.0 x8 DMA Subsystem资源


LUTs

FFs

BRAMs

PCIe

资源

19364

37487

78

1

12 PCIe 2.0 x8 DMA Subsystem资源


LUTs

FFs

BRAMs

PCIe

资源

20973

29963

55

1


1.1            端口描述

Multi-Channel PCIe QDMA&RDMA Subsystem直接和integrated block for PCIe连接。和PCIe integrated block IP数据路径接口的宽度是64128256512-bit,时钟频率最高可达250MHz。除了AXI4-Lite Master接口,数据路径宽度适用于所有数据接口。AXI4-Lite Master接口的宽度固定为32-bit

以下列表描述了这个IP的端口(默认数据路径接口宽度是512-bitPCIe接口是x16)。

15 参数定义

参数名称

描述

默认值

CNUM

H2CC2H的通道数量

8

C2H_BUF_BRAM_CASCADE_DEPTH

C2H数据缓冲区的BRAM级联深度

0BRAM深度=29=512

1BRAM深度=29+1=1024

……

NBRAM深度=29+N

0

C2H_BUF_USE_URAM

C2H数据缓冲区是否使用URAM

0:不使用URAM

1:使用URAM

0

C2H_BUF_URAM_CASCADE_DEPTH

H2C数据缓冲区的URAM级联深度

0URAM深度=212=4096

1URAM深度=212+1=8192

……

NURAM深度=212+N

0

H2C_BUF_BRAM_CASCADE_DEPTH

H2C数据缓冲区的BRAM级联深度

0BRAM深度=29=512

1BRAM深度=29+1=1024

……

NBRAM深度=29+N

0

H2C_BUF_USE_URAM

H2C数据缓冲区是否使用URAM

0:不使用URAM

1:使用URAM

0

H2C_BUF_URAM_CASCADE_DEPTH

C2H数据缓冲区的URAM级联深度

0URAM深度=212=4096

1URAM深度=212+1=8192

……

NURAM深度=212+N

0

 

16 顶层接口信号

信号名称

方向

描述

pcie_trn_clk

输出

PCI Express Transaction接口时钟

pcie_trn_reset_n

输出

PCI Express Transaction复位,低有效

trn_lnk_up

输出

PCI Express Transaction   Link Up信号,高有效

 

17 PCIe接口信号

信号名称

方向

描述

pcie_refclk_p

输入

PCI Express 接口参考时钟+

pcie_refclk_n

输入

PCI Express 接口参考时钟-

pcie_perst_n

输入

PCI Express接口基本复位,低有效

pci_exp_txp[15:0]

输出

PCI Express串行差分输出+16通道

pci_exp_txn[15:0]

输出

PCI Express串行差分输出-16通道

pci_exp_rxp[15:0]

输入

PCI Express串行差分输入+16通道

pci_exp_rxn[15:0]

输入

PCI Express串行差分输入-16通道

 

18 H2C通道0-CNUM-1 FIFOFWFT)接口信号

信号名称

方向

描述

fifo_rdclk_disp

[CNUM-1:0]

输入

FIFO读时钟

Bit i,表示H2C通道i的读时钟

fifo_rdrstn_disp

[CNUM-1:0]

输入

FIFO读复位,低有效

Bit i,表示H2C通道i的读复位

fifo_rdreq_disp

[CNUM-1:0]

输入

FIFO读使能,高有效

Bit i,表示H2C通道i的读使能

fifo_q_disp

[512*CNUM-1:0]

输出

FIFO读数据

Bit 512*(i+1)-1~512*i,表示H2C通道i的读数据

fifo_empty_disp

[CNUM-1:0]

输出

FIFO空,高有效

Bit i,表示H2C通道i的缓存空信号

fifo_prog_empty_disp

[CNUM-1:0]

输出

FIFO可编程空(阈值等于16),高有效

Bit i,表示H2C通道i的缓存可编程空信号

 

19 C2H通道0-CNUM-1 FIFO接口信号

信号名称

方向

描述

fifo_wrclk_acq

[CNUM-1:0]

输入

FIFO写时钟

Bit i,表示C2H通道i的写时钟

fifo_wrrstn_acq

[CNUM-1:0]

输入

FIFO写复位,低有效

Bit i,表示C2H通道i的写复位

fifo_wrreq_acq

[CNUM-1:0]

输入

FIFO写使能,高有效

Bit i,表示C2H通道i的写使能

fifo_data_acq

[512*CNUM-1:0]

输入

FIFO写数据

Bit 512*(i+1)-1~512*i,表示C2H通道i的写数据

fifo_prog_full_acq

[CNUM-1:0]

输出

FIFO可编程满(阈值等于深度-16),高有效

Bit i,表示C2H通道i的缓存可编程满信号

 

20 Config AXI4-Lite Master接口信号

信号名称

方向

描述

m_axil_awaddr[31:0]

输出

write address

m_axil_awprot[2:0]

输出

write protection type

m_axil_awvalid

输出

write address valid

m_axil_awready

输入

write address ready

m_axil_wdata[31:0]

输出

write data

m_axil_wstrb[3:0]

输入

write strobes

m_axil_wvalid

输出

write valid

m_axil_wready

输入

write ready

m_axil_bresp[1:0]

输入

write response

m_axil_bvalid

输入

write response valid

m_axil_bready

输出

response ready

m_axil_araddr[31:0]

输出

read address

m_axil_arprot[2:0]

输出

read protection type

m_axil_arvalid

输出

read address valid

m_axil_arready

输入

read address ready

m_axil_rdata[31:0]

输入

read data

m_axil_rresp[1:0]

输入

read response

m_axil_rvalid

输入

read valid

m_axil_rready

输出

read ready

 

21 中断接口信号

信号名称

方向

描述

usr_intr_pos[15:0]

输入

用户中断输入。

Bit i:用户中断#i输入,上升沿有效。

 

22 软复位接口信号

信号名称

方向

描述

c2h_dma_grst_n

输出

C2H DMA全局复位输出,低有效。

c2h_dma_fsm_srst_n

[CNUM-1:0]

输出

C2H通道iDMA FSM复位输出,低有效。

c2h_dma_buf_srst_n

[CNUM-1:0]

输出

C2H通道iDMA Buffer复位输出,低有效。

h2c_dma_grst_n

输出

H2C DMA全局复位输出,低有效。

h2c_dma_fsm_srst_n

[CNUM-1:0]

输出

H2C通道iDMA FSM复位输出,低有效。

h2c_dma_buf_srst_n

[CNUM-1:0]

输出

H2C通道iDMA Buffer复位输出,低有效。

 

23 用户寄存器接口信号

信号名称

方向

描述

acquisition_stat

[32*CNUM-1:0]

输入

CNUMC2H通道状态

Bit 32*(i+1)-1~32*i,表示C2H通道i的状态

display_stat

[32*CNUM-1:0]

输入

CNUMH2C通道状态

Bit 32*(i+1)-1~32*i,表示H2C通道i的状态

acquisition_res

[32*CNUM-1:0]

输出

CNUMC2H通道的分辨率设置

Bit 32*(i+1)-1~32*i,表示C2H通道i的分辨率

display_res

[32*CNUM-1:0]

输出

CNUMH2C通道的分辨率设置

Bit 32*(i+1)-1~32*i,表示H2C通道i的分辨率

acquisition_fps

[32*CNUM-1:0]

输出

CNUMC2H通道的帧率设置

Bit 32*(i+1)-1~32*i,表示C2H通道i的帧率

display_fps

[32*CNUM-1:0]

输出

CNUMH2C通道的帧率设置

Bit 32*(i+1)-1~32*i,表示H2C通道i的帧率

acquisition_xfer_size

[32*CNUM-1:0]

输出

CNUMC2H通道的传输大小设置

Bit 32*(i+1)-1~32*i,表示C2H通道i的传输长度

display_xfer_size

[32*CNUM-1:0]

输出

CNUMH2C通道的传输大小设置

Bit 32*(i+1)-1~32*i,表示H2C通道i的传输长度

acquisition_xfer_num

[32*CNUM-1:0]

输出

CNUMC2H通道的传输总数设置

Bit 32*(i+1)-1~32*i,表示C2H通道i的传输总数

display_xfer_num

[32*CNUM-1:0]

输出

CNUMH2C通道的传输总数设置

Bit 32*(i+1)-1~32*i,表示H2C通道i的传输总数

acquisition_enable

[CNUM-1:0]

输出

CNUMC2H通道的采集使能,高有效

Bit i = 1,表示使能C2H通道i采集

display_enable

[CNUM-1:0]

输出

CNUMH2C通道的显示使能,高有效

Bit i = 1,表示使能H2C通道i显示

display_timing_enable[CNUM-1:0]

输出

CNUMH2C通道的内部显示定时使能,高有效。

Bit i = 1,表示使能H2C通道i内部显示定时

display_timing_ext_enable[CNUM-1:0]

输出

CNUMH2C通道的外部显示定时使能,高有效。

Bit i = 1,表示使能H2C通道i外部显示定时

acq_usr_reset[CNUM-1:0]

输出

CNUMC2H通道的用户复位信号

Bit i,表示C2H通道i用户复位信号

disp_usr_reset[CNUM-1:0]

输出

CNUMH2C通道的用户复位信号

Bit i,表示H2C通道i用户复位信号

usr_ctrl[31:0]

输出

用户控制信号输出

usr_ctrl2[31:0]

输出

用户控制#2信号输出

usr_stat[31:0]

输入

用户状态信号输入

acq_blk_baddr_l[32*CNUM-1:0]

输出

CNUMVID-ACQ数据块基址LSB

Bit 32*(i+1)-1~32*i,表示ACQ#i的数据块基址

disp_blk_baddr_l[32*CNUM-1:0]

输出

CNUMVID-DISP数据块基址LSB

Bit 32*(i+1)-1~32*i,表示DISP#i的数据块基址

acq_blk_baddr_h[32*CNUM-1:0]

输出

CNUMVID-ACQ数据块基址MSB

Bit 32*(i+1)-1~32*i,表示ACQ#i的数据块基址

disp_blk_baddr_h[32*CNUM-1:0]

输出

CNUMVID-DISP数据块基址MSB

Bit 32*(i+1)-1~32*i,表示DISP#i的数据块基址

acq_blk_size[32*CNUM-1:0]

输出

CNUMVID-ACQ数据块大小

Bit 32*(i+1)-1~32*i,表示ACQ#i的数据块总数

disp_blk_size[32*CNUM-1:0]

输出

CNUMVID-DISP数据块大小

Bit 32*(i+1)-1~32*i,表示DISP#i的数据块总数

acq_blk_num[32*CNUM-1:0]

输出

CNUMVID-ACQ数据块总数

Bit 32*(i+1)-1~32*i,表示ACQ#i的数据块大小

disp_blk_num[32*CNUM-1:0]

输出

CNUMVID-DISP数据块总数

Bit 32*(i+1)-1~32*i,表示DISP#i的数据块大小

acq_usr_param [32*CNUM-1:0]

输出

CNUMVID-ACQ用户参数

Bit 32*(i+1)-1~32*i,表示ACQ#i的用户参数

disp_usr_param   [32*CNUM-1:0]

输出

CNUMVID-DISP用户参数

Bit 32*(i+1)-1~32*i,表示DISP#i的用户参数

acq_pkt_num [32*CNUM-1:0]

输入

CNUMVID-ACQ数据包总数

Bit 32*(i+1)-1~32*i,表示ACQ#i的数据包总数

disp_pkt_num [32*CNUM-1:0]

输入

CNUMVID-DISP数据包总数

Bit 32*(i+1)-1~32*i,表示DISP#i的数据包总数

acq_dsc_pkt_num   [32*CNUM-1:0]

输入

CNUMVID-ACQ丢弃数据包总数

Bit 32*(i+1)-1~32*i,表示ACQ#i的丢弃数据包总数

disp_dpl_pkt_num   [32*CNUM-1:0]

输入

CNUMVID-DISP复制数据包总数

Bit 32*(i+1)-1~32*i,表示DISP#i的复制数据包总数

 

24 Display FPS Timing通道0-CNUM-1接口信号

信号名称

方向

描述

fifo_wrclk_disp_fps

[CNUM-1:0]

输入

FIFO写时钟

Bit i,表示Display FPS Timing通道i的写时钟

fifo_wrrstn_disp_fps

[CNUM-1:0]

输入

FIFO写复位,低有效

Bit i,表示Display FPS Timing通道i的写复位

fifo_wrreq_disp_fps

[CNUM-1:0]

输入

FIFO写使能,高有效

Bit i,表示Display FPS Timing通道i的写使能

fifo_prog_full_disp_fps

[CNUM-1:0]

输出

FIFO可编程满,高有效

Bit i,表示Display FPS Timing通道i的缓存可编程满信号



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 5

    粉丝
  • 7

    好友
  • 1

    获赞
  • 5

    评论
  • 2253

    访问数

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-2-27 02:40 , Processed in 0.028360 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部