CN113961494B - 一种pcie总线与axi总线的桥接系统 - Google Patents
一种pcie总线与axi总线的桥接系统 Download PDFInfo
- Publication number
- CN113961494B CN113961494B CN202111224940.5A CN202111224940A CN113961494B CN 113961494 B CN113961494 B CN 113961494B CN 202111224940 A CN202111224940 A CN 202111224940A CN 113961494 B CN113961494 B CN 113961494B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- descriptor
- tlp
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种PCIE总线与AXI总线的桥接系统,包括第一桥接模块、第二桥接模块和第三桥接模块;第一桥接模块,用于进行User寄存器的读写配置。第二桥接模块,用于将由AXI总线发送过来的AXI格式的输入数据流转换为PCIE格式传输至PCIE总线,完成输入数据流从AXI格式向PCIE格式的转换。第三桥接模块,将用于将PCIE总线发送过来的PCIE格式的输出数据流转换为AXI格式传输至AXI总线,完成输出数据流从PCIE格式向AXI格式的转换。通过实施本发明能够降低User端的控制复杂度,并提高数据传输效率。
Description
技术领域
本发明涉及数据交换网络技术领域,尤其涉及一种PCIE总线与AXI总线的桥接系统。
背景技术
PCIE(Peripheral Component Interconnect Express)是一种高速串行计算机扩展接口标准,是PCI规格的延伸。PCIE总线由英特尔(Intel)公司于2004年推出,最初是针对高速的声音与影像数据流处理所设计,后来用以提升量测装置到计算机内存的数据传输率。因PCIE总线的高性能和高带宽(目前最新的GEN5标准,一个通道单向速度可达到32Gbit/s,而且还有相当大的发展潜力,同时PCIE支持x1、x2、x4、x8、x16、x32多种通道模式伸缩性非常强,可以满足不同系统设备对数据传输带宽的不同需求),所以几乎取代了以往所有的内部总线(包括AGP和PCI)。AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。AMBA4.0包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。AXI4.0-lite是AXI的简化版本,ACE4.0是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。
在CPU与FPGA交互过程中,存在两种数据类型:一种是对User寄存器进行读写配置的数据量较小的配置状态信息,另一种是大批量的数据流。上文提到CPU的对外接口主要为PCIE,而FPGA作为嵌入式设备一般采用AXI总线,所以FPGA与CPU之间的交互都会做一个桥接。在现有技术中常见的PCIE2AXI桥接方案为单通道AXI4-Stream。该方案在进行数据传输时,PCIE的所有信息全部包在AXI4-Stream的数据总线上,发送到User端,User根据TLP包的类型判断是配置读写信息还是数据流,这样会降低DMA的效率,同时也会增加User端解包组包的难度。此外,由于采用单通道传输,User端需要先缓存接收的数据包以及需要发送的数据包,然后经过调度之后逐个传输,这对于User端来说控制较复杂,且传输效率低。
发明内容
本发明实施例提供一种PCIE总线与AXI总线的桥接系统,能降低User端的控制复杂度,并提高数据传输效率。
本发明一实施例提供了一种PCIE总线与AXI总线的桥接系统,包括:第一桥接模块、第二桥接模块以及第三桥接模块;所述AXI总线包括第一AXI总线、第二AXI总线以及第三AXI总线;所述第一AXI总线与所述第一桥接模块连接,所述第二AXI总线与所述第二桥接模块连接,所述第三AXI总线与所述第三桥接模块连接;
所述第一桥接模块,用于根据AXI协议对User寄存器的配置读写请求进行协议转换,并将协议转换后的配置读写请求通过所述第一AXI总线传输至User寄存器;以及,根据PCIE协议将User寄存器在接收配置读请求后所反馈的第一数据进行协议转换并传输至所述PCIE总线;其中,所述配置读写请求包括配置读请求以及配置写请求;
所述第二桥接模块,用于根据PCIE协议对由第二AXI总线输入的输入数据流进行协议转换,并将协议转换后的输入数据流传输至PCIE总线;
所述第三桥接模块,用于根据AXI协议对来自PCIE总线的输出数据流进行协议转换,并将协议转换后的输出数据流通过所述第三AXI总线输出。
进一步的,还包括DMA核控制器配置模块以及PCIE硬核;所述DMA核控制器配置模块分别与所述第一桥接模块和所述PCIE硬核连接;所述PCIE硬核分别与所述第二桥接模块和所述第三桥接模块连接;
所述DMA核控制器配置模块,用于将User寄存器的配置读写请求传输至所述第一桥接模块;
所述第一桥接模块将协议转换后的第一数据发送至所述DMA核控制器配置模块,以使所述DMA核控制器配置模块通过所述PCIE硬核将协议转换后的第一数据传输至所述PCIE总线;
所述第二桥接模块通过所述PCIE硬核将协议转换后的输入数据流传输至PCIE总线;
所述第三桥接模块通过所述PCIE硬核接收来自PCIE总线的输出数据流。
进一步的,所述第一AXI总线包括若干AXI4-Lite总线;所述第二AXI总线包括若干AXI4-Stream数据发送总线以及若干AXI4数据发送总线;所述第三AXI总线包括若干AXI4-Stream数据接收总线以及若干AXI4数据接收总线。
进一步的,所述第二桥接模块包括:写请求组包模块、写仲裁模块、若干第一C2H数据缓存模块、若干第二C2H数据缓存模块、若干第一C2H数据参数提取模块以及若干第二C2H数据参数提取模块;
所述写请求组包模块分别与所述PCIE硬核以及所述写仲裁模块连接;
所述写仲裁模块还与各所述第一C2H数据缓存模块以及各所述第二C2H数据缓存模块连接;
每一所述第一C2H数据缓存模块还分别与对应的AXI4-Stream数据发送总线以及对应的第一C2H数据参数提取模块连接;
每一所述第二C2H数据缓存模块还分别与对应的AXI4数据发送总线以及对应的第二C2H数据参数提取模块连接;
所述由第二AXI总线输入的输入数据流包括:由各AXI4-Stream数据发送总线输入的各第一输入数据流,以及由各AXI4数据发送总线输入的各第二输入数据流;
每一所述第一C2H数据缓存模块,用于对所对应的AXI4-Stream数据发送总线传输的第一输入数据流的各第一TLP数据进行缓存;
每一所述第一C2H数据参数提取模块,用于获取若干第一C2H描述符,并在每获取一第一C2H描述符时,根据第一C2H描述符提取若干第一TLP数据的第一TLP参数,继而将各所述第一TLP参数传输至对应的第一C2H数据缓存模块;其中,第一C2H数据缓存模块在每接收一第一TLP参数时,根据第一TLP参数生成第一写请求并将所述第一写请求传输至写仲裁模块;
每一所述第二C2H数据缓存模块,用于对所对应的AXI4数据发送总线传输的第二输入数据流的各第二TLP数据进行缓存;
每一所述第二C2H数据参数提取模块,用于获取若干第二C2H描述符,并在每获取一第二C2H描述符时,根据第二C2H描述符提取若干第二TLP数据的第二TLP参数,继而将各所述第二TLP参数传输至对应的第二C2H数据缓存模块,以使第二C2H数据缓存模块在每接收一第二TLP参数时,按AXI4协议组包发起DDR突发读请求至DDR;其中,DDR在收到所述DDR突发读请求后,通过对应的AXI4数据发送总线向对应的第二C2H数据缓存模块传输所需缓存的第二TLP数据,以使对应的第二C2H数据缓存模块在检测到所需缓存的第二TLP数据缓存完毕后,根据所缓存的第二TLP数据的第二TLP参数生成第二写请求并将所述第二写请求传输至写仲裁模块;
所述写仲裁模块,用于接收各所述第一C2H数据缓存模块所传输的第一写请求以及各所述第二C2H数据缓存模块所传输第二写请求并进行写请求仲裁;以及,根据仲裁结果将对应的TLP数据及TLP参数传输至写请求组包模块;
所述写请求组包模块,用于根据PCIE协议将所接收的TLP数据进行协议转换,并将所接收的TLP参数作为协议转换后的TLP数据的首部,对协议转换后的TLP数据组包后传输至PCIE硬核。
进一步的,每一所述第一C2H数据参数提取模块,用于获取若干第一C2H描述符,并在每获取一第一C2H描述符时,根据第一C2H描述符提取若干第一TLP数据的第一TLP参数,具体包括:
第一C2H数据参数提取模块获取若干第一C2H描述符,并在每获取一第一C2H描述符时,将第一C2H描述符的dst_addr参数作为首个第一TLP数据的基地址,将第一C2H描述符的blk_len参数作为第一C2H描述符所对应的多个第一TLP数据的总长度,根据所述dst_addr参数以及所述blk_len参数,以4Kbyte作为每一第一TLP数据的基地址与其长度之和的边界,提取出各第一TLP数据的基地址以及长度,获得各第一TLP数据的第一TLP参数。
进一步的,第一C2H数据缓存模块在每接收一第一TLP参数时,根据第一TLP参数生成第一写请求并将所述第一写请求传输至写仲裁模块,具体包括:
第一C2H数据缓存模块在每接收一第一TLP参数时,检测当前所缓存的第一TLP数据的长度,并在当前所缓存的第一TLP数据的长度与所接收的第一TLP参数的长度一致时,生成第一写请求并将所述第一写请求传输至写仲裁模块。
进一步的,每一所述第二C2H数据参数提取模块,用于获取若干第二C2H描述符,并在每获取一第二C2H描述符时,根据第二C2H描述符提取若干第二TLP数据的第二TLP参数,具体包括:
第二C2H数据参数提取模块获取若干第二C2H描述符,并在每获取一第二C2H描述符时,将第二C2H描述符的src_addr参数作为首个第二TLP数据的AXI4总线基地址,将第二C2H描述符的blk_len参数作为第二C2H描述符所对应的多个第二TLP数据的总长度,根据所述src_addr参数以及所述blk_len参数,以4Kbyte作为每一第二TLP数据的AXI4总线基地址与其长度之和的边界,提取出各第二TLP数据的AXI4总线基地址以及长度,获得各第二TLP数据的第二TLP参数。
进一步的,所述第三桥接模块,包括:读请求组包模块、读仲裁模块、读请求返回数据解析模块、若干第一C2H描述符缓存模块、若干第二C2H描述符缓存模块、若干第一H2C描述符缓存模块、若干第二H2C描述符缓存模块、若干C2H描述符TLP参数分离模块、若干H2C描述符TLP参数分离模块、若干第一H2C数据参数提取模块、若干第二H2C数据参数提取模块、若干第一输出数据流缓存模块以及若干第二输出数据流缓存模块;
所述来自PCIE总线的输出数据流包括:由各AXI4-Stream数据接收总线传输的各第一输出数据流,以及由各AXI4数据接收总线传输的各第二输出数据流;
所述读请求组包模块分别与所述PCIE硬核以及所述读仲裁模块连接;
所述读仲裁模块还分别与各所述C2H描述符TLP参数分离模块、各所述H2C描述符TLP参数分离模块、各所述第一H2C数据参数提取模块以及各所述第二H2C数据参数提取模块连接;
所述读请求返回数据解析模块分别与所述PCIE硬核、各所述第一C2H描述符缓存模块、各所述第二C2H描述符缓存模块、各所述第一H2C描述符缓存模块、各所述第二H2C描述符缓存模块、各所述第一输出数据流缓存模块以及各所述第二输出数据流缓存模块连接;
每一所述第一C2H描述符缓存模块还与对应的第一C2H数据参数提取模块连接;
每一所述第二C2H描述符缓存模块还与对应的第二C2H数据参数提取模块连接;
每一所述第一输出数据流缓存模块还与对应的AXI4-Stream数据接收总线连接;
每一所述第二输出数据流缓存模块还与对应的AXI4数据接收总线连接;
每一所述第一H2C描述符缓存模块还与对应的第一H2C数据参数提取模块来连接;
每一所述第二H2C描述符缓存模块还与对应的第二H2C数据参数提取模块来连接;
所述DMA核控制器配置模块还分别与各所述C2H描述符TLP参数分离模块以及各所述H2C描述符TLP参数分离模块连接;
所述DMA核控制器配置模块,还用于向各所述C2H描述符TLP参数分离模块以及各所述H2C描述符TLP参数分离模块传输对应的描述符的源地址及长度;
每一所述C2H描述符TLP参数分离模块,用于根据所接收的描述符的源地址及长度生成C2H描述符读请求,并将C2H描述符读请求传输至读仲裁模块;
每一所述H2C描述符TLP参数分离模块,用于根据所接收的描述符的源地址及长度生成H2C描述符读请求,并将H2C描述符读请求传输至读仲裁模块;
每一所述第一H2C数据参数提取模块,用于接收由对应第一H2C描述符缓存模块传输的第一H2C描述符,并根据第一H2C描述符生成第一输出数据流读请求,并将所述第一输出数据流读请求传输至读仲裁模块;
每一所述第二H2C数据参数提取模块,用于接收由对应第二H2C描述符缓存模块传输的第二H2C描述符,并根据第二H2C描述符生成第二输出数据流读请求,并将所述第二输出数据流读请求传输至读仲裁模块;
所述读仲裁模块,用于接收各所述C2H描述符TLP参数分离模块传输的C2H描述符读请求、各H2C描述符TLP参数分离模块传输的H2C描述符读请求、各所述第一H2C数据参数提取模块传输的第一输出数据流读请求和各所述第二H2C数据参数提取模块传输的第二输出数据流读请求,继而进行读请求仲裁,将读请求仲裁结果传输至读请求组包模块;
所述读请求组包模块,用于根据所述读请求仲裁结果,通过所述PCIE硬核向CPU请求数据,以使CPU向所述读请求返回数据解析模块反馈返回数据;
所述读请求返回数据解析模块,用于对返回数据的类型进行解析,在判断所述返回数据为H2C描述符时,将所述返回数据传输至对应的第一H2C描述符缓存模块或第二H2C描述符缓存模块;在判断所述返回数据为C2H描述符时,将所述返回数据传输至对应的第一C2H描述符缓存模块或第二C2H描述符缓存模块;在判断所述返回数据为输出数据流时,将所述返回数据按AXI4-Stream协议进行协议转换,将转换后的返回数据传输至对应的第一输出数据流缓存模块,或将所述返回数据按AXI4协议进行协议转换,将转换后的返回数据传输至第二输出数据流缓存模块;
每一所述第一C2H描述符缓存模块,用于将接收的C2H描述符作为第一C2H描述符进行缓存,并将所缓存的第一C2H描述符传输至对应的第一C2H数据参数提取模块;
每一所述第二C2H描述符缓存模块,用于将接收的C2H描述符作为第二C2H描述符进行缓存,并将所缓存的第二C2H描述符传输至对应的第二C2H数据参数提取模块;
每一所述第一H2C描述符缓存模块,用于将接收的H2C描述符作为第一H2C描述符进行缓存,并将所缓存的第一H2C描述符传输至对应的第一H2C数据参数提取模块;
每一所述第二H2C描述符缓存模块,用于将接收的H2C描述符作为第二H2C描述符进行缓存,并将所缓存的第二H2C描述符传输至对应的第二H2C数据参数提取模块;
每一所述第一输出数据流缓存模块,用于将接收的输出数据流作为第一输出数据流进行缓存,并将所缓存的第一输出数据流通过对应的AXI4-Stream数据接收总线输出;
每一所述第二输出数据流缓存模块,用于将接收的输出数据流作为第二输出数据流进行缓存,并将所缓存的第二输出数据流通过对应的AXI4数据接收总线输出。
通过实施本发明具有如下有益效果:
本发明实施例提供了一种PCIE总线与AXI总线的桥接系统,该系统包括了三类桥接模块,分别为第一桥接模块、第二桥接模块和第三桥接模块;第一桥接模块,用于进行User寄存器的读写配置。第二桥接模块,用于将由AXI总线发送过来的AXI格式的输入数据流转换为PCIE格式传输至PCIE总线,完成输入数据流从AXI格式向PCIE格式的转换。第三桥接模块,将用于将PCIE总线发送过来的PCIE格式的输出数据流转换为AXI格式传输至AXI总线,完成输出数据流从PCIE格式向AXI格式的转换。对于User端来说,通过本发明上述三个桥接模块可以将读写配置数据、输入数据流以及输出数据流通过不同的通道进行传输,各通道独立工作可同时进行,极大的提高了数据传输效率,且User端无需进行配置读写信息还是数据流的区分,降低了User端解包/组包的难度,无需进行复杂的调度控制,能降低User端的控制复杂度。
附图说明
图1是本发明一实施例提供的一种PCIE总线与AXI总线的桥接系统的总体结构示意图。
图2是本发明一实施例提供的第二桥接模块的结构示意图。
图3是本发明一实施例提供的第三桥接模块的结构示意图。
图4是本发明一实施例提供的TLP参数的提取流程示意图。
图5是本发明一实施例提供的读仲裁模块的仲裁流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明一实施例提供了一种PCIE总线与AXI总线的桥接系统,包括第一桥接模块、第二桥接模块以及第三桥接模块;所述AXI总线包括第一AXI总线、第二AXI总线以及第三AXI总线;所述第一AXI总线与所述第一桥接模块连接,所述第二AXI总线与所述第二桥接模块连接,所述第三AXI总线与所述第三桥接模块连接;
所述第一桥接模块,用于根据AXI协议对User寄存器的配置读写请求进行协议转换,并将协议转换后的配置读写请求通过所述第一AXI总线传输至User寄存器;以及,根据PCIE协议将User寄存器在接收配置读请求后所反馈的第一数据进行协议转换并传输至所述PCIE总线;其中,所述配置读写请求包括配置读请求以及配置写请求;
所述第二桥接模块,用于根据PCIE协议对由第二AXI总线输入的输入数据流进行协议转换,并将协议转换后的输入数据流传输至PCIE总线;
所述第三桥接模块,用于根据AXI协议对来自PCIE总线的输出数据流进行协议转换,并将协议转换后的输出数据流通过所述第三AXI总线输出。
在一个优选的实施例中,还包括DMA核控制器配置模块以及PCIE硬核;所述DMA核控制器配置模块分别与所述第一桥接模块和所述PCIE硬核连接;所述PCIE硬核分别与所述第二桥接模块和所述第三桥接模块连接;
所述DMA核控制器配置模块,用于将User寄存器的配置读写请求传输至所述第一桥接模块;
所述第一桥接模块将协议转换后的第一数据发送至所述DMA核控制器配置模块,以使所述DMA核控制器配置模块通过所述PCIE硬核将协议转换后的第一数据传输至所述PCIE总线;
所述第二桥接模块通过所述PCIE硬核将协议转换后的输入数据流传输至PCIE总线;
所述第三桥接模块通过所述PCIE硬核接收来自PCIE总线的输出数据流。
在一个优选的实施例中,所述第一AXI总线包括若干AXI4-Lite总线;所述第二AXI总线包括若干AXI4-Stream数据发送总线以及若干AXI4数据发送总线;所述第三AXI总线包括若干AXI4-Stream数据接收总线以及若干AXI4数据接收总线。
对于第一桥接模块,主要用于完成User寄存器的读写,其将PCIE轻量级数据总线(单个DW大小)到AXI4-Lite的转换。
具体的,针对User寄存器的配置读请求,DMA核控制器配置模块将读使能信号传输至第一桥接模块,第一桥接模块接收读使能信号后,将配置读请求根据AXI4-Lite协议打包后,通过AXI4-Lite总线输出至User寄存器,然后把User寄存器返回的数据(即上述第一数据)根据PCIE协议转换后,加上使能再送到PCIE CFG模块,PCIE CFG模块把转换后的数据放到CFG总线上,同时给出ACK,CPU就能通过PCIE硬核读取数据,获得User寄存器的状态信息;
针对User寄存器的写请求,第一桥接模块直接将配置写请求以及所需写入User寄存器的配置数据,打包成XI4-Lite协议的格式,然后通过XI4-Lite总线发出。
对于第二桥接模块,如图2所示,在一个优选的实施例中,第二桥接模块包括:写请求组包模块、写仲裁模块、若干第一C2H数据缓存模块、若干第二C2H数据缓存模块、若干第一C2H数据参数提取模块以及若干第二C2H数据参数提取模块;
所述写请求组包模块分别与所述PCIE硬核以及所述写仲裁模块连接;
所述写仲裁模块还与各所述第一C2H数据缓存模块以及各所述第二C2H数据缓存模块连接;
每一所述第一C2H数据缓存模块还分别与对应的AXI4-Stream数据发送总线以及对应的第一C2H数据参数提取模块连接;
每一所述第二C2H数据缓存模块还分别与对应的AXI4数据发送总线以及对应的第二C2H数据参数提取模块连接;
所述由第二AXI总线输入的输入数据流包括:由各AXI4-Stream数据发送总线输入的各第一输入数据流,以及由各AXI4数据发送总线输入的各第二输入数据流;
每一所述第一C2H数据缓存模块,用于对所对应的AXI4-Stream数据发送总线传输的第一输入数据流的各第一TLP数据进行缓存;
每一所述第一C2H数据参数提取模块,用于获取若干第一C2H描述符,并在每获取一第一C2H描述符时,根据第一C2H描述符提取若干第一TLP数据的第一TLP参数,继而将各所述第一TLP参数传输至对应的第一C2H数据缓存模块;其中,第一C2H数据缓存模块在每接收一第一TLP参数时,根据第一TLP参数生成第一写请求并将所述第一写请求传输至写仲裁模块;
每一所述第二C2H数据缓存模块,用于对所对应的AXI4数据发送总线传输的第二输入数据流的各第二TLP数据进行缓存;
每一所述第二C2H数据参数提取模块,用于获取若干第二C2H描述符,并在每获取一第二C2H描述符时,根据第二C2H描述符提取若干第二TLP数据的第二TLP参数,继而将各所述第二TLP参数传输至对应的第二C2H数据缓存模块,以使第二C2H数据缓存模块在每接收一第二TLP参数时,按AXI4协议组包发起DDR突发读请求至DDR;其中,DDR在收到所述DDR突发读请求后,通过对应的AXI4数据发送总线向对应的第二C2H数据缓存模块传输所需缓存的第二TLP数据,以使对应的第二C2H数据缓存模块在检测到所需缓存的第二TLP数据缓存完毕后,根据所缓存的第二TLP数据的第二TLP参数生成第二写请求并将所述第二写请求传输至写仲裁模块;
所述写仲裁模块,用于接收各所述第一C2H数据缓存模块所传输的第一写请求以及各所述第二C2H数据缓存模块所传输第二写请求并进行写请求仲裁;以及,根据仲裁结果将对应的TLP数据及TLP参数传输至写请求组包模块;
所述写请求组包模块,用于根据PCIE协议将所接收的TLP数据进行协议转换,并将所接收的TLP参数作为协议转换后的TLP数据的首部,对协议转换后的TLP数据组包后传输至PCIE硬核。
在一个优选的实施例中,每一所述第一C2H数据参数提取模块,用于获取若干第一C2H描述符,并在每获取一第一C2H描述符时,根据第一C2H描述符提取若干第一TLP数据的第一TLP参数,具体包括:
第一C2H数据参数提取模块获取若干第一C2H描述符,并在每获取一第一C2H描述符时,将第一C2H描述符的dst_addr参数作为首个第一TLP数据的基地址,将第一C2H描述符的blk_len参数作为第一C2H描述符所对应的多个第一TLP数据的总长度,根据所述dst_addr参数以及所述blk_len参数,以4Kbyte作为每一第一TLP数据的基地址与其长度之和的边界,提取出各第一TLP数据的基地址以及长度,获得各第一TLP数据的第一TLP参数。
在一个优选的实施例中,第一C2H数据缓存模块在每接收一第一TLP参数时,根据第一TLP参数生成第一写请求并将所述第一写请求传输至写仲裁模块,具体包括:
第一C2H数据缓存模块在每接收一第一TLP参数时,检测当前所缓存的第一TLP数据的长度,并在当前所缓存的第一TLP数据的长度与所接收的第一TLP参数的长度一致时,生成第一写请求并将所述第一写请求传输至写仲裁模块。
在一个优选的实施例中,每一所述第二C2H数据参数提取模块,用于获取若干第二C2H描述符,并在每获取一第二C2H描述符时,根据第二C2H描述符提取若干第二TLP数据的第二TLP参数,具体包括:
第二C2H数据参数提取模块获取若干第二C2H描述符,并在每获取一第二C2H描述符时,将第二C2H描述符的src_addr参数作为首个第二TLP数据的AXI4总线基地址,将第二C2H描述符的blk_len参数作为第二C2H描述符所对应的多个第二TLP数据的总长度,根据所述src_addr参数以及所述blk_len参数,以4Kbyte作为每一第二TLP数据的AXI4总线基地址与其长度之和的边界,提取出各第二TLP数据的AXI4总线基地址以及长度,获得各第二TLP数据的第二TLP参数。
具体的,第二桥接模块的输入存在两类总线的可能,一种是由一个或多个AXI4-Stream数据发送总线传输的第一输入数据流,一种是由一个或多个AXI4数据发送总线传输的第二输入数据流。
如果是由AXI4-Stream数据发送总线传输的第一数据流,各第一数据流流入各自对应的第一C2H数据缓存模块的同时,对应的第一C2H数据参数提取模块根据第一C2H描述符提取出当前时刻第一C2H数据缓存模块所需缓存的第一TLP数据的基地址和长度,当第一C2H数据缓存模块所缓存的数据量等于所需缓存的第一TLP数据的长度时,第一C2H数据缓存模块生成包含第一TLP数据的基地址和长度的第一写请求到写仲裁模块。
如果是AXI4-Stream数据发送总线传输的第二数据流,首先由第二C2H数据参数提取模块根据第二C2H描述符提取出当前时刻第二C2H数据缓存模块所需缓存的第二TLP数据的AXI4总线基地址和长度,然后C2H数据缓存模块根据第二TLP数据的AXI4总线基地址和长度,按AXI4协议组包发起DDR突发读请求至DDR,DDR在收到所述DDR突发读请求后,通过对应的AXI4数据发送总线向对应的第二C2H数据缓存模块传输所需缓存的第二TLP数据,紧接着第二C2H数据缓存模块在检测DDR所反馈的数据包收完时,生成包含有第二TLP数据的AXI4总线基地址和长度的第二写请求至写仲裁模块。
在此,需要对C2H数据参数提取模块(第一C2H数据参数提取模块或第二C2H数据参数提取模块)根据若干C2H描述符(第一C2H描述符或第二C2H描述符),提取各TLP数据的TLP参数进行说明;
一个描述符的格式如表1所示:
表1描述符存储格式
表1中,dst_addr参数,在数据从AXI总线传输至PCIE总线时用来做目的地址,在数据从PCIE总线传输至AXI总线时用来做AXI4总线写地址;
src_addr参数,在数据从PCIE总线传输至AXI总线时用来做源地址,在数据从AXI总线传输至PCIE总线时用来AXI4总线的读地址。
blk_len参数,为当前描述符对应的块长度。
ctrl_cmd参数,bit0描述符有效位,bit1停止位;nxt_addr参数为下一个块的起始地址指针,nxt_adj参数为临近描述符个数,reserved参数为保留位(ctrl_cmd参数、nxt_addr参数、nxt_adj参数以及reserved参数在请求描述符和产生中断时用到,此处不做叙述)。
在了解了描述符格式后,下面介绍从描述符中分离出TLP参数的过程,如图4所示,各状态之间的切换过程中会产生TLP参数。C2H描述符缓存模块(包括第一C2H描述符缓存模块和第二C2H描述符缓存模块,具体会在后文进行介绍)首先检测其缓存的数据量大小是否为大于或等于256Byte(参考描述符的长度为256Byte),如果是,读出一个描述符并分离出有效位,继续判断有效位为1则将描述符传输至C2H数据参数提取模块(第一C2H数据参数提取模块或第二C2H数据参数提取模块),否则返回到初始状态;
C2H数据参数提取模块从上面的有效描述符中分离出src_addr、dst_addr、blk_len和cmd_ctrl[1]。
如果描述符传输至了第一数据参数提取模块,则第一数据参数提取模块将dst_addr作为对应的第一C2H数据缓存模块所需缓存的首个第一TLP数据的基地址,后续根据TLP长度和是否跨4K边界来更新地址,如果TLP基地址加长度跨4KByte边界,需要分成两段地址,第一段基地址按正常流程计算,第二段的基地址为第一段基地址加长度后低12bit清0;blk_len作为多个TLP的总长度,单个TLP的长度与上面的基地址协同计算,若跨越4K边界,第一段的长度为第二段的基地址减去第一段的基地址,第二段的长度为剩下的长度;紧接着第一数据参数提取模块将分离出的参数传输至对应的第一C2H数据缓存模块,由第一C2H数据缓存模块发起上述第一写请求。
如果描述符传输至了第二数据参数提取模块,则第二数据参数提取模块,将src_addr,作为对应的第二C2H数据缓存模块的首个第二TLP数据的AXI4总线基地址,地址计算方法与dst_addr类似,只是初始基地址不同可能导致出现跨4KByte的时间点不同,AXI4总线的突发总长度与当前的TLP总长度一致,同样只是跨4K时间点不同,导致单个包的长度可能不一致;紧接着第二据参数提取模块将分离出的参数传输至对应的第二C2H数据缓存模块,由第二C2H数据缓存模块发起上述第二写请求。
cmd_ctrl[1]只有在一个描述符请求完时才会用到,值为1表示当前是最后一个描述符。
按照上述方法请求完一个TLP之后,C2H描述符缓存模块随即检测当前描述符是否请求完,若请求完再检测当前是否为最后一个描述符,若是代表一次DMA操作完成结束,否则又回到前面步骤。
写仲裁请求,在接收到各个写请求后,启动写请求仲裁。仲裁方式采取采集轮询与优先级并举的方式,由于存在的写请求个数为N,采取从通道0开始轮询就可以满足要求(没准备好数据的通道跳过)。仲裁出的数据和它对应的TLP参数传输至写请求组包模块,写请求组包模块根据PCIE协议把数据放到PCIE的Data总线上,把TLP参数发打包成Header,将TLP数据组包后传输至PCIE硬核。
对于第三桥接模块,如图3所示,在一个优选的实施例中,第三桥接模块,包括:读请求组包模块、读仲裁模块、读请求返回数据解析模块、若干第一C2H描述符缓存模块、若干第二C2H描述符缓存模块、若干第一H2C描述符缓存模块、若干第二H2C描述符缓存模块、若干C2H描述符TLP参数分离模块、若干H2C描述符TLP参数分离模块、若干第一H2C数据参数提取模块、若干第二H2C数据参数提取模块、若干第一输出数据流缓存模块以及若干第二输出数据流缓存模块;
所述来自PCIE总线的输出数据流包括:由各AXI4-Stream数据接收总线传输的各第一输出数据流,以及由各AXI4数据接收总线传输的各第二输出数据流;
所述读请求组包模块分别与所述PCIE硬核以及所述读仲裁模块连接;
所述读仲裁模块还分别与各所述C2H描述符TLP参数分离模块、各所述H2C描述符TLP参数分离模块、各所述第一H2C数据参数提取模块以及各所述第二H2C数据参数提取模块连接;
所述读请求返回数据解析模块分别与所述PCIE硬核、各所述第一C2H描述符缓存模块、各所述第二C2H描述符缓存模块、各所述第一H2C描述符缓存模块、各所述第二H2C描述符缓存模块、各所述第一输出数据流缓存模块以及各所述第二输出数据流缓存模块连接;
每一所述第一C2H描述符缓存模块还与对应的第一C2H数据参数提取模块连接;
每一所述第二C2H描述符缓存模块还与对应的第二C2H数据参数提取模块连接;
每一所述第一输出数据流缓存模块还与对应的AXI4-Stream数据接收总线连接;
每一所述第二输出数据流缓存模块还与对应的AXI4数据接收总线连接;
每一所述第一H2C描述符缓存模块还与对应的第一H2C数据参数提取模块来连接;
每一所述第二H2C描述符缓存模块还与对应的第二H2C数据参数提取模块来连接;
所述DMA核控制器配置模块还分别与各所述C2H描述符TLP参数分离模块以及各所述H2C描述符TLP参数分离模块连接;
所述DMA核控制器配置模块,还用于向各所述C2H描述符TLP参数分离模块以及各所述H2C描述符TLP参数分离模块传输对应的描述符的源地址及长度;
每一所述C2H描述符TLP参数分离模块,用于根据所接收的描述符的源地址及长度生成C2H描述符读请求,并将C2H描述符读请求传输至读仲裁模块;
每一所述H2C描述符TLP参数分离模块,用于根据所接收的描述符的源地址及长度生成H2C描述符读请求,并将H2C描述符读请求传输至读仲裁模块;
每一所述第一H2C数据参数提取模块,用于接收由对应第一H2C描述符缓存模块传输的第一H2C描述符,并根据第一H2C描述符生成第一输出数据流读请求,并将所述第一输出数据流读请求传输至读仲裁模块;
每一所述第二H2C数据参数提取模块,用于接收由对应第二H2C描述符缓存模块传输的第二H2C描述符,并根据第二H2C描述符生成第二输出数据流读请求,并将所述第二输出数据流读请求传输至读仲裁模块;
所述读仲裁模块,用于接收各所述C2H描述符TLP参数分离模块传输的C2H描述符读请求、各H2C描述符TLP参数分离模块传输的H2C描述符读请求、各所述第一H2C数据参数提取模块传输的第一输出数据流读请求和各所述第二H2C数据参数提取模块传输的第二输出数据流读请求,继而进行读请求仲裁,将读请求仲裁结果传输至读请求组包模块;
所述读请求组包模块,用于根据所述读请求仲裁结果,通过所述PCIE硬核向CPU请求数据,以使CPU向所述读请求返回数据解析模块反馈返回数据;
所述读请求返回数据解析模块,用于对返回数据的类型进行解析,在判断所述返回数据为H2C描述符时,将所述返回数据传输至对应的第一H2C描述符缓存模块或第二H2C描述符缓存模块;在判断所述返回数据为C2H描述符时,将所述返回数据传输至对应的第一C2H描述符缓存模块或第二C2H描述符缓存模块;在判断所述返回数据为输出数据流时,将所述返回数据按AXI4-Stream协议进行协议转换,将转换后的返回数据传输至对应的第一输出数据流缓存模块,或将所述返回数据按AXI4协议进行协议转换,将转换后的返回数据传输至第二输出数据流缓存模块;
每一所述第一C2H描述符缓存模块,用于将接收的C2H描述符作为第一C2H描述符进行缓存,并将所缓存的第一C2H描述符传输至对应的第一C2H数据参数提取模块;
每一所述第二C2H描述符缓存模块,用于将接收的C2H描述符作为第二C2H描述符进行缓存,并将所缓存的第二C2H描述符传输至对应的第二C2H数据参数提取模块;
每一所述第一H2C描述符缓存模块,用于将接收的H2C描述符作为第一H2C描述符进行缓存,并将所缓存的第一H2C描述符传输至对应的第一H2C数据参数提取模块;
每一所述第二H2C描述符缓存模块,用于将接收的H2C描述符作为第二H2C描述符进行缓存,并将所缓存的第二H2C描述符传输至对应的第二H2C数据参数提取模块;
每一所述第一输出数据流缓存模块,用于将接收的输出数据流作为第一输出数据流进行缓存,并将所缓存的第一输出数据流通过对应的AXI4-Stream数据接收总线输出;
每一所述第二输出数据流缓存模块,用于将接收的输出数据流作为第二输出数据流进行缓存,并将所缓存的第二输出数据流通过对应的AXI4数据接收总线输出。
具体的,对于第三桥接模块,它首先由读请求发起;包括:User数据读请求(即上述第一输出数据流读请求和上述第二输出数据流读请求),C2H描述符读请求以及H2C描述符读请求;
对于C2H描述符读请求以及H2C描述符读请求,首先由DMA核控制器配置模块向各C2H描述符TLP参数分离模块以及各H2C描述符TLP参数分离模块,传输对应通道的描述符的源地址和长度,然后各C2H描述符TLP参数分离模块或各H2C描述符TLP参数分离模块,将所接收的描述符的源地址作为src_addr参数,将所接收的描述符的长度作为blk_len参数,然后按图4所示的TLP参数提取流程(此时无需考虑AXI4总线的情况),提取出对应的参数并发起对应的C2H描述符读请求或H2C描述符读请求到读仲裁模块。
对于User数据读请求,由H2C数据参数提取模块(包括第一H2C数据参数提取模块和第二H2C数据参数提取模块)接收由对应H2C描述符缓存模块传输(包括第一H2C描述符缓存模块和第二H2C描述符缓存模块)的H2C描述符,然后根据H2C描述符,按图4所示的TLP参数提取流程,提取出对应的TLP参数并生成对应的输出数据流请求到读仲裁模块。
如图5所示,读仲裁模块按预设的优先级进行仲裁,C2H描述符读请求优先级最高,然后H2C描述符读请求,最后User数据读请求。读仲裁与写仲裁一样,也是从通道0开始到通道N结束,如果某一个通道没有数据跳过,仲裁出的读请求参数进入读请求组包模块,读请求组包模块根据PCIE协议,把这些参数打包成Header,然后加上PCIE的一些辅助控制信号,发起PCIE DMA读请求。
读请求返回的数据通过PCIE硬核传输至读请求返回数据解析模块,读请求返回数据解析模块根据返回数据的TAG的不同,分类出C2H描述符、H2C描述符、User数据(即上述输出数据流)。
下面详细介绍各类读请求TAG的划分。因为PCIE的TAG为8bit,最多256个标识,参考TAG分配表2所示。
表2PCIE TAG分配参考
读请求返回数据解析模块根据TAG,对返回数据的类型进行判别后,如果返回数据是C2H描述符,则将C2H描述符传输至第一C2H描述符缓存模块或第二C2H描述符缓存模块进行缓存,后续再由对应的第一C2H数据参数提取模块或第二C2H数据参数提取模块,从对应的C2H描述符缓存模块中提取描述符,然后提取TLP参数。如果H2C描述符,则将H2C描述符传输至第一H2C描述符缓存模块或第二H2C描述符缓存模块进行缓存,后续再由对应的第一H2C数据参数提取模块或第二H2C数据参数提取模块,从对应的H2C描述符缓存模块中提取描述符,然后提取TLP参数。
如果返回数据是User数据(输出数据流),则读请求返回数据解析模块根据对应通道的总线类型,分别打包成不同协议的总线包输出至对应的第一输出数据流缓存模块或第二输出数据流进行缓存。
如果为AXI4-Stream总线,第一输出数据流缓存模块先检测缓存内是否存储好了一个TLP,若是,读出数据组AXI4-Stream格式包后送到对应的AXI4-Stream-总线通道上。
如果为AXI4总线,第二输出数据流缓存模块在等待其内部存储好一个TLP的同时,准备好AXI4总线的基地址,当一个TLP存好之后,根据当前指针的位置判断TLP的长度(此TLP长度即为AXI4包的长度),与基地址相加的长度是否跨4Kbyte,若否,则直接通过对应AXI4总线输出,若跨4Kbyte同样需要拆成两个包后,通过对应AXI4总线输出。
在一个优选的实施例中,PCIE总线与AXI总线的桥接系统还包括:中断生成模块;所述中断模块与所述PCIE硬核连接。
本发明所公开的PCIE总线与AXI总线的桥接系统,支持多通道并行工作,这样User端的各模块只需独立发送或接收各类型数据,没有复杂的缓存控制及仲裁逻辑,且支持3类主流嵌入式总线,配置User寄存器用轻量级AXI4-Lite总线、收发数据流用高效的AXI4-Stream总线,读写DDR用适合的AXI4总线,各总线发挥自己的优势。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (8)
1.一种PCIE总线与AXI总线的桥接系统,其特征在于,包括:第一桥接模块、第二桥接模块以及第三桥接模块;所述AXI总线包括第一AXI总线、第二AXI总线以及第三AXI总线;所述第一AXI总线与所述第一桥接模块连接,所述第二AXI总线与所述第二桥接模块连接,所述第三AXI总线与所述第三桥接模块连接;
所述第一桥接模块,用于根据AXI协议对User寄存器的配置读写请求进行协议转换,并将协议转换后的配置读写请求通过所述第一AXI总线传输至User寄存器;以及,根据PCIE协议将User寄存器在接收配置读请求后所反馈的第一数据进行协议转换并传输至所述PCIE总线;其中,所述配置读写请求包括配置读请求以及配置写请求;
所述第二桥接模块,用于根据PCIE协议对由第二AXI总线输入的输入数据流进行协议转换,并将协议转换后的输入数据流传输至PCIE总线;
所述第三桥接模块,用于根据AXI协议对来自PCIE总线的输出数据流进行协议转换,并将协议转换后的输出数据流通过所述第三AXI总线输出。
2.如权利要求1所述的PCIE总线与AXI总线的桥接系统,其特征在于,还包括DMA核控制器配置模块以及PCIE硬核;所述DMA核控制器配置模块分别与所述第一桥接模块和所述PCIE硬核连接;所述PCIE硬核分别与所述第二桥接模块和所述第三桥接模块连接;
所述DMA核控制器配置模块,用于将User寄存器的配置读写请求传输至所述第一桥接模块;
所述第一桥接模块将协议转换后的第一数据发送至所述DMA核控制器配置模块,以使所述DMA核控制器配置模块通过所述PCIE硬核将协议转换后的第一数据传输至所述PCIE总线;
所述第二桥接模块通过所述PCIE硬核将协议转换后的输入数据流传输至PCIE总线;
所述第三桥接模块通过所述PCIE硬核接收来自PCIE总线的输出数据流。
3.如权利要求2所述的PCIE总线与AXI总线的桥接系统,其特征在于,所述第一AXI总线包括若干AXI4-Lite总线;所述第二AXI总线包括若干AXI4-Stream数据发送总线以及若干AXI4数据发送总线;所述第三AXI总线包括若干AXI4-Stream数据接收总线以及若干AXI4数据接收总线。
4.如权利要求3所述的PCIE总线与AXI总线的桥接系统,其特征在于,所述第二桥接模块包括:写请求组包模块、写仲裁模块、若干第一C2H数据缓存模块、若干第二C2H数据缓存模块、若干第一C2H数据参数提取模块以及若干第二C2H数据参数提取模块;
所述写请求组包模块分别与所述PCIE硬核以及所述写仲裁模块连接;
所述写仲裁模块还与各所述第一C2H数据缓存模块以及各所述第二C2H数据缓存模块连接;
每一所述第一C2H数据缓存模块还分别与对应的AXI4-Stream数据发送总线以及对应的第一C2H数据参数提取模块连接;
每一所述第二C2H数据缓存模块还分别与对应的AXI4数据发送总线以及对应的第二C2H数据参数提取模块连接;
所述由第二AXI总线输入的输入数据流包括:由各AXI4-Stream数据发送总线输入的各第一输入数据流,以及由各AXI4数据发送总线输入的各第二输入数据流;
每一所述第一C2H数据缓存模块,用于对所对应的AXI4-Stream数据发送总线传输的第一输入数据流的各第一TLP数据进行缓存;
每一所述第一C2H数据参数提取模块,用于获取若干第一C2H描述符,并在每获取一第一C2H描述符时,根据第一C2H描述符提取若干第一TLP数据的第一TLP参数,继而将各所述第一TLP参数传输至对应的第一C2H数据缓存模块;其中,第一C2H数据缓存模块在每接收一第一TLP参数时,根据第一TLP参数生成第一写请求并将所述第一写请求传输至写仲裁模块;
每一所述第二C2H数据缓存模块,用于对所对应的AXI4数据发送总线传输的第二输入数据流的各第二TLP数据进行缓存;
每一所述第二C2H数据参数提取模块,用于获取若干第二C2H描述符,并在每获取一第二C2H描述符时,根据第二C2H描述符提取若干第二TLP数据的第二TLP参数,继而将各所述第二TLP参数传输至对应的第二C2H数据缓存模块,以使第二C2H数据缓存模块在每接收一第二TLP参数时,按AXI4协议组包发起DDR突发读请求至DDR;其中,DDR在收到所述DDR突发读请求后,通过对应的AXI 4数据发送总线向对应的第二C2H数据缓存模块传输所需缓存的第二TLP数据,以使对应的第二C2H数据缓存模块在检测到所需缓存的第二TLP数据缓存完毕后,根据所缓存的第二TLP数据的第二TLP参数生成第二写请求并将所述第二写请求传输至写仲裁模块;
所述写仲裁模块,用于接收各所述第一C2H数据缓存模块所传输的第一写请求以及各所述第二C2H数据缓存模块所传输第二写请求并进行写请求仲裁;以及,根据仲裁结果将对应的TLP数据及TLP参数传输至写请求组包模块;
所述写请求组包模块,用于根据PCIE协议将所接收的TLP数据进行协议转换,并将所接收的TLP参数作为协议转换后的TLP数据的首部,对协议转换后的TLP数据组包后传输至PCIE硬核。
5.如权利要求4所述的PCIE总线与AXI总线的桥接系统,其特征在于,每一所述第一C2H数据参数提取模块,用于获取若干第一C2H描述符,并在每获取一第一C2H描述符时,根据第一C2H描述符提取若干第一TLP数据的第一TLP参数,具体包括:
第一C2H数据参数提取模块获取若干第一C2H描述符,并在每获取一第一C2H描述符时,将第一C2H描述符的dst_addr参数作为首个第一TLP数据的基地址,将第一C2H描述符的blk_len参数作为第一C2H描述符所对应的多个第一TLP数据的总长度,根据所述dst_addr参数以及所述blk_len参数,以4Kbyte作为每一第一TLP数据的基地址与其长度之和的边界,提取出各第一TLP数据的基地址以及长度,获得各第一TLP数据的第一TLP参数。
6.如权利要求5所述的PCIE总线与AXI总线的桥接系统,其特征在于,第一C2H数据缓存模块在每接收一第一TLP参数时,根据第一TLP参数生成第一写请求并将所述第一写请求传输至写仲裁模块,具体包括:
第一C2H数据缓存模块在每接收一第一TLP参数时,检测当前所缓存的第一TLP数据的长度,并在当前所缓存的第一TLP数据的长度与所接收的第一TLP参数的长度一致时,生成第一写请求并将所述第一写请求传输至写仲裁模块。
7.如权利要求6所述的PCIE总线与AXI总线的桥接系统,其特征在于,每一所述第二C2H数据参数提取模块,用于获取若干第二C2H描述符,并在每获取一第二C2H描述符时,根据第二C2H描述符提取若干第二TLP数据的第二TLP参数,具体包括:
第二C2H数据参数提取模块获取若干第二C2H描述符,并在每获取一第二C2H描述符时,将第二C2H描述符的src_addr参数作为首个第二TLP数据的AXI4总线基地址,将第二C2H描述符的blk_len参数作为第二C2H描述符所对应的多个第二TLP数据的总长度,根据所述src_addr参数以及所述blk_len参数,以4Kbyte作为每一第二TLP数据的AXI4总线基地址与其长度之和的边界,提取出各第二TLP数据的AXI4总线基地址以及长度,获得各第二TLP数据的第二TLP参数。
8.如权利要求7所述的PCIE总线与AXI总线的桥接系统,其特征在于,所述第三桥接模块,包括:读请求组包模块、读仲裁模块、读请求返回数据解析模块、若干第一C2H描述符缓存模块、若干第二C2H描述符缓存模块、若干第一H2C描述符缓存模块、若干第二H2C描述符缓存模块、若干C2H描述符TLP参数分离模块、若干H2C描述符TLP参数分离模块、若干第一H2C数据参数提取模块、若干第二H2C数据参数提取模块、若干第一输出数据流缓存模块以及若干第二输出数据流缓存模块;
所述来自PCIE总线的输出数据流包括:由各AXI4-Stream数据接收总线传输的各第一输出数据流,以及由各AXI4数据接收总线传输的各第二输出数据流;
所述读请求组包模块分别与所述PCIE硬核以及所述读仲裁模块连接;
所述读仲裁模块还分别与各所述C2H描述符TLP参数分离模块、各所述H2C描述符TLP参数分离模块、各所述第一H2C数据参数提取模块以及各所述第二H2C数据参数提取模块连接;
所述读请求返回数据解析模块分别与所述PCIE硬核、各所述第一C2H描述符缓存模块、各所述第二C2H描述符缓存模块、各所述第一H2C描述符缓存模块、各所述第二H2C描述符缓存模块、各所述第一输出数据流缓存模块以及各所述第二输出数据流缓存模块连接;
每一所述第一C2H描述符缓存模块还与对应的第一C2H数据参数提取模块连接;
每一所述第二C2H描述符缓存模块还与对应的第二C2H数据参数提取模块连接;
每一所述第一输出数据流缓存模块还与对应的AXI4-Stream数据接收总线连接;
每一所述第二输出数据流缓存模块还与对应的AXI4数据接收总线连接;
每一所述第一H2C描述符缓存模块还与对应的第一H2C数据参数提取模块来连接;
每一所述第二H2C描述符缓存模块还与对应的第二H2C数据参数提取模块来连接;
所述DMA核控制器配置模块还分别与各所述C2H描述符TLP参数分离模块以及各所述H2C描述符TLP参数分离模块连接;
所述DMA核控制器配置模块,还用于向各所述C2H描述符TLP参数分离模块以及各所述H2C描述符TLP参数分离模块传输对应的描述符的源地址及长度;
每一所述C2H描述符TLP参数分离模块,用于根据所接收的描述符的源地址及长度生成C2H描述符读请求,并将C2H描述符读请求传输至读仲裁模块;
每一所述H2C描述符TLP参数分离模块,用于根据所接收的描述符的源地址及长度生成H2C描述符读请求,并将H2C描述符读请求传输至读仲裁模块;
每一所述第一H2C数据参数提取模块,用于接收由对应第一H2C描述符缓存模块传输的第一H2C描述符,并根据第一H2C描述符生成第一输出数据流读请求,并将所述第一输出数据流读请求传输至读仲裁模块;
每一所述第二H2C数据参数提取模块,用于接收由对应第二H2C描述符缓存模块传输的第二H2C描述符,并根据第二H2C描述符生成第二输出数据流读请求,并将所述第二输出数据流读请求传输至读仲裁模块;
所述读仲裁模块,用于接收各所述C2H描述符TLP参数分离模块传输的C2H描述符读请求、各H2C描述符TLP参数分离模块传输的H2C描述符读请求、各所述第一H2C数据参数提取模块传输的第一输出数据流读请求和各所述第二H2C数据参数提取模块传输的第二输出数据流读请求,继而进行读请求仲裁,将读请求仲裁结果传输至读请求组包模块;
所述读请求组包模块,用于根据所述读请求仲裁结果,通过所述PCIE硬核向CPU请求数据,以使CPU向所述读请求返回数据解析模块反馈返回数据;
所述读请求返回数据解析模块,用于对返回数据的类型进行解析,在判断所述返回数据为H2C描述符时,将所述返回数据传输至对应的第一H2C描述符缓存模块或第二H2C描述符缓存模块;在判断所述返回数据为C2H描述符时,将所述返回数据传输至对应的第一C2H描述符缓存模块或第二C2H描述符缓存模块;在判断所述返回数据为输出数据流时,将所述返回数据按AXI4-Stream协议进行协议转换,将转换后的返回数据传输至对应的第一输出数据流缓存模块,或将所述返回数据按AXI4协议进行协议转换,将转换后的返回数据传输至第二输出数据流缓存模块;
每一所述第一C2H描述符缓存模块,用于将接收的C2H描述符作为第一C2H描述符进行缓存,并将所缓存的第一C2H描述符传输至对应的第一C2H数据参数提取模块;
每一所述第二C2H描述符缓存模块,用于将接收的C2H描述符作为第二C2H描述符进行缓存,并将所缓存的第二C2H描述符传输至对应的第二C2H数据参数提取模块;
每一所述第一H2C描述符缓存模块,用于将接收的H2C描述符作为第一H2C描述符进行缓存,并将所缓存的第一H2C描述符传输至对应的第一H2C数据参数提取模块;
每一所述第二H2C描述符缓存模块,用于将接收的H2C描述符作为第二H2C描述符进行缓存,并将所缓存的第二H2C描述符传输至对应的第二H2C数据参数提取模块;
每一所述第一输出数据流缓存模块,用于将接收的输出数据流作为第一输出数据流进行缓存,并将所缓存的第一输出数据流通过对应的AXI4-Stream数据接收总线输出;
每一所述第二输出数据流缓存模块,用于将接收的输出数据流作为第二输出数据流进行缓存,并将所缓存的第二输出数据流通过对应的AXI4数据接收总线输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111224940.5A CN113961494B (zh) | 2021-10-21 | 2021-10-21 | 一种pcie总线与axi总线的桥接系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111224940.5A CN113961494B (zh) | 2021-10-21 | 2021-10-21 | 一种pcie总线与axi总线的桥接系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961494A CN113961494A (zh) | 2022-01-21 |
CN113961494B true CN113961494B (zh) | 2023-09-15 |
Family
ID=79465759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111224940.5A Active CN113961494B (zh) | 2021-10-21 | 2021-10-21 | 一种pcie总线与axi总线的桥接系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961494B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076374B (zh) * | 2023-10-17 | 2024-02-09 | 苏州元脑智能科技有限公司 | 一种PCIe流式总线的转换方法、装置、设备及介质 |
CN117234977B (zh) * | 2023-11-10 | 2024-02-27 | 浪潮电子信息产业股份有限公司 | 数据处理方法、系统、设备及计算机可读存储介质 |
CN117539820B (zh) * | 2024-01-10 | 2024-05-03 | 芯动微电子科技(武汉)有限公司 | 一种PCIe Switch与SoC的互联系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8838869B1 (en) * | 2012-06-22 | 2014-09-16 | Xilinx, Inc. | Multi-protocol data bus interface |
WO2016000376A1 (zh) * | 2014-06-30 | 2016-01-07 | 中兴通讯股份有限公司 | 一种基于pci-e接口的信号处理方法及信号处理装置 |
JP2016051420A (ja) * | 2014-09-02 | 2016-04-11 | 株式会社メガチップス | バスブリッジ及びバスブリッジ群 |
CN113297112A (zh) * | 2021-04-15 | 2021-08-24 | 上海安路信息科技股份有限公司 | PCIe总线的数据传输方法、系统及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004709B (zh) * | 2009-08-31 | 2013-09-25 | 国际商业机器公司 | 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 |
US11960734B2 (en) * | 2020-09-25 | 2024-04-16 | Intel Corporation | Logic fabric based on microsector infrastructure with data register having scan registers |
-
2021
- 2021-10-21 CN CN202111224940.5A patent/CN113961494B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8838869B1 (en) * | 2012-06-22 | 2014-09-16 | Xilinx, Inc. | Multi-protocol data bus interface |
WO2016000376A1 (zh) * | 2014-06-30 | 2016-01-07 | 中兴通讯股份有限公司 | 一种基于pci-e接口的信号处理方法及信号处理装置 |
JP2016051420A (ja) * | 2014-09-02 | 2016-04-11 | 株式会社メガチップス | バスブリッジ及びバスブリッジ群 |
CN113297112A (zh) * | 2021-04-15 | 2021-08-24 | 上海安路信息科技股份有限公司 | PCIe总线的数据传输方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113961494A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113961494B (zh) | 一种pcie总线与axi总线的桥接系统 | |
US7155554B2 (en) | Methods and apparatuses for generating a single request for block transactions over a communication fabric | |
KR101077900B1 (ko) | 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치 | |
US8612713B2 (en) | Memory switching control apparatus using open serial interface, operating method thereof, and data storage device therefor | |
CN101504633B (zh) | 一种多通道dma控制器 | |
CN110471872B (zh) | 一种基于zynq芯片实现m-lvds总线数据交互系统和方法 | |
CN111090221B (zh) | 用于直写式光刻系统中的PCIe DMA数据传输系统及其传输方法 | |
US20100131681A1 (en) | Bus Based Communications Between A Processor And A Peripheral Controller In A Digital Processing System | |
EP1709543A2 (en) | A multiple address two channel bus structure | |
CN108768981B (zh) | 一种实现Powerlink工业实时以太网通讯的IP核 | |
CN102841871B (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
US11657011B2 (en) | Avalon-to-Axi4 bus conversion method | |
CN102841870B (zh) | 基于高速串行总线的通用dma结构及预读方法 | |
WO2005071556A1 (en) | A two channel bus structure to support address information, data, and transfer qualifiers | |
US20060095635A1 (en) | Methods and apparatuses for decoupling a request from one or more solicited responses | |
CN111078609A (zh) | 一种基于FPGA的PCIe转三总线接口及方法 | |
CN112965924A (zh) | 一种AHB-to-AXI桥接器及激进式处理方法 | |
US20140344485A1 (en) | Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit | |
US7191262B2 (en) | High-throughput UART interfaces | |
CN115866081B (zh) | 一种基于soc的工业以太网协议转换方法 | |
EP1222551B1 (en) | Asynchronous centralized multi-channel dma controller | |
KR102367359B1 (ko) | 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법 | |
CN113360424B (zh) | 基于多通路独立axi总线的rldram3控制器 | |
US7610415B2 (en) | System and method for processing data streams | |
CN116107923B (zh) | 一种基于bram的多对多高速访存架构和访存系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |