本发明属于通信接口技术领域,尤其涉及一种fifomaster接口、具有该接口的fpga及应用。
背景技术:
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
发明人发现,传统fifomaster基本都是soc(system-on-chip,片上系统),一般只能针对一种slavefifo,对于支持fifo但是不支持fifomaster模式的产品相对来说不够灵活,而且开发周期长,耗费时间成本高,接口ip(intellectualproperty:知识产权)内部信号不透明。
技术实现要素:
为了解决上述问题,本发明的第一个方面提供一种fifomaster接口,其能够实现从普通fifo接口到fifomaster接口的转换,使得用户可根据需求直接调用fifomaster接口,实现上层与下层的灵活对接,且做到与fifomaster接口相连的fpga的重复利用。
为了实现上述目的,本发明采用如下技术方案:
一种fifomaster接口,包括:有限状态机、状态通路、写fifo模块和读fifo模块;
状态通路,其用于将接口下游的fifoslave接口状态信号拉到接口上游端;
写fifo模块,其用于当接口上游端中指示写命令/数据fifo满信号为非满状态,接收写命令/数据,且有限状态机判断接口下游的命令fifo/数据fifo为非满时,由有限状态机产生相应控制信号向fifoslave接口的命令fifo/数据fifo写命令/数据;
读fifo模块,其用于当接口上游端中指示读命令/数据fifo的空信号为非空状态,有限状态机判断接口下游的读命令/数据fifo的空信号为非空时,则由有限状态机产生相应控制信号向从fifoslave接口读命令/数据并压入读fifo模块。
作为一种实施方式,接口下游的fifoslave接口状态信号包括:写命令fifo满信号、读命令fifo空信号、写数据fifo满信号和读数据fifo空信号。
作为一种实施方式,状态通路将接口下游的fifoslave接口状态信号拉到接口上游端,包括指示写命令fifo的满信号、指示读命令fifo的空信号、指示写数据fifo的满信号和指示读数据fifo的空信号。
作为一种实施方式,所述fifomaster接口的上游端还用于接收上游控制信号,所述上游控制信号包括上游器件给的输入时钟信号、写使能信号、读使能信号和包结束输入信号。
作为一种实施方式,所述fifomaster接口的下游端还用于发送下游接口控制信号,所述下游接口控制信号片选信号、读数据/命令使能信号、写数据/命令使能信号、数据/命令输入/输出、命令fifo选中信号和包结束信号。
作为一种实施方式,所述fifomaster接口采用现场可编程逻辑门阵列实现。
为了解决上述问题,本发明的第二个方面提供一种fifomaster接口的应用,其用于实现分别与fifomaster接口相连的上游器件和下游器件之间的相互通信。
为了实现上述目的,本发明采用如下技术方案:
一种fifomaster接口,其上游端与上游器件相连,下游端与下游器件相连;所述上游器件具备fifo接口,所述fifo接口用于调用如上述所述fifomaster接口;所述下游器件符合slavefifo时序;所述fifomaster接口用于实现上游器件和下游器件之间的相互通信。
作为一种实施方式,fifomaster接口用于实现上游器件和下游器件之间的相互通信的过程为:
上游器件通过fifo接口向fifomaster接口中的写fifo模块写入命令/数据,fifomaster接口中的有限状态机用来判断下游器件fifo空满状态,进而产生相应控制信号,对下游器件进行写命令/数据操作;
上游器件根据下游器件fifo的空满状态进行读命令/数据操作,fifomaster接口中的有限状态机产生相应控制信号,从下游器件fifoslave中读回命令/数据,并缓存入fifomaster接口中的读fifo模块。
作为一种实施方式,当读fifo模块的空信号为非空状态,上游器件通过fifo接口读取读fifo模块中的命令/数据。
为了解决上述问题,本发明的第三个方面提供一种fpga,其具有fifomaster接口,能够实现从普通fifo接口到fifomaster接口的转换,使得用户可根据需求直接调用fifomaster接口,实现上层与下层的灵活对接,且做到与fifomaster接口相连的fpga的重复利用。
为了实现上述目的,本发明采用如下技术方案:
一种fpga,其具有fifomaster接口。
本发明的有益效果是:
(1)本发明能够向用于提供一款上游对应fifo接口和下游对应fifoslave的接口,能够在现场可编程逻辑门阵列(比如:fpga内部)实现接口时序的转换,能支持一些支持fifo但不支持fifomaster协议的设计经由此接口,实现fifomaster功能,与传统方法相比,无需上游设备支持fifomaster时序,只需支持fifo接口,相对来说更加通用,节省用户的开发时间,降低用户芯片的开发周期。
(2)本发明使用的fifo深度可根据用户需求进行相应调整,保证了整个设计的灵活性,增加用户的使用体验。
(3)本发明能够使用现场可编程逻辑门阵列构建整个实现,成本低,对于不同型号的现场可编程逻辑门阵列,均可兼容,只需用户根据需求进行相应修改,保证了fifomaster接口的通用性,同时易于调试。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例的一种fifomaster接口结构示意图;
图2是本发明实施例的fifo接口的读写时序示意图;
图3是本发明实施例的fifomaster接口的读写时序示意图;
图4是本发明实施例的一种fifomaster接口应用示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
术语解释:
fifo:firstinputfirstoutput,先入先出队列;
fifomaster接口:先入先出队列的主接口;
fifoslave接口:先入先出队列的从接口。
实施例一
如图1所示,本实施例的一种fifomaster接口,包括:有限状态机、状态通路、写fifo模块和读fifo模块。
在图1中,fsm:finitestatemachine,有限状态机;由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。
例如:有限状态机可采用采用现场可编程逻辑门阵列fpga来实现。
在图1中,wfifo,指的是:writefifo,写fifo模块;
rfifo指的是:readfifo,读fifo模块;
如图1所示,本实施例的fifomaster接口,具体包括:
状态通路,其用于将接口下游的fifoslave接口状态信号拉到接口上游端;
写fifo模块,其用于当接口上游端中指示写命令/数据fifo满信号为非满状态,接收写命令/数据,且有限状态机判断接口下游的命令fifo/数据fifo为非满时,由有限状态机产生相应控制信号向fifoslave接口的命令fifo/数据fifo写命令/数据;
读fifo模块,其用于当接口上游端中指示读命令/数据fifo的空信号为非空状态,有限状态机判断接口下游的读命令/数据fifo的空信号为非空时,则由有限状态机产生相应控制信号向从fifoslave接口读命令/数据并压入读fifo模块。
本实施例的fifomaster接口所连接的信号包括上游控制信号、状态通路信号、fifo接口信号和下游接口控制信号。
具体如图1所示,上游控制信号包括:
1)clk_in:上游器件给的输入clk(clock,时钟信号);
2)wr_en:当cfifo_full_line/full_line拉低,wr_en(writeenable,写使能)拉低;
3)rd_en:当cfifo_empty_line/empty_line拉低,rd_en(readenable,读使能)拉低。
4)pkg_end_in:指示一包数据传输完成的包结束信号;
状态通路信号包括:
1)cfifo_full_line:指示写命令fifo的满信号;
2)cfifo_empty_line:指示读命令fifo的空信号;
3)full_line:指示写数据fifo的满信号;
4)empty_line:指示读数据fifo的空信号;
5)cfifo_sel_in:上游命令fifo选中信号。
fifo接口信号包括:
1)wd_push:wfifo的push(压入)信号;
2)rd_pop:rfifo的pop(弹出)信号;
3)wdata_full:wfifo的满信号;
4)wdata_empty:wfifo的空信号;
5)rdata_full:rfifo的满信号;
6)rdata_empty:rfifo的空信号。
下游接口控制信号包括:
1)cs_n:片选信号;
2)re_n:读数据/命令使能信号;
3)we_n:写数据/命令使能信号;
4)cfifo_sel_n:下游命令fifo选中信号;
5)dq[31:0]:数据/命令输入/输出;
6)cfifo_full:写命令fifo满信号;
7)cfifo_empty:读命令fifo空信号;
8)full:写数据fifo满信号;
9)empty:读数据fifo空信号;
10)pkgend_n:包结束信号。
如图2所示,fifo读写时序示意图描述如下:
1)在时钟上升沿,push和wdata在同一时钟周期;
2)在时钟上升沿,pop的下一时钟周期输出rdata;
3)fifo写满full信号置起;
4)fifo读空,empty信号置起。
如图4所示,fifomaster读写时序示意图描述如下:
cmdwrite:器件选中,写使能,命令fifo选中,状态反馈命令fifo非满,命令写入下游器件命令fifo。
dataread:器件选中,读使能,非命令fifo选中,数据fifo非空,从下游器件数据fifo读取数据。
datawrite:器件选中,写使能,非命令fifo选中,下游器件数据fifo非满,数据写入下游器件数据fifo。
cmdread:器件选中,读使能,命令fifo选中,状态反馈命令fifo非空,从下游器件命令fifo读取数据。
具体地,本实施例的fifomaster接口的整个数据流向为:
(1)写命令:当cfifo_full_line为非满状态,上游器件通过fifo接口写命令到wfifo,控制逻辑判断cfifo_full为非满,向fifoslave的命令fifo写命令。
(2)读命令:当cfifo_empty_line为非空状态,控制逻辑判断cfifo_empty非空,则从fifoslave读命令,并压入rfifo。当rdata_empty为非空状态,上游器件通过fifo接口读取命令。
(3)写数据:当full_line为非满状态,上游器件通过fifo接口写数据到wfifo,控制逻辑判断full为非满,则向fifoslave的数据fifo写数据。
(4)读数据:当empty_line为非空状态,控制逻辑判断empty非空,则从fifoslave读数据,并压入rfifo。当rdata_empty为非空状态,上游器件通过fifo接口读取数据。
本实施例能够向用于提供一款上游对应fifo接口和下游对应fifoslave的接口,能够在现场可编程逻辑门阵列(比如:fpga内部)实现接口时序的转换,能支持一些支持fifo但不支持fifomaster协议的设计经由此接口,实现fifomaster功能,与传统方法相比,无需上游设备支持fifomaster时序,只需支持fifo接口,相对来说更加通用,节省用户的开发时间,降低用户芯片的开发周期。
本实施例使用的fifo深度可根据用户需求进行相应调整,保证了整个设计的灵活性,增加用户的使用体验。
本实施例能够使用现场可编程逻辑门阵列构建有限状态机,成本低,对于不同型号的现场可编程逻辑门阵列,均可兼容,只需用户根据需求进行相应修改,保证了fifomaster接口的通用性,同时易于调试。
实施例二
本实施例提供了一种fifomaster接口的应用。
如图4所示,本实施例的一种fifomaster接口的上游端与上游器件相连,下游端与下游器件相连;所述上游器件具备fifo接口,所述fifo接口用于调用如上述所述fifomaster接口;所述下游器件符合slavefifo时序;所述fifomaster接口用于实现上游器件和下游器件之间的相互通信。
在具体实施中,fifomaster接口用于实现上游器件和下游器件之间的相互通信的过程为:
上游器件通过fifo接口向fifomaster接口中的写fifo模块写入命令/数据,fifomaster接口中的有限状态机用来判断下游器件fifo空满状态,进而产生相应控制信号,对下游器件进行写命令/数据操作;
上游器件根据下游器件fifo的空满状态进行读命令/数据操作,fifomaster接口中的有限状态机产生相应控制信号,从下游器件fifoslave中读回命令/数据,并缓存入fifomaster接口中的读fifo模块。
其中,当读fifo模块的空信号为非空状态,上游器件通过fifo接口读取读fifo模块中的命令/数据。
实施例三
本实施例一种fpga,其具体上述所述的fifomaster接口,能够实现从普通fifo接口到fifomaster接口的转换,使得用户可根据需求直接调用fifomaster接口,实现上层与下层的灵活对接,且做到与fifomaster接口相连的fpga的重复利用。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。