一种跨时钟域事件传递的电路制造技术

技术编号:17247329 阅读:31 留言:0更新日期:2018-02-11 05:13
一种跨时钟域事件传递的电路,用于数字电路领域中不同时钟域间的事件传递。通过对事件的计数来处理突发密集事件,通过分频使再次生成的事件均可无误的传递到另外一个时钟域,通过目标时钟域中的采样电路使事件再现;当有数据伴随事件一起传输时,能同步恢复出事件和相应的数据。该方案使得跨时钟域传递完全单向化,不需握手或双向传递;通过适当设置,该方案可以适应两个时钟域的时钟的任意频率关系和相位关系,适用范围广。

【技术实现步骤摘要】
一种跨时钟域事件传递的电路
本电路涉及数字电路领域,尤其是在FPGA和ASIC中跨时钟域传递事件、信号、数据。
技术介绍
在数字系统中,包括FPGA和ASIC,通常有多个时钟,需要在不同时钟域之间传递事件和数据。为了可靠的传递,要求消除亚稳态、没有丢失事件;如果传递事件的同时还同步传递相应的数据,则还要求传递后事件和数据依然能保持同步,以便方便而准确的被后续的电路接收。目前针对不同的情况,业内有几类处理方法:当从频率为f_clkA的时钟域传递到频率为f_clkB的时钟域时,(1)如果f_clkA远小于f_clkB,则可以直接用clkB对来自clkA时钟域的信号进行采样。(2)如果f_clkA大于f_clkB或者二者相差不多,则要将来自clkA时钟域的信号展宽,再由clkB采样。以上这些办法主要针对消除亚稳态;而要做到不丢失事件,以及保证事件和数据的同步,通常是用握手的方法,即clkA传送事件和数据之前先确认clkB时钟域是可以接收的;clkB时钟域在接收到clkA时钟域的信号后再发给clkA时钟域一个确认信号。这种方式无法处理突发性密集事件,另外两个时钟域间的握手也使事件传递效率降低。
技术实现思路
本方案主要针对上述要求中的不丢失事件,以及保证事件和数据的同步。主要改进点即有益效果是:(1)对于突发性密集事件(总体稀疏,短时间密集),不会丢失事件,全部传递到另一个时钟域;(2)不论是单独传递事件,还是同时传递事件和对应数据,都是单向化,不需要握手或确认信号,有助于减少延迟、增加吞吐量;(3)可以适应两个时钟域的时钟的任意频率关系和相位关系。本方案主要思路是:针对上述(1)(2)(3)点,从A域传递到B域时:(1)A域中对事件计数,特别是当突发密集事件时,可以记录已经到来但尚未传递出去的事件的总次数,之后再逐一传递出去;如果传递事件的同时也传递数据,则在A域也缓存数据,并保证每个事件和该事件相应的数据同步传出。(2)事件的表示形式是:在A域为脉冲(比如,每持续一个时钟周期的高电平表示一次事件),在AB交界是跳变沿(上升沿或下降沿表示事件),在B域又变回脉冲,这样保证每个事件有且仅有一次传递;在电路时序上保证每个事件到达B域时,相应的数据(如果有)也会有效传递。(3)根据两个时钟clkA和clkB的频率的相对大小,在A域中生成事件时设置合适的分频计数值,保证A中生成的相连两个表示事件的跳变沿间隔足够长,可以被clkB有效识别。本方案内容如下:(如图1)一种跨时钟域事件传递的电路,包括两个时钟域A和B,其中的时钟分别为clkA和clkB,其特征在于,时钟域A中包括事件计数最大值N、分频系数K、事件溢出指示ERR、事件输入p、数据输入d五个端口,以及事件计数、事件再生、数据缓存三个单元,时钟域B中包括无数据事件输出pout_0d、有数据事件输出pout_Wd、数据输出dout三个端口,以及事件采样、数据采样两个单元,其中:所述事件计数最大值N为输入端口,其值为正整数,其设定了对A中现存事件进行计数所允许的最大值;所述分频系数K为输入端口,其值为正整数,其设定了事件再生单元所生成的相邻两个事件的最小时间间隔为clkA周期的K倍;所述事件溢出指示ERR为输出端口,指示当前A中现存事件总数是否超过N;所述事件输入p为输入端口,其每次持续时间为一个clkA周期的脉冲都代表一次事件输入;所述数据输入d为输入端口,其位宽为W,在仅传递事件不传递数据的情况下,该端口的数据无意义,在同时传递事件和数据的情况下,该端口的数据与p上相应事件的脉冲出现在同一个clkA周期中;所述无数据事件输出pout_0d为输出端口,其每次持续时间为一个clkB周期的脉冲都代表一次事件输出;所述有数据事件输出pout_Wd为输出端口,其每次持续时间为一个clkB周期的脉冲都代表一次事件输出;所述数据输出dout为输出端口,其位宽为正整数W,在仅传递事件不传递数据的情况下,该端口的数据无意义,在同时传递事件和数据的情况下,该端口的数据与pout_Wd上相应事件的脉冲出现在同一个clkB周期中;所述事件计数单元连接端口N、ERR、p,还连接事件再生单元的分频计数输出gcnt,该单元对A中现存事件即已经到达A中但是尚未传递到B中的事件进行计数,最大为N,当超出N时置位ERR;所述事件再生单元连接端口K、p,还连接事件计数单元的计数输出pcnt,该单元将每个要从A传递到B的事件转换为该单元的输出Qp上的一个上升或下降的跳变沿,相邻两个跳变沿的最小时间间隔为clkA周期的K倍;所述数据缓存单元连接端口d、p,还连接pcnt、gcnt,输出为Q0,该单元内接收并存入d,当事件再生单元生成Qp上代表一个事件的跳变沿时,与该事件相应的数据也出现在Q0上,该数据持续的最短时间为clkA周期的K倍;所述事件采样单元连接Qp,该单元将Qp上每个代表事件的跳变沿转换为一个宽度为一个clkB周期的脉冲,该脉冲输出到端口pout_0d和pout_Wd上;所述数据采样单元连接Q0,该单元将Q0转换为与clkB同步的数据,该数据输出到端口dout上。作为多种实施方式之一,所述一种跨时钟域事件传递的电路中:所述事件计数单元包含一个事件计数器pcnt,其计数规则为,系统复位后归零,之后端口p上每到来一个事件脉冲则计数增一,最大计数到N,每当gcnt为K-1时计数减一,最小计数到零,当计数值为N的时候如果p上到来一个事件,则ERR置位。(计数规则请参考图2)所述事件再生单元包含一个分频计数器gcnt、一个跳变沿控制电路,其中:所述分频计数器用于计数该单元生成的每两个相邻跳变沿之间的时钟周期数,其计数规则为,系统复位后置K-1,在计数值为K-1时如果满足条件(pcnt<2&&p==1)||(pcnt>=2)则置零,在计数值小于K-1时在时钟clkA的每个周期中计数增一,计数值最大为K-1;所述跳变沿控制电路包括组合电路和输出寄存器Qp,在该组合电路控制下,每当gcnt==K-1并满足条件(pcnt<2&&p==1)||(pcnt>=2)时,寄存器Qp的值会翻转。(计数规则可参考图3,电路可参考图4)所述数据缓存单元包括pcnt译码器、gcnt译码器、N级流水线,其中:所述pcnt译码器对pcnt译码,生成N+1个选择信号sel0、sel1、……、selN,其结果是,当pcnt为某一个值i的时候,对应的选择信号seli为1,其它N个选择信号为0;所述gcnt译码器对gcnt译码,生成一个选择信号,该信号在gcnt等于K-1时为1,在gcnt不等于K-1时为0;所述N级流水线,包含第N-1级、第N-2级、……、第0级,第N-1级的输出QN-1连接到第N-2级、第N-2级的输出QN-2连接到第N-3级、……、第1级的输出Q1连接到第0级、第0级的输出连接到该单元的输出Q0;所述N级流水线的每一级有相同的结构,其中第i级连接输入端口p、d,还连接第i个选择信号seli、第i+1个选择信号seli+1、gcnt译码器输出,所述第i级包括5个二选一选择器61~65和一个W位宽寄存器Qi,其中seli连接至选择器61的控制端,p连接本文档来自技高网...
一种跨时钟域事件传递的电路

【技术保护点】
一种跨时钟域事件传递的电路,包括两个时钟域A和B,其中的时钟分别为clkA和clkB,其特征在于,时钟域A中包括事件计数最大值N、分频系数K、事件溢出指示ERR、事件输入p、数据输入d五个端口,以及事件计数、事件再生、数据缓存三个单元,时钟域B中包括无数据事件输出pout_0d、有数据事件输出pout_Wd、数据输出dout三个端口,以及事件采样、数据采样两个单元,其中:(1)所述事件计数最大值N为输入端口,其值为正整数,其设定了对A中现存事件进行计数所允许的最大值;(2)所述分频系数K为输入端口,其值为正整数,其设定了事件再生单元所生成的相邻两个事件的最小时间间隔为clkA周期的K倍;(3)所述事件溢出指示ERR为输出端口,指示当前A中现存事件总数是否超过N;(4)所述事件输入p为输入端口,其每次持续时间为一个clkA周期的脉冲都代表一次事件输入;(5)所述数据输入d为输入端口,其位宽为W,在仅传递事件不传递数据的情况下,该端口的数据无意义,在同时传递事件和数据的情况下,该端口的数据与p上相应事件的脉冲出现在同一个clkA周期中;(6)所述无数据事件输出pout_0d为输出端口,其每次持续时间为一个clkB周期的脉冲都代表一次事件输出;(7)所述有数据事件输出pout_Wd为输出端口,其每次持续时间为一个clkB周期的脉冲都代表一次事件输出;(8)所述数据输出dout为输出端口,其位宽为正整数W,在仅传递事件不传递数据的情况下,该端口的数据无意义,在同时传递事件和数据的情况下,该端口的数据与pout_Wd上相应事件的脉冲出现在同一个clkB周期中;(9)所述事件计数单元连接端口N、ERR、p,还连接事件再生单元的分频计数输出gcnt,该单元对A中现存事件即已经到达A中但是尚未传递到B中的事件进行计数,最大为N,当超出N时置位ERR;(10)所述事件再生单元连接端口K、p,还连接事件计数单元的计数输出pcnt,该单元将每个要从A传递到B的事件转换为该单元的输出Qp上的一个上升或下降的跳变沿,相邻两个跳变沿的最小时间间隔为clkA周期的K倍;(11)所述数据缓存单元连接端口d、p,还连接pcnt、gcnt,输出为Q0,该单元内接收并存入d,当事件再生单元生成Qp上代表一个事件的跳变沿时,与该事件相应的数据也出现在Q0上,该数据持续的最短时间为clkA周期的K倍;(12)所述事件采样单元连接Qp,该单元将Qp上每个代表事件的跳变沿转换为一个宽度为一个clkB周期的脉冲,该脉冲输出到端口pout_0d和pout_Wd上;(13)所述数据采样单元连接Q0,该单元将Q0转换为与clkB同步的数据,该数据输出到端口dout上。...

【技术特征摘要】
1.一种跨时钟域事件传递的电路,包括两个时钟域A和B,其中的时钟分别为clkA和clkB,其特征在于,时钟域A中包括事件计数最大值N、分频系数K、事件溢出指示ERR、事件输入p、数据输入d五个端口,以及事件计数、事件再生、数据缓存三个单元,时钟域B中包括无数据事件输出pout_0d、有数据事件输出pout_Wd、数据输出dout三个端口,以及事件采样、数据采样两个单元,其中:(1)所述事件计数最大值N为输入端口,其值为正整数,其设定了对A中现存事件进行计数所允许的最大值;(2)所述分频系数K为输入端口,其值为正整数,其设定了事件再生单元所生成的相邻两个事件的最小时间间隔为clkA周期的K倍;(3)所述事件溢出指示ERR为输出端口,指示当前A中现存事件总数是否超过N;(4)所述事件输入p为输入端口,其每次持续时间为一个clkA周期的脉冲都代表一次事件输入;(5)所述数据输入d为输入端口,其位宽为W,在仅传递事件不传递数据的情况下,该端口的数据无意义,在同时传递事件和数据的情况下,该端口的数据与p上相应事件的脉冲出现在同一个clkA周期中;(6)所述无数据事件输出pout_0d为输出端口,其每次持续时间为一个clkB周期的脉冲都代表一次事件输出;(7)所述有数据事件输出pout_Wd为输出端口,其每次持续时间为一个clkB周期的脉冲都代表一次事件输出;(8)所述数据输出dout为输出端口,其位宽为正整数W,在仅传递事件不传递数据的情况下,该端口的数据无意义,在同时传递事件和数据的情况下,该端口的数据与pout_Wd上相应事件的脉冲出现在同一个clkB周期中;(9)所述事件计数单元连接端口N、ERR、p,还连接事件再生单元的分频计数输出gcnt,该单元对A中现存事件即已经到达A中但是尚未传递到B中的事件进行计数,最大为N,当超出N时置位ERR;(10)所述事件再生单元连接端口K、p,还连接事件计数单元的计数输出pcnt,该单元将每个要从A传递到B的事件转换为该单元的输出Qp上的一个上升或下降的跳变沿,相邻两个跳变沿的最小时间间隔为clkA周期的K倍;(11)所述数据缓存单元连接端口d、p,还连接pcnt、gcnt,输出为Q0,该单元内接收并存入d,当事件再生单元生成Qp上代表一个事件的跳变沿时,与该事件相应的数据也出现在Q0上,该数据持续的最短时间为clkA周期的K倍;(12)所述事件采样单元连接Qp,该单元将Qp上每个代表事件的跳变沿转换为一个宽度为一个clkB周期的脉冲,该脉冲输出到端口pout_0d和pout_Wd上;(13)所述数据采样单元连接Q0,该单元将Q0转换为与clkB同步的数据,该数据输出到端口dout上。2.根据权利要求1所述的一种跨时钟域事件传递的电路,其特征在于,所述事件计数单元包含一个事件计数器pcnt,其计数规则为,系统复位后归零,之后端口p上每到来一个事件脉冲则计数增一,最大计数到N,每当gcnt为K-1时计数减一,最小计数到零,当计数值为N的时候如果p上到来一个事件,则ERR置位。3.根据权利要求1所述的一种跨时钟域事件传递的电路,其特征在于,所述事件再生单元包含一个分频计数器gcnt、一个跳变沿控制电路,其中:(1)所述分频计数器用于计数该单元生成的每两个相邻跳变沿之间的时钟周期数,其计数规则为,系统复位后置K-1,在计数值为K-1时如果满足条件(pcnt<2&&p==1)||(pcnt&gt;=2)则置零,在计数值小于K-1时在时钟clkA的每个周期中计数增一,计数值最大为K-1;(2)所述跳变沿控制电路包括组合电路和输出寄存器Qp,在该组合电路控制下,每当gcnt==K-1并满足条件(pcnt<2&&p==1)||(pcnt>=2)时,寄存器Qp的值会翻转。4.根据权利要求1所述的一种跨时钟域事件传递的电路,其特征在于,所述数据缓存单元包括pcnt译码器、gcnt译码器、N级流水线,其中:(1)所述pcnt译码器对pcnt译码,生成N+1个选择信号sel0、sel1、……、selN,其结果是,当pcnt为某一个值i的时候,对应的选择信号seli为1,其它N个选择信号为0;(2)所述gcnt译码器对gcnt译码,生成一个选择信号,该信号在gcnt等于K-1时为1,在gcnt不等于K-1时为0;(3)所述N级流水线,包含第N-1级、第N-2级、……、第0级,第N-1级的输出QN-1连接到第N-2级、第N-2级的输出QN-2连接到第N-3级、……、第1级的输出Q1连接到第0级、第0级的输出连接到该单元的输出Q0;(4)所述N级流水线的每一级有...

【专利技术属性】
技术研发人员:张毓
申请(专利权)人:南京火零信息科技有限公司
类型:发明
国别省市:江苏,32

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

1