automat.vhdl

library ieee;
use ieee.std_logic_1164.all;

entity automat is
  port (
    wejscia: in std_logic_vector (1 downto 0);
    clk, reset: in std_logic;
    wyjscia: out std_logic_vector (1 downto 0)
  );
end;

architecture logic of automat is
  type STANY is (
    S0,
    S1,
    S2
  );
  
  signal STAN_OBECNY, STAN_NASTEPNY: STANY := S0;
  
begin
  process (clk, reset)
  begin
    if (reset='1') then
      STAN_OBECNY <= S0;
    elsif (clk='1' and clk'event) then
      STAN_OBECNY <= STAN_NASTEPNY;
    end if;
  end process;
    
  process (STAN_OBECNY, wejscia)
  begin
    case STAN_OBECNY is
      when S0 =>
        wyjscia <= "01";
        -- wyjscia zaleza tylko od stanu wiec automat Moora
        
        if (wejscia = "01") then
          STAN_NASTEPNY <= S1;
        else
          STAN_NASTEPNY <= S2;
        end if;
      when S1 =>
        wyjscia <= "11";
        
        if (wejscia = "01" or wejscia = "10") then
          STAN_NASTEPNY <= S2;
        elsif (wejscia = "11") then
          STAN_NASTEPNY <= S1;
        else
          STAN_NASTEPNY <= S0;
        end if;
      when S2 =>
        wyjscia <= "00";
        
        if (wejscia(0) = '0') then
          STAN_NASTEPNY <= S1;
        else
          STAN_NASTEPNY <= S2;
        end if;
    end case;
  end process;
end;

XHTML generated by highlight (http://www.andre-simon.de/) from automat.vhdl



Copyright (c) 1999-2015, Robert Paciorek (http://www.opcode.eu.org/), BSD/MIT-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This text/program is free document/software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/programing/vhdl/automat.vhdl) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: '2014-01-07 19:27:39 (UTC)' (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).