CPLD 下降沿触发信号

2019-07-15 21:44发布

各位大神!!!如何用VHD或velHDL实现如下信号输出??   即在输入信号的下降沿触发输出,N个CLK后输出为0
4257.png


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
cycles
2019-07-16 04:02
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;
entity latch_A is
  PORT(
       pin_in :IN  STD_LOGIC;  --输入
                 clk :IN  STD_LOGIC;  --输入主频
       pin_out :OUT STD_LOGIC   --输出管脚
      );
end latch_A;

architecture Behavioral of latch_A is
SIGNAL output_reg:STD_LOGIC:='0';
--signal cnt: STD_LOGIC_VECTOR(2 downto 0);
BEGIN
    PROCESS
    VARIABLE cnt: INTEGER:=0;--to 5;
   BEGIN                     
           WAIT UNTIL(RISING_EDGE(clk));
                          IF pin_in='0' THEN
                          --IF (pin_in'event AND pin_in='1') THEN --AND cnt=5 THEN --下降沿检测不能用多个状态 只有一个IF
                          --IF falling_edge(pin_in) THEN
                IF cnt=20 THEN
                                       --cnt:=0;
                   output_reg<='0';         
                                ELSE --IF cnt<"101" THEN
                                    cnt:=cnt+1;
                                    output_reg<='1';
                                        --END IF;
                END IF;
                                    ELSE IF pin_in='1' THEN
                                       output_reg<='0';
                                                 cnt:=0;
                           END IF;       
                      END IF;               
    END PROCESS;
pin_out<=output_reg;
end Behavioral;

这是自己的代码,但是输出不稳定

一周热门 更多>