本公开属于数据缓存,具体涉及一种数据缓存器、数据缓存方法和数据同步系统。
背景技术:
1、数据同步主要用于调整两个互联芯片之间数据的误差以及时钟与数据之间的对齐关系,保证在两个互连芯片之间的正常通信;当数据同步的工作时钟与连个互连芯片的工作时钟不同频时,需要异步数据缓存器进行跨时钟域处理。
2、但是,在异步数据缓存器两侧的写时钟频率快于读时钟频率时,存在不连续的非空状态,导致读出数据不连续的问题,影响数据的同步性需求。
技术实现思路
1、本技术提供一种数据缓存器、数据缓存方法和数据同步系统,解决了在数据缓存器的写时钟频率大于读时钟频率时出现的读出数据不连续的问题。
2、第一方面,本技术提供一种数据缓存器,所述数据缓存器包括:存储模块,包括若干个用于缓存数据的存储空间,且每个存储空间对应具有唯一标识的地址;其中,所述存储模块包括非满状态和将空状态,所述将空状态表示所述存储模块中有小于或等于预设阈值个存储空间中存储有数据;写时钟域模块,所述写时钟域模块的使能端与外部写使能输出端相连,所述写时钟域模块的写地址输出端与所述存储模块的写地址输入端相连,用于在外部输入的写使能信号且所述存储模块处于非满状态时生成数据写入地址;读时钟域模块,所述读时钟域模块的读地址输出端与所述存储模块的读地址输入端相连,用于在所述存储模块处于将空状态时等待预设时长后再生成数据读出地址;所述存储模块的数据输入端与外部数据输出端相连,所述存储模块的数据输出端与外部数据接收端相连,用于在写时钟域下将接收到的第一数据信号写入所述数据写入地址对应的存储空间,还用于在读时钟域下从所述数据读出地址对应的存储空间中读出第二数据信号。
3、可选地,所述存储模块还包括非空状态和非将空状态,所述读时钟域模块包括将空控制模式和正常控制模式;在所述正常控制模式下,所述读时钟域模块用于当所述存储模块处于非空状态时生成数据读出地址;在所述将空控制模式下,所述读时钟域模块用于当所述存储模块从将空状态转换成非将空状态时,或当所述存储模块处于将空状态等待预设时长后,生成所述数据读出地址。
4、可选地,所述读时钟域模块包括:写地址同步单元,所述写地址同步单元的输入端与所述写时钟域模块的同步端相连,用于获取当前数据写入地址;读地址产生单元,所述读地址产生单元的第一输出端与所述存储模块的读地址输入端相连,用于在读使能信号的作用下生成当前数据读出地址,并将所述当前数据读出地址发送到存储模块,还用于根据所述当前数据读出地址生成下一个数据读出地址;将空判断单元,所述将空判断单元的第一输入端与所述写地址同步单元的输出端相连,所述将空判断单元的第二输入端与所述读地址产生单元的第二输出端相连,用于根据所述当前数据写入地址和所述下一个数据读出地址之间的差值,判断存储模块是否处于将空状态;读使能产生单元,所述读使能产生单元的第一输入端与所述将空判断单元的输出端相连,所述读使能产生单元的输出端与所述读地址产生单元的输入端相连,用于在所述将空控制模式下且所述将空判断单元输出非将空状态时输出读使能信号到所述读地址产生单元,或在所述将空控制模式下且所述将空判断单元输出将空状态时等待预设时长后输出读使能信号到所述读地址产生单元,使所述读地址产生单元根据所述读使能信号输出下一个数据读出地址到所述存储模块。
5、可选地,所述读时钟域模块还包括:读空判断单元,所述读空判断单元的输入端与所述写地址同步单元的输出端相连,所述读空判断单元的输出端与所述读使能产生单元的第二输入端相连,用于根据所述当前数据写入地址和所述下一个数据读出地址之间的差值,判断存储模块是否处于非空状态,使读使能产生单元在正常控制模式下根据非空状态输出读使能信号。
6、可选地,所述读使能产生单元包括:将空使能开关,用于控制所述读时钟域模块的工作模式;其中,所述将空使能开关处于打开状态时表示所述将空控制模式,所述将空使能开关处于关闭状态时表示所述正常控制模式;计数递减器,所述计数递减器用于在计数使能信号的作用下进行递减计数;选择信号生成器,所述选择信号生成器的第一输入端与所述将空使能开关的输出端相连,所述选择信号生成器的第二输入端与所述计数递减器的输出端相连,用于在所述将空使能开关处于打开状态,且计数递减器输出的计数值等于零或计数递减器输出的计数值为默认值时输出第一选择信号,还用于在所述将空使能开关处于关闭状态时输出第二选择信号;选择器,所述选择器的第一输入端与所述将空判断单元的输出端相连,所述选择器的第二输入端与所述读空判断单元的输出端相连,所述选择器的第三输入端与所述选择信号生成器的输出端相连,所述选择器的第一输出端与所述读地址产生单元的输入端相连,所述选择器的第二输出端与所述计数递减器的输入端相连,用于在所述第一选择信号的作用下,根据所述将空判断单元输出非将空状态生成读使能信号,并在将空判断单元输出的将空状态时输出计数使能信号到所述计数递减器,还用于在所述第二选择信号的作用下,根据所述读空判断单元输出非空状态生成读使能信号。
7、可选地,所述写时钟域模块包括:读地址同步单元,所述读地址同步单元的输入端与所述读时钟域模块的同步端相连,用于获取当前数据读出地址;写地址产生单元,所述写地址产生单元的第一输出端与所述存储模块的写地址输入端相连,用于在写使能信号的作用下生成当前数据写入地址,并将所述当前数据写入地址发送到所述存储模块,还用于根据所述当前数据写入地址生成下一个数据写入地址;写满判断单元,所述写满判断单元的第一输入端与所述读地址同步单元的输出端相连,所述写满判断单元的第二输入端与所述读地址产生单元的第二输出端相连,用于根据所述当前数据读出地址和所述下一个数据写入地址之间的差值,判断存储模块是否处于非满状态;写使能产生单元,所述写使能产生单元的第一输入端与所述外部写使能输出端相连,所述写使能产生单元的第二输入端与所述写满判断单元的输出端相连,所述写使能产生单元的输出端与所述写地址产生单元的输入端相连,用于在所述外部输入的写使能信号下且所述写满判断单元输出非满状态时,输出所述写使能信号到所述写地址产生单元,使所述写地址产生单元根据所述写使能信号输出下一个数据写入地址到所述存储模块。
8、可选地,所述写时钟域模块还包括:第一编码单元,所述第一编码单元的输入端与所述写地址产生单元的第一输出端相连,所述第一编码单元的输出端与所述写地址同步单元相连,用于将所述当前数据写入地址转换成格雷码后输出到所述写地址同步单元;所述读时钟域模块还包括:第二编码单元,所述第二编码单元的输入端与所述读地址产生单元的第一输出端相连,所述第二编码单元的输出端与所述读地址同步单元相连,用于将所述当前数据读出地址转换成格雷码后输出到所述读地址同步单元。
9、第二方面,本技术提供一种数据缓存方法,所述数据缓存方法包括:在外部输入的写使能信号且存储模块处于非满状态时,写时钟域模块生成数据写入地址;所述存储模块在写时钟域下将接收到的第一数据信号写入所述数据写入地址对应的存储空间;在所述存储模块处于将空状态时,读时钟域模块在等待预设时长后生成数据读出地址;所述存储模块在读时钟域下从所述数据读出地址对应的存储空间中读出第二数据信号。
10、可选地,在所述存储模块处于将空状态时,读时钟域模块在等待预设时长后生成数据读出地址,包括:在将空使能开关处于打开状态且将空判断单元输出将空状态时,选择器生成多个计数使能信号;计数递减器根据接收到的多个计数使能信号从默认值依次递减至零;其中,所述计数递减器从默认值依次递减至零的时长为所述预设时长;选择信号生成器根据等于零的计数值输出目标选择信号,使所述选择器根据所述将空判断单元输出的非将空状态生成读使能信号;读地址产生单元根据所述读使能信号生成数据读出地址。
11、第三方面,本技术提供一种数据同步系统,所述数据同步系统包括:第一缓存器,所述第一缓存器的使能端与外部写使能输出端相连,所述第一缓存器的数据输入端与外部数据输出端相连;数据同步模块,所述数据同步模块的数据接收端与所述第一缓存器的数据输出端相连;第二缓存器,所述第二缓存器的使能端与所述数据同步模块的写使能输出端相连,所述第二缓存器的数据输入端与所述数据同步模块的数据输出端相连,所述第二缓存器的数据输出端与外部数据接收端相连;其中,所述第一缓存器和第二缓存器中的任意一个包括所述的数据缓存器。
12、本技术提供的技术方案,至少具有以下有益效果:
13、本技术中的读时钟域模块在检测出存储模块处于将空状态时,等待存储模块处于非将空状态或者等待固定时长后再发送数据读出地址到存储模块,使得存储模块中存储一定数据量后再进行读操作,从而保证了读出数据的连续性和同步性。