CPLD刚入门新手。。。还请高手指教

2019-03-25 08:59发布

程序功能描述:当检测到overcurrent_in上升沿来后,overcurrent_out输出高电平并保持5秒。
我的程序如下:
library ieee;
use ieee.std_logic_1164.all;

entity test is
port(
     overcurrent_in:in std_logic;
     overcurrent_out:out std_logic;
     clk:in std_logic
    );
end test;

architecture over of test is
  signal count:integer;
  signal a:std_logic;
begin
process(overcurrent_in,clk)
   begin
   if clk'event and clk='1' then
      if overcurrent_in='1' then                                      检测到为1时,overcurrent_out输出‘1’
         overcurrent_out<='1';
         count<=count+1;                                                 计算器开始加1,

           elsif count/=0 then                                              只有当上升沿来了后count才不为零,所以只有当上升沿来后才能执行以前语句
                  if count>=10 then                                         让其产生10的CLK周期的延时,为了仿真用,所以我只用了10个CLK周期的延时
                 count<=0;
                 overcurrent_out<='0';                                   时间到后让其输出‘0’
          else count<=count+1;                                         时间没到继续加
          end if;
      end if;
    end if;  
   end process;
   end over;      

  仿真波形如下图:

overurrent_out输出一直为‘1’了。为什么不对啊  ??求高手帮帮我   谢谢了 。

另,我想要的输出波形应该如下:

[ 本帖最后由 heeh_only 于 2012-9-3 17:19 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
heeh_only
1楼-- · 2019-03-25 17:31
< / 怎么没人回复啊~ 那位大侠帮帮我啊

一周热门 更多>