我做的是一个激光测距仪,用CPLD作时间间隔测量,就是测量激光从发射出去到碰到目标反射回来的时间,start是一PWM信号,作启动计数器的开门信号.stop就是回波信号,作关闭计数器的关门信号,我的思路是检测start信号的第一个脉冲作开门信号,stop的第一个脉冲作关门信号
process(clk,reset)
variable c:std_logic_vector(7 downto 0)
begin
if reset='1' then
c:="00000000";
cout<=c;
elsif clk'event and clk='1' then
if start='1' then
c:=c+1;
elsif stop='1' then
cout<=c;
end if;
endif;
end process
现在仿真出来的结果是start为高电平时计数,一直为高就一直计数,为低电平时stop信号还没来就不工作了.
请哪位大侠指点一下,不胜感激 |
|