|
process(VFCLKDIV8,Wave1_XOR_Wave2)
begin
if VFCLKDIV8 'event and VFCLKDIV8 ='1' then-- 1.25M时钟上升沿
data <= data+1;
temp_pulse <= Wave1_XOR_Wave2;
if temp_pulse /= Wave1_XOR_Wave2 and Wave1_XOR_Wave2 ='0' then -- 判断输入信号下降沿
data1 <= data;
data <= 0;
end if;
end if;
end process;
-----------------------------------------------------------------------------------------------------------
process(VFCLKDIV8)
begin
if VFCLKDIV8 'event and VFCLKDIV8 ='1' then-- 时钟上升沿
if data1 > 31250 then--50ms
first_flag <= '1';
else
first_flag <= '0';
end if;
end if;
end process;
VFCLKDIV8是1.25M输入时钟,Wave1_XOR_Wave2是输入信号,判断输入信号两次下降沿时间间隔输出一波形,输入信号如上图中,下降沿间隔分别为21MS,59MS.我编程判断相邻下降沿时间大于50ms输出1,否则输出0.仿真都正确了,为什么实际下载不正常,一直输出0也就是说 data1没有大于31250 first_flag一直为0然后我把31250 50ms计数值 改21250 就正常输出波形。可是我输入波形两次下降沿最长的时间是59,50ms在范围内,为什么不能判断到 data1 > 31250?
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|