发送方的时钟5Mbit/s,fpga工作在25Mhz,要检测输入信号,我有个疑问,就是这个时序问题。我的实现方法有两个,不知道哪个好?谢谢
1)对25Mhz的时钟进行5分频得到5Mhz的时钟,再用这个5Mhz的时钟判断输入信号。如果在5Mhz的上升沿判断的时候,如果出现扰动,势必会导致判断出错。
if rising_edge(clk5M) then
if din='1' then
…
2)直接用25MHZ的时钟采样进来的din信号[信号的速率为5Mbit/s],连续三次采样都为高电平则为高电平,连续三次采样都为高电平则为高电平。
但是这样在后面用状态机判断状态转移的时候似乎不好控制,因为一个进来din(‘0’或‘1’)占用了5个clk25M。比如当前s1状态,此时进来的din是1则跳转到S2状态。
请高手指点下,谢谢!