异步时钟域转换时地址调整的系统及其方法

文档序号:7509495阅读:164来源:国知局
专利名称:异步时钟域转换时地址调整的系统及其方法
技术领域
本发明涉及芯片间的接口技术,特别涉及在异步时钟域间的芯片接口技术。
背景技术
在数字信号处理领域,虽然数字信号处理器(Digital Signal Processor,简称“DSP”)功能日益强大,但在很多的场合仍需多个DSP串行或并行工作,例如在一些实时的控制和数据处理场合,实时算法经常需要由几个DSP串行或并行的工作,以提高系统的运行速度和实时性。如何在两个处理器之间进行高速可靠的信息传输,就成为构建高速实时系统的关键问题。
目前,嵌入式控制系统正朝着高智能化、高实时性方向发展,在高速数据采集和处理场合,随着采样数据量的增大和信息处理任务的增加,对数据传送的要求也越来越高,在系统或模块间如果没有能够高速传送数据的接口,则会遭遇数据传送的速度瓶颈问题,从而影响整个系统对数据的处理能力。
针对上文所述需要在不同芯片、不同时钟域之间传递高速实时数据的情况,可以在芯片接口模块中采用双口随机存取存储器(Random AccessMemory,简称“RAM”)构成各种高速数据传送接口。双口RAM具有两套完全独立的数据线、地址线和读写控制线,允许不同时钟域内的芯片对其同时进行读写操作。不管是在并行处理网络中的数据共享,还是在流水方式中的高速数据传送,高性能双口RAM都能在其中发挥重要作用,确保数据通路的畅通。
双口RAM的读和写处于不同的时钟域,其读写地址一般相差180°相位,即读写地址之间的距离等于双口RAM存储容量的1/2,读和写的时钟频率相同,读写地址在各自的时钟作用下加一,这样可以最大限度避免读写地址冲突的情况出现。
虽然异步时钟域中的读写地址相差180°且读和写的时钟频率相同,但是由于时钟频率抖动等原因,仍然可能导致读、写冲突。例如,当读时钟频率在一段时间内由于频率抖动超过了写时钟频率,读地址增加过快,就会出现读地址和写地址不同步的现象,可能导致读写冲突。
需要使用特定的技术方案比较读写地址,并根据情况进行读写地址的调整,避免异步时钟域转换时因为时钟抖动等原因引起的读写地址冲突。
现有技术方案在异步时钟域内分别对读写时钟进行计数产生读写地址,然后对读写地址分别进行格雷码转换后进行比较,进而产生地址调整信号(Adjust),再由Adjust信号控制RAM读地址,在Adjust信号有效时对读地址的计数器进行高位取反低位加1,从而消除读写地址冲突。
考虑到在地址变化时,如果多位地址的各位变化时间不同,异步时钟对其进行采样时数值可能为不同于地址变化后数值的其他值。熟悉本领域的技术人员理解,格雷码是一种在相邻计数值之间只有一位发生变化的编码方式,因此现有技术方案使用格雷码可以避免出现计数一次地址中多位出现变化的情况。
一般来说,地址调整信号在读写地址差值小于一个门限时产生,而由于格雷码是一种无权码,不能直接计算两个格雷码之间的差值,因此现有技术方案中地址调整信号是通过格雷码转换后的读、写地址延迟一定拍数比较而产生的,如果在延时产生的多个读地址格雷码和多个写地址格雷码之间有任何两个相同,则产生地址调整信号。
现有技术方案中异步时钟域转换读写地址冲突调整的电路如图1所示。其中,Clkw和Clkr分别表示写时钟和读时钟信号,W_addr和R_addr分别表示读地址和写地址,W_Graym和R_Graym分别表示格雷码转换后时延m拍之后的读地址值和写地址值。
在实际应用中,上述方案存在以下问题现有技术方案可能会因为一次读写地址的冲突导致多次调整。
造成这种情况的主要原因在于,虽然现有的技术方案在发现冲突后进行了地址调整,但是由于其类似流水线的多级延时可能造成在进行地址调整后仍然在之后若干拍中检测到冲突,从而导致多次地址调整信号的产生。

发明内容
有鉴于此,本发明的主要目的在于提供一种异步时钟域转换时地址调整的系统及其方法,使得在异步时钟域转换出现读写地址冲突时可以很快完成地址调整,避免出现一次地址冲突导致多次地址调整的情况。
为实现上述目的,本发明提供了一种异步时钟域转换时地址调整的系统,包含读地址生成模块、写地址生成模块,格雷码转换模块,以及分别用于存储格雷码表示的读地址和写地址的两个多级时延模块,还包含地址调整信号生成模块,所述地址调整信号生成模块用于根据所述多级时延模块的存储值判断是否发生读写地址冲突,在读写地址冲突时调整和所述读地址或所述写地址相关的存储值。
其中,所述读地址相关的存储值包含所述读地址生成模块中的所述读地址值,所述多级时延模块中存储的格雷码表示的所述读地址。
所述写地址相关的存储值包含所述写地址生成模块中的所述写地址值,所述多级时延模块中存储的格雷码表示的所述写地址。
此外在所述系统中,在发生读写地址冲突时,所述地址调整信号生成模块将所述读地址生成模块中的读地址高位取反低位加1,将所述多级时延模块中存储的格雷码表示的所述读地址置位为该格雷码表示的所述读地址的前一拍读地址取反后的格雷码值;或者所述地址调整信号生成模块将所述写地址生成模块中的写地址高位取反低位加1,将所述多级时延模块中存储的格雷码表示的所述写地址置位为该格雷码表示的所述写地址的前一拍读地址取反后的格雷码值。
此外在所述系统中,所述地址调整信号生成模块还包含n级延时寄存器组、n+1个高位取反低位加1电路单元和n个高位取反求格雷码电路单元;所述n级延时寄存器组的时钟为读时钟或写时钟,其第1级输入所述读地址或写地址,第i级的输出和第i+1级的输入连接;第i个高位取反低位加1电路单元的输入和所述n级延时寄存器组中第i级的输出连接,在读写地址冲突时将输入的所述读地址或写地址高位取反低位加1输出,并用该输出置位所述n级延时寄存器组中第i级的存储值;第1个高位取反求格雷码电路单元输入所述读地址或写地址,第i个高位取反求格雷码电路单元的输入和所述n级延时寄存器组中第i-1级的输出连接,在读写地址冲突时将输入的所述读地址或写地址高位取反后转换为格雷码输出,并用该输出置位前一时钟周期输入的所述读地址或写地址对应的格雷码存储值。
此外在所述系统中,若存储格雷码表示的所述读地址的所述多级时延模块和存储格雷码表示的所述写地址的所述多级时延模块之间有任意两个地址相同,则所述地址调整信号生成模块判定发生读写地址冲突。
本发明还提供了一种异步时钟域转换时地址调整的方法,包含以下步骤A分别根据读时钟和写时钟生成读地址和写地址;
B将所述读地址和所述写地址分别转换为格雷码并使用多级时延存储;C根据所述多级时延存储的读地址和写地址的格雷码判断是否发生冲突,如果是则进入步骤D;D调整所述读地址和所述读地址的多级时延中格雷码表示的存储值,或调整所述写地址和所述写地址的多级时延中格雷码表示的存储值。
其中,所述步骤D中,调整所述读地址和所述读地址的多级时延中格雷码表示的存储值时,将所述读地址高位取反低位加1,将读地址的多级时延中格雷码表示的存储值置位为该格雷码表示的所述读地址的前一拍读地址取反后的格雷码值;调整所述写地址和所述写地址的多级时延中格雷码表示的存储值时,将所述写地址高位取反低位加1,将写地址的多级时延中格雷码表示的存储值置位为该格雷码表示的所述写地址的前一拍写地址取反后的格雷码值。
此外在所述方法中,所述步骤C中,若所述多级时延存储的所述读地址的格雷码和所述写地址的格雷码之间有任意两个相同,则判定发生冲突。
通过比较可以发现,本发明的技术方案与现有技术的主要区别在于,在出现异步时钟域转换读写地址冲突时,同时调整读或写地址和该地址对应的一些延时单元中的对应格雷码的存储值。
这种技术方案上的区别,带来了较为明显的有益效果,即首先,由于本发明方案在异步时钟域转换出现读写地址冲突时,同步调整了地址和多级时延中格雷码表示的地址,不会因为冲突的地址值在多级时延中的延时造成多次检测到地址冲突的情况,因此一次冲突仅需要调整一次,可以有效避免现有技术方案一次冲突多次调整的情况出现;第二,本发明方案在出现地址冲突时一次即可实现正确的地址调整,有效减少了地址冲突的调整时间,减少了因为地址调整造成的数据丢失,对于系统总体性能将有显著帮助;第三,本发明方案简单易行,很容易实施,可以在现有技术基础上很快实现。


图1是现有技术方案中异步时钟域转换读写地址冲突调整的电路图;图2是根据本发明第一较佳实施方式的异步时钟域转换时地址调整的系统组成示意图;图3是根据本发明第二较佳实施方式异步时钟域转换时地址调整的系统的具体电路图;图4是根据本发明第一较佳实施方式的异步时钟域转换时一次地址调整的流程。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明方案分别将读写地址转换为格雷码并用多级时延存储,根据多级时延存储的格雷码表示的读写地址判断是否发生地址冲突,如果发生冲突则在调整读写时,同时改变多级时延存储中的格雷码表示的地址值。
由于本发明方案在地址发生冲突时,不仅改变了地址值,同时也改变了和该地址有关的多级时延中的格雷码存储值,因此不存在一次地址冲突后,由于多级时延造成的多次检测到地址冲突,可以有效避免一次地址冲突造成多次地址调整,能够快速地纠正地址冲突导致的错误,大大缩短地址冲突调整时间。
为了更好地说明本发明方案,下面结合本发明较佳实施方式和附图进行说明。
根据本发明第一较佳实施方式的异步时钟域转换时地址调整的系统组成如图2所示。
异步时钟域地址转换时地址调整的系统由以下模块组成写地址生成模块10,读地址生成模块20,两个格雷码转换模块30-1和30-2,两个多级时延模块40-1和40-2,和地址调整信号生成模块50。
其中,写地址生成模块10、格雷码转换模块30-1和多级时延模块40-1依次连接;读地址生成模块20、格雷码转换模块30-2和多级时延模块40-2依次连接;地址信号生成模块50接收多级时延模块40-1和40-2的输出,并生成地址调整信号控制读地址生成模块20和多级时延模块40-2。
写地址生成模块10和读地址生成模块20分别用于根据写时钟和读时钟生成写地址和读地址。本领域的技术人员理解,写地址生成模块10和读地址生成模块20可以通过使用计数器对读写时钟进行计数实现。
格雷码转换模块30-1和30-2分别将写地址和读地址转换为格雷码。其中,相邻格雷码间仅有一位不同,不会出现相邻地址间的多位存储值不同的情况。
多级时延模块40-1和40-2分别用于存储不同时延的格雷码表示的写地址和读地址。其中,多级时延模块40-1和40-2时延级数可以根据地址冲突允许范围确定。
地址调整信号生成模块50用于根据多级时延模块40-1和40-2的输出判断是否出现地址冲突,并在出现地址冲突时生成地址调整信号并调整读地址生成模块20和多级时延模块40-2的存储值,或调整写地址生成模块10和多级实验模块40-1的存储值。其中,如果多级时延模块40-1和40-2中存储的格雷码之间有任意两个相同,则说明读写地址差值小于地址冲突允许范围,需要进行调整。在本发明第二较佳实施方式中,在出现地址冲突时,地址调整信号生成模块50将读地址生成模块20中的读地址进行高位取反低位加1的操作,即将读地址调整到和当前读地址相差180°相位的地址,同时将多级时延模块40-2中存储的读地址格雷码置位为其对应的前一拍读地址取反后的格雷码值。本领域的普通技术人员理解,由于地址冲突时同时调整了读地址或写地址以及与之相关从存储值,不会出现由于仅调整读地址或写地址没有调整多级时延模块中的存储值而造成的多次检测到地址冲突的情况。
在本发明第一较佳实施方式的基础上,根据本发明第二较佳实施方式异步时钟域转换时地址调整的系统的具体电路如图3所示。本领域的普通技术人员可以很容易理解该电路并根据该电路实现本发明方案。
图3所示电路中,主要有以下几种电路模块计数器31,延时寄存器组32,高位取反低位加1电路组33,格雷码转换34和高位取反求格雷码电路组35。它们之间的连接关系可以参照图3,不再详细说明。
在本发明第二较佳实施方式中,计数器31-1和31-2分别实现上文所述本发明第一较佳实施方式中写地址生成模块10和读地址生成模块20功能;格雷码转换34-1和34-2分别实现本发明第一较佳实施方式中格雷码转换模块30-1和30-2的功能;延时寄存器组32-2和32-4分别实现本发明第一较佳实施方式中多级时延模块40-1和40-2的功能;高位取反低位加1电路组33、延时寄存器组32-3和高位取反求格雷码电路组35利用Adjust信号共同实现地址调整信号生成模块50的功能。
地址调整信号生成模块50是本发明的核心,下面结合本发明第二较佳实施方式做详细说明。其中,通过比较延时寄存器组32-2和32-4中的存储内容是否相同可以决定是否生成Adjust信号,该方式为本领域公知,在电路中不详细标示。
在本发明第二较佳实施方式中,延时寄存器组32-3的输入为读地址,驱动时钟为读时钟,n级延时寄存器组32-3输出延时为1~n个读时钟周期的n个读地址。
高位取反低位加1电路组33包含n+1个高位取反低位加1电路单元,第i个高位取反低位加1电路单元的输入为Adjust信号和延时i-1个读地址时钟的读地址R_addri(R_addr0即为R_bin),输出为延时i-1个读地址时钟的读地址调整值,这些读地址调整值分别对计数器31-2和延时寄存器组32-3中对应延时的读地址进行置位。若Adjust信号有效,则每个高位取反低位加1电路单元对输入的读地址高位取反低位加1,即将读地址调整180°。其中,n为延时寄存器组32-3的延时级数。本领域的普通人员理解,该模块在出现冲突时,同步调整了系统中所有读地址。
高位取反求格雷码电路组35包含n个高位取反求格雷码电路单元,第i个高位取反求格雷码电路单元的输入为Adjust信号和延时i-1个读地址时钟的读地址R_addri(R_addr0即为R_bin),输出为延时i个读地址时钟的读地址格雷码调整值,这些读地址格雷码调整值分别对延时寄存器组32-4中对应延时的读地址格雷码进行置位。若Adjust信号有效,则每个高位取反求格雷码电路单元对输入的读地址高位取反后求格雷码。其中,n为延时寄存器组32-3的延时级数。本领域的普通人员理解,该模块在出现冲突时,同步调整了系统中所有读地址格雷码。
这样,在本发明方案中,当出现地址冲突时,一个时钟周期内即可以完成系统内不同时延的多个读地址和读地址格雷码,从而避免了由于仅调整当前读地址导致由于多级时延导致的冲突地址经多个时钟周期才被清除的情况,可以有效避免一次地址冲突造成多次地址调整,能够快速地纠正地址冲突导致的错误。
根据本发明第一较佳实施方式的异步时钟域转换时一次地址调整的流程如图4所示。
首先进入步骤410,分别根据读写时钟信号生成读写地址。其中,该步骤可以通过分别对读写时钟进行计数实现。
接着进入步骤420,将读写地址分别转换为格雷码并使用多级时延存储。其中,格雷码是一种无权码,相邻格雷码之间仅有一位不同。
接着进入步骤430,根据多级时延存储的读写地址格雷码判断是否发生读写地址冲突,如果是则进入步骤440,否则重复步骤430。其中,如果多级时延存储的读写地址的格雷码有任意两个相同,则说明读写地址差值小于地址冲突允许范围,需要进行调整。
在步骤440中,调整地址和该地址对应多级时延中格雷码的存储值。其中,在本发明第二较佳实施方式中,调整读地址和读地址对应多级时延中格雷码的存储值,将读地址进行高位取反低位加1的操作,即将读地址调整到和当前读地址相差180°相位的地址,同时将读地址格雷码的多级时延存储中的读地址格雷码置位为该读地址对应的前一拍读地址取反后的格雷码值。本领域的普通技术人员理解,由于地址冲突时同时调整了读地址以及与之相关从存储值,不会出现由于仅调整读地址没有调整多级时延模块中的存储值而造成的多次检测到地址冲突的情况。
至此,完成一次读写地址冲突的调整。
需要说明的是,第二较佳实施例以地址冲突时调整了读地址和与之相关的存储值为例进行了说明,本领域的普通技术人员可以理解,基于同样道理,也可以调整写地址和与之相关的存储值,并不影响本发明实质。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种异步时钟域转换时地址调整的系统,包含读地址生成模块、写地址生成模块,格雷码转换模块,以及分别用于存储格雷码表示的读地址和写地址的两个多级时延模块,其特征在于,还包含地址调整信号生成模块,所述地址调整信号生成模块用于根据所述多级时延模块的存储值判断是否发生读写地址冲突,在读写地址冲突时调整所述读地址或写地址以及所述读地址或所述写地址相关的存储值。
2.根据权利要求1所述的异步时钟域转换时地址调整的系统,其特征在于,所述读地址相关的存储值包含所述读地址生成模块中的所述读地址值,所述多级时延模块中存储的格雷码表示的所述读地址。
3.根据权利要求2所述的异步时钟域转换时地址调整的系统,其特征在于,在发生读写地址冲突时,所述地址调整信号生成模块将所述读地址生成模块中的读地址高位取反低位加1,将所述多级时延模块中存储的格雷码表示的所述读地址置位为该格雷码表示的所述读地址的前一拍读地址取反后的格雷码值。
4.根据权利要求1所述的异步时钟域转换时地址调整的系统,其特征在于,所述地址调整信号生成模块还包含n级延时寄存器组、n+1个高位取反低位加1电路单元和n个高位取反求格雷码电路单元;所述n级延时寄存器组的时钟为读时钟,其第1级输入所述读地址,第i级的输出和第i+1级的输入连接;第i个高位取反低位加1电路单元的输入和所述n级延时寄存器组中第i级的输出连接,在读写地址冲突时将输入的所述读地址高位取反低位加1输出,并用该输出置位所述n级延时寄存器组中第i级的存储值;第1个高位取反求格雷码电路单元输入所述读地址,第i个高位取反求格雷码电路单元的输入和所述n级延时寄存器组中第i-1级的输出连接,在读写地址冲突时将输入的所述读地址高位取反后转换为格雷码输出,并用该输出置位前一时钟周期输入的所述读地址对应的格雷码存储值。
5.根据权利要求1所述的异步时钟域转换时地址调整的系统,其特征在于,若两个所述多级时延模块存储的地址之间有任两个相同,则所述地址调整信号生成模块判定发生读写地址冲突。
6.一种异步时钟域转换时地址调整的方法,其特征在于,包含以下步骤A 分别根据读时钟和写时钟生成读地址和写地址;B 将所述读地址和所述写地址分别转换为格雷码并使用多级时延存储;C 根据所述多级时延存储的读地址和写地址的格雷码判断是否发生冲突,如果是则进入步骤D,否则继续执行步骤C;D 调整所述读地址和所述读地址的多级时延中格雷码表示的存储值,或调整所述写地址和所述写地址的多级时延中格雷码表示的存储值。
7.根据权利要求6所述的异步时钟域转换时地址调整的方法,其特征在于,所述步骤D中,当调整所述读地址和所述读地址的多级时延中格雷码表示的存储值时,将所述读地址高位取反低位加1,将读地址的多级时延中格雷码表示的存储值置位为该格雷码表示的所述读地址的前一拍读地址取反后的格雷码值。
8.根据权利要求6所述的异步时钟域转换时地址调整的方法,其特征在于,所述步骤C中,若所述多级时延存储的所述读地址的格雷码和所述写地址的格雷码之间有任意两个相同,则判定发生冲突。
全文摘要
本发明涉及芯片间的接口技术,公开了一种异步时钟域转换时地址调整的系统及其方法,使得在异步时钟域转换出现读写地址冲突时可以很快完成地址调整,避免出现一次地址冲突导致多次地址调整的情况。本发明中,在出现异步时钟域转换读写地址冲突时,同时调整读或写地址和该地址对应的一些延时单元中的对应格雷码的存储值。
文档编号H03L7/00GK1858853SQ20051011089
公开日2006年11月8日 申请日期2005年11月29日 优先权日2005年11月29日
发明者孙飞燕, 胡建凯 申请人:上海华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1