一种片上系统及其通信交互方法与流程

文档序号:12786299阅读:157来源:国知局
一种片上系统及其通信交互方法与流程

本发明涉及通信技术领域,尤其涉及一种片上系统及其通信交互方法。



背景技术:

片上系统是当今嵌入式设计的主流,它不仅广泛应用于消费电子产品,而且应用于与电子相关各个行业之中,其重要性不言而喻。随着片上系统的不断发展,越来越多的IP核模块需要集成在同一块芯片上,这些模块包括:微处理器、存储器、各种应用的协处理器、各种通信接口等等。这样,使得针对于IP核模块间的通信方式的研究被越来越多的人重视,传统的方法是采用共享总线的通信方式。在这种方式下,系统中所有的功能模块共享相同的总线带宽。这样,将严重限制了系统的带宽、吞吐率,而大大降低了系统的性能。

一般来说,系统中的IP核有两种类型:主模块,从模块。所谓主模块,是模块间通信的发起者;而从模块是模块间通信的响应者,根据主模块的要求,提供相应的操作。

目前主流的片上通信实现有两种,一种实现方法是采用直接互联逻辑,直接建立主模块与各从模块之间的直连通道,特点是实现简单,缺点是当模块增加以后,互联逻辑架构会发生比较大的变化,连线的复杂度也会上升;另一个实现方法是AMBA总线标准中的AXI4总线,此总线为采用握手机制的猝发式数据传输机制,可以支持多通道进行传输,能够进行独立的读写传输,但是使用过程中资源占用率比较高,读写通道配置起来比较繁琐,总线的接口逻辑过于复杂,通常需要针对不同的使用需求设计不同的逻辑接口,不利于总线架构的复用。



技术实现要素:

鉴于上述的分析,本发明旨在提供一种片上系统及其通信交互方法,用以解决上述技术问题。

本发明的目的主要是通过以下技术方案实现的。

在基于本发明实施例的一个方面,提供了一种片上系统,包括一个主模块和N个从模块,N≥2,主模块输出FIFO、主模块输入FIFO、从模块输出FIFO、从模块输入FIFO、FPGA分流逻辑模块、AXI4总线仲裁逻辑模块;

主模块和从模块之间设置有上行通道和下行通道,上行通道包括依次连接的从模块输出FIFO、AXI4总线仲裁逻辑模块和主模块输入FIFO,下行通道包括依次连接的主模块输出FIFO、FPGA分流逻辑模块和从模块输入FIFO,主从模块通过上下行通道连接。

在基于本发明系统的另一个实施例中,上行通道具体包括三个子通道:地址通道、数据通道和响应通道;

当从模块向主模块写入数据时:地址通道给出猝发传输过程中的地址信号和控制信号;数据通道完成主数据的传输;响应通道传输主模块向从模块发出的交易完成信号。

在基于本发明实施例的另一个方面,提供了一种片上系统的通信交互方法,包括以下步骤:

步骤S1、主模块通过分流逻辑模块将数据发送到从模块;

步骤S2、从模块完成响应后通过仲裁逻辑模块将数据发送到主模块;

在基于本发明方法的另一个实施例中,步骤S1具体包括:

S11、定制分流逻辑;

S12、主模块发出指令数据到主模块输出FIFO中;

S13、主模块输出FIFO对指令数据进行时钟域转换和位宽转换后,将数据发送给FPGA分流逻辑模块;

S14、FPGA分流逻辑模块进行数据的完整性验证和数据格式解析,完成基于设计的分流表功能;

S15、FPGA分流逻辑模块根据定制的分流逻辑将指令数据分流发送到指定从模块对应的从模块输入FIFO中;

S16、从模块输入FIFO将指令数据传输到指定从模块中;

在基于本发明方法的另一个实施例中,步骤S11中,分流逻辑根据设计的指令帧中的分流号,采用映射逻辑和分流表对照,在FPGA内部实现数据的分流。

在基于本发明方法的另一个实施例中,步骤S2具体包括:

S21、定制仲裁逻辑;

S22、从模块发出响应数据到从模块输出FIFO中;

S23、从模块输出FIFO对响应数据进行时钟域转换和位宽转换后,将响应数据传输到AXI4总线仲裁逻辑模块;

S24、AXI4总线仲裁逻辑模块完成对从模块优先级或编号的识别;

S25、AXI4总线仲裁逻辑模块根据定制的仲裁逻辑将响应数据传输到主模块输入FIFO中;

S26、主模块输入FIFO将响应数据传输到主模块。

在基于本发明方法的另一个实施例中,步骤S21中,仲裁逻辑根据AXI4总线对于从模块的优先级配置或者采用轮询模块从编号按照序号大小进行传输,按照设置的传输顺序将传输过来的从模块数据传输到主模块中。

在基于本发明方法的另一个实施例中,步骤S24中,优先级识别基于AXI4总线的设置,采用数字标号来表示优先级,数字标号越小优先级越高。

在基于本发明方法的另一个实施例中,当下行数据通过主模块输出FIFO或上行数据通过从模块输出FIFO时,进行数据格式统一。

本发明有益效果如下:

发明提出一种实用的、具备简单结构的可用在FPGA上的内部片上通信交互系统及方法,采用FPGA内部分流逻辑通道作为主模块向从模块进行指令分发的下行通道,AXI4总线的写通道作为从模块向主模块传输指令的上行通道,通过异步FIFO来完成上下行通道的接口的统一和跨时钟功能的实现。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1是片上系统通信交互方法中上行模块和下行模块框图;

图2是基于AXI4总线的主从模块传输模式图;

图3是基于AXI4总线的写模式的传输过程;

图4是本方法提出的一种可实现的指令格式。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。

根据本发明的一个具体实施例,公开了一种片上系统,包括一个主模块和N个从模块,,N≥2,主模块输出FIFO、主模块输入FIFO、从模块输出FIFO、从模块输入FIFO、FPGA分流逻辑模块、AXI4总线仲裁逻辑模块;

主模块和从模块之间设置有上行通道和下行通道,上行通道包括依次连接的从模块输出FIFO、AXI4总线仲裁逻辑模块和主模块输入FIFO,下行通道包括依次连接的主模块输出FIFO、FPGA分流逻辑模块和从模块输入FIFO,主从模块通过上下行通道连接。

如图1所示,数据下行时,主模块发出的数据通过主模块输出FIFO后到达FPGA分流逻辑模块,经过分流逻辑判断后,数据通过从模块输入FIFO到达从模块;数据上行时,从模块发出数据,经过从模块输出FIFO到达AXI4总线仲裁逻辑模块,经过仲裁逻辑判断后,数据通过主模块输入FIFO到达主模块,如图2所示。

如图3所示给出了基于AXI4总线的写模式的传输过程,其中从模块连接接口为主接口,主模块连接接口为从接口。上行通道具体包括三个子通道:地址通道、数据通道和响应通道;当从模块向主模块写入数据时;地址通道给出猝发传输过程中的地址信号和控制信号;数据通道完成主数据的传输;响应通道传输从接口向主接口发出的信号,表示交易完成。此模式下实现一主多从之间的数据交互。

当主模块向从模块写入数据时,数据从主模块单向分发到从模块。

进一步地,本发明系统下的主模块可以是多个,每个主模块可以与其他主模块下属的从模块实现数据交互。

在工作过程中,

步骤1、主模块发送数据到从模块;

具体包括:

S11、定制分流逻辑;

分流逻辑主要根据设计的指令帧中的分流号,采用映射逻辑和分流表对照,在FPGA内部实现数据的分流,将从主模块发送来的数据准备发送到指定的从模块中。

S12、主模块发出指令数据到主模块输出FIFO中;

S13、主模块输出FIFO对指令数据进行时钟域转换和位宽转换后,将数据发送给FPGA分流逻辑模块;

FIFO为先进先出,FPGA内部带有FIFO的IP核,IP核可以通过配置参数及外部逻辑,实现时钟之间的自动转换,对于位宽不同的传输机制,IP核支持输入和输出的位宽自定义,通过参数配置可以很方便实现位宽转换。

FIFO完成输入输出时钟的跨时钟转换和输入输出数据的格式统一。

更优地,可以设置多级FIFO,满足对于快速指令响应的缓存,使用流水线技术保证了高速片上通信的及时响应。

S14、FPGA分流逻辑模块进行数据的完整性验证和数据格式解析,完成基于设计的分流表功能;

分流表的功能主要基于设计约定好的分流号,此分流号与指令帧的指令号一一对应,主要用在进行程序例化过程中的参数分配,完成在实际传输过程中从模块间的编号。

对数据进行校验的目的是防止有非法指令被分配到从模块。

S15、FPGA分流逻辑模块根据定制的分流逻辑将指令数据分流发送到指定从模块对应的从模块输入FIFO中;

S16、从模块输入FIFO将指令数据传输到指定从模块中;

步骤2、从模块完成响应后发送数据到主模块;

具体包括:

S21、定制仲裁逻辑;

仲裁逻辑主要是在AXI4总线中使用的关键逻辑,旨在完成对于不同从模块发送到主模块过程中的数据仲裁,AXI4总线中可以支持对于从模块的优先级配置或者采用轮询模块从编号按照序号大小进行传输,每次按照设置的传输顺序将传输过来的从模块数据传输到主模块中。

S22、从模块发出响应数据到从模块输出FIFO中;

S23、从模块输出FIFO对响应数据进行时钟域转换和位宽转换后,将响应数据传输到AXI4总线仲裁逻辑模块;

S24、AXI4总线仲裁逻辑模块完成对从模块优先级或编号的识别;

优先级识别主要基于AXI4总线的设置,有优先级设置表格,可以采用数字标号来表示优先级,数字标号越小优先级越高,内有优先级判别逻辑实现此功能,根据编号的序号大小排序原理相同。

AXI4总线具有仲裁能力,可以支持多通道猝发方式的数据传送,主控可以通过总线依次接收到从模块传送过来的数据,并根据定义的帧格式进行解析,将内容提取出来上报给主处理器模块进行汇总和分析。其中从模块连接接口为主接口,主模块连接接口为从接口。主从接口之间主要包括三个通道:地址通道、数据通道和响应通道。地址通道给出猝发传输过程中的地址信号和控制信号;数据通道完成主数据的传输;响应通道传输从接口向主接口发出的信号,表示操作完成。此模式下实现一主多从之间的数据交互。

S25、AXI4总线仲裁逻辑模块根据定制的仲裁逻辑将响应数据传输到主模块输入FIFO中;

S26、主模块输入FIFO将响应数据传输到主模块。

进一步地,主从模块进行指令传输过程中,采用统一接口进行传输,接口定义基于握手传输机制,使用Valid-Last机制保证数据帧连续传输的完整性,即传输过程中传输开始和有效信号时Valid信号为高,传输结束时Last信号为高,Valid和Last信号共同保证了信号的有效性。

进一步地,下行数据通过主模块输出FIFO和上行数据通过从模块输出FIFO时进行数据格式统一,统一为自定义数据帧格式,如图4所示,此结构基于最短46字节IP包,数据格式包含报文方向、指令号、净荷以及保留字段,分别采用1字节代表报文方向,2字节表示需要完成的操作对应的指令号,40字节为净荷内容,写有具体的操作内容,3字节为保留字段,采用统一的上下行数据帧格式来进行交互,简化了帧处理的逻辑。

统一设计了上下行指令格式,根据实际开发需求可以进行扩展,指令格式的统一简化了主从模块对于指令的接收和响应逻辑,提高了系统的运行速度,可以进行指令校验,保证了指令的安全性。

本发明有益效果包括:

发明提出一种实用的、具备简单结构的可用在FPGA上的内部片上通信交互系统及方法,采用FPGA内部分流逻辑通道作为主模块向从模块进行指令分发的下行通道,AXI4总线的逻辑通道作为从模块向主模块传输指令的上行通道解决了片上系统通信交互复杂的问题,整体逻辑结构简单易扩展,且此结构考虑上下行实际情况的吞吐量,结构更加符合实际要求,占用资源和逻辑最小;通过异步FIFO来完成上下行通道的接口的统一和跨时钟功能的实现,解决了不同接口接入的问题,简化了对于各个接口进行适配的逻辑,提高了接口的通用性。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1