Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D

Documenti analoghi
Esercizi Risolti RETI LOGICHE T (Modulo 2)

Reti Logiche T. Esercizi reti sequenziali sincrone

Modelli per le macchine digitali

Capitolo 7. Reti sincrone. 7.1 Elaborazione sincrona Analisi e Sintesi 7.3 Registri e Contatori

Prefazione del Prof. Filippo Sorbello... VII. Prefazione del Prof. Mauro Olivieri... Prefazione degli autori...

Reti sequenziali notevoli: registri, registri a scorrimento, contatori ing. Alessandro Cilardo

Calcolatori Elettronici T. Complementi ed Esercizi di Reti Logiche

Flip-flop e loro applicazioni

Esercizio 1. Utilizzare FF di tipo D (come ovvio dalla figura, sensibili al fronte di discesa del clock). Progettare il circuito con un PLA.

RETI LOGICHE T Analisi, sintesi e composizione di Reti Sequenziali Sincrone

Elettronica Sistemi Digitali 09. Flip-Flop

RETI LOGICHE T Ingegneria Informatica. Esercitazione 3 Reti Sequenziali Sincrone

Tutorato di Calcolatori Elettronici. Corso di laurea in Ingegneria Biomedica Elettrica, Elettronica e Informatica

13/01/2005 COGNOME NOME MATRICOLA. SOLUZIONE ESERCIZIO N. 1 Pagina 1. Si consideri la rete sequenziale asincrona rappresentata in figura:

Prova d esame di Reti Logiche T 13 Luglio 2016

Un contatore è un registro che evolve secondo una sequenza predefinita di stati ordinati all applicazione di un impulso di ingresso

Livello logico digitale

Reti Logiche LA. Complementi ed esercizi di Reti Sequenziali Sincrone

DOMANDA N. 1 Quale frequenza del clock minimizza il numero di stati della rete sequenziale sincrona?

Capitolo 6. Reti asincrone. Elaborazione asincrona Procedimenti di sintesi e analisi Memorie binarie

Prova d esame di Reti Logiche T 11Settembre 2015 COGNOME:.. NOME:.. MATRICOLA:

x y z F x y z F

Calcolatori Elettronici

Prova d esame di Reti Logiche T 29 Gennaio 2016 COGNOME:.. NOME:.. MATRICOLA:

Prova d esame di Reti Logiche T 09 Gennaio 2015 COGNOME:.. NOME:.. MATRICOLA:

LSS Reti Logiche: circuiti sequenziali

AXO Architettura dei Calcolatori e Sistemi Operativi. reti sequenziali

Le Alee. La presenza di ritardi nei dispositivi utilizzati può avere l effetto di modificare il comportamento delle uscite in alcuni casi

Capitolo 6. Reti asincrone. 6.1 Elaborazione asincrona. Esigenze. 6.1 Elaborazione asincrona 6.2 Memorie binarie 6.3 Analisi e Sintesi

Calcolatori Elettronici

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

05EKL-Progetto di Circuiti Digitali. Richiami di Reti Logiche

ESERCIZIO N. 1 - PAGINA 1

Introduzione. Progetto di Contatori sincroni. Contatori definizioni caratteristiche. Contatori

Flip flop: tempificazione latch ed edge-triggered

Progettazione diretta. Reti Logiche T Ingegneria Informatica

Sintesi di Reti sequenziali Sincrone

Esercizi sulle Reti Sequenziali Sincronizzate

Circuiti sequenziali. Circuiti sequenziali e applicazioni

Macchine sincrone. In teoria. Solo un modello teorico NON ESISTE NELLA PRATICA

Capitolo 6. Reti asincrone. 6.1 Struttura, comportamento e corretto impiego. Reti sequenziali asincrone (struttura)

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

Esercizi Logica Digitale,Circuiti e Bus

Tutorato di Calcolatori Elettronici Battista Biggio - Sebastiano Pomata. Corso di Laurea in Ingegneria Elettronica

Reti logiche (2) Circuiti sequenziali

Q1 D. CK Qn CK Q1. E3x - Presentazione della lezione E3

Reti logiche (2) Circuiti sequenziali

FONDAMENTI DI INFORMATICA Lezione n. 7. Esercizi di progetto di circuiti sequenziali

Campionamento e memoria. Sommario. Sommario. M. Favalli

Circuiti sequenziali

Calcolatori Elettronici A a.a. 2008/2009

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Circuiti Logici

ANALISI E PROGETTO DI CIRCUITI SEQUENZIALI

I Indice. Prefazione. Capitolo 1 Introduzione 1

Esercizio 1 Domanda 1

Circuiti sincroni circuiti sequenziali:bistabili e latch

Esercitazione del 26/03/ Soluzioni

21/10/14. Contatori. Registri: contatori. Sintesi del contatore modulo 8 (1) Sintesi del contatore modulo 8 (2) J 0 = K 0 = 1 J 1 = K 1 = y 0

Calcolatori Elettronici T. Complementi ed Esercizi di Reti Logiche

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 6. Prof. Rosario Cerbone

Il Livello Logico-Digitale. I circuiti sequenziali

Esercizio 4.3. Esercizio 4.4

Capitolo 6. Reti asincrone. 6.1 Elaborazione asincrona. Reti sequenziali asincrone (struttura) Reti sequenziali asincrone (comportamento)

Fondamenti di informatica II 1. Sintesi di reti logiche sequenziali

Prova d esame di Reti Logiche T 12Giugno 2015 COGNOME:.. NOME:.. MATRICOLA:

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno

I CONTATORI. Definizioni

Reti sequenziali. Nord

Appello di Progettazione di Sistemi Digitali 16 Settembre Docenti: Proff. Gorla e Massini

Prova d esame di Reti Logiche T 10 Giugno 2016

Capitolo 6. Reti asincrone. 6.1 Elaborazione asincrona. Reti sequenziali asincrone (struttura) Reti sequenziali asincrone (comportamento)

Esercizio 3 (Sintesi minima di una rete sequenziale sincrona)

Seconda esercitazione

Esercizio 1. Sintesi ottima SP e NAND

Sintesi Sequenziale Sincrona

Università di Roma La Sapienza, Facoltà di Ingegneria Laurea Specialistica in Ingegneria Informatica, a.a Reti Logiche

NOME e COGNOME (stampatello): Compito A. Esercizio 1 (8 punti) Minimizzare l automa in tabella e disegnare l automa minimo.

Calcolatori Elettronici B a.a. 2004/2005

Reti Logiche T. Esercizi reti sequenziali asincrone

3 Reti Sequenziali Fondamenti di Informatica P2 Ingegneria Meccatronica

A.C. Neve Esercizi Digitali 1

Macchine sequenziali

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Corso di Calcolatori Elettronici I Flip-flop

Introduzione. Sintesi Sequenziale Sincrona. Modello del circuito sequenziale. Progetto e strumenti. Il modello di un circuito sincrono può essere

Flip-flop, registri, la macchina a stati finiti

Circuiti Sequenziali

Sintesi di Reti Sequenziali Sincrone

I flip-flop ed il register file. Sommario

Problema 1. In un sistema di comunicazione digitale vengono trasferiti messaggi costituiti da al più N max. ) con un ulteriore bit (b k

Calcolatori Elettronici Gli Automi

ISTITUTO DI ISTRUZIONE SUPERIORE J.C. MAXWELL PROGRAMMA SVOLTO: ELETTROTECNICA ED ELETTRONICA

UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI INGEGNERIA Corso di Reti Logiche A

Calcolatori Elettronici

I REGISTRI. Reti autonome e contatori

AB=AB. Porte logiche elementari. Livello fisico. Universalità delle porte NAND. Elementi di memoria: flip-flop e registri AA= A. Porta NAND.

Registri. Registri semplici

Capitolo 4 Reti Sequenziali. Reti Logiche T

Esercitazioni di Reti Logiche. Lezione 4

CORSO DI LAUREA: Ingegneria Informatica e dell Automazione

Transcript:

Reti Sincrone

Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D Le variabili di stato future sono quelle all ingresso dei FF-D mentre le variabili di stato presente sono le uscite dei FF-D. Lo stato cambia al fronte del clock. Il clock deve quindi essere tale che lo stato futuro sia stabile prima dell arrivo del fronte Il metodo di sintesi ed analisi di una rete sincrona è analogo a quello delle reti asincrone, ma ci sono meno restrizioni, ad esempio le configurazioni di stati fra cui esistono transizioni non devono essere necessariamente adiacenti. Gli stati non devono essere necessariamente stabili per le configurazioni di ingresso che li hanno generati (vedi fine blocco sulle reti sequenziali) Il Flip Flop assume quindi una grande importanza in quanto blocco elementare di memorizzazione di un bit

Componenti sincroni di largo impiego Registri Semplice Con write enable (WE) Con output enable (OE) Universal Shift register (USR) => Quattro modalità Contatori Riconoscitore di sequenza Generatore di forme d onda

Reti sincrone: come realizzare il ritardo T 0 Ingressi Uscite Stato presente s 1 Rete combinatoria ideale s f1 Stato futuro s k s fk Q D F.F.-D ts max = max(ts 1,,ts k ) Q D F.F.-D REGISTRO Q F.F.-D D T 0 4 t Rmax : tempo di risposta ; t SUmin : tempo di set-up Clock di periodo T 0. T 0 deve essere tale che tutti I segnali s fi e le uscite siano stabili prima del fronte e rispettando inoltre il t setup

Registri in cascata e tempo di HOLD ATTENZIONE: Se l uscita di un registro risulta essere l ingresso di un altro registro, occorre che il tempo di risposta (T R ) sia sufficientemente elevato in modo tale che sia rispettato il tempo di hold (T H ) del registro a valle, quindi: T R > T H I O Clock R1 R2 T SU T H Clock Ingresso di R1 I tn T R Se T R < T H non viene rispettato il tempo di hold!! 5 Uscita di R1 = Ingresso di R2 I t(n-1) I t(n-1) I tn

Sincronizzazione di segnali asincroni Se le condizioni espresse nel lucido precedente sono soddisfatte, la cascata di 2 registri può essere utilizzata per sincronizzare degli ingressi asincroni Segnali asincroni Segnali sincroni Sistema esterno asincrono Rete sincrona R1 R2 Rete di sincronizzazione Clock I segnali sincroni arrivano subito dopo il fronte del clock o comunque con anticipo rispetto al fronte successivo I segnali asincroni possono arrivare in qualsiasi momento, siccome c è il rischio che essi pervengano durante un tempo di setup, è talvolta necessario sincronizzarli tramite lo schema sopra 6

Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato (arbitraria) Sintesi MINIMA di F e G Tabella delle transizioni SCHEMA LOGICO i(t n ) F (rete combinatoria) G (rete combinatoria) u(t n ) T 0 REGISTRO s(t n +T 0 ) s*(t n ) 7

Registro D 0 Q 0 R Registro con OE OE OE D 0 R Q 0 CLK > D n-1 Q n-1 Qui, cioè nella rete a monte, viene calcolato, durante il periodo di clock, il valore futuro del registro nel clock successivo CLK > D n-1 Q n-1 SE OE (Output Enable) attivo, allora l uscita vale come in un normale registro. Se OE non è attivo l uscita va in alta impedenza. Si usa in schemi dove l uscita può essere controllata da più reti di cui è garantito che una sola abbia OE attivo OE D i CLK D > FF-D Q Q i All interno n FF-D che condividono il clock D i CLK D > FF-D Q Q i OE si usa allo stesso modo per tutti i FF componenti ed ha effetto immediato, cioè non agisce sullo stato futuro, ma direttamente sulle uscite

Registro con WE WE WE D 0 R Q 0 > D n-1 Q n-1 Se Write Enable è non attivo, allora lo stato futuro del registro sarà uguale a quello presente. Se WE è attivo il registro funziona normalmente, cioè campiona gli ingressi sul fronte. 0 1 A MUX D i CLK Questo schema ci consente di scegliere lo stato futuro in base alla configurazione degli ingressi di controllo del registro D > FF-D Q Q i Quando WE è non attivo il registro è in memorizzazione (HOLD) e gli ingressi non vengono campionati

Contatore binario x4 3 0 2 Grafo degli stati 1 Stato presente Stato futuro 0 1 1 2 2 3 3 0 Tabella di flusso Q 1 Q 0 Q 1f Q 0f 00 01 01 10 10 11 11 00 Tabella delle transizioni Andamento temporale Clock Q 1 \ Q 0 0 1 0 0 1 1 1 0 Q 1f Q 1 \Q 0 0 1 0 1 0 1 1 0 Q 0f Q 0 Q 1 Q 1 Q 1f = Q 1 Q 0 + Q 1 Q 0 Q 0f =Q 0 Q 0 10

Contatore binario x16: funzionamento Q 3 Q 2 Q 1 Q 0 L uscita è un numero binario a 4 bit. Ad Contatore x 16 ogni impulso di clock l uscita viene incrementata di 1 (modulo 16). Non è presente alcun ingresso. Clock Grafo degli stati Tabella delle transizioni 15 0 1 Q 3 Q 2 Q 1 Q 0 Q 3f Q 2f Q 1f Q 0f 0000 0001 0001 0010 2 1110 1111 1111 0000 16 stati 4 bit per la codifica dello stato 11

Contatore binario x16: realizzazione 1 0 0 0 0 CI 4 BIT a 0 ADDER a 1 a 2 a 3 s 0 s 1 s 2 s 3 b 0 b 1 b 2 b 3 CO D 0 D 1 D 2 D 3 Q 0 Q 1 Q 2 Q 3 Q 0 Q 1 Q 2 Q 3 12

Contatore: Reset, Load, Up/Down, Enable + Prioritario Reset*: il conteggio viene portato a 0 Load*: carica un valore imposto dall esterno L 3 L 2 L 1 L 0 Enable: abilita il conteggio - Prioritario U_D: incremento del conteggio o decremento Reset* Load* Enable U_D L[3..0] 13 4 N.B. Sono tutti comandi sincroni

Load & Reset Load* Reset* S i L i 1 0 Di Espressione degli ingressi del registro (i=0..3) D i = Reset* (Load*. S i + Load. L i ) Reset* = 0 D i = 0 Reset* = 1 D i = Load*. S i + Load. L i Load* = 0 D i = L i (caricamento) Load* = 1 D i = S i (conteggio) 14

Up/Down & Enable U_D Enable CI a 0 a n-1 Espressione degli ingressi a i (i=0..3) e CI CI = Enable U_D a i = Enable U_D Enable = 0 viene sommato, al valore corrente dello stato, 0 il contatore è fermo Enable = 1 bisogna considerare il valore del segnale U_D Se U_D = 1 si torna alla configurazione di figura: conteggio in avanti Se U_D = 0 si somma al valore corrente -1 (1111): conteggio all indietro 15

Contatore: comandi sincroni e funzionamento Clock Q[2..0] Q*[2..0] 0 0 1 2 3 0 0 1 2 3 2 1 2 3 1 2 6 4 5 6 0 1 2 3 0 0 1 2 3 2 1 2 3 1 2 6 4 5 6 7 Enable Reset* U_D Load* L[2..0] x x x x x x x x x x x x x 1 x 6 4 x x x 16

Contatore: riduzione della base di conteggio x16? x10 RESET* Q 3 Q 2 Q 1 Q 0 9 x16 Ipotesi: U_D = 1 (conta in avanti) Cosa cambia se si vuole comunque disporre anche di un segnale RESET esterno? 1001 9 L 3 L 2 L 1 L 0 LOAD* Q 3 Q 2 Q 1 Q 0 x16 Ipotesi: U_D = 0 (conta indietro) Cosa cambia se si vuole comunque disporre anche di un segnale LOAD esterno? 0 Esercizio: a partire da un contatore binario x16 realizzare un contatore BCD, prevedendo i comandi di Enable, Load*, Reset* e U_D 17

Clock Divisore di frequenza: esempio con un contatore x 8 Q[2..0] 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0... Q 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Q 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 Q 2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 Osservando le uscite del contatore si nota che: frequenza(q 0 ) = f CLOCK /2 frequenza(q 1 ) = f CLOCK /4 frequenza(q 2 ) = f CLOCK /8 18

Riconoscitore di sequenze: grafo degli stati Riconoscitore di sequenze di 3 bit: 011. L uscita si porta ad 1 appena la sequenza viene riconosciuta e a 0 appena la sequenza di ingresso è fuori sequenza i: 00011011011110101011010 U: 00001111111000000001110 i,u 1,0 0,0 0,0 0,0 I 0,0 A 1,0 0,0 B 1,1 C 0,1 D 1,1 E 1,1 F 1,0 0,1 1,0 19

Diagramma dei tempi Clock Ingresso (i) 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 Stato Presente I I I A B C D E F I I A B C D A Stato futuro I I A B C D E F I I A B C D A Uscita(U) 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 Sulla base dell ingresso presente e dello stato presente la rete calcola lo stato futuro e l uscita. Lo stato futuro diventerà stato presente a seguito del prossimo fronte del clock. 20

i,u Riconoscitore di sequenze: grafo degli stati 1,0 0,0 0,0 0,0 I 0,0 A 1,0 B 1,1 C 0,1 D 1,1 E 1,1 F 0,0 Mealy 1,0 1,0 0,1 i 0 Come risulta l uscita utilizzando Moore? 1 0 0 I,0 0 A,0 1 B,0 1 C,1 0 D,1 1 E,1 1 F,1 0 1 0 Moore 1 21

Riconoscitore di sequenze: tabella delle transizioni Stato presente i 0 1 I A I A A B B A C C D I D A E E A F F D I Tabella di flusso dello stato futuro Codifica dello stato I: 000 A: 001 B: 010 C: 011 D: 100 E: 101 F: 110 S 0 S 1 S 2 i 0 1 000 001 000 001 001 010 010 001 011 011 100 000 100 001 101 101 001 110 110 100 000 Tabella delle transizioni dello stato futuro Nota: non occorre preoccuparsi di come codificare lo stato interno per evitare problemi di alea. 22

Riconoscitore di sequenze: mappa di Karnaugh Tabella delle transizioni Mappa di Karnaugh i 0 1 S 2 i 00 01 11 10 S 0 S 1 S 2 000 001 000 001 001 010 010 001 011 011 100 000 100 001 101 101 001 110 S 0 S 1 00 001 000 010 001 01 001 011 000 100 11 100 000 --- --- 10 001 101 110 001 S 0f S 1f S 2f 110 100 000 S 0f S 1f S 2f 23

Riconoscitore di sequenze: reti minima di aggiornamento dello stato S 0 S 1 S 2 i 00 01 11 10 Mappe di Karnaugh 00 01 11 10 Nota: non occorre preoccuparsi del problema dell alea statica! 00 001 000 010 001 01 001 011 000 100 11 100 000 --- --- 10 001 101 110 001 S 0f S 1f S 2f S 2 i 00 01 11 10 00 1 0 0 1 S 0 S 1 01 1 1 0 0 S 0 S 1 11 0 0 - - 10 1 1 0 1 S 0 S 1 S 2 i 00 0 0 0 0 01 0 0 0 1 11 1 0 - - 10 0 1 1 0 S 0f = S 0 S 1 i + S 1 S 2 i + S 0 S 1 i S 2 i 00 01 11 10 00 0 0 1 0 01 0 1 0 0 11 0 0 - - 10 0 0 1 0 S 2f = S 1 i + S 0 S 1 S 2 + S 0 S 1 S 2 24 S 1f = S 0 S 1 S 2 i + S 1 S 2 i

Riconoscitore di sequenze: la funzione di uscita S 0 S 1 S 2 U 000 0 001 0 010 0 011 1 100 1 101 1 110 1 111 - Tabella della verità della funzione di uscita (Modello di Moore) S 0 S 1 Mappa di Karnaugh S 2 0 1 00 0 0 01 0 1 11 1-10 1 1 U U =S 0 + S 1 S 2 Alea? 25

Riconoscitore di sequenze: stati equivalenti 1,0 i,u 0,0 0,0 0,0 I 0,0 A 1,0 0,0 B 1,1 C 0,1 D 1,1 0,1 E 1,1 F 1,0 1,0 1,1 Osservando il grafo degli stati è possibile notare che sia C che F vengono raggiunti con la stessa configurazione di ingresso (1) e presentano la stessa uscita (1). Per le due configurazioni di ingresso transitano negli stessi stati con la stessa uscita: con ingresso 0 in D con uscita 1 e con ingresso 1 in I con uscita 0. E possibile quindi non aggiungere lo stato F: da E con ingresso 1 si ha uscita 1 e stato fututo C. 26

Generatore di forme d onda: una prima soluzione Clock Uscita X Y 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 X 0 0 1 0 1 1 0 1 Y 0 1 0 0 1 0 1 1 x8 Q 0 Q 1 Q 2 A0 A1 A2 0 1 2 3 4 5 6 7 La forma d onda generata è affetta dal problema dell alea? E ovvio che in questo particolare caso, siccome stiamo generando una forma d onda, vorremmo che essa non sia 27 affetta da alea Uscita Versione ai morsetti di principio possono essere aggiunti ingressi per configurare la forma d onda o per abilitare e disabilitare la generazione U

Generatore di forme d onda Una forma d onda è un segnale che assume il valore alto o basso in precisi istanti temporali e che poi, una volta terminata la sequenza, solitamente ricomincia ciclicamente. Un generatore di forme d onda è una rete sequenziale con un uscita che rappresenta la forma d onda stessa. Essendo l uscita la forma d onda si preferisce che non sia affetta da alee per non confondere le alee con la forma d onda generata. Per progettare un generatore di forme d onda c è una rete che tiene conto dell istante al quale siamo (tipicamente un contatore) Ed una rete che, a partire dallo stato presente (le uscite del contatore) genera in modo combinatorio l uscita. Nel lucido precedente tale rete era un multiplexer Per avere un generatore di forma d onda programmabile (cioè avere la possibilità di modificare la forma d onda generata) servono degli ingressi aggiuntivi che consentono la configurazione della forma d onda da generare (nel lucido precedente veniva usato un registro) Per essere sicuri che la forma d onda non sia affetta da alee ci sono due condizioni: lo stato deve variare fra configurazioni adiacenti (il conteggio binario non va bene in questo caso). Inoltre la rete F deve essere ottenuta con coperture tali da non ammettere alee statiche sulla variazioni dell ingresso singolo Esistono diversi tipi di contatori non binari, in essi la sequenza degli stati è diversa dall ordine dei numeri binari Contatore johnson : conto fino a 2n Contatore gray: conto fino a 2 n

Contatore Johnson (configurazioni di stato adiacenti) 000 100 110 001 011 111 (y 2 y 1 y 0 ) Unico bit che cambia y 2 y 1 y 0 00 01 11 10 0 100 000 001-1 110-011 111 (Y 2 Y 1 Y 0 ) y 1 y 0 y 1 y 0 y 1 y 0 y 2 00 01 11 10 y 2 00 01 11 10 y 2 00 01 11 10 0 1 0 0-0 0 0 0-0 0 0 1-1 1-0 1 1 1-1 1 1 0-1 1 Y 2 Y 1 Y 0 Y 2 = /y 0 Y 1 = y 2 Y 0 = y 1 29

Generazione di forme d onda: con contatore Johnson D Q y 2 D Q y 1 D Q y 0 /Q Equazioni di stato: Y 2 =y 0 Y 1 = y 2 Y 0 = y 1 Struttura di un contatore Johnson a 3 bit R.C. U Clock Stato (y 2 y 1 y 0 ) 0 4 6 7 3 1 0 4 6 7 Valore decimale dello stato 0 0 1 1 0 0 0 0 1 1 F 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 30