用于连接AXI接口和DMA接口的电路转换***及方法
技术领域
本发明涉及通信技术领域,特别是涉及一种用于连接AXI接口和DMA接口的电路转换***及方法。
背景技术
随着科学技术的发展,信息技术得到了迅速的进步。在信息传输中,为了保证信息***高性能的需求,往往会应用到许多协议和接口等。
在众多的存储访问接口中,AXI接口和DMA接口是常常会应用到的接口。其中,AXI接口对应有相应的接口通信协议;DMA接口也对应有相应的接口通信协议,但是AXI通信协议和DMA通信协议不同,这导致了在当前情况下AXI接口与DMA接口的隔绝,因此,AXI接口与DMA接口之间无法实现数据传输,采用AXI接口的功能模块也无法与DMA总线相连。
因此,如何实现AXI接口和DMA接口之间的数据传输,是本领域技术人员目前需要解决的技术问题。
发明内容
本发明的目的是提供一种用于连接AXI接口和DMA接口的电路转换***及方法,可以实现AXI接口和DMA接口之间的数据传输。
为解决上述技术问题,本发明提供了如下技术方案:
一种用于连接AXI接口和DMA接口的电路转换***,包括:AXI读写请求响应单元、缓存单元和DMA读写请求单元;
其中,所述AXI读写请求响应单元用于对AXI接口发出的AXI读写数据请求进行响应,将该AXI读写数据请求对应的写数据、写数据地址和写数据字节数保存至所述缓存单元,将所述AXI读写数据请求对应的读数据地址和读数据字节数保存至所述缓存单元,并将保存在所述缓存单元中的读数据返回至与所述AXI接口连接的功能单元;
所述DMA读写请求单元用于根据所述缓存单元中保存的所述写数据、写数据地址和写数据字节数向DMA总线发送DMA写数据请求,以及根据所述缓存单元中保存的所述读数据地址和读数据字节数向DMA总线发送DMA读数据请求,并将所述DMA总线返回的读数据保存在所述缓存单元中。
优选地,所述AXI读写请求响应单元包括:
AXI写请求响应模块,用于对所述AXI接口的AXI写数据接口发出的AXI写数据请求进行响应,将该AXI写数据请求对应的写数据、写数据地址和写数据字节数保存至所述缓存单元;
AXI读请求响应模块,用于对所述AXI接口的AXI读数据接口发出的AXI读数据请求进行响应,将该AXI读数据请求对应的读数据地址和读数据字节数保存至所述缓存单元,并将保存在所述缓存单元中的读数据返回至与所述AXI接口连接的功能单元。
优选地,所述缓存单元包括:
写缓存模块,用于保存与所述AXI写数据接口发出的AXI写数据请求对应的写数据、写数据地址和写数据字节数;
读缓存模块,用于保存与所述AXI读数据接口发出的AXI读数据请求对应的读数据地址和读数据字节数,以及所述DMA总线返回的读数据。
优选地,所述DMA读写请求单元包括:
DMA上传控制模块,用于根据保存在所述写缓存模块中的写数据、写数据地址和写数据字节数向所述DMA总线发送DMA写数据请求;
DMA下载控制模块,用于根据保存在所述读缓存模块中的读数据地址和读数据字节数向所述DMA总线发送DMA读数据请求,并将所述DMA总线反馈的读数据返回至所述读缓存模块中进行保存;
DMA仲裁模块,用于对所述DMA上传控制模块和所述DMA下载控制模块发出的对应DMA请求进行仲裁。
一种用于连接AXI接口和DMA接口的电路转换方法,包括:
获取AXI接口发出的AXI读写数据请求;
根据所述AXI读写数据请求,将所述AXI读写数据请求对应的数据信息进行缓存;
根据缓存的所述数据信息向DMA总线发出DMA读写数据请求;
获取所述DMA总线返回的DMA读写数据请求反馈信号。
优选地,所述获取AXI接口发出的AXI读写数据请求,包括:
获取AXI接口发出的AXI读数据请求和/或AXI写数据请求。
优选地,所述根据所述AXI读写数据请求,将所述AXI读写数据请求对应的数据信息进行缓存,包括:
根据所述AXI读数据请求,将所述AXI读数据请求对应的读数据地址和读数据字节数进行缓存;
根据所述AXI写数据请求,将所述AXI写数据请求对应的写数据、写数据地址和写数据字节数进行缓存。
优选地,所述根据缓存的所述数据信息向DMA总线发出DMA读写数据请求,包括:
根据缓存的所述读数据地址和读数据字节数,生成DMA读数据请求;
根据缓存的所述写数据、写数据地址和写数据字节数,生成DMA写数据请求;
对所述DMA读数据请求和所述DMA写数据请求进行仲裁,将所述DMA读数据请求或所述DMA写数据请求发送至所述DMA总线。
优选地,所述获取所述DMA总线返回的DMA读写数据请求反馈信号,包括:
获取所述DMA总线返回的DMA写数据请求成功/失败信号;
或获取所述DMA总线根据所述DMA读数据请求反馈的读数据。
与现有技术相比,上述技术方案具有以下优点:
本发明实施例所提供的用于连接AXI接口和DMA接口的电路转换***,包括:AXI读写请求响应单元、缓存单元和DMA读写请求单元;AXI读写请求响应单元用于对AXI接口发出的AXI读写数据请求进行响应,将该AXI读写数据请求对应的写数据、写数据地址和写数据字节数保存至缓存单元,将AXI读写数据请求对应的读数据地址和读数据字节数保存至缓存单元,并将保存在缓存单元中的读数据返回至与AXI接口连接的功能单元;DMA读写请求单元用于根据缓存单元中保存的写数据、写数据地址和写数据字节数向DMA总线发送DMA写数据请求,以及根据缓存单元中保存的读数据地址和读数据字节数向DMA总线发送DMA读数据请求,并将DMA总线返回的读数据保存在缓存单元中。本发明所提供的上述***将AXI的通信协议转换为DMA的通信协议,使得采用AXI接口的功能模块能够通过AXI接口和DMA接口连接于DMA总线,实现了AXI接口和DMA接口之间的数据传输。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换***的结构示意图;
图2为本发明另一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换***的结构示意图;
图3为本发明一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换***的写数据接口转换过程的时序图;
图4为本发明一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换***的读数据接口转换过程的时序图;
图5为本发明一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换方法流程图。
具体实施方式
本发明的核心是提供一种用于连接AXI接口和DMA接口的电路转换***及方法,可以实现AXI接口和DMA接口之间的数据传输。
为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
请参考图1,图1为本发明一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换***的结构示意图。
本发明的一种具体实施方式提供了一种用于连接AXI接口和DMA接口的电路转换***,包括:AXI读写请求响应单元1、缓存单元2和DMA读写请求单元3;其中,AXI读写请求响应单元1用于对AXI接口发出的AXI读写数据请求进行响应,将该AXI读写数据请求对应的写数据、写数据地址和写数据字节数保存至缓存单元2,将AXI读写数据请求对应的读数据地址和读数据字节数保存至缓存单元2,并将保存在缓存单元2中的读数据返回至与AXI接口连接的功能单元;DMA读写请求单元3用于根据缓存单元2中保存的写数据、写数据地址和写数据字节数向DMA总线发送DMA写数据请求,以及根据缓存单元2中保存的读数据地址和读数据字节数向DMA总线发送DMA读数据请求,并将DMA总线返回的读数据保存在缓存单元中。
在本实施方式中,通常由与AXI接口连接的功能单元通过AXI接口发出AXI读写数据请求,其中AXI读写数据请求包括AXI读数据请求和/或AXI写数据请求。AXI接口与DMA接口进行数据传输实质上是与AXI接口连接的功能单元和与DMA接口连接的DMA总线之间进行数据传输。由于AXI接口和DMA接口的通信协议不同,因此,AXI接口和DMA接口之间是隔绝的,两者之间无法实现数据传输,而采用本实施方式所提供的用于连接AXI接口和DMA接口的电路转换***,首先将AXI接口发出的读写数据请求由AXI读写请求响应单元进行响应,然后根据对应的请求信号将相应的数据信息保存在缓存单元中,然后启动DMA读写请求单元进行读写数据操作,DMA读写请求单元根据缓存单元中保存的数据信息向DMA总线发出对应的DMA读写数据请求。由缓存单元作为两个接口之间数据信息的读取交换的中介,进而将AXI的通信协议转换为DMA的通信协议,解决了由于通信协议不同而造成的连个接口之间相互隔绝的问题,使得采用AXI接口的功能模块能够通过AXI接口和DMA接口连接于DMA总线,也即实现了AXI接口和DMA接口之间的数据传输。
请参考图2,图2为本发明另一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换***的结构示意图。
在上述实施方式的基础上,本发明一种实施方式中,AXI读写请求响应单元1包括:AXI写请求响应模块11,用于对AXI接口4的AXI写数据接口41发出的AXI写数据请求进行响应,将该AXI写数据请求对应的写数据、写数据地址和写数据字节数保存至缓存单元2;AXI读请求响应模块12,用于对AXI接口4的AXI读数据接口42发出的AXI读数据请求进行响应,将该AXI读数据请求对应的读数据地址和读数据字节数保存至缓存单元2,并将保存在缓存单元2中的读数据返回至与AXI接口4连接的功能单元5。
进一步地,缓存单元2包括:写缓存模块21,用于保存与AXI写数据接口41发出的AXI写数据请求对应的写数据、写数据地址和写数据字节数;读缓存模块22,用于保存与AXI读数据接口42发出的AXI读数据请求对应的读数据地址和读数据字节数,以及DMA总线6返回的读数据。
更进一步地,DMA读写请求单元3包括:DMA上传控制模块31,用于根据保存在写缓存模块21中的写数据、写数据地址和写数据字节数向DMA总线6发送DMA写数据请求;DMA下载控制模块32,用于根据保存在读缓存模块22中的读数据地址和读数据字节数向DMA总线6发送DMA读数据请求,并将DMA总线6反馈的读数据返回至读缓存模块22中进行保存;DMA仲裁模块33,用于对DMA上传控制模块31和DMA下载控制模块32发出的对应DMA请求进行仲裁,即DMA仲裁模块对DMA上传控制模块和DMA下载控制模块功两组的DMA接口信号进行仲裁,输出一组DMA接口信号到DMA总线,从而进行继续DMA读数据请求或DMA写数据请求。
由于AXI读写数据请求包括AXI写数据请求和AXI读数据请求这两种互不影响的数据请求。因此,该***的运行包括两个过程,一是写数据请求过程,即写数据接口转换过程;一是读数据请求过程,即读数据接口转换过程。
请参考图3和图4,图3为本发明一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换***的写数据接口转换过程的时序图;图4为本发明一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换***的读数据接口转换过程的时序图。
写数据接口转换过程:
功能单元通过AXI接口中的AXI写数据接口发出AXI写数据请求。AXI读写请求响应单元中的AXI写请求响应模块在收到该AXI写数据请求后,响应该功能单元的AXI写数据请求,并将对应的写数据、写数据地址和写数据字节数保存在缓存单元中的写缓存模块中,保存完毕后启动DMA读写请求单元中的DMA数据上传控制模块进行写数据操作,DMA数据上传控制模块根据保存在写缓存模块中的写数据、写数据地址和写数据字节数发出DMA写数据请求。完成本次DMA写数据请求,对应本次写数据接口转换完成。
读数据接口转换过程:
功能单元通过AXI接口中的AXI读数据接口发出AXI读数据请求。AXI读写请求响应单元中的AXI读请求响应模块在收到该AXI读数据请求后,响应功能单元的读数据请求,并将对应的读数据地址和读数据字节数保存在缓存单元中的读缓存模块,保存完毕后启动DMA读写请求单元中的DMA数据下载控制模块进行读数据操作。DMA数据下载控制模块根据保存在读缓存模块中的读数据地址和读数据字节数发出DMA读数据请求,并将读取的数据保存到读缓存模块,保存完毕后,通知AXI读请求响应模块读数据可用,AXI读请求响应模块将保存在缓存单元中的读数据返回给功能单元。读数据完全返回给功能单元,对应本次读数据接口转换完成。
需要说明的是,为了清楚的说明图3和图4中的各数据接口信号,本实施方式还对各数据接口信号进行了说明:
AXI读数据接口信号:
ARADDR:共32位,AXI读数据的起始地址信号。AXI读请求信号ARVALID有效时,ARADDR需要保持有效。
ARLEN:共4位,AXI读数据的burst长度(即transfer个数)信号,burst长度等于ARLEN加1。AXI读请求信号ARVALID有效时,ARLEN需要保持有效。
ARSIZE:共3位,AXI读数据的transfer大小信号,每个transfer大小等于2^ARSIZE字节。AXI读请求信号ARVALID有效时,ARSIZE需要保持有效。
ARBURST:共2位,AXI读数据的burst类型信号,0表示读地址固定,1表示读地址累加,2表示读地址循环累加,3是非法值。AXI读请求信号ARVALID有效时,ARBURST需要保持有效。
ARVALID:共1位,AXI读请求信号,高有效。ARVALID为高表示功能单元通过AXI接口请求读入数据。
ARREADY:共1位,AXI读响应信号,高有效。ARREADY为高表示本次AXI读数据请求已经被接受。
RVALID:共1位,读数据有效信号,高有效。表示当前transfer对应的读数据有效。
RREADY:共1位,读数据可被接收信号,高有效。表示当前transfer对应的读数据可被接收。RVALID与RREADY同时为高,表示当前transfer对应的读数据被接收。
RLAST:共1位,读结束标志,高有效。表示本次transfer是这次读数据请求的最后一个transfer。
RDATA:为32位或64位,读数据。
AXI写数据接口信号:
AWADDR:共32位,AXI写数据的起始地址信号。AXI写请求信号AWVALID有效时,AWADDR需要保持有效。
AWLEN:共4位,AXI写数据的burst长度(即transfer个数)信号,burst长度等于AWLEN加1。AXI写请求信号AWVALID有效时,AWLEN需要保持有效。
AWSIZE:共3位,AXI写数据的transfer大小信号,每次transfer大小等于2^AWSIZE字节。AXI写请求信号AWVALID有效时,AWSIZE需要保持有效。
AWBURST:共2位,AXI写数据的burst类型信号,0表示写地址固定,1表示写地址累加,2表示写地址循环累加,3是非法值。AXI写请求信号AWVALID有效时,AWBURST需要保持有效。
AWVALID:共1位,AXI写请求信号,高有效。AWVALID为高表示功能单元通过AXI接口请求写出数据。
AWREADY:共1位,AXI写响应信号,高有效。AWREADY为高表示本次AXI写数据请求已经被接受。
WVALID:共1位,写数据有效信号,高有效。表示当前transfer对应的写数据有效。
WREADY:共1位,写数据可被接收信号,高有效。表示当前transfer对应的写数据可被接收。WVALID与WREADY同时为高,表示当前transfer对应的写数据被接收。
WLAST:共1位,写结束标志,高有效。表示本次写数据的最后一个transfer。
WDATA:为32位或64位,写数据。
其中,在本实施方式中以ARBURST等于1和AWBURST等于1的情况为例进行说明,即AXI连续地址读写的情况,因此ARBURST和AWBURST未在本实施方式的各图中标出。
请参考图5,图5为本发明一种具体实施方式所提供的用于连接AXI接口和DMA接口的电路转换方法流程图。
相应地,本发明一种实施方式还提供了一种用于连接AXI接口和DMA接口的电路转换方法,包括:
S11:获取AXI接口发出的AXI读写数据请求。
其中,获取AXI接口发出的AXI读写数据请求,包括:获取AXI接口发出的AXI读数据请求和/或AXI写数据请求。
S12:根据AXI读写数据请求,将AXI读写数据请求对应的数据信息进行缓存。
根据AXI读写数据请求,将AXI读写数据请求对应的数据信息进行缓存,包括:根据AXI读数据请求,将AXI读数据请求对应的读数据地址和读数据字节数进行缓存;根据AXI写数据请求,将AXI写数据请求对应的写数据、写数据地址和写数据字节数进行缓存。
S13:根据缓存的数据信息向DMA总线发出DMA读写数据请求。
根据缓存的数据信息向DMA总线发出DMA读写数据请求,包括:根据缓存的读数据地址和读数据字节数,生成DMA读数据请求;根据缓存的写数据、写数据地址和写数据字节数,生成DMA写数据请求;对DMA读数据请求和DMA写数据请求进行仲裁,将DMA读数据请求或DMA写数据请求发送至DMA总线。
S14:获取DMA总线返回的DMA读写数据请求反馈信号。
获取DMA总线返回的DMA读写数据请求反馈信号,包括:获取DMA总线返回的DMA写数据请求成功/失败信号;或获取DMA总线根据DMA读数据请求反馈的读数据。
在本实施方式中,用于连接AXI接口和DMA接口的电路转换方法包括两个过程,一是写数据请求过程,即写数据接口转换过程;一是读数据请求过程,即读数据接口转换过程。
写数据接口转换过程:
获取AXI接口发出的AXI写数据请求;
根据AXI写数据请求,将AXI写数据请求对应的写数据、写数据地址和写数据字节数进行缓存;
根据缓存的写数据、写数据地址和写数据字节数,生成DMA写数据请求;
对DMA读数据请求和DMA写数据请求进行仲裁,在仲裁进行DMA写数据请求时,将DMA写数据请求发送至DMA总线;
获取DMA总线返回的DMA写数据请求成功信号,即完成本次写数据接口转换过程。
读数据接口转换过程:
获取AXI接口发出的AXI读数据请求;
根据AXI读数据请求,将AXI读数据请求对应的读数据地址和读数据字节数进行缓存;
根据缓存的读数据地址和读数据字节数,生成DMA读数据请求;
对DMA读数据请求和DMA写数据请求进行仲裁,在仲裁进行DMA读数据请求时,将DMA读数据请求发送至DMA总线;
获取DMA总线根据DMA读数据请求反馈的读数据,则本次读数据接口转换完成。
综上所述,本发明实施方式所提供的用于连接AXI接口和DMA接口的电路转换***及方法,通过将AXI接口发出的AXI读写数据请求对应的数据信息进行缓存,再根据缓存数据发出对应的DMA读写数据请求。从而将AXI的通信协议转换为DMA的通信协议,解决了由于通信协议不同而造成的连个接口之间相互隔绝的问题,使得采用AXI接口的功能模块能够通过AXI接口和DMA接口连接于DMA总线,也即实现了AXI接口和DMA接口之间的数据传输。
以上对本发明所提供的一种用于连接AXI接口和DMA接口的电路转换***及方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。