CN103729312A - 基于异步fifo的多路异步数据同步方法 - Google Patents
基于异步fifo的多路异步数据同步方法 Download PDFInfo
- Publication number
- CN103729312A CN103729312A CN201210383261.7A CN201210383261A CN103729312A CN 103729312 A CN103729312 A CN 103729312A CN 201210383261 A CN201210383261 A CN 201210383261A CN 103729312 A CN103729312 A CN 103729312A
- Authority
- CN
- China
- Prior art keywords
- data
- fifo
- asynchronous
- multichannel
- multichannel data
- 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
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种基于异步FIFO的多路异步数据同步方法,该方法包括:1)高频时钟对接收到的总线数据进行采样;2)采样到的数据缓存到多路位宽为1位的异步FIFO中;3)通过异步FIFO和对齐状态机组合来实现数据的同步和对齐处理。本发明可实现数据同步和对齐以及有效检查总线数据的基于异步FIFO的多路异步数据同步方法。
Description
技术领域
本发明属于计算-电数字数据处理技术领域,涉及一种数据同步方法,尤其涉及一种基于异步FIFO的多路异步数据同步方法。
背景技术
某数据总线为多路余度方式,多路总线上传输相同的数据,多路数据需要在某一时间内同时读取,然后根据数据相互比较的结果,判别出有效的数据,但是由于时钟和布线差异,多路数据到来的时间不完全一致,最多允许相差4个周期,目前没有同类处理方法。
发明内容
为了解决背景技术中存在的上述技术问题,本发明提供了一种可实现数据同步和对齐以及有效检查总线数据的基于异步FIFO的多路异步数据同步方法。
本发明的技术解决方案是:本发明提供了一种基于异步FIFO的多路异步数据同步方法,其特殊之处在于:所述基于异步FIFO的多路异步数据同步方法包括以下步骤:
1)高频时钟对接收到的总线数据进行采样;
2)采样到的数据缓存到多路位宽为1位的异步FIFO中;
3)通过异步FIFO和对齐状态机组合来实现数据的同步和对齐处理。
上述步骤3)的具体实现方式是:
3.1)将对齐控制状态机进行复位;所述复位后的对齐控制状态机设置有等待状态、判断状态以及接收状态;
3.2)对齐控制状态机读取异步FIFO中的数据并进行同步和对齐处理。
上述步骤3.2)的具体实现方式是:
3.2.1)系统复位完成后,对齐控制状态机处于等待状态,当多路数据FIFO进入等待状态时并都为均有数据时,所述多路数据FIFO直接进入判断状态进行判断;当多路数据FIFO都为空时,所述多路数据FIFO处于等待状态;当多路数据FIFO中至少有一路数据是非空时,所述对齐控制状态机启动计数器进行计数,当计数器计数值为经历4个时钟周期后,所述多路数据FIFO进入判断状态;
3.2.2)所述多路数据FIFO在判断状态时,由对齐控制状态机读出多路串行数据,并根据多路数据的读出结果,进行数据有效性的判断;若读取的多路数据FIFO有效,则将多路数据FIFO进入接收状态;若读取的多路数据FIFO无效,则将多路数据FIFO转入等待状态;
3.2.3)判断步骤3.2.2)中的多路数据FIFO是否都有数据;若多路数据FIFO都是非空时,则将多路数据FIFO进行寄存和输出;若多路数据FIFO中至少两路数据为空时,所述多路数据FIFO接收状态等待一个时钟周期,如果等待一个周期后多路数据FIFO中仍有数据为空时,则将多路数据FIFO转入判断状态;如果等待一个周期后多路数据FIFO都是非空时,则将多路数据FIFO进行寄存和输出。
上述步骤3.2.2)中有效性的判断是依据总线协议中的数据有效性表、多路数据每一路的非空以及各路数据之间的关系进行数据有效性的判断。
上述异步FIFO是通用的异步FIFO,读写使用不同频率的时钟,FIFO有表示内部数据空满的指示信号。
本发明具有以下优点:
采用多个异步FIFO对多路余度数据进行缓冲来实现数据同步;采用对齐控制状态机实现了多路异步数据的对齐,在使用状态机控制对齐过程中使用计数器增实现等待机制,增强了对齐效果。通过异步FIFO和对齐控制状态机的组合消除了多路数据之间由于时钟和布线差异造成的数据间延迟。通过该方法对对齐后的总线数据进行有效性检查。根据该对齐方式,可进行推广完成类似总线数据对齐及有效性检查的工作。
附图说明
图1是本发明所提供的基于异步FIFO的多路异步数据同步方法的示意图;
图2是本发明所提供的基于异步FIFO的多路异步数据同步方法的流程示意图。
具体实施方式
本发明提供了一种基于异步FIFO的多路异步数据同步方法,该方法包括以下步骤:
1)高频时钟对接收到的总线数据进行采样;
2)采样到的数据缓存到多路位宽为1位的异步FIFO中;
3)通过异步FIFO和对齐状态机组合来实现数据的同步和对齐处理:
3.1)将对齐控制状态机进行复位;所述复位后的对齐控制状态机设置有等待状态、判断状态以及接收状态;
3.2)对齐控制状态机读取异步FIFO中的数据并进行同步和对齐处理:
3.2.1)系统复位完成后,对齐控制状态机处于等待状态,当多路数据FIFO进入等待状态时并都为均有数据(都为非空)时,所述多路数据FIFO直接进入判断状态进行判断;当多路数据FIFO都为空时,所述多路数据FIFO处于等待状态;当多路数据FIFO中至少有一路数据是非空时,所述对齐控制状态机启动计数器进行计数,当计数器计数值为经历4个时钟周期后,所述多路数据FIFO进入判断状态;此时的计数器仅在等待状态并且满足至少有一路数据非空执行计数操作,在发现多路数据都为非空时候,计数器计数值清零,计数器在时钟的边沿进行计数。
3.2.2)所述多路数据FIFO在判断状态时,由对齐控制状态机读出多路串行数据,并根据多路数据的读出结果,进行数据有效性的判断;若读取的多路数据FIFO有效,则将多路数据FIFO进入接收状态;若读取的多路数据FIFO无效,则将多路数据FIFO转入等待状态;有效性的判断是依据总线协议中的数据有效性表、多路数据每一路的非空以及各路数据之间的关系进行数据有效性的判断。
3.2.3)判断步骤3.2.2)中的多路数据FIFO是否都有数据;若多路数据FIFO都是非空时,则将多路数据FIFO进行寄存和输出;若多路数据FIFO中至少两路数据为空时,所述多路数据FIFO接收状态等待一个时钟周期,如果等待一个周期后多路数据FIFO中仍有数据为空时,则将多路数据FIFO转入判断状态;如果等待一个周期后多路数据FIFO都是非空时,则将多路数据FIFO进行寄存和输出。此时,计数器仅在接收状态并且满足至少有两路数据为空执行计数操作,在发现多路数据都为非空时候,计数器计数值清零,计数器在时钟的边沿进行计数。
参见图1和图2,使用高频时钟对接收到的总线数据进行采样,把采样到的数据缓存到多个位宽为1位的异步FIFO中,通过对齐控制状态机控制FIFO中数据的读取,通过FIFO和对齐状态机组合来实现数据的同步和对齐处理。
FIFO为通用的异步FIFO,读写可使用不同频率的时钟,FIFO有表示内部数据空满的指示信号。
本发明所示方法可使用硬件描述语言实现,FIFO的写入使用不同的时钟,FIFO的读取和状态机的控制均使用同步电路实现(使用同一个时钟)。
异步FIFO的读使能条件:在等待状态和接收状态的时候,如果满足到判断状态的跳转条件时,产生多路数据异步FIFO的读使能信号。
数据有效性判断举例:如四路数据总线A,B,C,D。其中A数据无效根据总线数据检查规则,A=B,A=D,C=B,C=D,发现只有A=B和C=B项规则成立,则数据A,B和C为有效,D为无效。
Claims (5)
1.一种基于异步FIFO的多路异步数据同步方法,其特征在于:所述基于异步FIFO的多路异步数据同步方法包括以下步骤:
1)高频时钟对接收到的总线数据进行采样;
2)采样到的数据缓存到多路位宽为1位的异步FIFO中;
3)通过异步FIFO和对齐状态机组合来实现数据的同步和对齐处理。
2.根据权利要求1所述的基于异步FIFO的多路异步数据同步方法,其特征在于:所述步骤3)的具体实现方式是:
3.1)将对齐控制状态机进行复位;所述复位后的对齐控制状态机设置有等待状态、判断状态以及接收状态;
3.2)对齐控制状态机读取异步FIFO中的数据并进行同步和对齐处理。
3.根据权利要求2所述的基于异步FIFO的多路异步数据同步方法,其特征在于:所述步骤3.2)的具体实现方式是:
3.2.1)系统复位完成后,对齐控制状态机处于等待状态,当多路数据FIFO进入等待状态时并都为均有数据时,所述多路数据FIFO直接进入判断状态进行判断;当多路数据FIFO都为空时,所述多路数据FIFO处于等待状态;当多路数据FIFO中至少有一路数据是非空时,所述对齐控制状态机启动计数器进行计数,当计数器计数值为经历4个时钟周期后,所述多路数据FIFO进入判断状态;
3.2.2)所述多路数据FIFO在判断状态时,由对齐控制状态机读出多路串行数据,并根据多路数据的读出结果,进行数据有效性的判断;若读取的多路数据FIFO有效,则将多路数据FIFO进入接收状态;若读取的多路数据FIFO无效,则将多路数据FIFO转入等待状态;
3.2.3)判断步骤3.2.2)中的多路数据FIFO是否都有数据;若多路数据FIFO都是非空时,则将多路数据FIFO进行寄存和输出;若多路数据FIFO中至少两路数据为空时,所述多路数据FIFO接收状态等待一个时钟周期,如果等待一个周期后多路数据FIFO中仍有数据为空时,则将多路数据FIFO转入判断状态;如果等待一个周期后多路数据FIFO都是非空时,则将多路数据FIFO进行寄存和输出。
4.根据权利要求3所述的基于异步FIFO的多路异步数据同步方法,其特征在于:所述步骤3.2.2)中有效性的判断是依据总线协议中的数据有效性表、多路数据每一路的非空以及各路数据之间的关系进行数据有效性的判断。
5.根据权利要求1或2或3或4所述的基于异步FIFO的多路异步数据同步方法,其特征在于:所述异步FIFO是通用的异步FIFO,读写使用不同频率的时钟,FIFO有表示内部数据空满的指示信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210383261.7A CN103729312B (zh) | 2012-10-11 | 2012-10-11 | 基于异步fifo的多路异步数据同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210383261.7A CN103729312B (zh) | 2012-10-11 | 2012-10-11 | 基于异步fifo的多路异步数据同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103729312A true CN103729312A (zh) | 2014-04-16 |
CN103729312B CN103729312B (zh) | 2016-12-21 |
Family
ID=50453392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210383261.7A Active CN103729312B (zh) | 2012-10-11 | 2012-10-11 | 基于异步fifo的多路异步数据同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729312B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105490785A (zh) * | 2015-12-08 | 2016-04-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于共享缓存的fc网络余度发送控制方法 |
CN106502922A (zh) * | 2016-10-28 | 2017-03-15 | 上海顺久电子科技有限公司 | 一种fifo数据缓存器的数据读写方法及数据缓存器 |
CN108829620A (zh) * | 2018-05-28 | 2018-11-16 | 北京航空航天大学 | 一种异常小数据采集方法 |
CN110636240A (zh) * | 2019-08-19 | 2019-12-31 | 南京芯驰半导体科技有限公司 | 面向视频接口的信号调整系统及其方法 |
CN111124982A (zh) * | 2019-12-17 | 2020-05-08 | 中国电子科技集团公司第五十八研究所 | 一种异步时钟数据同步电路 |
CN111797044A (zh) * | 2020-05-25 | 2020-10-20 | 航天科工空间工程发展有限公司 | 一种异步串口通信系统数据延迟处理系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930502A (en) * | 1992-06-19 | 1999-07-27 | Sgs-Thomson Microelectronics S.A. | Method for sharing a random-access memory between two asynchronous processors and electronic circuit for the implementation of this method |
CN102088334A (zh) * | 2010-12-17 | 2011-06-08 | 天津曙光计算机产业有限公司 | 一种基于fpga的万兆以太网数据接收校验方法 |
CN102194510A (zh) * | 2010-03-08 | 2011-09-21 | 海力士半导体有限公司 | 半导体存储设备的数据输出电路 |
CN102223207A (zh) * | 2011-06-18 | 2011-10-19 | 安徽省菲特科技股份有限公司 | 一种基于rs帧结构的基带无损切换方法及装置 |
CN102708080A (zh) * | 2012-04-20 | 2012-10-03 | 浪潮(北京)电子信息产业有限公司 | 一种对齐高速串行通信通道的方法和系统 |
-
2012
- 2012-10-11 CN CN201210383261.7A patent/CN103729312B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930502A (en) * | 1992-06-19 | 1999-07-27 | Sgs-Thomson Microelectronics S.A. | Method for sharing a random-access memory between two asynchronous processors and electronic circuit for the implementation of this method |
CN102194510A (zh) * | 2010-03-08 | 2011-09-21 | 海力士半导体有限公司 | 半导体存储设备的数据输出电路 |
CN102088334A (zh) * | 2010-12-17 | 2011-06-08 | 天津曙光计算机产业有限公司 | 一种基于fpga的万兆以太网数据接收校验方法 |
CN102223207A (zh) * | 2011-06-18 | 2011-10-19 | 安徽省菲特科技股份有限公司 | 一种基于rs帧结构的基带无损切换方法及装置 |
CN102708080A (zh) * | 2012-04-20 | 2012-10-03 | 浪潮(北京)电子信息产业有限公司 | 一种对齐高速串行通信通道的方法和系统 |
Non-Patent Citations (2)
Title |
---|
张华: "串行现场总线协议的设计与FPGA实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
魏书军等: "FPGA多通道数据自动对齐的设计与实现", 《核电子学与探测技术》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105490785A (zh) * | 2015-12-08 | 2016-04-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于共享缓存的fc网络余度发送控制方法 |
CN105490785B (zh) * | 2015-12-08 | 2018-10-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于共享缓存的fc网络余度发送控制系统及方法 |
CN106502922A (zh) * | 2016-10-28 | 2017-03-15 | 上海顺久电子科技有限公司 | 一种fifo数据缓存器的数据读写方法及数据缓存器 |
CN106502922B (zh) * | 2016-10-28 | 2020-02-18 | 青岛海信电器股份有限公司 | 一种fifo数据缓存器的数据读写方法及数据缓存器 |
CN108829620A (zh) * | 2018-05-28 | 2018-11-16 | 北京航空航天大学 | 一种异常小数据采集方法 |
CN110636240A (zh) * | 2019-08-19 | 2019-12-31 | 南京芯驰半导体科技有限公司 | 面向视频接口的信号调整系统及其方法 |
CN110636240B (zh) * | 2019-08-19 | 2022-02-01 | 南京芯驰半导体科技有限公司 | 面向视频接口的信号调整系统及其方法 |
CN111124982A (zh) * | 2019-12-17 | 2020-05-08 | 中国电子科技集团公司第五十八研究所 | 一种异步时钟数据同步电路 |
CN111124982B (zh) * | 2019-12-17 | 2021-07-06 | 中国电子科技集团公司第五十八研究所 | 一种异步时钟数据同步电路 |
CN111797044A (zh) * | 2020-05-25 | 2020-10-20 | 航天科工空间工程发展有限公司 | 一种异步串口通信系统数据延迟处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103729312B (zh) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729312A (zh) | 基于异步fifo的多路异步数据同步方法 | |
US6961863B2 (en) | Techniques for facilitating conversion between asynchronous and synchronous domains | |
US5487092A (en) | System for high-speed synchronization across clock domains | |
US8977882B2 (en) | System for data transfer between asynchronous clock domains | |
CN102931994B (zh) | 应用于信号处理芯片的高速信号采样和同步的架构及方法 | |
JP2001265715A (ja) | 2つの非同期クロック・ドメイン境界にわたる処理量を維持するためのパイプライン処理の同期装置 | |
US8386828B1 (en) | Circuit for estimating latency through a FIFO buffer | |
CN101063894B (zh) | 动态同步化处理器时钟与总线时钟前缘的方法与系统 | |
CN112422363A (zh) | 异步串口通信波特率自动检测装置及其方法 | |
CN102204198A (zh) | 用于多个串行接收机的自动数据对齐器的方法、装置及系统 | |
CN101136737A (zh) | 一种消除源同步信号长线传输时延的系统及方法 | |
CN201893806U (zh) | Fc时钟同步发生系统 | |
CN114201276A (zh) | 一种基于fifo中断管理的方法 | |
EP2466479B1 (en) | Interface system, and corresponding integrated circuit and method | |
US20030005344A1 (en) | Synchronizing data with a capture pulse and synchronizer | |
JP2008172657A (ja) | 受信装置 | |
CN103107862A (zh) | 逻辑器件及其mdio数据发送方法 | |
CN105515752B (zh) | 一种消除网络时钟偏差的数据同步方法 | |
US20130002315A1 (en) | Asynchronous clock adapter | |
EP2466478A1 (en) | Communication system, and corresponding integrated circuit and method | |
CN102394808B (zh) | 以太网串行介质无关接口相位适配和帧对齐的方法及装置 | |
CN109726158A (zh) | 一种多通道串行数据恢复方法和装置 | |
CN103840934A (zh) | 一种基于时钟自动恢复的开销传递方法及装置 | |
EP2466477B1 (en) | Interface system, and corresponding integrated circuit and method | |
US8370543B1 (en) | Busy detection logic for asynchronous communication port |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221202 Address after: Room S303, Innovation Building, No. 25, Gaoxin 1st Road, Xi'an, Shaanxi 710075 Patentee after: XI'AN XIANGTENG MICROELECTRONICS TECHNOLOGY Co.,Ltd. Address before: 710068 No. 156 Taibai North Road, Shaanxi, Xi'an Patentee before: 631ST Research Institute OF AVIC |