CN102929808A - 一种高可靠性的跨时钟域数据传输电路 - Google Patents
一种高可靠性的跨时钟域数据传输电路 Download PDFInfo
- Publication number
- CN102929808A CN102929808A CN2012104336879A CN201210433687A CN102929808A CN 102929808 A CN102929808 A CN 102929808A CN 2012104336879 A CN2012104336879 A CN 2012104336879A CN 201210433687 A CN201210433687 A CN 201210433687A CN 102929808 A CN102929808 A CN 102929808A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- output
- clock
- along
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 25
- 239000000872 buffer Substances 0.000 claims abstract description 24
- 230000006870 function Effects 0.000 claims description 7
- 238000005070 sampling Methods 0.000 claims description 7
- 230000014759 maintenance of location Effects 0.000 description 9
- 239000003550 marker Substances 0.000 description 9
- 238000000034 method Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000009514 concussion Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
一种高可靠性的跨时钟域数据传输电路。该电路包括:一位地址寄存器,地址寄存器中的值按照输入时钟域的时钟频率进行翻转;该电路包括两组N位的输入数据寄存器,根据地址寄存器中的值交替接收输入数据进行缓存,其中N为输出数据位宽;该电路包括两位读写标识寄存器,每一位对应标识一组输入数据寄存器中的数据是否为重新写入过的新数据;该电路包括一种时钟延时缓冲电路,将输出时钟域时钟缓冲出三个频率相同的数据输出操作边沿;该电路还包括一种输出控制电路,接收所述地址寄存器、数据寄存器以及读写标志寄存器中的数据,在所述的三个数据输出操作沿中的第一个操作沿准备输出数据,在第二个操作沿输出数据,在第三个操作沿复位所述读写标志寄存器的对应位,以及一组N位的输出数据寄存器,在所述数据操作边沿的第二个操作沿将输出控制电路准备的数据进行缓存输出。
Description
技术领域
本发明主要涉及到多时钟系统中跨时钟域的数据传输领域,特指一种高可靠性的跨时钟域数据传输电路。
背景技术
在多时钟域系统中,不可避免的要进行跨时钟域的数据传输。由于相异的时钟域间其时钟的操作沿关系不确定,所以数据在由一个时钟域传输到另一个时钟域时,就可能出现建立时间或保持时间不足的情况。当建立时间或保持时间不足时,就会产生亚稳态值,出现错误数据,从而导致整个系统出现错误。
对于一位的信号,在跨时钟域传输时为避免出现亚稳态值,通常采用两级采样电路对该信号进行同步。经过两级采样后,可以有效的减小亚稳态值出现的概率。由于是一位的信号,不存在多位信号间的相关性,所以在建立时间或保持时间不足时不会出现数据错误,仅仅是数据传输的延时发生了变化。对于多位的数据信号,就不能采用两级采样电路的同步方式了,因为多位数据间的数据存在相关性,在建立时间或保持时间不足时,如果其中的一位数据发生了错误,将导致整个数据出现错误,从而使系统出现错误。通常采用的方式为加入异步FIFO进行缓冲,先用写时钟域时钟将数据写入缓冲寄存器中,然后按照先进先出的原则用读时钟域时钟将数据读出,这样就有效避免了不确定的读写时钟沿引入的数据错误。
然而采用异步FIFO缓冲的方式并不适用于所有的多时钟域系统的跨时钟域传输,例如当写时钟域时钟频率比读时钟域时钟频率高,而且这两个时钟域之间的数据传输一直存在,这样无论FIFO的深度为多少都将被写满,从而出现数据丢失。对于某些特定的多时钟域系统,其跨时钟域传输的数据并不需要完全被接收,只需要对传输的数据进行采样即可。例如在全数字锁相环103中,其滤波器100输出数控振荡器控制码102的频率为滤波器的时钟频率(CLK_LPF),而数控振荡器101接收控制码的时钟为其本身的输出时钟,该时钟的频率随着环路的锁定状态而实时变化。对于整个数字锁相环路,只需要数控振荡器按照其震荡的频率对控制码进行采样即可保证环路的稳定,这样如果采用FIFO缓冲的方式将导致频率控制码的传输代价增加,而且不能实现采样的功能。
发明内容
本发明解决的问题在于:针对现有技术存在的问题,本发明提供一种代价小、可靠性高的跨时钟域数据传输电路。
为解决上述技术问题,本发明提出的解决方案为:一种高可靠性的跨时钟域数据传输电路。该电路包括一位地址寄存器,地址寄存器中的值按照输入时钟域时钟的频率进行翻转。该电路包括两组N位的输入数据寄存器,根据地址寄存器中的值交替接收输入数据进行缓存,其中N为输入数据位宽。该电路包括两位读写标志寄存器,每一位对应标识一组输入数据寄存器中的数据是否为重新写入过的新数据。该电路包括一种时钟延时缓冲电路,将输出时钟域时钟缓冲出三个频率相同的数据输出操作边沿。该电路还包括一种输出控制电路,接收所述地址寄存器、数据寄存器以及读写标志寄存器中的数据,在所述的三个数据输出操作沿中的第一个操作沿准备输出数据,在第二个操作沿输出数据,在第三个操作沿复位所述读写标志寄存器的对应位,以及一组N位的输出数据寄存器,在所述数据操作边沿的第二个操作沿将输出控制电路准备的数据进行缓存输出。
从下面的附图和描述中将明白本发明的优点和其他特征。
附图说明
图1是全数字锁相环结构示意图;
图2是根据本发明的一个实施例的跨时钟域数据传输电路结构图;
图3是输入数据缓存波形图;
图4是输出控制电路中的时序图;
具体实施方式
以下将结合附图与具体实施对本发明作进一步说明。
参照图2,一种高可靠性的跨时钟域数据传输电路的具体实施电路采用两组N位D触发器201和202作为输入数据寄存器,两组一位的D触发器203和204作为读写标志位寄存器,一位D触发器作为地址寄存器。读写标识寄存器203为输入数据寄存器201的读写标识寄存器位,读写标识寄存器204为输入数据寄存器202的读写标识寄存器位,读写标识寄存器中的值为高电平时表示对应的输入数据寄存器中的数据为新数据,为低电平时表示对应的输入数据寄存器中的数据已被输出。地址寄存器的输出信号200为D触发器的正向输出端,输出信号219为D触发器的反向输出端,将输出信号219反馈到输入端实现地址寄存器中的值在每一个时钟的下降沿自动翻转,其中的输出信号200为低电平时将输入数据写入输入数据寄存器201中缓存,相反则写入输入数据寄存器202中缓存。因为数据在传输过程中要实现采样的功能,即输入的数据需要按照输出时钟域时钟近似等间隔的采样,这样需要数据缓冲器中缓冲最新的数据,丢弃老的数据,所以接收输入数据进行缓存拥有最高的优先级,无论输入数据缓冲器中的数据是否已经输出都将接收新的数据进行缓存。参考图3中的波形,波形301为输入时钟(CLK_INPUT)的波形,波形302为地址寄存器的输出端200的波形,波形303和304是输出数据寄存器202和201的输出波形,波形305和306是读写标志寄存器204和203的输出波形。输入数据寄存器201和202交替缓存输入数据,其中数据寄存器的跳变沿为输入时钟的上升沿,地址寄存器的跳变沿为输入时钟的下降沿,数据寄存器与地址寄存器的数据翻转之间相差半个输入时钟周期,从而可以满足输出数据寄存器的保持时间要求,其具体原理将结合输出控制电路的功能进一步阐述。
参照图2,输出时钟(CLK_OUTPUT)经过时钟延时缓冲电路后得到三个频率相同相位相差一个固定延时的时钟信号211、209和212,三个信号形成三个操作沿,输出控制电路根据三个信号的时序关系对数据输出进行控制。输出控制电路首先用信号211的操作沿402对地址信号进行采样,然后用采样电路205的采样输出信号220对输入数据寄存器的输出信号215和216进行选择,其选择的数据寄存器在该时刻不会接收输入数据进行缓存,所以输出控制电路准备的输出数据208在输入时钟的下一个上升沿到来之前将保持不变,根据操作沿402与输入时钟的关系不同,输出控制电路准备的输出数据的保持时间在0.5~1.5个输入时钟周期之间,从而满足了输出数据寄存器的保持时间要求,保持时间的最差情况为操作沿402与地址的跳变沿接近或重合,如情况401,这正是本发明的第一个关键点:将地址寄存器与输入数据寄存器采用相反的触发沿触发,从而保证了保持时间的要求。在操作沿402与地址跳变沿重合的情况下,可能导致信号220发生错误,但是地址信息发生错误不会影响数据的正确性,只是影响了采样位置变化,对于随机采样的系统,并不影响系统性能,这也正是本发明的第二个关键点:用采样值的相对变化来保证数据的正确性。
在用采样电路205的采样输出信号220对数据寄存器进行选择的同时,将数据寄存器对应的读写标识寄存器位也进行选通得到信号210,用该信号作为输出数据寄存器的使能端,当输出控制电路选通的输入数据寄存器中的数据为新写入的数据时,则使能输出数据寄存器,否则不使能。输出控制电路用信号209的操作沿403去触发输出数据寄存器输出数据,由于触发沿403与触发沿402中存在固定的延时,触发沿403到来之前输出控制电路已经将数据准备完成,从而满足了输出数据寄存器的建立时间要求。这正是本发明的第三个关键点:采用固定延时来满足输出数据建立时间的要求。
在完成数据输出后,输出控制电路用信号212的操作沿404产生出复位脉冲405,其产生脉冲的方法为将信号延时取反与原信号作与非运算,则在操作沿404处产生出一个负脉冲,脉冲的宽度受延时大小的控制。当信号220为高电平时,输出的数据为输入数据寄存器201中缓存的数据,则对应用复位脉冲将读写标识寄存器203复位,当信号220为低电平时,输出的数据为输入数据寄存器202中缓存的数据,则对应用复位脉冲将读写标识寄存器204复位。通过在操作沿404对读写标识寄存器的复位来标识出对应的输入数据寄存器中的数据已经输出,在标识位被再次置高之前,不会再将该输入数据寄存器中缓存的数据输出,从而保证了在输出时钟域时钟频率高于输入时钟域时钟频率时,不会将数据重复输出而出现错误。
Claims (8)
1. 一种高可靠性的跨时钟域数据传输电路,包括:
一位地址寄存器,地址寄存器中的值按照输入时钟域时钟的频率进行翻转,以便标识出下一个输入时钟域时钟触发沿应该接收数据的数据寄存器;
两组N位的输入数据寄存器,按照输入时钟域时钟频率并根据地址寄存器中的值交替接收输入数据进行缓存,其中N为输入数据的位宽;
两位读写标志寄存器,每一位对应标识一组输入数据寄存器中的数据是否为重新写入过的新数据;
一种时钟延时缓冲电路,将输出时钟域时钟缓冲出三个频率相同的数据输出操作边沿;
一种输出控制电路,接收所述地址寄存器、数据寄存器以及读写标志寄存器中的数据,在所述的三个数据输出操作沿中的第一个操作沿准备输出数据,在第二个操作沿输出数据,在第三个操作沿复位所述读写标志寄存器的对应位;
一组N位的输出数据寄存器,在所述数据操作边沿的第二个操作沿将输出控制电路准备的数据进行缓存输出。
2.如权利要求1所述的跨时钟域数据传输电路,输入数据寄存器接收输入数据的同时将对应的读写标志寄存器位置位。
3.如权利要求1所述的跨时钟域数据传输电路,地址寄存器的时钟触发沿与输入数据寄存器的时钟触发沿相反,与读写标志寄存器的触发沿相同。
4.如权利要求1所述的跨时钟域数据传输电路,第二个操作沿比第一个操作沿晚固定延时,第三个操作沿比第二个操作沿晚固定延时。
5.如权利要求1所述的跨时钟域数据传输电路,在第一个操作沿准备输出数据的操作包括:用第一个操作沿对地址寄存器中的值进行采样;根据采样的值判断在该时刻不会接收输入数据的输入数据寄存器;选择该输入数据寄存器中缓存的数据作为输出数据。
6.如权利要求1所述的跨时钟域数据传输电路,在第二个操作沿输出的数据为新写入数据,如果不是新写入的数据则保持输出不变。
7.如权利要求1所述的跨时钟域数据传输电路,在第三个操作沿复位的读写标志寄存器位为输出控制电路选择输出的输入数据寄存器对应的标志寄存器位。
8.如权利要求7所述的跨时钟域数据传输电路,在第三个操作沿复位对应的读写标志寄存器位完成后立即释放标志寄存器的复位信号。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201210433687.9A CN102929808B (zh) | 2012-11-02 | 2012-11-02 | 一种高可靠性的跨时钟域数据传输电路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201210433687.9A CN102929808B (zh) | 2012-11-02 | 2012-11-02 | 一种高可靠性的跨时钟域数据传输电路 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN102929808A true CN102929808A (zh) | 2013-02-13 |
| CN102929808B CN102929808B (zh) | 2015-09-16 |
Family
ID=47644610
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201210433687.9A Active CN102929808B (zh) | 2012-11-02 | 2012-11-02 | 一种高可靠性的跨时钟域数据传输电路 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN102929808B (zh) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105573932A (zh) * | 2015-12-11 | 2016-05-11 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于寄存器的多位宽数据跨时钟域访问方法 |
| CN110427168A (zh) * | 2019-06-26 | 2019-11-08 | 天津芯海创科技有限公司 | 一种实现任意深度低传输延时的异步fifo的方法及装置 |
| CN112148655A (zh) * | 2019-06-28 | 2020-12-29 | 深圳市中兴微电子技术有限公司 | 多位数据跨时钟域的处理方法及装置 |
| CN113608600A (zh) * | 2020-05-04 | 2021-11-05 | 意法半导体国际有限公司 | 具有多个时钟域和复位域的系统中数据同步的方法和设备 |
| CN115221082A (zh) * | 2022-07-18 | 2022-10-21 | 中国兵器装备集团自动化研究所有限公司 | 一种数据缓存方法、装置及存储介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101533636A (zh) * | 2009-01-09 | 2009-09-16 | 瑞声声学科技(常州)有限公司 | 微弱电流信号放大器 |
| CN101751980A (zh) * | 2008-12-17 | 2010-06-23 | 中国科学院电子学研究所 | 基于存储器知识产权核的嵌入式可编程存储器 |
| CN102254110A (zh) * | 2010-05-20 | 2011-11-23 | 中国人民解放军国防科学技术大学 | 寄存器翻转时刻随机化控制电路 |
-
2012
- 2012-11-02 CN CN201210433687.9A patent/CN102929808B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101751980A (zh) * | 2008-12-17 | 2010-06-23 | 中国科学院电子学研究所 | 基于存储器知识产权核的嵌入式可编程存储器 |
| CN101533636A (zh) * | 2009-01-09 | 2009-09-16 | 瑞声声学科技(常州)有限公司 | 微弱电流信号放大器 |
| CN102254110A (zh) * | 2010-05-20 | 2011-11-23 | 中国人民解放军国防科学技术大学 | 寄存器翻转时刻随机化控制电路 |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105573932A (zh) * | 2015-12-11 | 2016-05-11 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于寄存器的多位宽数据跨时钟域访问方法 |
| CN105573932B (zh) * | 2015-12-11 | 2018-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于寄存器的多位宽数据跨时钟域访问方法 |
| CN110427168A (zh) * | 2019-06-26 | 2019-11-08 | 天津芯海创科技有限公司 | 一种实现任意深度低传输延时的异步fifo的方法及装置 |
| CN112148655A (zh) * | 2019-06-28 | 2020-12-29 | 深圳市中兴微电子技术有限公司 | 多位数据跨时钟域的处理方法及装置 |
| CN112148655B (zh) * | 2019-06-28 | 2023-11-17 | 深圳市中兴微电子技术有限公司 | 多位数据跨时钟域的处理方法及装置 |
| CN113608600A (zh) * | 2020-05-04 | 2021-11-05 | 意法半导体国际有限公司 | 具有多个时钟域和复位域的系统中数据同步的方法和设备 |
| CN113608600B (zh) * | 2020-05-04 | 2025-02-28 | 意法半导体国际有限公司 | 具有多个时钟域和复位域的系统中数据同步的方法和设备 |
| CN115221082A (zh) * | 2022-07-18 | 2022-10-21 | 中国兵器装备集团自动化研究所有限公司 | 一种数据缓存方法、装置及存储介质 |
| CN115221082B (zh) * | 2022-07-18 | 2023-04-18 | 中国兵器装备集团自动化研究所有限公司 | 一种数据缓存方法、装置及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102929808B (zh) | 2015-09-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5905766A (en) | Synchronizer, method and system for transferring data | |
| US6434642B1 (en) | FIFO memory system and method with improved determination of full and empty conditions and amount of data stored | |
| US8260982B2 (en) | Method for reducing latency | |
| US8441888B2 (en) | Write command and write data timing circuit and methods for timing the same | |
| US7310396B1 (en) | Asynchronous FIFO buffer for synchronizing data transfers between clock domains | |
| US7573770B1 (en) | Distributed front-end FIFO for source-synchronized interfaces with non-continuous clocks | |
| US20080005518A1 (en) | Synchronous memory read data capture | |
| CN102929808A (zh) | 一种高可靠性的跨时钟域数据传输电路 | |
| US20020027964A1 (en) | Data recovery apparatus and method for minimizing errors due to clock skew | |
| US8001409B2 (en) | Synchronization device and methods thereof | |
| CN104484011A (zh) | 一种分布控制双时钟异步发送、接收模块及fifo装置 | |
| EP3907886B1 (en) | Apparatus for data synchronization in systems having multiple clock and reset domains | |
| CN109918332A (zh) | Spi从设备及spi设备 | |
| EP0613602B1 (en) | Method and apparatus for decoding manchester encoded data | |
| US20050008110A1 (en) | System and method for data phase realignment | |
| US20030141908A1 (en) | Clock ratio dsta synchronizer | |
| US7231009B2 (en) | Data synchronization across an asynchronous boundary using, for example, multi-phase clocks | |
| US8718215B2 (en) | Method and apparatus for deskewing data transmissions | |
| JP2006324818A (ja) | 受信装置 | |
| CN103592489A (zh) | 数字示波器深存储设计方法 | |
| CN103324597B (zh) | 在高速串行数字接口的通道之间平衡歪斜失真的方案 | |
| CN202904568U (zh) | 一种应用于usb3.0的弹性缓冲结构 | |
| CN107797956B (zh) | 双沿触发环形缓冲器及通信系统 | |
| KR100833604B1 (ko) | 패리티 에러 검출 회로 | |
| US3683277A (en) | Communication system for binary coded data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant |