# Esercitazioni pratiche di elettronica/Logica Sequenziale/Macchine a Stati Finiti

Esercitazioni pratiche di elettronica
Copertina Tutti i moduli · Sviluppo
* IntroduzioneEsercitazioni pratiche di elettronica/Introduzione
* Lezioni:
** Simulazione dei principali circuiti con amplificatore operazionaleEsercitazioni pratiche di elettronica/Simulazione dei principali circuiti con amplificatore operazionale
** Differenza fra segnali analogici e segnali digitaliEsercitazioni pratiche di elettronica/Differenza fra segnali analogici e segnali digitali
** Introduzione alle logiche TTLEsercitazioni pratiche di elettronica/Introduzione alle logiche TTL
** Classi fondamentali dei circuiti digitaliEsercitazioni pratiche di elettronica/Classi fondamentali dei circuiti digitali
** I sistemi di numerazioneEsercitazioni pratiche di elettronica/I sistemi di numerazione
*** Conversione da base 2 in base 10Esercitazioni pratiche di elettronica/I sistemi di numerazione/Conversione da base 2 in base 10
*** Conversione da base 10 in base 2Esercitazioni pratiche di elettronica/I sistemi di numerazione/Conversione da base 10 in base 2
*** Conversione da base 10 in base 16Esercitazioni pratiche di elettronica/I sistemi di numerazione/Conversione da base 10 in base 16
** Il ciclo di progettoEsercitazioni pratiche di elettronica/Il ciclo di progetto
** Software ISE-XILINX Free WebpackEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack:
*** Finestra principaleEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Finestra principale
*** Creazione di un nuovo progettoEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Creazione di un nuovo progetto
*** Creazione di uno schemaEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Creazione di uno schema
*** Creazione di un file VHDLEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Creazione di un file VHDL
*** Creazione di una Macchina a Stati FinitiEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Creazione di una Macchina a Stati Finiti
*** Il file di piedinaturaEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Il file di piedinatura
*** La simulazioneEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/La simulazione
*** L'implementazione su scheda e il testEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/L'implementazione su scheda e il test
* Esercitazioni di laboratorioEsercitazioni pratiche di elettronica/Esercitazioni di laboratorio
** Logica CombinatoriaEsercitazioni pratiche di elettronica/Logica Combinatoria:
*** Implementazione di una funzioneEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Implementazione di una funzione
*** Dalla tabella della verità all'implementazioneEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Dalla tabella della verità all'implementazione
*** Il multiplexerEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il multiplexer
*** Implementazione di una funzione tramite multiplexerEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Implementazione di una funzione tramite multiplexer
*** Il Semisommatore o Half-AdderEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il Semisommatore o Half-Adder
*** Il Sommatore completo o Full-AdderEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il Sommatore completo o Full-Adder
*** Full-Adder realizzato con mux a 3 ingressi di selezioneEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Full-Adder realizzato con mux a 3 ingressi di selezione
*** Full-Adder realizzato con mux a 2 ingressi di selezioneEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Full-Adder realizzato con mux a 2 ingressi di selezione
*** Sommare due parole di 4 bitEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Sommare due parole di 4 bit
*** Sommatore a 4 bit di tipo LOOK AHEAD CARRYEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Sommatore a 4 bit di tipo LOOK AHEAD CARRY
*** Il ComparatoreEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il Comparatore
*** Il Comparatore a più bitEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il Comparatore a più bit
*** Il decodificatore da BCD a sette segmentiEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il decodificatore da BCD a sette segmenti
*** Il decodificatore da BCD a 7 segmenti in VHDLEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il decodificatore da BCD a 7 segmenti in VHDL
*** Multiplexing di più display a 7 segmentiEsercitazioni pratiche di elettronica/Logica Combinatoria/Multiplexing di più display a 7 segmenti
* Logica SequenzialeEsercitazioni pratiche di elettronica/Logica Sequenziale:
** Flip Flop di tipo DEsercitazioni pratiche di elettronica/Logica Sequenziale/Flip Flop di tipo D
** Flip Flop di tipo JK
** Flip Flop di tipo TEsercitazioni pratiche di elettronica/Logica Sequenziale/Flip Flop di tipo T
** Contatore e-o divisore modulo 2Esercitazioni pratiche di elettronica/Logica Sequenziale/Contatore e-o divisore modulo 2
** Contatori in cascataEsercitazioni pratiche di elettronica/Logica Sequenziale/Contatori in cascata
** Macchine a Stati FinitiEsercitazioni pratiche di elettronica/Logica Sequenziale/Macchine a Stati Finiti
* Elaborazione di Progetti ComplessiEsercitazioni pratiche di elettronica/Elaborazione di progetti complessi
* Risorse per il laboratorioEsercitazioni pratiche di elettronica/Risorse per il laboratorio
* Laboratorio di SistemiEsercitazioni pratiche di elettronica/Laboratorio di Sistemi
* AcronimiEsercitazioni pratiche di elettronica/Acronimi
* AutoriEsercitazioni pratiche di elettronica/Autori
Modifica il sommario

## Automi di Mealy e di Moore

La differenza fondamentale tra un ASF di Mealy e un ASF di Moore è la seguente:
È stato dimostrato che i due modelli sono equivalenti e che è possibile trasformare un automa di Mealy in uno di Moore che esibisce lo stesso comportamento terminale.

## ESEMPI:
### Contatore Up & Down
#### File VHDL della Macchina a Stati

LIBRARY ieee; USE ieee.std_logic_1164.all;
ENTITY SHELL_UPDWCOUN IS PORT (CLK,C,RESET: IN std_logic; Y0,Y1,Y2 : OUT std_logic); END;
ARCHITECTURE BEHAVIOR OF SHELL_UPDWCOUN IS
SIGNAL STATE0, next_STATE0, STATE1, next_STATE1, STATE2, next_STATE2, STATE3 , next_STATE3, STATE4, next_STATE4, STATE6, next_STATE6 : std_logic; SIGNAL next_Y0,next_Y1,next_Y2 : std_logic; SIGNAL Y : std_logic_vector (2 DOWNTO 0); BEGIN
PROCESS (CLK, RESET, next_STATE0, next_STATE1, next_STATE2, next_STATE3, next_STATE4, next_STATE6, next_Y2, next_Y1, next_Y0) BEGIN IF ( RESET='1' ) THEN STATE0 <= '1'; STATE1 <= '0'; STATE2 <= '0'; STATE3 <= '0'; STATE4 <= '0'; STATE6 <= '0'; Y2 <= '0'; Y1 <= '0'; Y0 <= '0'; ELSIF CLK='1' AND CLK'event THEN STATE0 <= next_STATE0; STATE1 <= next_STATE1; STATE2 <= next_STATE2; STATE3 <= next_STATE3; STATE4 <= next_STATE4; STATE6 <= next_STATE6; Y2 <= next_Y2; Y1 <= next_Y1; Y0 <= next_Y0; END IF; END PROCESS;
PROCESS (C,STATE0,STATE1,STATE2,STATE3,STATE4,STATE6,Y) BEGIN
IF (( C='1' AND (STATE1='1')) OR ( C='0' AND (STATE6='1'))) THEN next_STATE0<='1'; ELSE next_STATE0<='0'; END IF;
IF (( C='0' AND (STATE0='1')) OR ( C='1' AND (STATE2='1'))) THEN next_STATE1<='1'; ELSE next_STATE1<='0'; END IF;
IF (( C='0' AND (STATE1='1')) OR ( C='1' AND (STATE3='1'))) THEN next_STATE2<='1'; ELSE next_STATE2<='0'; END IF;
IF (( C='0' AND (STATE2='1')) OR ( C='1' AND (STATE4='1'))) THEN next_STATE3<='1'; ELSE next_STATE3<='0'; END IF;
IF (( C='0' AND (STATE3='1')) OR ( C='1' AND (STATE6='1'))) THEN next_STATE4<='1'; ELSE next_STATE4<='0'; END IF;
IF (( C='1' AND (STATE0='1')) OR ( C='0' AND (STATE4='1'))) THEN next_STATE6<='1'; ELSE next_STATE6<='0'; END IF;
Y<= (( std_logic_vector'( STATE1, STATE1, STATE1)) AND ((
std_logic_vector'( C, C, C)) ) AND (std_logic_vector'("000") ) ) OR ((
std_logic_vector'( STATE6, STATE6, STATE6)) AND (( std_logic_vector'( NOT C , NOT C, NOT C)) ) AND (std_logic_vector'("000") ) ) OR ((
std_logic_vector'( STATE0, STATE0, STATE0)) AND (( std_logic_vector'( NOT C , NOT C, NOT C)) ) AND (std_logic_vector'("001") ) ) OR ((
std_logic_vector'( STATE2, STATE2, STATE2)) AND (( std_logic_vector'( C, C, C)) ) AND (std_logic_vector'("001") ) ) OR (( std_logic_vector'( STATE1, STATE1, STATE1)) AND (( std_logic_vector'( NOT C, NOT C, NOT C)) ) AND ( std_logic_vector'("010") ) ) OR (( std_logic_vector'( STATE3, STATE3, STATE3)) AND (( std_logic_vector'( C, C, C)) ) AND (std_logic_vector'( "010") ) ) OR (( std_logic_vector'( STATE2, STATE2, STATE2)) AND ((
std_logic_vector'( NOT C, NOT C, NOT C)) ) AND (std_logic_vector'("011") ) ) OR (( std_logic_vector'( STATE4, STATE4, STATE4)) AND ((
std_logic_vector'( C, C, C)) ) AND (std_logic_vector'("011") ) ) OR ((
std_logic_vector'( STATE3, STATE3, STATE3)) AND (( std_logic_vector'( NOT C , NOT C, NOT C)) ) AND (std_logic_vector'("100") ) ) OR ((
std_logic_vector'( STATE6, STATE6, STATE6)) AND (( std_logic_vector'( C, C, C)) ) AND (std_logic_vector'("100") ) ) OR (( std_logic_vector'( STATE0, STATE0, STATE0)) AND (( std_logic_vector'( C, C, C)) ) AND ( std_logic_vector'("110") ) ) OR (( std_logic_vector'( STATE4, STATE4, STATE4)) AND (( std_logic_vector'( NOT C, NOT C, NOT C)) ) AND ( std_logic_vector'("110") ) );
next_Y2 <= Y(2); next_Y1 <= Y(1); next_Y0 <= Y(0); END PROCESS;
END BEHAVIOR;
LIBRARY ieee; USE ieee.std_logic_1164.all;
ENTITY UPDWCOUN IS PORT (Y : OUT std_logic_vector (2 DOWNTO 0); CLK,C,RESET: IN std_logic); END;
ARCHITECTURE BEHAVIOR OF UPDWCOUN IS COMPONENT SHELL_UPDWCOUN PORT (CLK,C,RESET: IN std_logic; Y0,Y1,Y2 : OUT std_logic); END COMPONENT; BEGIN SHELL1_UPDWCOUN : SHELL_UPDWCOUN PORT MAP (CLK=>CLK,C=>C,RESET=>RESET,Y0=>Y( 0),Y1=>Y(1),Y2=>Y(2)); END BEHAVIOR;