一种多时钟数字系统及其时钟确定装置和方法转让专利

申请号 : CN200910243300.1

文献号 : CN101739500B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏孟豪陈云霁

申请人 : 龙芯中科技术有限公司

摘要 :

本发明公开一种多时钟数字系统及其时钟确定装置和方法,该系统包括多个时钟域,还包括全局信号发送模块,确定性同步模块;所述时钟域包括时钟采样模块,其中全局信号发送模块,用于将全局同步信号GRst送到多时钟数字系统中的所有的多个时钟域;时钟域的时钟采样模块,用于根据接收到的全局同步信号进行采样,并将采样结果作为复位该时钟域逻辑的依据;确定性同步模块,加入到所述多时钟数字系统的每一对存在交互的时钟域中,由发送端和接收端两部分组成,中间以AFIFO电路相连,用于实现确定的传输。其能够更好地支持芯片系统的验证工作。

权利要求 :

1.一种多时钟数字系统,包括多个时钟域,其特征在于,还包括全局信号发送模块,确定性同步模块;所述时钟域包括时钟采样模块,其中:所述全局信号发送模块,用于将全局同步信号送到多时钟数字系统中的所有的多个时钟域;

所述时钟域的时钟采样模块,用于根据接收到的全局同步信号进行采样,并将采样结果作为复位该时钟域逻辑的依据;

所述确定性同步模块,加入到所述多时钟数字系统的每一对存在交互的时钟域中,由发送端和接收端两部分组成,中间以AFIFO电路相连,用于实现确定的传输;

所述发送端,用于在发送时钟域计算确定接收时间,并将计算结果送入所述发送端的接收时间计数器,并在发送数据时将所述接收时间计数器的值作为接收时间与数据内容一起送入AFIFO电路;

所述接收端,用于判断AFIFO电路是否为空以及其输出的接收时间与时钟计数器的值是否相等,决定是否从AFIFO电路中读出数据。

2.根据权利要求1所述的多时钟数字系统,其特征在于,所述确定性同步模块的发送端,包括第一配置寄存器C、第二配置寄存器D、第三配置寄存器N、第四配置寄存器K、模N计数器和接收时间计数器;

所述发送时钟域计算确定接收时间,包括下列步骤:将模N计数器Mcnt的值模N加K,并记录是否发生溢出;如果发生溢出,则ready为1,接收时间计数器Ycnt累加D+1;如果没有溢出且D大于0,则ready为1,接收时间计数器Ycnt累加D;其它情况下ready为0,接收时间计数器Ycnt不变;

其中,C,D,K,N分别对应配置寄存器C、配置寄存器D、配置寄存器K和配置寄存器N的值;

配置寄存器C的值代表全局同步信号GRst后第一个发送到接收端的数据的接收时间,其与具体设计相关,可由仿真实验得出;其中,设TS为发送端时钟周期,TR为接收端时钟周期,且 为分数比,则选择配置寄存器D、K和N的值,使得 成立。

3.根据权利要求2所述的多时钟数字系统,其特征在于,所述确定性同步模块的接收端,包括时钟计数器和比较单元。

4.根据权利要求1至3任一项所述的多时钟数字系统,其特征在于,所述AFIFO电路的宽度为跨时钟域传输的信号数与接收时间计数器宽度的和。

5.根据权利要求1至3任一项所述的多时钟数字系统,其特征在于,所述确定性同步模块的发送端还包括预备处理模块,用于生成一个预备处理信号,指示当前拍是否允许信号传送。

6.一种多时钟数字系统的时钟确定装置,其特征在于,包括确定性同步模块,加入到所述多时钟数字系统的每一对存在交互的时钟域中,由发送端和接收端两部分组成,中间以AFIFO电路相连,用于实现确定的传输;

所述发送端,用于在发送时钟域计算确定接收时间,并将计算结果送入所述发送端的接收时间计数器,并在发送数据时将所述接收时间计数器的值作为接收时间与数据内容一起送入AFIFO电路;

所述接收端,用于判断AFIFO电路是否为空以及其输出的接收时间与时钟计数器的值是否相等,决定是否从AFIFO电路中读出数据。

7.根据权利要求6所述的时钟确定装置,其特征在于,所述确定性同步模块的发送端,包括第一配置寄存器C、第二配置寄存器D、第三配置寄存器N、第四配置寄存器K、模N计数器和接收时间计数器;

所述发送时钟域计算确定接收时间,包括下列步骤:将模N计数器Mcnt的值模N加K,并记录是否发生溢出;如果发生溢出,则ready为1,接收时间计数器Ycnt累加D+1;如果没有溢出且D大于0,则ready为1,接收时间计数器Ycnt累加D;其它情况下ready为0,接收时间计数器Ycnt不变;

其中,C,D,K,N分别对应配置寄存器C、配置寄存器D、配置寄存器K和配置寄存器N的值;

配置寄存器C的值代表全局同步信号GRst后第一个发送到接收端的数据的接收时间,其与具体设计相关,可由仿真实验得出;

其中,设TS为发送端时钟周期,TR为接收端时钟周期,且 为分数比,则选择配置寄存器D、K和N的值,使得 成立。

8.根据权利要求7所述的时钟确定装置,其特征在于,所述确定性同步模块的接收端,包括时钟计数器和比较单元。

9.根据权利要求6至8任一项所述的时钟确定装置,其特征在于,所述确定性同步模块的发送端还包括预备处理模块,用于生成一个预备处理信号,指示当前拍是否允许信号传送。

10.一种跨时钟域传输确定化方法,其特征在于,包括下列步骤:步骤A,通过全局同步将发送和接收时钟域的逻辑进行初始化;

步骤B,;在发送时钟域计算确定接收时间,并将计算结果送入发送端的接收时间计数器;

步骤C,在发送数据时将所述接收时间计数器的值作为接收时间与数据内容一起送入AFIFO电路;

步骤D,接收端在AFIFO的输出有效时,从中分离出接收时间,与时钟计数比较,在相等时执行从AFIFO读出的操作。

11.根据权利要求10所述的跨时钟域传输确定化方法,其特征在于,所述步骤B中,发送时钟域计算确定接收时间,包括下列步骤:步骤B11,将模N计数器Mcnt的值模N加K,并记录是否发生溢出;

步骤B12,如果发生溢出,则ready为1,接收时间计数器Ycnt累加D+1;

步骤B13,如果没有溢出且D大于0,则ready为1,接收时间计数器Ycnt累加D;

步骤B14,其它情况下ready为0,接收时间计数器Ycnt不变;

其中,C,D,K,N分别对应配置寄存器C、配置寄存器D、配置寄存器K和配置寄存器N的值;

配置寄存器C的值代表全局同步信号GRst后第一个发送到接收端的数据的接收时间,其与具体设计相关,可由仿真实验得出;

其中,设TS为发送端时钟周期,TR为接收端时钟周期,且 为分数比,则选择配置寄存器D、K和N的值,使得 成立。

12.根据权利要求10所述跨时钟域传输确定化方法,其特征在于,所述步骤B中,在接收端时钟域计算时钟计数,包括下列步骤:步骤B21,在全局同步信号GRst有效时,初始化接收时间计数器Rcnt的值为零;

步骤B22,接收时间计数器Rcnt的值在每个接收端的时钟周期都加1。

说明书 :

一种多时钟数字系统及其时钟确定装置和方法

技术领域

[0001] 本发明涉及计算机芯片设计技术领域,特别是涉及一种多时钟数字系统及其时钟确定装置和方法。

背景技术

[0002] 随着芯片规模的增大,硅后验证工作在芯片开发过程中所占的比例越来越大。而硅后验证中一个主要的困难来自于调试,其中最主要的难点在于不确定性,因为不确定性使系统行为难以重现。
[0003] 不确定性的根源在于难以控制的随机因素,例如时钟抖动(Clock Jitter)和频率漂移(Frequency Drift)。如图1所示,对于一个单时钟系统而言,所有行为都被同一个时钟信号同步,时钟带来的随机因素可静态分析,很容易实现确定性。相比之下,多时钟系统难以确定化,因为跨时钟域的信号传输受到两个不同时钟的影响,而通常这两个时钟之间的相对关系无法确定。
[0004] 现有技术中,如图2所示,多时钟的数字系统由多个相互交互的单时钟域模块组成,一个模块的输入可能来自于系统外部或者其它模块的输出。与单时钟系统一样,单时钟域模块很容易实现确定性。给定一个确定的输入,单时钟域模块将给出确定的输出。因此,多时钟域组成的多时钟的数字系统实现确定性的关键在于使每个时钟域的输入都确定化。 [0005] 一般而言,为保证信号传输的完整性,在时钟域交互处必须增加一个异步缓冲器(Asynchronous First In First Out,AFIFO),作为同步模块。由于两个时钟相对关系的不确定性,同一个发送时间将导致多个可能的接收时间。这正是系统不确定性的根源。 [0006] 为了让接收时间确定化,现有技术中,在发送时加上发送时间信息,接收时根据这个时间信息确定是否在不确定的区域内,从而延迟到确定的时刻再接收,使得不确定的到达时间都对应于确定的接收时间。
[0007] 现有公开的一种技术中,发送方将要发送的内容和发送时间打包,接收方收到后将这个时间经过查表、运算等操作,得到确定的接收时间,然后在接收缓冲中延迟到接收方时间,到达确定的接收时间后执行接收操作。
[0008] 但是现有技术实现方法中,其中的硬件查找表项数一旦确定,能支持的时钟频率关系就不能更改,同时,为支持较为特殊的频率关系,现有技术中的实现方法需要非常大的硬件查找表,非常难以满足硬件实现的要求,存在硬件开销大,不灵活,并且不能保证跨时钟传输信号的完整性。
[0009] 发明内容
[0010] 本发明的目的在于提供一种多时钟数字系统及其时钟确定装置和方法,其能够更好地支持芯片系统的验证工作。
[0011] 为了实现所述目的,本发明提供一种多时钟数字系统,包括多个时钟域,还包括全局信号发送模块,确定性同步模块;所述时钟域包括时钟采样模块,其中: [0012] 所述全局信号发送模块,用于将全局同步信号送到多时钟数字系统中的所有的多个时钟域;
[0013] 所述时钟域的时钟采样模块,用于根据接收到的全局同步信号进行采样,并将采样结果作为复位该时钟域逻辑的依据;
[0014] 所述确定性同步模块,加入到所述多时钟数字系统的每一对存在交互的时钟域中,由发送端和接收端两部分组成,中间以AFIFO电路相连,用于实现确定的传输; [0015] 所述发送端,用于在发送时钟域计算确定接收时间,并将计算结果送入接收时间计数器,并在发送数据时将接收时间计数器的值作为接收时间与数据内容一起送入AFIFO电路。
[0016] 较优地,所述的多时钟数字系统,所述确定性同步模块的发送端,包括第一配置寄存器C、第二配置寄存器D、第三配置寄存器N、第四配置寄存器K、模N计数器Mcnt和接收时间计数器Ycnt;
[0017] 所述发送时钟域计算确定接收时间,包括下列步骤:将模N计数器Mcnt的值模N加K,并记录是否发生溢出;如果发生溢出,则ready为1,接收时间计数器Ycnt累加D+1;如果没有溢出且D大于0,则ready为1,接收时间计数器Ycnt累加D;其它情况下ready为
0,接收时间计数器Ycnt不变;
[0018] 其中,C,D,K,N分别对应配置寄存器C、配置寄存器D、配置寄存器K和配置寄存器N的值;
[0019] 配置寄存器C的值代表全局同步信号GRst后第一个发送到接收端的数据的接收时间,其与具体设计相关,可由仿真实验得出;
[0020] 所述接收端,用于在AFIFO的输出有效时,从中分离出接收时间,与时钟计数比较,在相等时执行从AFIFO读出的操作;
[0021] 其中,设TS为发送端时钟周期,TR为发送端时钟周期,且 为分数比,则选择配置寄存器D、K和N的值,使得 成立。
[0022] 较优地,所述的多时钟数字系统,所述确定性同步模块的接收端,包括时钟计数器和比较单元;
[0023] 所述接收端,用于判断AFIFO电路是否为空以及其输出的接收时间与时钟计数器的值是否相等,决定是否从AFIFO电路中读出数据。
[0024] 为实现本发明目的还提供一种多时钟数字系统的时钟确定装置,包括确定性同步模块,加入到所述多时钟数字系统的每一对存在交互的时钟域中,由发送端和接收端两部分组成,中间以AFIFO电路相连,用于实现确定的传输;
[0025] 所述发送端,用于在发送时钟域计算确定接收时间,并将计算结果送入接收时间计数器,并在发送数据时将接收时间计数器的值作为接收时间与数据内容一起送入AFIFO电路。
[0026] 为实现本发明目的还提供一种跨时钟域传输确定化方法,包括以下步骤: [0027] 步骤1:通过全局同步将发送和接收时钟域的逻辑进行初始化; [0028] 步骤2:在发送时钟域计算确定接收时间,并将计算结果送入接收时间计数器; [0029] 步骤3:在发送数据时将接收时间计数器的值作为接收时间与数据内容一起送入AFIFO电路;
[0030] 步骤4:接收端在AFIFO的输出有效时,从中分离出接收时间,与时钟计数比较,在相等时执行从AFIFO读出的操作。
[0031] 本发明的有益效果:本发明的多时钟数字系统及其时钟确定装置,对原有的AFIFO同步方法改动少,支持的频率比灵活,实现代价低,能方便地将一个多时钟数字系统确定化,硬件开销小,应用灵活而且能够保证跨时钟传输信号的完整性,从而更好地支持芯片系统的验证工作。

附图说明

[0032] 图1是现有技术中单时钟系统结构示意图;
[0033] 图2是现有技术中多时钟的数字系统结构示意图;
[0034] 图3是本发明实施例的多时钟数字系统结构示意图;
[0035] 图4为本发明实施例跨时钟域传输确定化方法流程图;
[0036] 图5是本发明实施例的多时钟数字系统中的时钟确定装置结构示意图; [0037] 图6是本发明实施例的多时钟数字系统中数据传送过程中的时钟确定示意图。 具体实施方式
[0038] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的多时钟数字系统及其时钟确定装置进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明而不是对本发明的限 制。
[0039] 本发明的多时钟数字系统,对传统的多时钟数字系统进行改进,如图3所示,除包括传统多时钟数字系统的多个时钟域1外,还包括全局信号发送模块3,确定性同步模块(DS)2,其中:
[0040] 所述全局信号发送模块3,用于将全局同步信号GRst送到多时钟数字系统中的所有的多个时钟域1。
[0041] 其中所述全局同步信号GRst是使多时钟数字系统中所有的模块从一个已知初态开始运行的信号。
[0042] 作为一种可实施方式,可以在多时钟数字系统中增加一个全局同步线,将全局同步信号GRst送到各个时钟域1。
[0043] 所述时钟域1中,包括时钟采样模块4,用于根据接收到的全局同步信号进行采样,并将采样结果作为复位该时钟域逻辑的依据。
[0044] 其当采样到的全局同步信号GRst有效时,每个时钟域的逻辑被初始化成一个确定的初态;否则不进行初始化。
[0045] 所述确定性同步模块(DS)2,加入到多时钟数字系统的每一对存在交互的时钟域中,由发送端5和接收端6两部分组成,中间以AFIFO(AsynchronousFirst In First Out,异步FIFO)电路相连,用于实现确定的传输。
[0046] 确定性同步模块(DS)2的所述发送端5,其包括配置寄存器C、配置寄存器D、配置寄存器K、配置寄存器N、模N计数器Mcnt和接收时间计数器Ycnt用于实现接收时间的计算,并将计算结果送入接收时间计数器Ycnt,并在发送数据时将接收时间计数器Ycnt的值作为接收时间与数据内容一起送入AFIFO电路。
[0047] 所述发送端5在发送数据时,将发送端5的接收时间计数器Ycnt的值作为接收时间与数据内容一起送入AFIFO电路;
[0048] 确定性同步模块(DS)2的所述接收端6,包括时钟计数器Rcnt和比较单元E;用于判断AFIFO电路是否为空以及其输出的接收时间与时钟计数器Rcnt的值是否相等,决定是否从AFIFO电路中读出数据。
[0049] 接收端6在AFIFO电路不为空时,判断到AFIFO电路输出的接收时间与接收端的时钟计数器Rcnt的值相等后,决定从AFIFO电路中读出数据。
[0050] 所述确定性同步模块(DS)2,其接收端6在AFIFO电路为空时,或者判断到AFIFO电路输出的接收时间与接收端的时钟计数器Rcnt不相等时,则不从AFIFO电路中读出数据。
[0051] 较佳地,AFIFO电路的宽度为跨时钟域传输的信号数与接收时间计数器Ycnt宽度的和。
[0052] 更佳地,为使发送端频率高于接收端时AFIFO电路不会溢出,所述确定性同步模块(DS)2的发送端5还包括预备处理模块7,用于生成一个预备处理信号(ready),指示当前拍是否允许信号传送。
[0053] 只有当预备处理信号ready有效时发送逻辑才允许给出有效(valid);否则无效(unvalid);并且,如果下一拍的接收时间计数器Ycnt的值不变,则预备处理信号(ready)为无效(unvalid)。
[0054] 作为一种可实施方式,本发明实施例以图3中所示的一个多时钟数字系统为例,说明本发明实施例的时钟确定装置如何确定接收时间,即一种跨时钟域传输确定化方法。 [0055] 如图4所示,确定性同步模块(DS)2由发送端5和接收端6两部分组成,中间以AFIFO相连。
[0056] 当要发送数据时,发送端5将接收时间计数器Ycnt的值作为接收时间与数据内容一起送入AFIFO。
[0057] 如图5所示,本发明实施例的一种跨时钟域传输确定化方法,包括如下步骤: [0058] 步骤S100,通过全局同步将发送和接收时钟域的逻辑进行初始化; [0059] 步骤S200,在发送端时钟域计算确定接收时间,在接收端时钟域计算时钟计数; [0060] 所述步骤S200包括如下步骤:
[0061] 步骤S210,发送端的时钟域计算确定接收时间;
[0062] 本发明实现将跨时钟域传输确定化的基本方法是在发送数据时计算一个接收时间,接收端将接收时间与自己的时钟计数相比,相等后执行接收操作。之所以这样做可以把跨时钟域所带来的不确定性消除,是因为如果不这样,发送端在自己的某个时间(设其也有时钟计数)发送的数据,接收端有可能在多 个不同的时间看到。通过在发送时显式地指定接收端所“看到”的时间,接收时也按照所要求的时间进行接收操作,接收端就可以避免不确定的到达时间影响逻辑上的时序。例如,发送时间S1发送的数据到达接收端的时间可能有R1、R2、R3,为了使传输确定,发送时要求在R3时刻才能接收,于是不论实际的到达时间是哪一个,接收端都可以在一个确定的时刻(R3)接收。
[0063] 为了算出确定的接收时间,发送端可实现一个计数器(确定接收时间计数器),使得这个计数器的速度与接收端时钟一样快。这是通过在计数时乘以频率比 (即每次加的值不是1,而是 )来实现的。只要C的值(即确定接收时间计数器的初值)选择得当,发送端的确定接收时间计数器Ycnt就可以跨过不确定的区间。当Ycnt的值作为接收时间与数据内容一起从AFIFO出来后,可保证接收时间总是大于或等于Rcnt。如在上例中,不论数据到达时间是R1、R2还是R3,接收端都将看到接收时间是R3。
[0064] 由于硬件中难以直接表示分数 需要将它简化成整数部分D和小数部分N、K,使得 成立,且K<N。这样便可以通过每次加上分数 的整数部分D,小数部分多次累加大于等于1后累加,实现硬件上的累加分数 即,设TS为发送端时钟周期,TR为接收端时钟周期,且 为分数比,则选择配置寄存器D、K和N的值,使得 成立。
[0065] 因此,作为一种可实施方式,所述步骤S210包括下列步骤:
[0066] 步骤S211,将模N计数器Mcnt的值模N加K,并记录是否发生溢出; [0067] 步骤S212,如果发生溢出,则ready为1,接收时间计数器Ycnt累加D+1; [0068] 步骤S213,如果没有溢出且D大于0,则ready为1,接收时间计数器Ycnt累加D; [0069] 步骤S214,其它情况下ready为0,接收时间计数器Ycnt不变。 [0070] 其中,C,D,K,N分别对应配置寄存器C、配置寄存器D、配置寄存器K和配置寄存器N的值。
[0071] 配置寄存器C的值代表全局同步信号GRst后第一个发送到接收端的数据的接收时间,其与具体设计相关,可由仿真实验得出。
[0072] 步骤S22,接收端计算时钟计数;
[0073] 接收端6的时钟计数器Rcnt在所采样的GRst有效时初始化为零,之后每拍都加1。
[0074] 接收端6的时钟计数器Rcnt是一个计数器,复位为零,以后在每个接收端的时钟周期都加1。逻辑上这个计数器给出了接收端的逻辑时间,即接收端逻辑开始工作(复位结束)以来所经过的时钟周期数。
[0075] 所述步骤S22包括下列步骤:
[0076] 步骤S221,在全局同步信号GRst有效时,初始化接收时间计数器Rcnt的值为零; [0077] 步骤S222,接收时间计数器Rcnt的值在每个接收端的时钟周期都加1。 [0078] 步骤S300,发送一数据时,将数据其值与当时的确定接收时间一起送入AFIFO; [0079] 步骤S400,接收端在AFIFO的输出有效时,从中分离出接收时间,与时钟计数比较,在相等时执行从AFIFO读出的操作。
[0080] 接收端6根据AFIFO是否为空以及其输出的接收时间与时钟计数器Rcnt是否相等决定是否从AFIFO中读出数据。
[0081] 为简化描述,这里以发送接收时钟同频的情况为例,说明本发明实施例的多时钟数字系统的工作过程。图6描绘了发送端到接收端的一个数据的传送。发送端的Ycnt和接收端的Rcnt都各自根据所在时钟域的时钟进行计数。需要注意的是,受到时钟抖动的影响,发送和接收时钟域的时钟没有固定的关系,只有个大概的范围,因此图5是接收端画了三份与Ycnt相对位置不同的Rcnt计数以作示意。当Ycnt为4时发送端通过AFIFO发送数据,到达接收端时Rcnt 可能为2、3或4。由于在数据中包含的接收时间是4,接收端6必须等到Rcnt为4了才可以接收。这样数据传送就不再受两时钟域时钟抖动的影响,实现了确定的接收。
[0082] 本发明实施例的本发明的多时钟数字系统及其时钟确定装置,对原有系统改动少,支持的频率比灵活,实现代价低,能方便地将一个多时钟数字系统确定化。 [0083] 最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。