首页> 中国专利> 从AXI总线到OPB总线的数据写入方法及读取方法

从AXI总线到OPB总线的数据写入方法及读取方法

摘要

本发明公开了一种从AXI总线到OPB总线的数据写入方法,该方法包括以下步骤:接收AXI总线发送的AXI写数据;将AXI写数据存储至AXI写缓存中;对AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,得到OPB写数据;将OPB写数据从AXI写缓存导出至OPB总线。应用本发明所提供的从AXI总线到OPB总线的数据写入方法,完成了AXI总线与OPB总线之间的数据交互,降低了成本,提升了项目开发效率。本发明还公开了一种从AXI总线到OPB总线的数据写入装置、从AXI总线到OPB总线的数据读取方法及装置、电子设备及存储介质,具有相应技术效果。

著录项

  • 公开/公告号CN113254368A

    专利类型发明专利

  • 公开/公告日2021-08-13

    原文格式PDF

  • 申请/专利权人 苏州浪潮智能科技有限公司;

    申请/专利号CN202110798145.0

  • 发明设计人 孙旭;

    申请日2021-07-15

  • 分类号G06F13/12(20060101);G06F13/42(20060101);G06F30/398(20200101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人侯珊

  • 地址 215100 江苏省苏州市吴中区吴中经济开发区郭巷街道官浦路1号9幢

  • 入库时间 2023-06-19 12:13:22

说明书

技术领域

本发明涉及存储技术领域,特别是涉及一种从AXI总线到OPB总线的数据写入方法及装置、从AXI总线到OPB总线的数据读取方法及装置、电子设备及计算机可读存储介质。

背景技术

随着大规模集成电路的不断发展,集成电路(Integrated Circuit,IC)的设计方法也在逐渐优化,其中基于知识产权(Intellectual Property,IP)资源的复用可以提高片上系统(System On Chip,SOC)的效率和可靠性、节省设计成本,缩短上市周期。

先进可扩展接口(Advanced eXtensible Interface,AXI)总线可以满足新一代的SOC系统对于高性能低功耗的需求,得到了广泛的应用。片上外围设备总线(On-chipPeripheral Bus,OPB)在信息领域应用广泛,特别是其提供了处理器核和其它外围设备的链路。在芯片设计开发的过程中,常常需要在AXI总线系统中用到基于OPB总线协议的成熟知识产权,但是在进行AXI总线与OPB总线之间的数据交互时,针对这些知识产权再次进行设计和验证工作将会花费很多的时间人力成本,降低项目的开发效率。

综上所述,如何有效地解决现有的AXI总线与OPB总线之间的数据交互,需要再次进行设计和验证工作将会花费很多的时间人力成本,降低项目的开发效率问题,是目前本领域技术人员急需解决的问题。

发明内容

本发明的目的是提供一种从AXI总线到OPB总线的数据写入方法,该方法完成了AXI总线与OPB总线之间的数据交互,降低了成本,提升了项目开发效率;本发明的另一目的是提供一种从AXI总线到OPB总线的数据写入装置、从AXI总线到OPB总线的数据读取方法及装置、电子设备及计算机可读存储介质。

为解决上述技术问题,本发明提供如下技术方案:

一种从AXI总线到OPB总线的数据写入方法,包括:

接收AXI总线发送的AXI写数据;

将所述AXI写数据存储至AXI写缓存中;

对所述AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,得到OPB写数据;

将所述OPB写数据从所述AXI写缓存导出至OPB总线。

在本发明的一种具体实施方式中,对所述AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,包括:

获取所述AXI写数据的写属性信息;

将所述写属性信息和所述AXI写数据由先后两个周期有效转换为同一周期有效。

在本发明的一种具体实施方式中,在将所述OPB写数据从所述AXI写缓存导出至OPB总线之前,还包括:

接收AXI写地址信号;

将所述AXI写数据存储至AXI写缓存中,包括:

将所述AXI写数据和所述AXI写地址信号存储至所述AXI写缓存中;

将所述OPB写数据从所述AXI写缓存导出至OPB总线,包括:

根据所述AXI写地址信号确定所述OPB总线中的目标写从设备;

将所述OPB写数据从所述AXI写缓存导出至所述OPB总线中的目标写从设备。

在本发明的一种具体实施方式中,在将所述OPB写数据从所述AXI写缓存导出至OPB总线之后,还包括:

接收所述OPB总线返回的OPB写响应信号;

将所述OPB写响应信号存储至OPB缓存中;

对所述OPB写响应信号进行从OPB总线协议到AXI总线协议的时序转换,得到AXI写响应信号;

将所述AXI写响应信号从所述OPB缓存导出至所述AXI总线。

在本发明的一种具体实施方式中,对所述OPB写响应信号进行从OPB总线协议到AXI总线协议的时序转换,得到AXI写响应信号,包括:

对所述OPB缓存中各所述OPB写响应信号进行有效性统计,得到有效性统计结果;

根据所述有效性统计结果计算得到所述AXI写响应信号。

一种从AXI总线到OPB总线的数据读取方法,包括:

接收AXI总线发送的各AXI读指令;

将各所述AXI读指令存储至所述AXI读缓存中;

将各所述AXI读指令从所述AXI读缓存依次导出至OPB总线。

在本发明的一种具体实施方式中,在将各所述AXI读指令从所述AXI读缓存依次导出至OPB总线之前,还包括:

接收AXI读地址信号;

将各所述AXI读指令存储至所述AXI读缓存中,包括:

将各所述AXI读指令和所述AXI读地址信号存储至所述AXI读缓存中;

将各所述AXI读指令从所述AXI读缓存依次导出至OPB总线,包括:

根据所述AXI读地址信号确定所述OPB总线中的目标读从设备;

将各所述AXI读指令从所述AXI读缓存依次导出至所述OPB总线中的目标读从设备。

在本发明的一种具体实施方式中,在将各所述AXI读指令从所述AXI读缓存依次导出至OPB总线之后,还包括:

接收所述OPB总线返回的各OPB读数据;

将各所述OPB读数据存储至所述OPB缓存中;

对各所述OPB读数据进行从OPB总线协议到AXI总线协议的时序转换,得到AXI读数据;

将所述AXI读数据从所述OPB缓存导出至所述AXI总线。

在本发明的一种具体实施方式中,对各所述OPB读数据进行从OPB总线协议到AXI总线协议的时序转换,包括:

对各所述AXI读指令进行指令个数统计,得到指令总个数;

判断缓存得到各所述OPB读数据的个数是否达到所述指令总个数;

若是,则将各所述OPB读数据转换为同一周期有效的AXI读数据。

一种从AXI总线到OPB总线的数据写入装置,包括:

写数据接收模块,用于接收AXI总线发送的AXI写数据;

写数据存储模块,用于将所述AXI写数据存储至AXI写缓存中;

第一时序转换模块,用于对所述AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,得到OPB写数据;

写数据导出模块,用于将所述OPB写数据从所述AXI写缓存导出至OPB总线。

一种从AXI总线到OPB总线的数据读取装置,包括:

读指令接收模块,用于接收AXI总线发送的各AXI读指令;

读指令存储模块,用于将各所述AXI读指令存储至所述AXI读缓存中;

读指令导出模块,用于将各所述AXI读指令从所述AXI读缓存依次导出至OPB总线。

一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如前所述从AXI总线到OPB总线的数据写入方法或从AXI总线到OPB总线的数据读取方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述从AXI总线到OPB总线的数据写入方法或从AXI总线到OPB总线的数据读取方法的步骤。

本发明所提供的从AXI总线到OPB总线的数据写入方法,接收AXI总线发送的AXI写数据;将AXI写数据存储至AXI写缓存中;对AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,得到OPB写数据;将OPB写数据从AXI写缓存导出至OPB总线。

由上述技术方案可知,预先设置AXI写缓存,当AXI总线中的主设备需要向OPB总线中的从设备写入数据时,先利用AXI写缓存对AXI写数据进行缓存,并进行从AXI总线协议到OPB总线协议的时序转换,从而得到符合OPB总线协议的OPB写数据,将OPB写数据从AXI写缓存导出至OPB总线。从而在不改变AXI总线知识产权和OPB总线知识产权的基础上,通过数据缓存和时序转换,实现了写数据从AXI总线协议到OPB总线协议的转换,完成了AXI总线与OPB总线之间的数据交互,降低了成本,提升了项目开发效率。

相应的,本发明还提供了与上述从AXI总线到OPB总线的数据写入方法相对应的从AXI总线到OPB总线的数据写入装置、从AXI总线到OPB总线的数据读取方法及装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中从AXI总线到OPB总线的数据写入方法的一种实施流程图;

图2为本发明实施例中从AXI总线到OPB总线的数据写入方法的另一种实施流程图;

图3为本发明实施例中AXI总线与OPB总线之间数据交互实现框图;

图4为本发明实施例中从AXI总线到OPB总线的数据读取方法的一种实施流程图;

图5为本发明实施例中从AXI总线到OPB总线的数据读取方法的另一种实施流程图;

图6为本发明实施例中一种从AXI总线到OPB总线的数据写入装置的结构框图;

图7为本发明实施例中一种从AXI总线到OPB总线的数据读取装置的结构框图;

图8为本发明实施例中一种电子设备的结构框图;

图9为本实施例提供的一种电子设备的具体结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1为本发明实施例中从AXI总线到OPB总线的数据写入方法的一种实施流程图,该方法可以包括以下步骤:

S101:接收AXI总线发送的AXI写数据。

预先在连接主设备的AXI总线与连接各从设备的OPB总线之间设置桥装置。当AXI总线端的主设备需要向OPB总线端的从设备进行写数据时,向桥装置发送AXI写数据。

AXI写数据为任意需要写入至OPB总线端的从设备的数据,且该数据为符合AXI总线协议的数据。

S102:将AXI写数据存储至AXI写缓存中。

桥装置中包含对AXI总线发送的AXI写数据进行缓存的AXI写缓存。桥装置在接收到AXI总线发送的AXI写数据之后,将AXI写数据存储至AXI写缓存中。

由于AXI总线上传递的是写指令时,总线上的写地址信号、写地址有效、写地址ID、突发长度、突发大小、突发类型等信息在同一个周期内有效,而写数据信号包括写数据、写数据有效、最后一个突发等信号在它们后一个周期有效。而在OPB总线时序要求中,所有写指令相关的信号都必须在一个周期内有效,因此AXI写缓存是必不可少的。同时为提高AXI总线效率,总线支持滞外交易,即可以连续发送多个指令,因此在AXI写数据从AXI总线中的主设备写入到OPB总线中的从设备的过程中,AXI写缓存起到至关重要的作用。

S103:对AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,得到OPB写数据。

桥装置中包含从AXI总线协议到OPB总线协议的时序转换模块,在将AXI写数据存储至AXI写缓存之后,对AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,得到OPB写数据。从而实现将满足AXI总线协议的AXI写数据到满足OPB总线协议的OPB写数据的转换。

S104:将OPB写数据从AXI写缓存导出至OPB总线。

在得到满足OPB总线协议的OPB写数据之后,将OPB写数据从AXI写缓存导出至OPB总线,将OPB写数据写入到OPB总线中的从设备,从而完成AXI总线中主设备的数据到OPB总线中从设备的写入。在保持原有基于AXI总线接口的IP和基于OPB总线接口IP本身不变的基础上,通过数据缓存和时序转换,可以快速高效的将上述IP集成到片上系统中,在减少重新设计验证的风险的基础上,提高了整个系统的开发速度,进而提高了产品的竞争力。

由上述技术方案可知,预先设置AXI写缓存,当AXI总线中的主设备需要向OPB总线中的从设备写入数据时,先利用AXI写缓存对AXI写数据进行缓存,并进行从AXI总线协议到OPB总线协议的时序转换,从而得到符合OPB总线协议的OPB写数据,将OPB写数据从AXI写缓存导出至OPB总线。从而在不改变AXI总线知识产权和OPB总线知识产权的基础上,通过数据缓存和时序转换,实现了写数据从AXI总线协议到OPB总线协议的转换,完成了AXI总线与OPB总线之间的数据交互,降低了成本,提升了项目开发效率。

需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。

参见图2,图2为本发明实施例中从AXI总线到OPB总线的数据写入方法的另一种实施流程图,该方法可以包括以下步骤:

S201:接收AXI总线发送的AXI写数据。

S202:接收AXI写地址信号。

参见图3,图3为本发明实施例中AXI总线与OPB总线之间数据交互实现框图。AXI总线端的主设备除向桥装置发送AXI写数据之外,还可以向桥装置发送AXI写地址信号,桥装置接收AXI写地址信号。AXI写地址信号中包含需要写入到OPB总线的地址信息,且该地址信号为符合AXI总线协议的信号。

需要说明的是,本发明实施例对步骤S201和步骤S202的执行顺序不做限定,可以顺序执行,也可以并行执行。

S203:将AXI写数据和AXI写地址信号存储至AXI写缓存中。

在接收到AXI写数据和AXI写地址信号之后,将AXI写数据和AXI写地址信号存储至AXI写缓存中。

S204:获取AXI写数据的写属性信息。

AXI总线上传递的是写指令时,AXI总线上的写地址信号、写地址有效、写地址ID、突发长度、突发大小、突发类型等写属性信息在同一个周期内有效,而写数据信号包括写数据、写数据有效、最后一个突发等信号在它们后一个周期有效。获取AXI写数据的写属性信息。

S205:将写属性信息和所述AXI写数据由先后两个周期有效转换为同一周期有效,得到OPB写数据。

在OPB总线时序要求中,所有写指令相关的信号都必须在一个周期内有效。因此在获取到AXI写数据的写属性信息之后,将写属性信息和所述AXI写数据由先后两个周期有效转换为同一周期有效,得到OPB写数据。

AXI总线协议与OPB总线协议的规定有所不同,OPB总线协议要求每一写数据都要有与其对应的地址,而AXI总线协议支持3种不同的突发模式,与OPB总线协议的转换关系如下所示,其中涉及AXI写地址信号、写地址有效、写地址ID、突发长度、突发大小、突发类型等信号:

a)FIXED(固定地址):OPB_ADDR=m_axi_awaddr

此种模式下,直接将两个地址信号连到一起即可。

b)INCR(递增式):OPB_ADDR= m_axi_awaddr + add_addr

OPB的首地址与AXI地址相同,后续的地址需要在初始地址的基础上进行递增,递增幅度与传输宽度相同。

c)WRAP(回环递增式):首先根据AXI的实际突发长度和突发数据宽度计算回环宽度:wrap_size= burst_len * burst_size;

其中,wrap_size为回环宽度;burst_len为实际突发长度;burst_size为每次突发的数据大小,单位为Byte。

其次,计算绕回下边界(low wrap boundary)。

Temp0 = m_axi_awaddr /wrap_size,只取整数部分。

其中,Temp0为计算过程的中间变量;m_axi_awaddr 为AXI写地址。

low wrap boundary= Temp0 *wrap_size;

再次,计算绕回上边界high wrap boundary:

high wrap boundary = low wrap boundary+ wrap_size;

最后,计算每一个数据对应的地址。

当前地址小于绕回上边界时,WRAP与INCR类型完全相同,地址递增。但到递增后的地址到达最高地址后,地址直接回到绕回下边界地址,再进行递增,就这样循环往复。

在将写地址转换为OPB总线地址的同一个周期,需要将写数据同步转换为OPB写数据格式,在处理时直接将AXI写数据依次赋值给OPB写数据。

通过AXI总线到OPB总线的写时序转换,接收AXI写缓存信号将其转换为符合OPB总线协议的地址、数据、写控制、字节使能等信号。

S206:根据AXI写地址信号确定OPB总线中的目标写从设备。

在接收到AXI写地址信号,并通过时序转换得到OPB写数据之后,根据AXI写地址信号确定OPB总线中的目标写从设备。

在系统初始化配置时,OPB总线上的每一个从设备的地址空间已经分配完成,因此通过将AXI写地址信号与分配好的地址空间对比,确定AXI总线的主设备当前需要向OPB总线上的哪个从设备写数据。

S207:将OPB写数据从AXI写缓存导出至OPB总线中的目标写从设备。

在确定OPB总线中的目标写从设备之后,将OPB写数据从AXI写缓存导出至OPB总线中的目标写从设备,从而实现对待写入数据的准确写入,提高了数据写入效率和写入准确率。

S208:接收OPB总线返回的OPB写响应信号。

OPB总线中的目标写从设备在接收到OPB写数据之后,会生成用于标识数据是否被成功写入的OPB写响应信号,并将OPB写响应信号通过OPB总线返回给桥装置。桥装置接收OPB总线返回的OPB写响应信号。

S209:将OPB写响应信号存储至OPB缓存中。

桥装置中设置有OPB缓存,桥装置在接收到OPB写响应信号之后,将OPB写响应信号存储至OPB缓存中。

预先设置用于指示OPB缓存中是否存在需要返回到AXI总线的信息的选择信号。OPB缓存首先根据OPB总线的选择信号判断是否存在有效的需要返回到AXI总线上的信息,当存在时,将来自OPB总线的响应、重发、错误和读数据等信息缓存。

S210:对OPB写响应信号进行从OPB总线协议到AXI总线协议的时序转换,得到AXI写响应信号。

在将OPB写响应信号存储至OPB缓存之后,对OPB写响应信号进行从OPB总线协议到AXI总线协议的时序转换,从而得到符合AXI总线协议的AXI写响应信号。

在本发明的一种具体实施方式中,步骤S210可以包括以下两个步骤:

步骤一:对OPB缓存中各OPB写响应信号进行有效性统计,得到有效性统计结果;

步骤二:根据有效性统计结果计算得到AXI写响应信号。

为方便描述,可以将上述两个步骤结合起来进行说明。

对OPB缓存中各OPB写响应信号进行有效性统计,得到有效性统计结果,根据有效性统计结果计算得到AXI写响应信号。

AXI写响应通道中包含写响应状态信号和写响应有效的写响应信号是一次完整的AXI写操作完成的标志信号,要求一次突发写操作的所有数据有效写到响应的从设备中。

在OPB总线协议中,OPB_FWACK、OPB_HWACK、OPB_RETRY和OPB_XFEACK本质都是为了表达传输是否完成,但只是代表一个时钟周期的数据是否成功写入,因此在写响应信号转换时,需要对OPB总线的每一个响应信号状态进行记录并做计算,当一次AXI写突发的所有的数据在OPB总线上返回的响应信号均为有效时,则认为本次AXI写突发过程有效,返回响应的AXI写响应有效信号,否则返回无效或错误信号,详见表1。

表1

S211:将AXI写响应信号从OPB缓存导出至AXI总线。

在得到AXI写响应信号之后,将AXI写响应信号从OPB缓存导出至AXI总线,从而完成OPB总线中的从设备对AXI总线中的主设备的信息响应。通过增加一个桥接装置,使AXI总线接口模块和OPB总线接口模块直接相连,很大的减少了开发时间,提高了片上系统的效率和可靠性、节省设计成本。

参见图4,图4为本发明实施例中从AXI总线到OPB总线的数据读取方法的一种实施流程图,该方法可以包括以下步骤:

S401:接收AXI总线发送的各AXI读指令。

当AXI总线端中的主设备需要从OPB总线端的从设备中读取数据时,生成分别对应各个待读取数据块的AXI读指令,向桥装置发送各AXI读指令。桥装置接收AXI总线发送的各AXI读指令。

S402:将各AXI读指令存储至AXI读缓存中。

桥装置中包含对AXI总线发送的各AXI读指令进行缓存的AXI读缓存。桥装置在接收AXI总线发送的各AXI读指令之后,将各AXI读指令存储至AXI读缓存中。

AXI总线上传递的是读指令时,总线上的读地址信号、读地址有效、读地址ID、突发长度、突发大小、突发类型等信息在同一个周期内有效,当指令的突发读取数据的个数大于1时,从设备需要多个周期才能返回数据,而AXI总线支持滞外交易,当多个读指令连续发送时,需要将其先依次缓存下,然后依次发送到OPB总线上,因此在AXI总线中的主设备从OPB总线中的从设备进行数据读取时,AXI读缓存起到至关重要的作用。

S403:将各AXI读指令从AXI读缓存依次导出至OPB总线。

在将各AXI读指令存储至AXI读缓存之后,将各AXI读指令从AXI读缓存依次导出至OPB总线。

参见图5,图5为本发明实施例中从AXI总线到OPB总线的数据读取方法的另一种实施流程图,该方法可以包括以下步骤:

S501:接收AXI总线发送的各AXI读指令。

S502:接收AXI读地址信号。

AXI总线端的主设备除向桥装置发送各AXI读指令之外,还可以向桥装置发送AXI读地址信号,桥装置接收AXI读地址信号。AXI读地址信号中包含需要读取的OPB总线中从设备的地址信息。

S503:将各AXI读指令和AXI读地址信号存储至AXI读缓存中。

在接收到各AXI读指令和AXI读地址信号之后,将各AXI读指令和AXI读地址信号存储至AXI读缓存中。

S504:根据AXI读地址信号确定OPB总线中的目标读从设备。

在接收到AXI读地址信号之后,根据AXI读地址信号确定OPB总线中的目标读从设备。

S505:将各AXI读指令从AXI读缓存依次导出至OPB总线中的目标读从设备。

在确定出OPB总线中的目标读从设备之后,将各AXI读指令从AXI读缓存依次导出至OPB总线中的目标读从设备。从而实现对待读取数据的准确读取,提高了数据读取效率和读取准确率。

S506:接收OPB总线返回的OPB读数据。

OPB总线中的从设备在接收到相应的AXI读指令之后,会根据读指令向桥装置返回OPB读数据,桥装置接收OPB总线返回的OPB读数据。

S507:将OPB读数据存储至OPB缓存中。

桥装置在接收到OPB读数据之后,将OPB读数据存储至OPB缓存中。

S508:对OPB读数据进行从OPB总线协议到AXI总线协议的时序转换,得到AXI读数据。

在本发明的一种具体实施方式中,步骤S508可以包括以下三个步骤:

步骤一:对各AXI读指令进行指令个数统计,得到指令总个数;

步骤二:判断缓存得到各OPB读数据的个数是否达到指令总个数,若是,则执行步骤三,若否,则继续等待进行OPB读数据缓存;

步骤三:将各OPB读数据转换为同一周期有效的AXI读数据。

为方便描述,可以将上述三个步骤结合起来进行说明。

对各AXI读指令进行指令个数统计,得到指令总个数,判断缓存得到各OPB读数据的个数是否达到指令总个数,若是,则说明对各OPB读数据均缓存完成,若否,则说明对各OPB读数据还未缓存完成,继续等待进行OPB读数据缓存,将各OPB读数据转换为同一周期有效的AXI读数据。

在将OPB读数据存储至OPB缓存之后,对OPB读数据进行从OPB总线协议到AXI总线协议的时序转换,从而得到符合AXI总线协议的AXI读数据。

AXI读数据通道一般要求数据连续,因此在将OPB总线数据时序转换为AXI时,首先根据读数据的突发个数,判断一次突发读请求的数据是否全部返回,并缓存在OPB缓存中。当数据完全返回时,从OPB缓存中依次将数据读出,并添加数据有效、最后一组数据标志,读通道ID等信号,将其一并转换为AXI的标准时序,若数据没有完全返回,则继续等待直到数据完全返回。其中,有效数据的转换关系如表2所示,其中m_axi_rdata为OPB_hwxfer、OPB_fwxfer、OPB_dwxfer三者的或运算结果,即只有同时为0时,m_axi_rdata为0,否则为1。

表2

S509:将AXI读数据从OPB缓存导出至AXI总线。

在得到AXI读数据之后,将AXI写响应信号从OPB缓存导出至AXI总线,从而完成AXI总线端中的主设备对OPB总线端的从设备中的数据的读取。

相应于上面从AXI总线到OPB总线的数据写入方法的方法实施例,本发明还提供了一种从AXI总线到OPB总线的数据写入装置,下文描述的从AXI总线到OPB总线的数据写入装置与上文描述的从AXI总线到OPB总线的数据写入方法可相互对应参照。

参见图6,图6为本发明实施例中一种从AXI总线到OPB总线的数据写入装置的结构框图,该装置可以包括:

写数据接收模块61,用于接收AXI总线发送的AXI写数据;

写数据存储模块62,用于将AXI写数据存储至AXI写缓存中;

第一时序转换模块63,用于对AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,得到OPB写数据;

写数据导出模块64,用于将OPB写数据从AXI写缓存导出至OPB总线。

由上述技术方案可知,预先设置AXI写缓存,当AXI总线中的主设备需要向OPB总线中的从设备写入数据时,先利用AXI写缓存对AXI写数据进行缓存,并进行从AXI总线协议到OPB总线协议的时序转换,从而得到符合OPB总线协议的OPB写数据,将OPB写数据从AXI写缓存导出至OPB总线。从而在不改变AXI总线知识产权和OPB总线知识产权的基础上,通过数据缓存和时序转换,实现了写数据从AXI总线协议到OPB总线协议的转换,完成了AXI总线与OPB总线之间的数据交互,降低了成本,提升了项目开发效率。

在本发明的一种具体实施方式中,第一时序转换模块63包括:

写数据信息获取子模块,用于获取AXI写数据的写属性信息;

第一周期有效转换子模块,用于将写属性信息和AXI写数据由先后两个周期有效转换为同一周期有效。

在本发明的一种具体实施方式中,该装置还可以包括:

写地址信息接收模块,用于在将OPB写数据从AXI写缓存导出至OPB总线之前,接收AXI写地址信号;

写数据存储模块62具体为将AXI写数据和AXI写地址信号存储至AXI写缓存中的模块;

写数据导出模块64包括:

写从设备确定子模块,用于根据AXI写地址信号确定OPB总线中的目标写从设备;

写数据导出子模块,用于将OPB写数据从AXI写缓存导出至OPB总线中的目标写从设备。

在本发明的一种具体实施方式中,该装置还可以包括:

写响应信号接收模块,用于在将OPB写数据从AXI写缓存导出至OPB总线之后,接收OPB总线返回的OPB写响应信号;

写响应信号存储模块,用于将OPB写响应信号存储至OPB缓存中;

第二时序转换模块,用于对OPB写响应信号进行从OPB总线协议到AXI总线协议的时序转换,得到AXI写响应信号;

写响应信号导出模块,用于将AXI写响应信号从OPB缓存导出至AXI总线。

在本发明的一种具体实施方式中,第二时序转换模块包括:

信号有效性统计子模块,用于对OPB缓存中各OPB写响应信号进行有效性统计,得到有效性统计结果;

AXI写响应信号计算子模块,用于根据有效性统计结果计算得到AXI写响应信号。

相应于上面从AXI总线到OPB总线的数据读取方法的方法实施例,本发明还提供了一种从AXI总线到OPB总线的数据读取装置,下文描述的从AXI总线到OPB总线的数据读取装置与上文描述的从AXI总线到OPB总线的数据读取方法可相互对应参照。

参见图7,图7为本发明实施例中一种从AXI总线到OPB总线的数据读取装置的结构框图,该装置可以包括:

读指令接收模块71,用于接收AXI总线发送的各AXI读指令;

读指令存储模块72,用于将各AXI读指令存储至AXI读缓存中;

读指令导出模块73,用于将各AXI读指令从AXI读缓存依次导出至OPB总线。

在本发明的一种具体实施方式中,该装置还可以包括:

读地址信号接收模块,用于在将各AXI读指令从AXI读缓存依次导出至OPB总线之前,接收AXI读地址信号;

读指令存储模块具体为将各AXI读指令和AXI读地址信号存储至AXI读缓存中的模块;

读指令导出模块73包括:

读从设备确定子模块,用于根据AXI读地址信号确定OPB总线中的目标读从设备;

读指令导出子模块,用于将各AXI读指令从AXI读缓存依次导出至OPB总线中的目标读从设备。

在本发明的一种具体实施方式中,该装置还可以包括:

读数据接收模块,用于在将各AXI读指令从AXI读缓存依次导出至OPB总线之后,接收OPB总线返回的OPB读数据;

读数据缓存模块,用于将OPB读数据存储至OPB缓存中;

第三时序转换模块,用于对OPB读数据进行从OPB总线协议到AXI总线协议的时序转换,得到AXI读数据;

读数据导出模块,用于将AXI读数据从OPB缓存导出至AXI总线。

在本发明的一种具体实施方式中,第三时序转换模块包括:

指令个数统计子模块,用于对各所述AXI读指令进行指令个数统计,得到指令总个数;

判断子模块,用于判断缓存得到各OPB读数据的个数是否达到指令总个数;

第二周期有效转换子模块,用于当确定缓存得到各OPB读数据的个数达到指令总个数时,将各OPB读数据转换为同一周期有效的AXI读数据。

相应于上面的方法实施例,参见图8,图8为本发明所提供的电子设备的示意图,该设备可以包括:

存储器332,用于存储计算机程序;

处理器322,用于执行计算机程序时实现上述方法实施例的从AXI总线到OPB总线的数据写入方法或从AXI总线到OPB总线的数据读取方法的步骤。

具体的,请参考图5,图5为本实施例提供的一种、电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。

电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。

上文所描述的从AXI总线到OPB总线的数据写入方法或从AXI总线到OPB总线的数据读取方法中的步骤可以由电子设备的结构实现。

相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:

接收AXI总线发送的AXI写数据;将AXI写数据存储至AXI写缓存中;对AXI写数据进行从AXI总线协议到OPB总线协议的时序转换,得到OPB写数据;将OPB写数据从AXI写缓存导出至OPB总线。

或:

接收AXI总线发送的各AXI读指令;将各AXI读指令存储至AXI读缓存中;将各AXI读指令从AXI读缓存依次导出至OPB总线。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号