⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mealy_3.vhd

📁 VHDL子程序集,包括各种例程资料以及源码.
💻 VHD
字号:
--******************************
--*  Detect "0101"  Or "1001"  * 
--*      Then Output '1'       *
--*    Filename : MEALY_3      *
--******************************
        
library IEEE;
use IEEE.std_logic_1164.all;

entity MEALY_3 is
    port (
          CLK:   in STD_LOGIC;
          RESET: in STD_LOGIC;
          X:     in STD_LOGIC;
          Z:     out STD_LOGIC
         );
end MEALY_3;

architecture MEALY_3_arch of MEALY_3 is
type State is (S6,S5,S4,S3,S2,S1,S0);
signal Present_State: State;
signal Next_State: State;
begin
process (CLK,RESET)

begin
    if RESET ='1' then 
       Present_State <= S0;
    elsif  CLK'event and CLK = '1' then
       Present_State <= Next_State;
    end if;
end process;  

process (X,Present_State)

begin
    case Present_State is
         when S0 =>
            if X ='0' then
               Next_State <= S1;
               Z <= '0';
            else
               Next_State <= S2;
               Z <= '0';
            end if;
         when S1 =>
            if X ='0' then
               Next_State <= S5;
               Z <= '0';
            else
               Next_State <= S3;
               Z <= '0';
            end if;
         when S2 =>
            if X ='0' then
               Next_State <= S3;
               Z <= '0';
            else
               Next_State <= S5;
               Z <= '0';
            end if;
         when S3 =>
            if X ='0' then
               Next_State <= S4;
               Z <= '0';
            else
               Next_State <= S6;
               Z <= '0';
            end if;            
         when S4 =>
            if X ='0' then
               Next_State <= S0;
               Z <= '0';
            else
               Next_State <= S0;
               Z <= '1';
            end if;
         when S5 =>
            if X ='0' then
               Next_State <= S6;
               Z <= '0';
            else
               Next_State <= S6;
               Z <= '0';
            end if;
         when S6 =>
            if X ='0' then
               Next_State <= S0;
               Z <= '0';
            else
               Next_State <= S0;
               Z <= '0';
            end if;
    end case;
end process;

end MEALY_3_arch;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -