一种多路读写多容量选择的FIFO控制器的制作方法

文档序号:12464275阅读:173来源:国知局
一种多路读写多容量选择的FIFO控制器的制作方法与工艺

本发明公开了一种多路读写多容量选择的FIFO控制器,属于数字集成电路的技术领域。



背景技术:

FIFO(First In First Out),即先进先出存储器的简称,在系统设计中,为了增加数据传输速率、大批量处理数据流、解决不同时钟域系统之间的数据传输问题,通常使用FIFO存储器。

常见的FIFO存储器一般有两种构成方式:一种是由移位寄存器阵列构成,另一种是由具有读和写地址指针的双端口RAM构成。根据FIFO工作的时钟域,又可以将FIFO存储器分为同步FIFO和异步FIFO两类,同步FIFO是指读时钟与写时钟为同一个时钟,而异步FIFO是指读时钟与写时钟为两个互相独立的时钟。FIFO的使用非常广泛,其中又以由SRAM组成的FIFO更为紧凑实用,本发明主要是针对由SRAM组成的FIFO提出改进。

在一般设计实现中,一块SRAM只用来实现一个FIFO,单块SRAM的容量通常比作为缓存用的FIFO的容量大得多,那么,大容量的SRAM仅实现一个FIFO会白白浪费掉剩余的存储空间。尤其是SRAM应用需求多或需要多个容量不一样的FIFO等设计需求时,多个SRAM剩余的存储空间浪费更加严重,资源利用率也比较低。



技术实现要素:

本发明的发明目的是针对上述背景技术的不足,提供了一种多路读写多容量选择的FIFO控制器,实现了FIFO容量的灵活调整以及SRAM剩余存储体空间的充分利用,解决了一块SRAM仅用以实现一个FIFO存在资源利用率低的技术问题。

本发明为实现上述发明目的采用如下技术方案:

一种多路读写多容量选择的FIFO控制器,包括:

FIFO控制电路,根据系统输入容量选择信号分配当前FIFO容量,调节当前FIFO读地址信号和当前FIFO写地址信号,

用户SRAM读写控制电路,接收FIFO控制电路输出的当前FIFO容量指示信号,根据SRAM存储体电路除去当前FIFO容量后的剩余容量为各用户设备分配类似FIFO操作的读写地址,

地址译码电路,根据系统设备地址信号输出表征系统所选当前FIFO及用户设备的选择信号,

多路选择电路,接收FIFO控制电路输出的当前FIFO读地址信号和当前FIFO写地址信号、用户SRAM读写控制电路输出的各用户设备类似FIFO操作的读写地址、地址译码电路输出的选择信号,完成系统所选当前FIFO的读写操作及系统所选用户设备的类似FIFO操作,及,

SRAM存储体电路,具有按照当前FIFO容量划分的当前FIFO存储体空间以及各用户设备类似FIFO操作的数据存储体空间。

作为多路读写多容量选择的FIFO控制器的进一步优化方案,类似FIFO操作包含但不限于RAM读写操作、堆栈操作。

作为多路读写多容量选择的FIFO控制器的进一步优化方案,FIFO控制电路包括:

FIFO容量选择电路,根据其输入端接收的系统输入容量选择信号以及SRAM存储体电路中不同存储体空间的阈值选择当前FIFO容量,

当前长度信号产生电路,根据当前长度信号的值与当前FIFO容量的数值关系、FIFO写数据使能信号、FIFO读数据使能信号,依据防止写溢出和读空的原则调节当前长度信号的值,

读地址信号产生电路,在进行FIFO读操作的过程中,根据当前FIFO读地址信号与当前FIFO容量的数值关系调节当前FIFO读地址信号的值,及,

写地址信号产生电路,根据当前长度信号和当前FIFO读地址信号之和与当前FIFO容量的数值关系调节当前FIFO写地址信号。

再进一步的,多路读写多容量选择的FIFO控制器中的FIFO容量选择电路通过多路选择器实现,多路选择器的输入端输入SRAM存储体电路中不同存储体空间的阈值,多路选择器的选择端接系统输入容量选择信号,多路选择器输出当前FIFO容量。

再进一步的,多路读写多容量选择的FIFO控制器中的当前长度信号产生电路:在FIFO写数据使能信号有效且当前长度信号的值在当前FIFO容量范围内时,对当前长度信号的值加一进行FIFO写操作,否则,在FIFO读数据使能信号有效且当前长度信号的值大于零时对当前长度信号的值减一进行FIFO读操作。

更进一步的,多路读写多容量选择的FIFO控制器中的当前长度信号产生电路包括:两个二选一数据选择器及D触发器,

第一二选一数据选择器,其选择端输入FIFO读数据使能信号读数据使能信号有效且当前长度信号值大于0的逻辑判别式,其1输入端输入当前长度信号减一的值,

第二二选一数据选择器,其选择端输入FIFO写使能信号有效且当前长度信号值在当前FIFO容量范围内的逻辑判别式,其1输入端输入当前长度信号加一的值,其0输入端接第一二选一数据选择器的输出端,

D触发器,其输入端接第二二选一数据选择器的输出端,其输出端接第一二选一数据选择器的0输入端。

再进一步的,多路读写多容量选择的FIFO控制器中的读地址信号产生电路:

在FIFO读数据使能信号有效且当前长度信号大于0的情况下:当前FIFO读地址信号在当前FIFO容量范围内时,对当前FIFO读地址信号进行加一操作,直至当前FIFO读地址信号超出当前FIFO容量范围时,对当前FIFO读地址信号进行归零操作;其余情况下保持当前FIFO读地址信号不变。

更进一步的,多路读写多容量选择的FIFO控制器中的读地址信号产生电路包括:两个二选一数据选择器及D触发器,

第一二选一数据选择器,其选择端输入当前FIFO读地址信号等于当前FIFO容量的逻辑判别式,其0输入端输入当前FIFO读地址信号加一的值,其1输入端输入0,

第二二选一数据选择器,其选择端输入FIFO读数据使能信号有效且当前长度信号大于0的逻辑判别式,其1输入端接第一二选一数据选择器的输出端,

D触发器,其输入端接第二二选一数据选择器的输出端,其输出端接第二二选一数据选择器的0输入端。

再进一步的,多路读写多容量选择的FIFO控制器中的写地址信号产生电路:

当前长度信号与当前FIFO读地址信号之和在当前FIFO容量范围内时,以当前长度信号与当前FIFO读地址信号的和为当前FIFO写地址信号,

当前长度信号与当前FIFO读地址信号之和超出当前FIFO容量范围时,将当前长度信号和当前FIFO读地址信号累加后再减去当前FIFO容量的值赋予当前FIFO写地址信号。

更进一步的,多路读写多容量选择的FIFO控制器中的写地址信号产生电路通过一二选一数据选择器实现,该二选一数据选择器的选择端输入当前长度信号与当前FIFO读地址信号之和大于当前FIFO容量的逻辑判别式,该二选一数据选择器的0输入端输入当前长度信号与当前FIFO读地址信号之和,该二选一数据选择器的1输入端输入当前长度信号和当前FIFO读地址信号累加后再减去当前FIFO容量的值。

本发明采用上述技术方案,具有以下有益效果:通过FIFO控制电路分配FIFO容量并为系统当前FIFO操作分配SRAM读写地址,通过用户SRAM读写控制电路和地址译码电路的设计实现了其它用户设备共享访问FIFO未占用的SRAM地址空间,可灵活调整SRAM芯片存储体空间的划分并充分利用未被FIFO占用的SRAM地址空间,有效整合了SRAM存储体,提高了资源利用率。

附图说明

图1为本发明涉及的FIFO控制器的系统框图。

图2为FIFO容量选择电路的框图。

图3为读地址信号产生电路的框图。

图4为当前长度信号产生电路的框图。

图5为写地址信号产生电路的框图。

图中标号说明:101、FIFO控制电路,102、用户SRAM读写控制电路,103、地址译码电路,104、多路选择电路,105、SRAM存储体电路。

具体实施方式

下面结合附图对发明的技术方案进行详细说明。

本发明涉及的多路读写多容量选择的FIFO控制器如图1所示,包括:FIFO控制电路101、用户SRAM读写控制电路102、地址译码电路103、多路选择电路104以及SRAM存储体电路105。

FIFO控制电路101:根据系统输入容量选择信号fifo_size选择当前FIFO容量,容量指示信号为depth,输出容量指示信号depth到用户SRAM读写控制电路102;将FIFO写入数据wr_din输出到fifo_din;将FIFO写数据使能信号wr_en输出到fifo_wr;将FIFO读数据使能信号rd_en输出到fifo_rd;另外,FIFO控制电路101输出对SRAM的读地址信号fifo_raddr(即当前FIFO读地址信号)和写地址信号fifo_waddr(即当前FIFO写地址信号)。以上5个输出信号均输出到多路选择电路104。

用户SRAM读写控制电路102,由多个用户自定义SRAM读写控制电路组成,输入FIFO控制电路101产生的容量指示信号depth。此处根据SRAM剩余空间大小,可扩展N个SRAM读写控制子模块user1_ctr1至userN_ctr1,第一个子模块输出写入数据user1_din,读地址信号user1_raddr,写地址信号user1_waddr,读数据使能信号user1_rd,写数据使能信号user1_wr。依次类推,第N个子模块输出写入数据userN_din,读地址信号userN_raddr,写地址信号userN_waddr,读数据使能信号userN_rd,写数据使能信号userN_wr。以上信号均输出到多路选择电路104。

地址译码电路103,输入为系统设备地址信号dev_addr,对系统设备地址信号dev_addr地址译码处理后输出多路选择信号sel到多路选择电路104,该多路选择信号表征系统所选当前FIFO及用户设备。

多路选择电路104,输入为FIFO控制电路101输出的5路控制信号、用户SRAM读写控制电路102输出的N路信号以及地址译码电路103输出的多路选择信号sel,同时,输出SRAM写数据信号din,SRAM读地址信号raddr,SRAM写地址信号waddr,SRAM读数据使能信号rd,SRAM写数据使能信号wr,以上5路信号输出到SRAM存储体电路105。

SRAM存储体电路105是根据当前FIFO容量及用户SRAM读写控制电路类似FIFO读写地址分配的存储体空间,输入为多路选择电路104输出的SRAM写数据信号din、SRAM读地址信号raddr、SRAM写地址信号waddr、SRAM读数据使能信号rd、SRAM写数据使能信号wr,输出为SRAM读数据信号dout。fifo space为当前FIFO存储体空间,user1 space至userN space为各用户设备类似FIFO操作的数据存储体空间,类似FIFO 操作包括RAM读写操作、堆栈操作等。

FIFO控制电路101由FIFO容量选择电路、读地址信号产生电路、当前长度信号产生电路和写地址信号产生电路构成。

FIFO容量选择电路如图2所示,根据系统输入容量选择信号fifo_size确定当前FIFO的容量depth。FIFO容量选择电路可通过一多路选择器实现,多路选择器的输入端输入SRAM存储体电路105中不同存储体空间的阈值Threshold_1至Threshold_n,多路选择器的选择端接系统输入容量选择信号fifo_size,多路选择器输出当前FIFO容量depth。

读地址信号产生电路如图3所示:当FIFO读数据使能信号rd_en有效、当前长度信号len_addr大于零且当前FIFO读地址信号r_addr不等于depth-1时,对当前FIFO读地址信号r_addr加一进行读操作,直至FIFO读地址信号r_addr等于depth-1时,FIFO读地址信号r_addr被置零;其它情况下FIFO读地址信号r_addr保持不变。读地址信号产生电路具体可由两个二选一数据选择器及D触发器实现,第一二选一数据选择器的选择端输入逻辑判别式:r_addr==( depth-1),第一二选一数据选择器的0输入端输入r_addr+1,第一二选一数据选择器的1输入端输入0,第二二选一数据选择器的选择端输入逻辑判别式:rd_en&&(len_addr>0),第二二选一数据选择器的1输入端接第一二选一数据选择器的输出端,D触发器的输入端接第二二选一数据选择器的输出端,D触发器的输出端接第二二选一数据选择器的0输入端。

当前长度信号产生电路如图4所示:当FIFO写数据使能信号wr_en有效且FIFO当前长度信号len_addr小于当前FIFO容量depth时,FIFO当前长度信号len_addr加一;否则,当FIFO读数据使能信号rd_en有效且FIFO当前长度信号len_addr大于零时,FIFO当前长度信号len_addr减一。当前长度信号产生电路具体由两个二选一数据选择器及D触发器实现,第一二选一数据选择器的选择端输入逻辑判别式:rd_en&&(len_addr>0),第一二选一数据选择器的1输入端输入len_addr-1,第二二选一数据选择器的选择端输入逻辑判别式:wr_en&&( len_addr< depth),第二二选一数据选择器的1输入端输入len_addr+1,第二二选一数据选择器的0输入端接第一二选一数据选择器的输出端,D触发器的输入端接第二二选一数据选择器的输出端,D触发器的输出端接第一二选一数据选择器的0输入端。

写地址信号产生电路如图5所示:当FIFO当前长度信号len_addr加上读地址信号r_addr大于depth-1时,FIFO写地址w_addr等于FIFO当前长度信号len_addr加上FIFO读地址信号r_addr的和减去FIFO当前选择容量depth;否则,FIFO写地址w_addr等于FIFO当前长度信号len_addr加上FIFO读地址信号r_addr的和。写地址信号产生电路具体可通过一二选一数据选择器实现,该二选一数据选择器的选择端输入逻辑判别式:len_addr>( depth-1-r_addr),该二选一数据选择器的0输入端输入len_addr+ r_addr,该二选一数据选择器的1输入端输入len_addr+ r_addr-depth。

以上为FIFO控制电路101对SRAM存储体的读写操作控制以及读写地址的控制过程,用户SRAM读写控制电路102对SRAM存储体的读写操作控制可以直接访问。如果将用户SRAM读写控制电路102内部的子模块例化为FIFO控制电路,那么本发明可实现多个FIFO共用同一块SRAM,此方案可视为本发明的一种扩展变形方案,其它类似扩展变形方案也应应划入本发明的保护范围。

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