T Flip Flop with clear(VHDL)

时间:2014-10-11 19:58:38

标签: process vhdl fpga flip-flop

我在使用清除和重置编码T触发器时遇到问题。如下图所示,t_in作为使能输入运行,将从mod-m计数器设置为1或0。 to_ldspkr然后将切换。 clr_FF将清除触发器。

Link to the block diagram

linked block diagram

我现在确定我应该如何编码这个触发器。这是我的代码,但它不起作用:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;


entity T_FF is
    port(
        from_t_in : in std_logic;
        clk, reset : in std_logic;
        from_clr_FF : in std_logic;
        to_ldspkr : out std_logic
    );
end T_FF;

architecture Behavioral of T_FF is
    signal temp: std_logic;
    signal r_reg, r_next : std_logic;

    begin
    process(reset, clk, from_clr_FF, r_reg)
    begin
        if(reset = '1') then
            r_reg <= '0';   
        elsif(from_clr_FF = '1') then
            r_next  <= '0';
        elsif(clk'event and clk='1') then
            if(from_t_in = '1') then
                temp <= not temp;
            end if;
        end if;
    end process;
    to_ldspkr <= temp;
end Behavioral;

1 个答案:

答案 0 :(得分:0)

temp未初始化。我猜你不需要r_reg和r_next。只需用temp替换它们,就可以在重置时进行初始化。然后在灵敏度中不需要r_reg。