一种接口总线装置的制作方法

文档序号:17794120发布日期:2019-05-31 20:37阅读:310来源:国知局
一种接口总线装置的制作方法

本公开涉及通信相关技术领域,具体的说,是涉及一种接口总线装置。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

ASIC是Application Specific Integrated Circuit的英文缩写,SoC是System on Chip的缩写,ASIC和SoC是集成电路领域对不同应用种类芯片的称呼。ASIC一般是指专用芯片,SoC一般指系统芯片。FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是可编程器件发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

在实际电路应用中,经常会采用ASIC/SoC+FPGA的电路组合方式,以扩展ASIC/SoC芯片的功能。然而ASIC/SoC和FPGA间的通讯总线在业界没有标准的协议,一般都是根据ASIC/SoC外扩的接口而定,一般包括SRAM接口、SDIO接口、FIFO接口、高速差分接口等,接口种类繁多而且性能不一致。其中FIFO接口较为常用,应用框图如图1所示,接口时序图如图2所示,当FULL非满时,可以通过PUSH和DQ(数据)将数据写入SoC中;当EMPTY信号非空时,通过POP将数据DQ(数据)从SoC中读出。

传统FIFO接口非常简单,可实现性强,但在实际应用过程中存在诸多问题:

1.在应用协议中,通常分为命令、数据和状态阶段,如果采用传统的FIFO接口,由于物理接口只有一组而受限,则只能通过串行的流程实现,如图3所示为传统的FIFO接口数据传输的流程图。

2.应用命令、数据长度受限,如果采用传统的FIFO接口,则需SoC端和FPGA端,事先人为定义好命令格式或数据长度,无法满足类似USB协议短包的传输应用。短包传输是相对概念,当前传输的数据长度小于约定传输长度的都叫短包。比如双方约定传输的数据包是512字节或512字节的倍数,那么不够512字节的传输就是短包。



技术实现要素:

本公开为了解决上述问题,提出了一种接口总线装置,为数据和命令传输通道单独配置FIFO数据缓存器,并设置了相应的通路控制和状态信号数据传输线,实现了数据和命令的分开传输,提高了总线的通讯效率,接口信号简洁明了,通过FIFO传输机制实现,可有效减少通信信号线数量,且可以支持流控传输,解决了短包传输的问题,实现了ASIC/SoC与FPGA间高速数据及命令通信的可扩展性及兼容性。

为了实现上述目的,本公开采用如下技术方案:

一种或多个实施例提供了一种接口总线装置,用于实现FPGA和集成芯片之间的数据传输,通过配置总线连接到集成芯片,包括配置寄存器、接口逻辑模块、分别设置在数据和命令传输通道上的FIFO缓存器和数据信号传输线;所述数据信号线用于传输命令、数据和状态;所述配置寄存器用于存储并执行上位机传输的配置文件实现数据传输的配置和状态的查询;所述接口逻辑模块作为数据传输的连接接口,数据信号传输线通过接口逻辑模块分别连接配置寄存器和FIFO缓存器。

进一步的,所述数据信号传输线包括FIFO选择信号线、FIFO满信号线、FIFO空信号线和数据包结束命令信号线;分别用于传输当前数据传输所选择的FIFO缓存器信号、当前FIFO缓存器的状态是满还是空信号以及传输数据结束命令。

进一步的,所述数据和命令传输通道上的FIFO缓存器包括写命令通道FIFO、写数据通道FIFO、读命令通道FIFO和读数据通道FIFO,分别用于缓存写命令、写数据、读命令和读数据。

进一步的,所述配置寄存器包括相互连接的寄存器和DFF触发器。

进一步的,所述每个FIFO缓存器包括相互连接的双端口SRAM、读计数器、写计数器和跨时钟域同步电路。

与现有技术相比,本公开的有益效果为:

(1)本公开设计了一种接口总线装置,为数据和命令传输通道单独配置FIFO数据缓存器,并设置了相应的通路控制和状态信号数据传输线,实现了数据和命令的分开传输,提高了总线的通讯效率。

(2)本公开的接口装置设置了数据包结束命令信号线,当发送数据结束发送一个数据包结束命令,实现短包数据的发送。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的限定。

图1是现有的FIFO接口应用框图;

图2是现有的FIFO接口时序图;

图3是现有的FIFO接口数据传输流程图;

图4是本公开的接口装置结构示意图;

图5是本公开单个FIFO逻辑电路图;

图6是本公开基于本公开的接口装置的数据并发传输流程图。

具体实施方式:

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合附图对实施例进行详细描述。

在一个或多个实施方式中公开的技术方案中,如图4所示,一种接口总线装置,用于实现FPGA和集成芯片之间的数据传输,所述集成芯片可以为专用芯片或者系统芯片,通过配置总线连接到集成芯片,所述配置总线可以为AHB总线、APB总线或AXI总线,本公开的接口总线装置包括配置寄存器、接口逻辑模块、分别设置在数据和命令传输通道上的FIFO缓存器和数据信号传输线;所述数据信号线用于传输命令、数据和状态;所述配置寄存器用于存储并执行上位机传输的配置文件实现数据传输的配置和状态的查询;所述接口逻辑模块作为传输命令、数据和状态的连接接口,数据信号传输线通过接口逻辑模块分别连接配置寄存器和FIFO缓存器。

本公开数据和命令传输通道上的FIFO缓存器包括写命令通道CWFIFO、写数据通道WFIFO、读命令通道CRFIFO和读数据通道RFIFO,分别用于缓存写命令、写数据、读命令和读数据。接口逻辑模块包括寄存器和与寄存器连接的CMOS逻辑门电路,CMOS逻辑门包括非门、与门、与非门、或非门、或门、异或门和异或非门等,接口逻辑模块通过常规的电路结构的设置主要实现数据物理层传输;通过硬件逻辑实现命令写入操作至CWFIFO中,实现命令读出操作从CRFIFO中读出命令;实现数据写入操作至WFIFO中,实现数据读出操作从RFIFO中读出数据。

如图4所示,为本公开的接口装置结构示意图,数据信号传输线除了包括传统的FIFO接口所述数据信号传输线包括如下信号线:

CFIFO_SEL#:FIFO选择信号线,用于选择当前数据传输所选择的FIFO缓存器。CFIFO_FULL:FIFO满信号线,用于判断当前FIFO缓存器的状态是否为满。CFIFO_EMPTY:FIFO空信号线,用于判断当前FIFO缓存器的状态是否为空。PKGEND#:数据包结束命令信号线,用于传输数据传输结束命令,用于实现短包传输。clk为时钟信号传输线。

CS#为片选信号线:用于选择与FPGA进行数据传输的集成芯片,可以在FPGA发送命令或者数据时,同时发送片选信号,低电平有效。

WE#为写命令信号线:用于定义当前操作为写入操作,可以在FPGA发送写命令或者写数据时,同时发送写命令信号,低电平有效。

CFIFO_SEL#为FIFO缓存器选择信号线:可以定义CFIFO_SEL#为高电平用于选定接口装置中的数据FIFO缓存器,CFIFO_SEL#为低电平用于选定接口装置中的命令FIFO缓存器,FPGA发送命令或者时,同时发送FIFO缓存器选择信号:

CFIFO_FULL为FIFO满信号线:当选定接口装置中的FIFO缓存器不满,CFIFO_FULL为低电平,可以将命令或者数据写入。

RE#为读命令信号线:用于定义当前操作为读操作,可以在FPGA发送读命令或者读数据时,同时发送读命令信号,低电平有效。

CFIFO_EMPTY为FIFO空信号线:当选定接口装置中的FIFO缓存器不空,CFIFO_EMPTY为低电平,可以将命令或者数据读出。

本实施例的配置寄存器包括相互连接的寄存器和DFF触发器,将寄存器和DFF触发器通过现有的方法连接形成配置电路,配置寄存器通过配置总线与上位机连接,用于存储和执行上位机发送的配置文件,配置总线可以为AHB总线、APB总线或AXI总线,上位机通过配置寄存器可以进行整个接口装置的配置及状态查询;所述配置文件为针对数据传输协议定义的文件,包括同步传输配置文件、异步传输配置文件和并发传输配置文件。

本实施例设置了4个FIFO分别为命令组的发送/接收FIFO和数据组的发送/接收FIFO,用于进行数据和命令的传输发送。4个FIFO数据深度和位宽可自行配置,4个FIFO的电路图可采用通用的FIFO逻辑电路实现,如图5所示,FIFO Memory是普通的双端口SRAM;左侧FIFO wptr是写计数器逻辑并输出FIFO wfull满信号;右侧FIFO rptr是读计数器逻辑并输出rempty空信号;sync_r2w和sync_w2r分别是写计数器和读计数器的跨时钟域同步电路。静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。

上述接口装置的使用方法为,通过上述接口装置连接FPGA和集成芯片,在进行数据传输前连接上位机进行初始化,上位机将相应的配置文件传输至本公开的接口总线装置,按照配置进行数据的传输,本公开为数据和命令的通道分别设置了FIFO缓存器,并相应设置了对应的信号传输线,各通道的数据和命令传输不会相互影响,可以实现并发传输,提高数据传输的效率。并且本公开的装置中设置了数据包结束命令信号线,当发送数据结束发送一个数据包结束命令,实现短包数据的发送。

下面说明本接口装置的可以实现并发传输的一种使用方法。并发传输,是指数据和命令可以在FPGA和集成芯片之间或者内部同一时刻并行进行传输。实现手段主要通过为数据和命令通道单独配置硬件FIFO缓存器,硬件FIFO缓存器间数据传输互不影响。可以定义发送读写命令端为主端,另一端为从端,主端发送读写数据的命令至从端采用并发传输,以FPGA与SoC端之间的数据传输为例进行说明,图6所示FPGA与SoC端之间的并发传输的流程如下:

1)FPGA端发写命令给SoC端。

2)FPGA端在写数据的同时插入读命令操作。

3)SoC端在接收写数据的同时,收到读命令后开始准备读数据,两者并发进行。

4)SoC端接收完数据后,发回写状态,然后根据读命令准备数据的情况发送读数据。

5)FPGA端收到读数据后,返回读状态。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

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