FIFO控制电路及控制方法技术

技术编号:2830469 阅读:199 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种FIFO控制电路和一种FIFO控制方法。本发明专利技术允许每次写入FIFO的数据长度不同,并直接根据每次写入FIFO的数据长度来计算下一次写入的写地址;由于每次写入FIFO的数据长度可能不同,从而无法预先获知每次写入数据的长度,因此,本发明专利技术在FIFO控制电路中增加了读数据调整单元,如果FIFO中存储的数据不足以一次读取,则读数据调整单元降低读取数据单位长度,并输出至读地址单元,由读地址单元根据读数据调整单元输出的读取数据单位长度来计算下一次读取的读地址,以保证能够将FIFO中存储的数据读空。

【技术实现步骤摘要】

本专利技术涉及存储器技木,特别涉及一种先进先出存储器(FIFO)控制 电3各和一种FIFO的控制方法。
技术介绍
FIFO是一种常用于数据緩冲和时钟隔离的电路器件,可应用于包括高 速数据采集,多处理器接口和通信中的高速緩冲等各种领域。通常情况下,需要为FIFO设置一控制电路,以实现根据写地址在FIFO 中写入数据、根据读地址读取FIFO中的数据。图1为现有FIFO控制电路的结构示意图。如图1所示,现有的FIFO 控制电路通常包括连接至FIFO的写地址单元和读地址单元。写地址单元,在写时钟信号的控制下,根据预设的每次写入数据的固定 长度,计算(例如累加得到)下一次写入的写地址并输出至FIFO,以保证 每次写入至FIFO的数据能够存储于当前写入地址对应的存储空间。读地址单元,在读时钟信号的控制下,根据预设的每次读取数据的固定 长度,计算下一次读耳又的读地址并输出至FIFO,以保证每次从FIFO中读:f又 的数据为当前读地址所对应的数据。其中,上述的写时钟信号和读时钟信号,可以分别来自FIFO所在数据 总线中写入数据和读取数据的功能单元;跨时钟域的写入数据固定长度与读 取数据固定长度需匹配,例如二者相等或互为倍数,以保证能够读空FIFO 中存储的数据。同时,为了产生表示FIFO已空的空(empty)信号,写地址单元在计 算得到下一次写入的写地址之后,将该写地址转换为长度与FIFO深度相匹配的格雷码并输出至读地址单元,在写地址格雷码和读地址格雷码相同时,由读地址单元输出空信号;而为了产生表示FIFO已满的满(full)信号,读 地址单元在计算得到下一次读取的读地址之后,也将该读地址转换为长度与 FIFO深度相匹配的格雷码并输出至写地址单元,在写地址格雷码和读地址 格雷码的最高两位不同、且其余所有低位均相同时,由写地址单元输出满信上述FIFO控制电路虽然能够支持对FIFO的读写操作,但仅限于固定 长度的数据写入、以及固定长度的数据读取,且需要跨时钟域的写入数据固 定长度与读取数据固定长度相匹配。而在实际应用中,FIFO所在的数据总线中,每次写入的数据长度可能 会动态变化,即跨时钟域的写入数据长度与读取数据长度不固定、且不匹酉己。 在这种情况下,就无法预先获知每次写入的数据长度,因而无法预先设置每 次读取的数据长度,从而无法保证写入的数据长度与读取的数据长度相匹 配,使得无法保证FIFO中存储的数据被读空。可见,在跨时钟域的写入数据长度与读取数据长度不固定、且不匹配的 环境下,现有FIFO控制电路无法保证将FIFO中存储的数据读空,从而无 法支持对FIFO的读写操作。
技术实现思路
有鉴于此,本专利技术提供了 一种FIFO控制电路和一种FIFO的控制方法, 能够在跨时钟域的写入数据长度与读取数据长度不固定、且不匹配的环境 下,支持对FIFO的读写操作。本专利技术提供的一种FIFO控制电路,包括连接至所述FIFO的写地址 单元和读地址单元,该控制电路还包括读数据调整单元,其中,所述读数据调整单元在FIFO中存储的数据不足以一次读取时,降低读 取数据单位长度,并输出至所述读地址单元;所述写地址单元,根据当前写入至所述FIFO的数据长度,计算下一次 写入的写地址并输出给所述FIFO;所述读地址单元,根据接收到的读取数据单位长度,计算下一次读取的 读地址并输出给所述FIF O 。所述写地址单元,进一步将计算得到的写地址转换为与所述读取数据单 位长度相匹配的写地址格雷码有效位,将该写地址格雷码有效位转换为长度 与所述FIFO深度相匹配的写地址;格雷码,并输出至所述读地址单元;所述读地址单元,进一步将计算得到的读地址转换为与所述读数据单位 长度相匹配的读地址格雷码有效位,将该读地址格雷码有效位转换为长度与 所述FIFO深度相匹配的读地址格雷码,并将转换得到的读地址格雷码与接 收自所述写地址单元的写地址格雷码进行比较,如果二者相同,则向所述 FIFO输出表示FIFO已空的空信号。在进行比较之前,所述读地址单元进一步在所述读时钟信号的控制下, 将接收自所述写地址单元的写地址格雷码锁存两拍。读地址单元进一步将表示FIFO已空的空信号输出给读数据调整单元, 通知所述读数据调整单元停止所述读数据单位长度的调整。所述读地址单元,进一步将计算得到的读地址转换为与当前写入至所述 FIFO的数据长度相匹配的读地址格雷码有效位,将该读地址格雷码有效位 转换为长度与所述FIFO深度相匹配的读地址格雷码,并输出至所述写地址 单元;所述写地址单元,进一步将计算得到的写地址转换为与当前写入至所述 FIFO的数据长度相匹配的写地址格雷码有效位,将该写地址格雷码有效位 转换为长度与所述FIFO深度相匹配的写地址格雷码,并将转换得到的写地 址格雷码与接收自所述读地址单元的读地址格雷码进行比较,如果二者有效 位的最高两位不同、且其余所有低位均相同时,向所述FIFO输出表示FIFO 已满的满信号。在进行比较之前,所述写地址单元进一步在所述写时钟信号的控制下,将接收自所述读地址单元的读地址格雷码锁存两拍。所述读地址单元进一步将所述表示FIFO已满的满信号输出给所述读数 据调整单元;所述读数据调整单元根据接收到的所述表示FIFO已满的满信号,提高 读数据单位长度并输出至所述读地址单元。本专利技术提供的一种FIFO的控制方法,包括根据当前写入至所述FIFO的数据长度,计算下一次写入的写地址并输 出给所述FIFO;如果FIFO中存储的数据不足以一次读取,则降低读取数据单位长度, 并根据接收到的读取数据单位长度,计算下一次读取的读地址并输出给所述 FIFO。在计算得到所述写地址和所述读地址之后,该方法进一步包括 将计算得到的写地址转换为与所述读取数据单位长度相匹配的写地址格雷码有效位,将该写地址格雷码有效位转换为长度与所述FIFO深度相匹配的写地址一各雷码;并将计算得到的读地址转换为与所述读数据单位长度相匹配的读地址 格雷码有效位,将该读地址格雷码有效位转换为长度与所述FIFO深度相匹配的读地址格雷码;将所述写地址格雷码与所述读地址格雷码进行比较,如果二者相同,则 向所述FIFO输出表示FIFO已空的空信号。在向所述FIFO输出表示FIFO已空的空信号的同时,该方法进一步包括停止降低所述读取数据单位长度。在计算得到所述写地址和所述读地址之后,该方法进一步包括 将计算得到的读地址转换为与当前写入至所述FIFO的数据长度相匹配的读地址格雷码有效位,将该读地址格雷码有效位转换为长度与所述FIFO深度相匹配的读地址格雷码;并将计算得到的写地址转换为与当前写入至所述FIFO的数据长度相匹 配的写地址格雷码有效位,将该写地址格雷码有效位转换为长度与所述 FIFO深度相匹配的写地址格雷码;将所述读地址格雷码与所述写地址格雷码进行比较,如果二者有效位的 最高两位不同、且其余所有低位均相同时,向所述FIFO输出表示FIFO已 满的满信号。在向所述FIFO输出表示FIFO已满的满信号的同时,该方法进一步包括提高所述读数据单位长度。由上述技术方案可见,本专利技术允许每次写入FIFO的数据长度不同,并 直接根据每次写入FIFO的数据长度来计算下一次写入的写地址;由于每次 写入FIFO的数据长度可能不同,本文档来自技高网
...

【技术保护点】
一种先进先出存储器FIFO控制电路,包括:连接至所述FIFO的写地址单元和读地址单元,其特征在于,该控制电路还包括:读数据调整单元,其中,所述读数据调整单元在FIFO中存储的数据不足以一次读取时,降低读取数据单位长度,并输出 至所述读地址单元;所述写地址单元,根据当前写入至所述FIFO的数据长度,计算下一次写入的写地址并输出给所述FIFO;所述读地址单元,根据接收到的读取数据单位长度,计算下一次读取的读地址并输出给所述FIFO。

【技术特征摘要】
1、一种先进先出存储器FIFO控制电路,包括连接至所述FIFO的写地址单元和读地址单元,其特征在于,该控制电路还包括读数据调整单元,其中,所述读数据调整单元在FIFO中存储的数据不足以一次读取时,降低读取数据单位长度,并输出至所述读地址单元;所述写地址单元,根据当前写入至所述FIFO的数据长度,计算下一次写入的写地址并输出给所述FIFO;所述读地址单元,根据接收到的读取数据单位长度,计算下一次读取的读地址并输出给所述FIFO。2、 如权利要求1所述的控制电路,其特征在于,所述写地址单元,进一步将计算得到的写地址转换为与所述读取数据单 位长度相匹配的写地址格雷码有效位,将该写地址格雷码有效位转换为长度 与所述FIFO深度相匹配的写地址格雷码,并输出至所述读地址单元;所述读地址单元,进一步将计算得到的读地址转换为与所述读数据单位 长度相匹配的读地址格雷码有效位,将该读地址格雷码有效位转换为长度与 所述FIFO深度相匹配的读地址格雷码,并将转换得到的读地址格雷码与接 收自所述写地址单元的写地址格雷码进行比较,如果二者相同,则向所述 FIFO输出表示FIFO已空的空信号。3、 如权利要求2所述的控制电路,其特征在于,在进行比较之前,所述读地址单元进一步在所述读时钟信号的控制下, 将接收自所述写地址单元的写地址格雷码锁存两拍。4、 如权利要求2或3所述的控制电路,其特征在于,读地址单元进一 步将表示FIFO已空的空信号输出给读数据调整单元,通知所述读数据调整 单元停止所述读数据单位长度的调整。5、 如权利要求1所述的控制电路,其特征在于, 所述读地址单元,进一步将计算得到的读地址转换为与当前写入至所述FIFO的数据长度相匹配的读地址格雷码有效位,将该读地址格雷码有效位 转换为长度与所述FIFO深度相匹配的读地址格雷码,并输出至所述写地址单元;所述写地址单元,进一步将计算得到的写地址转换为与当前写入至所述FIFO的数据长度相匹配的写地址格雷码有效位,将该写地址格雷码有效位 转换为长度与所述FIFO深度相匹配的写地址格雷码,并将转换得到的写地 址格雷码与接收自所述读地址单元的读地址格雷码进行比较,如果二者有效 位的最高两位不同、且其余所有低位均相同时,向所述FIFO输出表示FIFO 已满的满信号。6、 如权利要求5所述的控制电路,其特征在于,在进行比较之前,所述写地址单元...

【专利技术属性】
技术研发人员:万红星
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1