Calcolatori Elettronici

Documenti analoghi
Calcolatori Elettronici A a.a. 2008/2009. RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin

Macchine Sequenziali

COMPITO A Esercizio 1 (13 punti) Dato il seguente automa:

Prova d esame di Reti Logiche T 10 Giugno 2016

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

Reti sequenziali. Nord

FSM: Macchine a Stati Finiti

Esercizio 1 (12 punti) Minimizzare il numero di stati dell automa qui rappresentato. Disegnare l automa minimo.

Flip-flop Macchine sequenziali

Circuiti Sequenziali & Somma FP

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Esercitazioni di Reti Logiche. Lezione 4

Compito A. Esercizio 1 (13 punti) Minimizzare l automa descritto dalla seguente tabella degli stati

(competenze digitali) ESERCIZI SUI CIRCUITI SEQUENZIALI

Fondamenti di informatica II 1. Sintesi di reti logiche sequenziali

ESERCIZI SU AUTOMI A STATI FINITI

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

I CONTATORI. Definizioni

Sintesi di Reti Sequenziali Sincrone

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

Circuiti sequenziali

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

Esercitazioni di Reti Logiche. Lezione 5

Introduzione - Modello. Introduzione - progetto e strumenti

un insieme finito di segnali d uscita U (nell ascensore U={stare fermo, salire, scendere})

ITIS E. BARSANTI POMIGLIANO D ARCO CORSO DI SISTEMI ELETTRONICI AUTOMATICI Prof. Paolo Bisconti AUTOMA A STATI FINITI

Macchine sequenziali. Automa a Stati Finiti (ASF)

A.C. Neve Esercizi Digitali 1

Flip-flop e loro applicazioni

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

Sintesi di Reti sequenziali Sincrone

Esercitazioni di Reti Logiche

Registri. «a2» Copyright Daniele Giacomini --

I Indice. Prefazione. Capitolo 1 Introduzione 1

FSM: Macchine a Stati Finiti

Progetto di un Interruttore a Combinazione

PROGRAMMA DEL DÌ AUTOMATICI

Architetture degli Elaboratori I II Compito di Esonero (A) - 16/1/1997

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione.

Esercizio sugli automi di Moore

Flip-flop, registri, la macchina a stati finiti

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Macchine sequenziali

Aritmetica dei Calcolatori

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

Introduzione ai microcontrollori

I CONTATORI SINCRONI

Esercizio sugli automi di Moore

Circuiti sequenziali e latch

Circuiti Combinatori

Aritmetica dei Calcolatori Elettronici

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Macchine sequenziali sincrone. Macchine sincrone

PSPICE simulazione di circuiti digitali Flip Flop M/S, Moltiplicatore parallelo, Memoria SRAM, sommatore, comparatore

La codifica digitale

Domande di Reti Logiche compito del 29/1/2016

La codifica. dell informazione

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

Sintesi di Reti Sequenziali Sincrone

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Flip flop: tempificazione latch ed edge-triggered

I bistabili ed il register file

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI

ESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli -

Algebra di Boole. Fondamenti di Informatica per Meccanici Energetici - Biomedici 1. Politecnico di Torino Ottobre Mr. Boole. Variabile booleana

Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario

Circuiti sequenziali. Circuiti sequenziali e applicazioni

Lezione 7 ALU: Moltiplicazione e divisione

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI

La codifica. dell informazione

Calcolatori Elettronici Reti Sequenziali Asincrone

Automi a stati finiti

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Rappresentazione dell informazione

Algebra di Boole X Y Z V. Algebra di Boole

Corso di Architettura degli Elaboratori

Calcolatori Elettronici T. Complementi ed Esercizi di Reti Logiche

Firmware Division & Floating pointer adder

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Transcript:

Calcolatori Elettronici RETI SEQUENZIALI : ESERCIZI Massimiliano Giacomin 1

Implementazione di contatori Un contatore è un dispositivo sequenziale che aggiorna periodicamente il suo stato secondo una regola che riprende il susseguirsi dei numeri naturali, ad esempio: 0000 0001 0010 0011 0100 - Prendiamo qui in considerazione solo contatori sincroni, ovvero che aggiornano il loro stato ad ogni ciclo di clock Contatore modulo k: conta da 0 a k-1 e pone l uscita a 1 quando arriva a k-1 un contatore modulo k può essere usato come demoltiplicatore del segnale orologio: produce un segnale di uscita pari a 1 ogni k cicli di clock 2

Esercizio 1 Progettare e implementare un contatore modulo 4 utilizzando il modello di Moore. Il circuito realizzato deve avere come ingresso EN, che abilita la transizione (EN = 1: conteggio prosegue, EN = 0: conteggio si interrompe fino a quando EN torna a 1) e un uscita Z, posta a 1 ogni quattro cicli di clock (assumendo EN pari a 1). EN Contatore Z (NB: può essre usato come demoltiplicatore del segnale orologio) 3

Automa EN EN EN EN S0 0 EN S1 0 EN EN S2 0 EN S3 1 Stati = {S0, S1, S2, S3} S0 : conteggio = 0 S1 : conteggio = 1 S2 : conteggio = 2 S3 : conteggio = 3 Codifica degli stati Sono necessari 2 bit per codificare gli stati; le combinazioni possono ad esempio corrispondere al conteggio in binario S0 00 S1 01 S2 10 S3 11 4

Tabella delle transizioni e delle uscite Stato presente Ingresso Stato futuro y 1 y 0 EN y 1 ' y 0 ' 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 Stato Uscita presente y 1 y 0 z 0 0 0 0 1 0 1 0 0 1 1 1 z = y 1 y 0 y 0 '=y 0 EN + y 0 EN y 1 '=y 1 y 0 EN + y 1 y 0 + y 1 EN 5

Macchina sequenziale EN z y 1 y 0 y 0 ' y 1 ' FF FF clock Indica OR esclusivo 6

NOTA: contatore modulo k usando il modello di Mealy EN/0 EN/0 EN/0 EN/0 EN/0 EN/0 S0 S1 S2 S3 EN/1 EN/0 Stati = {S0, S1, S2, S3} S0 : conteggio = 0 S1 : conteggio = 1 S2 : conteggio = 2 S3 : conteggio = 3 Codifica stati S0 00 S1 01 S2 10 S3 11 Realizzazione circuitale lasciata per esercizio 7

Diagramma temporale con EN sempre attivo C U 0 1 2 3 0 Domanda: cosa succede durante il ciclo 3 se EN passa a 0? E con il modello di Moore? 8

Esercizio 2: implementazione di un sommatore sequenziale Progettare un sommatore che ad ogni ciclo di clock riceva in ingresso la coppia dei bit corrispondenti dei due operandi da sommare, a partire dalla posizione meno significativa. Il sommatore deve restituire in uscita, nello stesso ciclo di clock, la cifra corrispondente del risultato 9

Ingressi, uscite, automa Vengono sommate coppie di bit a i e b i di due operandi I = {00, 01, 10, 11} L uscita c i appartiene a U = {0, 1} a i b i c i Automa: obbligatorio Mealy (risultato nello stesso ciclo di clock). Si distinguono 2 stati: riporto presente (R1) e riporto assente (R0) 00/0 01/0 01/1 R0 11/0 00/1 R1 11/1 10/1 10/0 10

Codifica degli stati Stato y R0 0 R1 1 E sufficiente un solo Flip-flop (di tipo D) 11

Tabella delle transizioni e delle uscite a i b i y y' c i 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 Formula per il flip-flop D y' = b i y+a i y+a i b i Formula per la variabile di uscita c i = a i b i y+ a i b i y+ a i b i y + a i b i y 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 In pratica, c i è la somma di a i, b i ed y, y è il corrispondente riporto Sono le espressioni delle uscite di un full adder!!! 12

Full Adder a i b i + r i+1 r i c i In ingresso due cifre da sommare e il riporto, in uscita la cifra e il riporto risultanti 13

Macchina sequenziale per il sommatore a 2 stati y a i b i Full adder FF c i y' clock 14

Esercizio 3: macchina distributrice del caffè Progettare una macchina distributrice del caffè che accetta una serie di monete e, non appena raggiunto l importo previsto, eroga il caffè. Si facciano le seguenti assunzioni: La macchina accetta monete da 10 e da 20 centesimi (è necessario prevedere che in un ciclo di clock l utente non inserisca alcuna moneta) Non appena la somma introdotta raggiunge 50 centesimi (nello stesso ciclo di clock in cui è inserita l ultima moneta) la macchina pone l uscita (a un bit) a 1 La macchina non dà resto 15

Codifica degli ingressi e dell uscita Per gli ingressi servono due variabili x 1 e x 2 (nessuna moneta, 10, 50). Possibile codifica: x 1 x 0 0 0 nessuna moneta 0 1 moneta da 10 1 0 moneta da 20 Per l uscita è sufficiente un bit: z 0 prodotto non erogato 1 erogazione prodotto x 1 x 0 z 16

Diagramma degli stati E necessario adottare Mealy 00/0 01/0 00/0 0 10 10/0 10/0 01/0 01/0 00/0 20 30 00/0 10/0 01/0 01/1 40 10/1 00/0 10/1 Gli stati sono stati chiamati convenzionalmente con l importo raggiunto 17

Assegnamento degli stati Per 5 stati sono necessari 3 flip-flop (tipo D): y 2, y 1, y 0 Facciamo il seguente assegnamento degli stati Stato y 2 y 1 y 0 0 0 0 0 10 0 0 1 20 0 1 0 30 0 1 1 40 1 0 0 Deriviamo dall automa la tabella delle transizioni e delle uscite 18

Tabella delle transizioni e delle uscite Stato presente Ingressi Stato prossimo Uscite y 2 y 1 y 0 x 1 x 0 y 0 y 1 y 2 z 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 19

Schema macchina sequenziale Funzione di uscita z x 1 x 0 Funzione di stato futuro y 0 ' y 1 ' y 2 ' y 0 FF y 1 FF y 2 FF clock 20

Diagramma degli stati di una macchina che non ruba i soldi (mantenendo il resto per il prossimo caffè) 00/0 01/0 00/0 0 10 10/0 10/0 01/0 01/0 00/0 20 30 00/0 10/0 01/0 01/1 40 10/1 00/0 10/1 21

ESERCIZI PROPOSTI PER SOLUZIONE INDIVIDUALE 22

Contatore modulo 4 bidirezionale Progettare un contatore modulo 4 che conti sia in avanti sia all indietro, a seconda del valore della variabile di ingresso x: Se x = 0 il circuito conta in avanti, se x = 1 il circuito conta all indietro Se il valore del conteggio è 2 la variabile di uscita z viene posta a 1, altrimenti viene posta a 0 La transizione bel conteggio avviene ad ogni impulso di clock (a seconda del valore di x e del valore attuale del conteggio) 23

Macchina a stati finiti e assegnazioni S0 0/0 1/0 S1 4 stati 2 flip-flop 1/0 S3 0/0 0/1 1/0 1/1 S2 0/0 Stato y 1 y 0 S0 0 0 S1 0 1 S2 1 0 S3 1 1 24

Tabella delle transizioni e delle uscite Stato Ingresso Stato futuro Uscita presente y 1 y 0 x y 1 ' y 0 ' z 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 z = y 1 y 0 y 0 '=y 1 y 0 +y 1 y 0 =y 0 y 1 '=y 1 y 0 x+ y 1 y 0 x+ y 1 y 0 x+ y 1 y 0 x 25

Macchina sequenziale per il contatore bidirezionale x y 1 y 0. 4 porte di AND y 0 ' y 1 ' z FF FF clock 26

Esercizio: vantaggi nel tennis Progettare una macchina sequenziale che sia in grado di segnalare il vincitore di un game di tennis. Per semplicità, si assume di partire dal punteggio di 40 pari (e quindi il game viene vinto dal giocatore che supera l altro di due punti). La macchina riceve ad ogni ciclo di clock: 00 se nessuno dei due giocatori ha realizzato un nuovo punto 01 se il punto è realizzato dal giocatore 1 10 se il punto è realizzato dal giocatore 2 La macchina deve segnalare il vincitore ponendo la sua uscita a 01 (giocatore 1) o 10 (giocatore 2) nel ciclo di clock successivo a quello in cui si riceve l ultimo punto, quindi riportarsi nello stato iniziale. NB: si usi il modello di Moore. 27

I = {00, 01, 10} U = {00, 01, 10} x 1 z 1 x 0 z 0 00 V1 00 01 Vinc1 01 10 01 XX 00 V pari 00 01 10 V2 00 XX 10 Vinc2 10 00 28

Per esercizio: 1) proseguire fino alla realizzazione circuitale 2) scrivere l automa che gestisce l intero game (a partire da 0-0) 29

NOTA: possibile realizzazione con Mealy 00/00 01/01 V1 00/00 10/00 01/00 pari 10/00 01/00 V2 10/10 00/00 Per esercizio: esaminare le differenze (cosa succede subito dopo che un giocatore ha vinto?) 30

Riconoscitore di sequenze Progettare una macchina che: Legge sequenze di 0 e 1 di lunghezza arbitraria (le cifre sono lette successivamente ad ogni ciclo di clock) Produce in uscita 1 ogni volta che ha riconosciuto la sequenza 0111 (durante il ciclo di clock in cui viene ricevuto l ultimo 1) 31

I={0,1}, U= {0,1} Identifichiamo 4 stati che indichiamo con -, 0, 01 e 011 : i nomi rappresentano la parte della sottosequenza finora riconosciuta Lo stato - è lo stato iniziale: nessun carattere della sottosequenza cercata è stato riconosciuto 1/1 0/0-0 011 1/0 0/0 Per 4 stati bastano 2 flip-flop (tipo D) 0/0 1/0 1/0 0/0 01 Facciamo il seguente assegnamento degli stati Stato y 1 y 0-0 0 0 0 1 01 1 0 011 1 1 32

Tabella delle transizioni e delle uscite Stato Ingresso Stato futuro Uscita presente y 1 y 0 x y 1 ' y 0 ' z 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 y 1 ' = y 1 y 0 x + y 1 y 0 x = x(y 1 y 0 ) z = y 1 y 0 x y 0 ' = y 1 y 0 x + y 1 y 0 x + y 1 y 0 x + y 1 y 0 x + y 1 y 0 x= y 1 x + y 1 y 0 +y 1 x = x+ y 1 y 0 33

Realizzazione circuitale x y 1 z y 1 ' y 0 y 0 ' FF FF clock 34