Esercizio 1a - 1 Considerare il circuito descritto dal seguente listato VERILOG. Individuare un hazard (se ne sono presenti piu` di uno, basta indicarne uno), dire per quali ingressi e transizione avviene, scrivere un testbench che evidenzi solamente l hazard di interesse introduco un opportuno ritardo nel circuito (solo due segnali che non cambiano ed uno che varia). module mlog(z,a,b,c); input a,b,c; output z; not n1(na,a); not n2(nb,b); not n3(nc,c); nor n4(x1,na,b); nor n5(x2,nb,na); nor n6(x3,b,c); nor n7(z,x1,x2,x3); Esercizio 1a - 2 Considerare il circuito descritto dal seguente listato VERILOG. Individuare un hazard (se ne sono presenti piu` di uno, basta indicarne uno), dire per quali ingressi e transizione avviene, scrivere un testbench che evidenzi solamente l hazard di interesse introduco un opportuno ritardo nel circuito (solo due segnali che non cambiano ed uno che varia). module mlog(z,a,b,c); input a,b,c; output z; not n1(na,a); not n2(nb,b); not n3(nc,c); nor n4(x1,c,b); nor n5(x2,c,na); nor n6(x3,na,nc); nor n7(z,x1,x2,x3); Mappa di karnaugh A BC 00 01 11 10 0 0 1 0 0 0 0 Mappa di karnaugh A BC 00 01 11 10 0 0 1 0 0 0 0 L hazard considerato si ha per A= 1... B=.0/1... C= 0 o 1... (scrivere 0/1 o una freccia per l ingresso in transizione) Introduco un ritardo di...#1... nella porta...n2... Il testbench reg a,b,c; mlog dut(z,a,b,c); a=1; b=0; c=1; // o c=0 #10 b=1; #10 b=0; L hazard considerato si ha per A=..1... B=.0 o 1... C= 0/1... (scrivere 0/1 o una freccia per l ingresso in transizione) Introduco un ritardo di...#1... nella porta...n3... Il testbench reg a,b,c; mlog dut(z,a,b,c); a=1; b=0; c=0; // o b=1 #10 c=1; #10 c=0;
Esercizio 1a -3 Considerare il circuito descritto dal seguente listato VERILOG. Individuare un hazard (se ne sono presenti piu` di uno, basta indicarne uno), dire per quali ingressi e transizione avviene, scrivere un testbench che evidenzi solamente l hazard di interesse introduco un opportuno ritardo nel circuito (solo due segnali che non cambiano ed uno che varia). module mlog(z,a,b,c); input a,b,c; output z; not n1(na,a); not n2(nb,b); not n3(nc,c); nand n4(x1,c,b); nand n5(x2,c,na); nand n6(x3,na,nc); nand n7(z,x1,x2,x3); Esercizio 1a - 4 Considerare il circuito descritto dal seguente listato VERILOG. Individuare un hazard (se ne sono presenti piu` di uno, basta indicarne uno), dire per quali ingressi e transizione avviene, scrivere un testbench che evidenzi solamente l hazard di interesse introduco un opportuno ritardo nel circuito (solo due segnali che non cambiano ed uno che varia). module mlog(z,a,b,c); input a,b,c; output z; not n1(na,a); not n2(nb,b); not n3(nc,c); nand n4(x1,na,b); nand n5(x2,nb,na); nand n6(x3,b,c); nand n7(z,x1,x2,x3); Mappa di karnaugh A BC 00 01 11 10 1 1 1 1 1 Mappa di karnaugh A BC 00 01 11 10 1 1 1 1 1 L hazard considerato si ha per A=.0... B=.0 o 1... C=..0/1... (scrivere 0/1 o una freccia per l ingresso in transizione) Introduco un ritardo di...#1... nella porta...n3... Il testbench reg a,b,c; mlog dut(z,a,b,c); a=0; b=1; c=0; //o b=0 #10 c=1; #10 c=0; L hazard considerato si ha per A=..0... B= 0/1... C=..0 o 1... (scrivere 0/1 o una freccia per l ingresso in transizione) Introduco un ritardo di...#1... nella porta...n2... Il testbench reg a,b,c; mlog dut(z,a,b,c); a=0; b=0; c=1; //o c=0; #10 b=1; #10 b=0;
Esercizio 1b - 1 La macchina a stati, descritta dalla seguente tabella dello stato successivo, si comporta di fatto come un contatore di fronti. Dopo un certo numero di fronti (con a 1) mette la sua unica uscita a 1. La macchina e` dotata di un ingresso RESET attivo alto che la riporta allo stato A. Tale macchina e` stata implementata con l assegnamento degli stati come da tabella delle transizioni (vedi tra parentesi) e realizzando le reti combinatorie in accordo con gli implicanti evidenziati nelle mappe di Karnaugh. Per un errore di progettazione del circuito stampato che la realizza c e` una interferenza che fa si che quando la macchina si trova nello stato 101, si attiva (con un piccolo ritardo) il clear (attivo basso) del flip-flop che ha come uscita Q2. Completare la descrizione VERILOG strutturale, i moduli richiamati nelle parti gia` disponibili nella soluzione, non sono da progettare (notare che tra l altro e` da completare l assign che simula l errore, manca la logica per gestire il reset e per ricavare ). Dire in poche righe come si evidenzia il malfunzionamento e che influenza ha sulla funzionalita` svolta dalla macchina. Scrivere un testbench che permetta di evidenziare una situazione di malfunzionamento e tracciare i grafici che si ottengono in uscita (solo uno zoom sulla zona dove si manifesta l errore). Si consiglia di ragionare sugli stati non sui codici binari per quanto possibile (cioe` non mettersi a fare i grafici dei singoli bit). Tabella dello stato successivo Tabella delle transizioni Verilog strutturale module macstati(ck,,,reset); input,ck,reset; output ; logicad2 xd2(d2,q0,q1,q2,) ; //simula la logica D1 logicad1 xd1(d1,q0,q1,q2,) ; //simula la logica D1 logicad0 xd0(d0,q0,q1,q2,) ; //simula la logica D0 flipflopd dd0(ck,d0,q0,clr_l) ; flipflopd dd1(ck,d1,q1,clr_l) ; flipflopd dd2(ck,d2,q2,clr2_l) ; assign #1 clr2_l= clr_l& (q2 q1 q0 );//COMPLETARE! simula il disturbo assign clr_l=~reset; assign z= q1& q0& q2; XF 001 (XF) 1010 0 XG 010 (XG) XH 011 (XH) Descrizione degli effetti del malfunzionamento Quando avviene il malfunzionamento il contenuto del flip-flop diventa 001 (XF). Se vale 1 non ci si accorge del difetto perche` prosegue in 110 che e` lo stesso stato in cui andrebbe comunque. Se vale 0 passa a 100 e se torna a 1 reincontra l errore, si allunga di diversi passi il numero di colpi di clock che servono per avere l uscita uguale a 1. Testbench reg ck,, RESET; macstati (ck,,, RESET);
RESET=0; =0; #7 RESET=1; #12 RESET=0; #10 =1 #200 =0 ; #10 $stop ; always #5 ck=~ck; Grafici CK Esercizio 1b - 2 La macchina a stati, descritta dalla seguente tabella dello stato successivo, si comporta di fatto come un contatore di fronti. Dopo un certo numero di fronti (con a 1) mette la sua unica uscita a 1. La macchina e` dotata di un ingresso RESET attivo alto che la riporta allo stato A. Tale macchina e` stata implementata con l assegnamento degli stati come da tabella delle transizioni (vedi tra parentesi) e realizzando le reti combinatorie in accordo con gli implicanti evidenziati nelle mappe di Karnaugh. Per un errore di progettazione del circuito stampato che la realizza c e` una interferenza che fa si che quando la macchina si trova nello stato 110, si attiva (con un piccolo ritardo) il clear (attivo alto) del flip-flop che ha come uscita Q2. Completare la descrizione VERILOG strutturale, i moduli richiamati nelle parti gia` disponibili nella soluzione, non sono da progettare (notare che tra l altro e` da completare l assign che simula l errore, manca la logica per gestire il reset e per ricavare ). Dire in poche righe come si evidenzia il malfunzionamento e che influenza ha sulla funzionalita` svolta dalla macchina. Scrivere un testbench che permetta di evidenziare una situazione di malfunzionamento e tracciare i grafici che si ottengono in uscita (solo uno zoom sulla zona dove si manifesta l errore). Si consiglia di ragionare sugli stati non sui codici binari per quanto possibile (cioe` non mettersi a fare i grafici dei singoli bit). Tabella dello stato successivo Tabella delle transizioni STATO 100 001 1111 0000 XF 001 (XF) XG 010 (XG) 1100 0 XH 011 (XH)
Verilog strutturale module macstati(ck,,,reset); input,ck,reset; output ; logicad2 xd2(d2,q0,q1,q2,) ; //simula la logica D1 logicad1 xd1(d1,q0,q1,q2,) ; //simula la logica D1 logicad0 xd0(d0,q0,q1,q2,) ; //simula la logica D0 flipflopd dd0(ck,d0,q0,clr) ; flipflopd dd1(ck,d1,q1,clr) ; flipflopd dd2(ck,d2,q2,clr2) ; assign #1 clr2= clr (q2 & q1 & q0 ).;//COMPLETARE! simula il disturbo assign clr=reset; assign z=q1& q0; RESET=0; =0; #7 RESET=1; #12 RESET=0; #10 =1 #200 =0 ; #10 $stop ; always #5 ck=~ck; Grafici CK STATO 1001 01001 010 Descrizione degli effetti del malfunzionamento Quando avviene il malfunzionamento il contenuto del flip-flop diventa 010 (XG). Se vale 0 non ci si accorge del difetto perche` prosegue in 110 che e` lo stesso stato in cui andrebbe comunque. Se vale 1 passa a 100 e se si innesca un loop per il quale non si arrivera` mai ad avere l uscita uguale a 1. Testbench reg ck,, RESET; macstati (ck,,, RESET);
Esercizio 1b - 3 La macchina a stati, descritta dalla seguente tabella dello stato successivo, si comporta di fatto come un contatore di fronti. Dopo un certo numero di fronti (con a 1) mette la sua unica uscita a 1.. La macchina e` dotata di un ingresso RESET_L attivo basso che la riporta allo stato A. Tale macchina e` stata implementata con l assegnamento degli stati come da tabella delle transizioni (vedi tra parentesi) e realizzando le reti combinatorie in accordo con gli implicanti evidenziati nelle mappe di Karnaugh. Per un errore di progettazione del circuito stampato che la realizza c e` una interferenza che fa si che quando la macchina si trova nello stato 101, si attiva (con un piccolo ritardo) il clear (attivo alto) del flip-flop che ha come uscita Q2. Completare la descrizione VERILOG strutturale, i moduli richiamati nelle parti gia` disponibili nella soluzione, non sono da progettare (notare che tra l altro e` da completare l assign che simula l errore, manca la logica per gestire il reset e per ricavare ). Dire in poche righe come si evidenzia il malfunzionamento e che influenza ha sulla funzionalita` svolta dalla macchina. Scrivere un testbench che permetta di evidenziare una situazione di malfunzionamento e tracciare i grafici che si ottengono in uscita (solo uno zoom sulla zona dove si manifesta l errore). Si consiglia di ragionare sugli stati non sui codici binari per quanto possibile (cioe` non mettersi a fare i grafici dei singoli bit). Tabella dello stato successivo Tabella delle transizioni i Verilog strutturale module macstati(ck,,,reset_l); input,ck,reset_l; output ; logicad2 xd2(d2,q0,q1,q2,) ; //simula la logica D1 logicad1 xd1(d1,q0,q1,q2,) ; //simula la logica D1 logicad0 xd0(d0,q0,q1,q2,) ; //simula la logica D0 flipflopd dd0(ck,d0,q0,clr) ; flipflopd dd1(ck,d1,q1,clr) ; flipflopd dd2(ck,d2,q2,clr2) ; assign #1 clr2= clr (q2 & q1 & q0);//completare! simula il disturbo assign z= q1 & q0; assign clr=~reset_l ; XF 001 (XF) 001 110 0 XG 010 (XG) XH 011 (XH) Descrizione degli effetti del malfunzionamento Quando avviene il malfunzionamento il contenuto del flip-flop diventa 001 (XF). Se vale 1 non ci si accorge del difetto perche` prosegue in 110 che e` lo stesso stato in cui andrebbe comunque. Se vale 0 rimane in 001 e quindi non si evidenzia alcun difetto. Testbench reg ck,, RESET; macstati (ck,,, RESET);
RESET=0; =0; #7 RESET=1; #12 RESET=0; #10 =1 #200 =0 ; #10 $stop ; always #5 ck=~ck; Esercizio 1b - 4 La macchina a stati, descritta dalla seguente tabella dello stato successivo, si comporta di fatto come un contatore di fronti. Dopo un certo numero di fronti (con a 1) mette la sua unica uscita a 1. La macchina e` dotata di un ingresso RESET_L attivo basso che la riporta allo stato A. Tale macchina e` stata implementata con l assegnamento degli stati come da tabella delle transizioni (vedi tra parentesi) e realizzando le reti combinatorie in accordo con gli implicanti evidenziati nelle mappe di Karnaugh. Per un errore di progettazione del circuito stampato che la realizza c e` una interferenza che fa si che quando la macchina si trova nello stato 110, si attiva (con un piccolo ritardo) il clear (attivo basso) del flip-flop che ha come uscita Q2. Completare la descrizione VERILOG strutturale, i moduli richiamati nelle parti gia` disponibili nella soluzione, non sono da progettare (notare che tra l altro e` da completare l assign che simula l errore, manca la logica per gestire il reset e per ricavare ). Dire in poche righe come si evidenzia il malfunzionamento e che influenza ha sulla funzionalita` svolta dalla macchina. Scrivere un testbench che permetta di evidenziare una situazione di malfunzionamento e tracciare i grafici che si ottengono in uscita (solo uno zoom sulla zona dove si manifesta l errore). Si consiglia di ragionare sugli stati non sui codici binari per quanto possibile (cioe` non mettersi a fare i grafici dei singoli bit). Grafici CK i Tabella dello stato successivo Tabella delle transizioni STATO 100 001 1111 0000 XF 001 (XF) XG 010 (XG) 1110 0 XH 011 (XH)
Verilog strutturale module macstati(ck,,,reset_l); input,ck,reset_l; output ; logicad2 xd2(d2,q0,q1,q2,) ; //simula la logica D1 logicad1 xd1(d1,q0,q1,q2,) ; //simula la logica D1 logicad0 xd0(d0,q0,q1,q2,) ; //simula la logica D0 flipflopd dd0(ck,d0,q0,clr_l) ; flipflopd dd1(ck,d1,q1,clr_l) ; flipflopd dd2(ck,d2,q2,clr2_l) ; assign #1 clr2_l= clr_l& (q2 q1 q0).;//completare! simula il disturbo assign z= q2 & q1 & q0; assign clr_l=reset _L ; macstati (ck,,, RESET); RESET=0; =0; #7 RESET=1; #12 RESET=0; #10 =1 #200 =0 ; #10 $stop ; always #5 ck=~ck; Grafici CK STATO 1001 010 010 010 010 Descrizione degli effetti del malfunzionamento Quando avviene il malfunzionamento il contenuto del flip-flop diventa 010 (XG). Sia che valga 0 o valga 1 rimane torna nello stato 110 che fa tornare in 010, quindi non si arrivera` mai ad avere l uscita uguale a 1. Testbench reg ck,, RESET;
Esercizio 2-1 Si vuole realizzare una macchina a stati di Moore che gestisca una luce di occupato in una cabina elettorale. La luce e` accesa quando qualcuno si trova dentro. Per identificare l ingresso/uscita della persona sono a disposizione due celle fotoelettriche in ingresso distanziate di pochi centimetri in orizzontale sul percorso di accesso. L ingresso della persona e` evidenziato dall attivazione della prima, da un momento in cui entrambe sono attive e dall attivazione di solo la seconda. L uscita e` caratterizzata dalla transizione opposta. Devono esistere tutte e tre le fasi perche` l ingresso o uscita sia ritenuta valida (cioe` la transazione e` finita quando le due celle fotoelettriche tornano inattive), tutti gli altri casi sono da considerarsi abbagli o ripensamenti sull ingresso o sull uscita. Gli ingressi sono quindi A e B (prima e seconda fotocellula), se la fotocellula e` attraversata da qualcosa A (o B) vale 0. Quindi durante l entrata di una persona la coppia di bit AB e` caratterizzata dalle seguenti fasi ognuna di lunghezza imprecisata (anche piu` colpi di clock) 11 01 01, la sequenza per l uscita della persona invece da 11 10 00 01 11. L uscita vale 1 se c e` una persona dentro, 0 se la cabina e` libera. Il dispositivo che verra` realizzato avra` un tasto di reset attivabile solo quando si e` dentro la cabina (cioe` la prima azione che si aspetta la macchina dopo il reset e` l uscita di una persona). Scrivere la tabella dello stato successivo, e l uscita di una macchina che faccia tutto questo, se ne faccia un assegnamento degli stati ragionato e ben giustificato e si scriva la descrizione Verilog algoritmica della macchina cosi` ideata. AB S 00 01 11 10 Stato codifica SA SA** SB SA SA** 0 SA 100 SB SC SB SA** SA** 0 SB 101 SC SC SA**/SB** SA** SD 0 SC 111 SD SA**/SC** SA** SE SD 0 SD 110 SE SE** SE** SE SF 1 SE 000 SF SG SE** SE** SF 1 SF 001 SG SG SH SE** SE**/SF** 1 SG 011 SH SE**/SG** SH SA SE** 1 SH 010 SI SI SL SL S* ** potevano essere scelti in modo diverso Giustificazione della scelta della codifica degli stati Il reset porta nello stato SE, per agevolare il reset dei flip-flop viene quindi scelto per quello 000 Viene usato il negato del primo bit per codificare l uscita. Gli altri sono in sequenza di Grey. Esercizio 2-2 Si vuole realizzare una macchina a stati di Moore che gestisca una luce di occupato in una cabina elettorale. La luce e` accesa quando qualcuno si trova dentro. Per identificare l ingresso/uscita della persona sono a disposizione due celle fotoelettriche in ingresso distanziate di pochi centimetri in orizzontale sul percorso di accesso. L ingresso della persona e` evidenziato dall attivazione della prima, da un momento in cui entrambe sono attive e dall attivazione di solo la seconda. L uscita e` caratterizzata dalla transizione opposta. Devono esistere tutte e tre le fasi perche` l ingresso o uscita sia ritenuta valida (cioe` la transazione e` finita quando le due celle fotoelettriche tornano inattive), tutti gli altri casi sono da considerarsi abbagli o ripensamenti sull ingresso o sull uscita. Gli ingressi sono quindi A e B (prima e seconda fotocellula), se la fotocellula e` attraversata da qualcosa A (o B) vale 0. Quindi durante l entrata di una persona la coppia di bit AB e` caratterizzata dalle seguenti fasi ognuna di lunghezza imprecisata (anche piu` colpi di clock) 11 01 01, la sequenza per l uscita della persona invece da 11 10 00 01 11. L uscita vale 1 se c e` una persona dentro, 0 se la cabina e` libera. Il dispositivo che verra` realizzato avra` un tasto di reset attivabile solo quando si e` fuori dalla cabina (cioe` la prima azione che si aspetta la macchina dopo il reset e` l entrata di una persona). Scrivere la tabella dello stato successivo, e l uscita di una macchina che faccia tutto questo, se ne faccia un assegnamento degli stati ragionato e ben giustificato e si scriva la descrizione Verilog algoritmica della macchina cosi` ideata. AB S 00 01 11 10 Stato codifica SA SA** SB SA SA** 0 SA 000 SB SC SB SA** SA** 0 SB 001 SC SC SA**/SB** SA** SD 0 SC 011 SD SA**/SC** SA** SE SD 0 SD 010 SE SE** SE** SE SF 1 SE 100 SF SG SE** SE** SF 1 SF 101 SG SG SH SE** SE**/SF** 1 SG 111 SH SE**/SG** SH SA SE** 1 SH 110 SI SI SL SL S* ** potevano essere scelti in modo diverso Giustificazione della scelta della codifica degli stati Il reset porta nello stato SA, per agevolare il reset dei flip-flop viene quindi scelto per quello 000 Viene usato il primo bit per codificare l uscita. Gli altri sono in sequenza di Grey.
Esercizio 2-3 Si vuole realizzare una macchina a stati di Moore che gestisca una luce di occupato in una cabina elettorale. La luce e` accesa quando qualcuno si trova dentro. Per identificare l ingresso/uscita della persona sono a disposizione due celle fotoelettriche in ingresso distanziate di pochi centimetri in orizzontale sul percorso di accesso. L ingresso della persona e` evidenziato dall attivazione della prima, da un momento in cui entrambe sono attive e dall attivazione di solo la seconda. L uscita e` caratterizzata dalla transizione opposta. Devono esistere tutte e tre le fasi perche` l ingresso o uscita sia ritenuta valida (cioe` la transazione e` finita quando le due celle fotoelettriche tornano inattive), tutti gli altri casi sono da considerarsi abbagli o ripensamenti sull ingresso o sull uscita. Gli ingressi sono quindi A e B (prima e seconda fotocellula), se la fotocellula e` attraversata da qualcosa A (o B) vale 1. Quindi durante l entrata di una persona la coppia di bit AB e` caratterizzata dalle seguenti fasi ognuna di lunghezza imprecisata (anche piu` colpi di clock) 01 01 00, la sequenza per l uscita della persona invece da 00 01 11 10 00. L uscita vale 1 se c e` una persona dentro, 0 se la cabina e` libera. Il dispositivo che verra` realizzato avra` un tasto di reset attivabile solo quando si e` fuori dalla cabina (cioe` la prima azione che si aspetta la macchina dopo il reset e` l entrata di una persona). Scrivere la tabella dello stato successivo, e l uscita di una macchina che faccia tutto questo, se ne faccia un assegnamento degli stati ragionato e ben giustificato e si scriva la descrizione Verilog algoritmica della macchina cosi` ideata. AB S 00 01 11 10 Stato codifica SA SA SA** SA** SB 0 SA 000 SB SA** SA** SC SB 0 SB 001 SC SA** SD SC SA**/SB** 0 SC 011 SD SE SD SA**/SC** SA** 0 SD 010 SE SE SF SE** SE** 1 SE 100 SF SE** SF SG SE** 1 SF 101 SG SE** SE**/SF** SG SH 1 SG 111 SH SA SE** SE**/SG** SH 1 SH 110 SI SI SL SL S* **potevano essere scelti in modo diverso Giustificazione della scelta della codifica degli stati Il reset porta nello stato SA, per agevolare il reset dei flip-flop viene quindi scelto per quello 000 Viene usato il primo bit per codificare l uscita. Gli altri sono in sequenza di Grey. Esercizio 2-4 Si vuole realizzare una macchina a stati di Moore che gestisca una luce di occupato in una cabina elettorale. La luce e` accesa quando qualcuno si trova dentro. Per identificare l ingresso/uscita della persona sono a disposizione due celle fotoelettriche in ingresso distanziate di pochi centimetri in orizzontale sul percorso di accesso. L ingresso della persona e` evidenziato dall attivazione della prima, da un momento in cui entrambe sono attive e dall attivazione di solo la seconda. L uscita e` caratterizzata dalla transizione opposta. Devono esistere tutte e tre le fasi perche` l ingresso o uscita sia ritenuta valida (cioe` la transazione e` finita quando le due celle fotoelettriche tornano inattive), tutti gli altri casi sono da considerarsi abbagli o ripensamenti sull ingresso o sull uscita. Gli ingressi sono quindi A e B (prima e seconda fotocellula), se la fotocellula e` attraversata da qualcosa A (o B) vale 1. Quindi durante l entrata di una persona la coppia di bit AB e` caratterizzata dalle seguenti fasi ognuna di lunghezza imprecisata (anche piu` colpi di clock) 01 01 00, la sequenza per l uscita della persona invece da 00 01 11 10 00. L uscita vale 1 se c e` una persona dentro, 0 se la cabina e` libera. Il dispositivo che verra` realizzato avra` un tasto di reset attivabile solo quando si e` dentro la cabina (cioe` la prima azione che si aspetta la macchina dopo il reset e` l uscita di una persona). Scrivere la tabella dello stato successivo, e l uscita di una macchina che faccia tutto questo, se ne faccia un assegnamento degli stati ragionato e ben giustificato e si scriva la descrizione Verilog algoritmica della macchina cosi` ideata. AB S 00 01 11 10 Stato codifica SA SA SA** SA** SB 0 SA 100 SB SA** SA** SC SB 0 SB 101 SC SA** SD SC SA**/SB** 0 SC 111 SD SE SD SA**/SC** SA* 0 SD 110 SE SE SF SE** SE** 1 SE 000 SF SE** SF SG SE** 1 SF 001 SG SE** SE**/SF** SG SH 1 SG 011 SH SA SE** SE**/SG** SH 1 SH 010 SI SI SL SL S* ** potevano essere scelti in modo diverso Giustificazione della scelta della codifica degli stati Il reset porta nello stato SE, per agevolare il reset dei flip-flop viene quindi scelto per quello 000 Viene usato il negato del primo bit per codificare l uscita. Gli altri sono in sequenza di Grey.