Sintesi di un semaforoIl dispositivo ha tre uscite R=rosso, G=giallo, V=verde Le fasi del semaforo sono: V - VG - R.
Gli stati sono tre S0 - S1 - S2
Diagramma degli stati S0 S1 S2
Codifica degli stati
Codifica dei tre stati: due variabili di stato (x1 e x0)
Due variabili di stato saranno memorizzate da due flip-flop di tipo D
Tabella degli stati futuri
Si inizia la sintesi della rete combinatoria di ingresso:
Tabella degli stati futuri con le codifiche (x0F e x1F significano x0futura e x1futura)
Mappa di Karnaugh della variabile di stato x0F (si prende la seconda colonna sotto x1F x0F nella tabella degli stati futuri) * è un valore non definito, si mette a 1 o a 0 secondo la convenienza, in questo caso può essere 0, si cerchia l'unico gruppo da 1, così la mappa di Karnaugh restituisce la formula x0F=!x1 * !x0 (dove il punto esclamativo rappresenta la negazione, come nel linguaggio C)
Mappa di Karnaugh della variabile di stato x1F (si prende la prima colonna sotto x1F x0F nella tabella degli stati futuri)
* è un valore non definito, si mette a 1 o a 0 secondo la convenienza, in questo caso si sceglie 1 per fare un gruppo da 2, così la mappa di Karnaugh restituisce la formula x1F=x0
Con la precedente procedura si è individuata la rete combinatoria di ingresso che è la seguente:
Per generare il sincronismo che va agli ingressi di clock si è utilizzato un generatore di segnale
Si inizia la sintesi della rete combinatoria di uscita:
Tabella delle uscite (si compila partendo dal diagramma degli stati)
Si scompone la tebella delle uscite in tre mappe di karnaugh per trovare le tre reti combinatorie (una per ogni uscita).
Mappa di Karnaugh della variabile di uscita R (si prende la prima colonna sotto RGV nella tabella delle uscite)
* è un valore non definito, si mette a 1 o a 0 secondo la convenienza, in questo caso si sceglie 1 per fare un gruppo da 2, così la mappa di Karnaugh restituisce la formula R=x1
Mappa di Karnaugh della variabile di uscita G (si prende la seconda colonna sotto RGV nella tabella delle uscite)
* è un valore non definito, si mette a 1 o a 0 secondo la convenienza, in questo caso si sceglie 1 per fare un gruppo da 2, così la mappa di Karnaugh restituisce la formula G=x0
Mappa di Karnaugh della variabile di uscita V (si prende la terza colonna sotto RGV nella tabella delle uscite)
* è un valore non definito, si mette a 1 o a 0 secondo la convenienza, in questo caso si sceglie 0 perchè non si può fare un gruppo da 3, il gruppo è da 2, la mappa di Karnaugh restituisce la formula R=!x1 (dove il punto esclamativo rappresenta la negazione, come nel linguaggio C)
Si aggiunge la rete di uscita e il circuito finale diventa il seguente:
Esercizio
Sintesi di un semaforo con le seguenti fasi
Verde - 20 secondi
Verde-Giallo - 10 secondi
Rosso - 60 secondi
Traccia: ipotizzare un clock con periodo 10 secondi, iniziare dallo stato Verde-Giallo (1 ciclo di clock), poi gli stati di Rosso (6 cicli di clock = 6 stati), infine il Verde (2 stati)
Svolgimento:
Diagramma degli stati
Tabella degli stati
Tabella degli stati con i codici e con le variabili di stato x3, x2, x1, x0
Mappa di Karnaugh per la variabile di stato futura x0F
Con un gruppo da 4 si ottiene x0F = !x3 * !x0 (dove il punto esclamativo rappresenta la negazione, come nel linguaggio C)
Mappa di Karnaugh per la variabile di stato futura x1F
Con due gruppi da 4 si ottiene x1F = !x1 * x0 + x1 * !x0 (dove il punto esclamativo rappresenta la negazione, come nel linguaggio C)
Mappa di Karnaugh per la variabile di stato futura x2F
Con due gruppi da 4 ed uno da 2 si ottiene x2F = x2 * !x0 + x2 * !x1 + x1 * x0 * !x2 (dove il punto esclamativo rappresenta la negazione, come nel linguaggio C)
Mappa di Karnaugh per la variabile di stato futura x3F
Con un gruppo da 2 si ottiene x3F = x1 * x0 * x2
Tabella delle uscite
Mappa di Karnaugh per la variabile di uscita V
Con due gruppi da 2 si ottiene V = !x1 * !x3 * !x2 + !x0 * !x3 * !x2 (dove il punto esclamativo rappresenta la negazione, come nel linguaggio C)
Mappa di Karnaugh per la variabile di uscita G
Con un gruppo da 2 si ottiene G = x1 * !x0 * !x2 (dove il punto esclamativo rappresenta la negazione, come nel linguaggio C)
Mappa di Karnaugh per la variabile di uscita R
Con due gruppi da 8 e uno da 4 si ottiene R = x3 + x2 + x1 * x0 (dove il punto esclamativo rappresenta la negazione, come nel linguaggio C)
Si disegna il circuito con Ktechlab (impostare Tools - Routing Mode - Manuale) e si ottiene:
Esercizio
Sintetizzare il circuito elettronico di un semaforo con le seguenti fasi
Verde - 50 secondi
Verde-Giallo - 10 secondi
Rosso - 60 secondi