CN103729312B - 基于异步fifo的多路异步数据同步方法 - Google Patents
基于异步fifo的多路异步数据同步方法 Download PDFInfo
- Publication number
- CN103729312B CN103729312B CN201210383261.7A CN201210383261A CN103729312B CN 103729312 B CN103729312 B CN 103729312B CN 201210383261 A CN201210383261 A CN 201210383261A CN 103729312 B CN103729312 B CN 103729312B
- Authority
- CN
- China
- Prior art keywords
- data
- fifo
- multichannel
- asynchronous
- state
- 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)
- 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 (3)
1.一种基于异步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进行寄存和输出。
2.根据权利要求1所述的基于异步FIFO的多路异步数据同步方法,其特征在于:所述步骤3.2.2)中有效性的判断是依据总线协议中的数据有效性表、多路数据每一路的非空以及各路数据之间的关系进行数据有效性的判断。
3.根据权利要求1或2所述的基于异步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 CN103729312A (zh) | 2014-04-16 |
CN103729312B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105490785B (zh) * | 2015-12-08 | 2018-10-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于共享缓存的fc网络余度发送控制系统及方法 |
CN106502922B (zh) * | 2016-10-28 | 2020-02-18 | 青岛海信电器股份有限公司 | 一种fifo数据缓存器的数据读写方法及数据缓存器 |
CN108829620B (zh) * | 2018-05-28 | 2019-05-17 | 北京航空航天大学 | 一种异常小数据采集方法 |
CN110636240B (zh) * | 2019-08-19 | 2022-02-01 | 南京芯驰半导体科技有限公司 | 面向视频接口的信号调整系统及其方法 |
CN111124982B (zh) * | 2019-12-17 | 2021-07-06 | 中国电子科技集团公司第五十八研究所 | 一种异步时钟数据同步电路 |
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多通道数据自动对齐的设计与实现;魏书军等;《核电子学与探测技术》;20100331;第410-412页 * |
串行现场总线协议的设计与FPGA实现;张华;《中国优秀硕士学位论文全文数据库 信息科技辑》;20070915;正文第39-40页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103729312A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729312B (zh) | 基于异步fifo的多路异步数据同步方法 | |
US7002376B2 (en) | Phase detector for a programmable clock synchronizer | |
CN104330082B (zh) | 一种mems/gnss组合导航系统实时数据同步方法 | |
CN102931994B (zh) | 应用于信号处理芯片的高速信号采样和同步的架构及方法 | |
CN101931580B (zh) | Arinc 659背板数据总线接口芯片片上系统 | |
US20070101043A1 (en) | Protocol converter to access AHB slave devices using the MDIO protocol | |
CN1302406C (zh) | 可配置的同步或异步接口 | |
CN102023956A (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
US8977882B2 (en) | System for data transfer between asynchronous clock domains | |
CN104901859A (zh) | 一种axi/pcie总线转换装置 | |
CN106445869B (zh) | 一种基于FPGA和PCIe的高速数据交换方法 | |
CN103577378A (zh) | 一种全双工异步串行通信方法 | |
CN103107862A (zh) | 逻辑器件及其mdio数据发送方法 | |
CN201893806U (zh) | Fc时钟同步发生系统 | |
EP2466479B1 (en) | Interface system, and corresponding integrated circuit and method | |
CN104133805B (zh) | Atp车载设备中的数据同步方法与装置 | |
CN103631314B (zh) | 去除电平信号中毛刺的方法 | |
US8443129B1 (en) | Method and apparatus for implementing a data bus interface | |
CN103888227A (zh) | 一种基于vl的数据帧接收分析设备和方法 | |
CN102394808B (zh) | 以太网串行介质无关接口相位适配和帧对齐的方法及装置 | |
CN103840934B (zh) | 一种基于时钟自动恢复的开销传递方法及装置 | |
Caputa et al. | An on-chip delay-and skew-insensitive multicycle communication scheme | |
CN205385561U (zh) | 一种多屏拼接显示系统 | |
US7373539B2 (en) | Parallel path alignment method and apparatus | |
CN103516455A (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 | ||
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 |
|
TR01 | Transfer of patent right |