打印

求助

[复制链接]
1072|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
woshaogang123|  楼主 | 2012-6-15 12:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做的是一个激光测距仪,用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信号还没来就不工作了.
请哪位大侠指点一下,不胜感激

相关帖子

沙发
GoldSunMonkey| | 2012-6-15 14:39 | 只看该作者
c换成signal,不要用变量

使用特权

评论回复
板凳
GoldSunMonkey| | 2012-6-15 14:41 | 只看该作者
而且语法有问题。你的star一直为1,他只会不停的计数,永远都不会到stop来。
换换思路

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

17

帖子

1

粉丝