ltaifsq 发表于 2010-12-30 15:14:23

请问下 vhdl语言 计数器能实现减1功能吗

我做了个加1键和减1键加的可以用减得却无效大家帮忙看下
PROCESS(ZJ,SC,JS)
BEGIN
    IF SC='1' THEN
       COUNT<="0000";
    ELSIF ZJ'EVENT AND ZJ='1' THEN   --有增加键;
       IF COUNT<"1001" THEN
         COUNT<=COUNT+1;    ---计数器加1
      ELSE
         COUNT<="0000";
       END IF;
   ELSIF JS'EVENT AND JS='1' THEN   --减少键;
      IF COUNT>"0000" THEN
         COUNT<=COUNT-1;   --计数器减1
      ELSE
         COUNT<="1001";
       END IF;
    END IF;
END PROCESS;

guolh 发表于 2010-12-30 15:19:00

可以实现,是你的写的不对吧,VHDL没用过,verilog还凑合

NJ8888 发表于 2010-12-30 15:38:40

综合综合不出来两个时钟控制一个计数器翻转,你应当写成一个IO控制加计数或减计数(在时钟边沿比如H是加计数,L是减计数),一个时钟控制工作

ltaifsq 发表于 2010-12-30 15:44:46

能具体说下吗不是太懂谢谢了

NJ8888 发表于 2010-12-30 16:06:57

PROCESS(ZJ,SC,increase)
BEGIN
    IF SC='1' THEN
       COUNT<="0000";
    ELSIF ZJ'EVENT AND ZJ='1' THEN   --有增加键;
      if increase='1' then
              IF COUNT<"1001" THEN
                 COUNT<=COUNT+1;    ---计数器加1
      else
              count="0000";
      end if;
      else
              IF COUNT>"0000" THEN
              count<=count-1;        
              ELSE
                 COUNT<="1001";
               END IF;
            END IF;
    end if;       
END PROCESS;

ltaifsq 发表于 2010-12-30 18:23:17

非常感谢

ltaifsq 发表于 2010-12-30 18:41:27

我把 INCREASE 用我的另外一个键代替也可以诶用两个键配合用 让一个键一直处于高电平时另外一个键是增加功能,反之就是减少键   非常感谢4楼

lixiangwen 发表于 2010-12-30 20:26:13

用一个来表示状态就可以了!
页: [1]
查看完整版本: 请问下 vhdl语言 计数器能实现减1功能吗