FPGA检测输入信号,类似于序列检测

发布网友 发布时间:2022-04-21 13:43

我来回答

2个回答

热心网友 时间:2022-07-12 02:56

你这个问题牵涉到信号跨时钟域的问题,不同时钟域的信号要正确采样,都需要同步处理后再采样。

输入din信号和FPGA的25M时钟不是同一个时钟域,那你就要对输入信号进行同步处理。

首先先明确din信号是单bit还是总线信号,如果是一个多位的总线信号,那同步就复杂些,需要用异步FIFO来同步;看你上面描述是一个单bit信号,只需要把din信号用25M打2拍,即经过2级寄存器,这时就能保证din信号已经同步到25M的时钟域,每一个周期能稳定持续5拍,然后用你的第二种方法,连续采样5次作为判断就可以了。

PS:
上面说的把输入信号打2拍其实就是一个全同步器的基本实现方法,建议你百度搜索看下《跨越鸿沟:同步世界中的异步信号》,这里面第一部分就讲了这个同步器。

热心网友 时间:2022-07-12 02:57

楼上还涉及到一个处理的问题。当经过多个时钟采样到的数据,你认为在以后的状态控制时不好控制,其实此时你可以同时产生一个状态标志,当5个时钟采样到高电平或低电平时,相应的产生一翻转标志,并同时锁存你的信号电平。然后通过检测这个标志的沿(上、下升沿)来作为后面状态转移的触发信号(或者说使能)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com