cgh996 发表于 2010-8-17 14:37:25

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

本帖最后由 cgh996 于 2010-8-17 14:47 编辑

发送方的时钟5Mbit/s,fpga工作在25Mhz,要检测输入信号,我有个疑问,就是这个时序问题。我的实现方法有两个,不知道哪个好?谢谢
1)对25Mhz的时钟进行5分频得到5Mhz的时钟,再用这个5Mhz的时钟判断输入信号。如果在5Mhz的上升沿判断的时候,如果出现扰动,势必会导致判断出错。
if rising_edge(clk5M) then
   ifdin='1' then

2)直接用25MHZ的时钟采样进来的din信号[信号的速率为5Mbit/s],连续三次采样都为高电平则为高电平,连续三次采样都为高电平则为高电平。
但是这样在后面用状态机判断状态转移的时候似乎不好控制,因为一个进来din(‘0’或‘1’)占用了5个clk25M。比如当前s1状态,此时进来的din是1则跳转到S2状态。
请高手指点下,谢谢!

njithjw 发表于 2010-8-31 23:33:38

从你的描述来看,FPGA工作的25MHz时钟和外面输入的5MHz的信号应该是异步的,可以考虑采用25M时钟检测输入信号上升沿下降沿的方法。
页: [1]
查看完整版本: FPGA检测输入信号,类似于序列检测