CN102929808B - 一种高可靠性的跨时钟域数据传输电路 - Google Patents
一种高可靠性的跨时钟域数据传输电路 Download PDFInfo
- Publication number
- CN102929808B CN102929808B CN201210433687.9A CN201210433687A CN102929808B CN 102929808 B CN102929808 B CN 102929808B CN 201210433687 A CN201210433687 A CN 201210433687A CN 102929808 B CN102929808 B CN 102929808B
- Authority
- CN
- China
- Prior art keywords
- clock
- data
- register
- output
- 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.)
- Active
Links
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 (7)
1.一种高可靠性的跨时钟域数据传输电路,包括:
一位地址寄存器,地址寄存器中的值按照输入时钟域时钟的频率进行翻转,地址寄存器的输出连接到输入数据寄存器和读写标志寄存器的使能端,控制对应的输入数据寄存器在输入时钟域时钟触发沿接收数据,同时控制输入数据寄存器对应的标志寄存器在输入时钟域时钟触发沿进行置位,地址寄存器的输出同时送到输出建立保持时序控制电路进行采样与判断;以及
两组N位的输入数据寄存器,根据地址寄存器中的值在输入时钟域时钟的触发沿交替对输入数据进行缓存,输入数据寄存器中缓存的数据送到输出建立保持时序控制电路,其中N为输入数据的位宽;以及
两位读写标志寄存器,根据地址寄存器中的值在输入时钟域时钟的触发沿进行置位,并根据输出建立保持时序控制电路产生的复位信号进行复位,两位读写标志寄存器中的值分别用以标识两组输入数据寄存器中的数据是否为重新写入过的新数据,读写标志寄存器的输出送到输出建立保持时序控制电路;以及
一种时钟延时缓冲电路,将输出时钟域时钟缓冲出三个频率相同的时钟操作沿,其中第二个时钟操作沿比第一个时钟操作沿晚一个输出数据寄存器的建立时间所需的延时,第三个时钟操作沿比第二个时钟操作沿晚一个输出数据寄存器的保持时间所需的延时,时钟延时缓冲电路的第一个时钟操作沿和第三个时钟操作沿送到输出建立保持时序控制电路用以控制输出时钟域数据输出的建立保持的时序,第二个时钟操作沿送到输出数据寄存器的时钟端作为采样时钟;以及
一种输出建立保持时序控制电路,用时钟延时缓冲电路产生的第一个时钟操作沿对地址寄存器的地址输出进行采样,并根据采样的结果选通相应的两组输入数据寄存器中的一组作为输出数据送到输出数据寄存器的数据输入端,用时钟延时缓冲电路产生的第三个时钟操作沿产生两路复位信号分别送到两位读写标志寄存器的复位端;以及
一组N位的输出数据寄存器,在时钟延时缓冲电路的第二个时钟操作沿将输出建立保持时序控制电路选通的输出数据进行缓存输出。
2.如权利要求1所述的跨时钟域数据传输电路,输入数据寄存器接收输入数据的同时将对应的读写标志寄存器位置位。
3.如权利要求1所述的跨时钟域数据传输电路,地址寄存器的时钟触发沿与输入数据寄存器的时钟触发沿相反,与读写标志寄存器的触发沿相反。
4.如权利要求1所述的跨时钟域数据传输电路,在第二个时钟操作沿输出的数据为新写入数据,如果不是新写入的数据则保持输出不变。
5.如权利要求1所述的跨时钟域数据传输电路,输出建立保持时序控制电路在第三个时钟操作沿产生的两路复位信号同一时刻仅在选通的输入数据寄存器对应的读写标志寄存器的复位端产生复位脉冲信号。
6.如权利要求1所述的跨时钟域数据传输电路,在第三个时钟操作沿复位的读写标志寄存器位为输出控制电路选择输出的输入数据寄存器对应的标志寄存器位。
7.如权利要求6所述的跨时钟域数据传输电路,在第三个时钟操作沿复位对应的读写标志寄存器位完成后立即释放标志寄存器的复位信号。
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 CN102929808A (zh) | 2013-02-13 |
CN102929808B true 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) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573932B (zh) * | 2015-12-11 | 2018-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于寄存器的多位宽数据跨时钟域访问方法 |
CN110427168B (zh) * | 2019-06-26 | 2023-03-07 | 天津芯海创科技有限公司 | 一种实现任意深度低传输延时的异步fifo的方法及装置 |
CN112148655B (zh) * | 2019-06-28 | 2023-11-17 | 深圳市中兴微电子技术有限公司 | 多位数据跨时钟域的处理方法及装置 |
US10999050B1 (en) * | 2020-05-04 | 2021-05-04 | Stmicroelectronics International N.V. | Methods and apparatus for data synchronization in systems having multiple clock and reset domains |
CN115221082B (zh) * | 2022-07-18 | 2023-04-18 | 中国兵器装备集团自动化研究所有限公司 | 一种数据缓存方法、装置及存储介质 |
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 | 中国人民解放军国防科学技术大学 | 寄存器翻转时刻随机化控制电路 |
Also Published As
Publication number | Publication date |
---|---|
CN102929808A (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929808B (zh) | 一种高可靠性的跨时钟域数据传输电路 | |
CN104407998B (zh) | 基于fpga的高速adc采样数据接收缓存方法和系统 | |
US8446988B2 (en) | System and method for selectively performing single-ended and differential signaling | |
CN100518051C (zh) | 使用基准信号进行同步数据传输的装置和方法 | |
CN104954096B (zh) | 一种一主多从的高速同步串行通信数据传输方法 | |
CN107844445B (zh) | 用于非源同步系统的调谐电路系统和操作 | |
CN104135413B (zh) | 一种适用于多点互联应用场合的高速串行总线采样系统 | |
CN102804157B (zh) | 存储器装置中的写入时序的校准 | |
EP2334003B1 (en) | Asymmetrical i/o devices and system | |
CN101479802A (zh) | 同步存储器读取数据捕获 | |
CN107220204A (zh) | 一种数据读取电路 | |
CN101834715B (zh) | 一种数据处理方法及数据处理系统以及数据处理装置 | |
CN104484011A (zh) | 一种分布控制双时钟异步发送、接收模块及fifo装置 | |
CN105683932B (zh) | 双向通信方法以及使用该双向通信方法的双向通信设备 | |
CN1852087B (zh) | 包交换网络中的时钟同步方法及实现装置 | |
CN100576140C (zh) | 产生数字信号处理器和存储器的时钟信号的电路和方法 | |
CN101645294A (zh) | 半导体存储设备读取操作的控制电路 | |
CN112052203B (zh) | 半导体装置、半导体系统和操作半导体装置的方法 | |
CN105335105A (zh) | 一种适用于fpga的qdr iv超高速存储控制器 | |
CN104216462A (zh) | 一种基于fpga的大动态高精度可编程延时装置 | |
CN104380273B (zh) | 基于环形缓冲器的数据的自适应偏移同步 | |
US8718215B2 (en) | Method and apparatus for deskewing data transmissions | |
CN103107862A (zh) | 逻辑器件及其mdio数据发送方法 | |
US7231009B2 (en) | Data synchronization across an asynchronous boundary using, for example, multi-phase clocks | |
CN102790605A (zh) | 异步信号同步器 |
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 |