Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo...

28
Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15, Aula 3 Nuovi edifici Mercoledì ore 14 – 15.45 Aula 9 NE Giovedì ore 11.30 – 13.15, Aula 3 NE Ricevimento studenti: lunedì e giovedì ore 15-17 Organizzazione Quattro settimane per richiami di elettronica digitale, circuiti programmabili, architettura e caratteristiche hardware e software dei sistemi a microprocessore. Verifica intermedia Tre settimane di lezioni ed esercitazioni relative a sistemi a microcontrollore, basate su un microcontrollore commerciale. Verifiche finali Possibilità di modifica in relazione ai prerequisiti degli studenti Sistemi Elettronici Programmabili (SELPR)

Transcript of Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo...

Page 1: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore PontarelliIII Ciclo

Dal 2 Marzo 2009 al 24 Aprile 2009

Lezioni Lunedì ore 11.30 – 13.15, Aula 3 Nuovi edifici

Mercoledì ore 14 – 15.45 Aula 9 NEGiovedì ore 11.30 – 13.15, Aula 3 NE

Ricevimento studenti: lunedì e giovedì ore 15-17

Organizzazione• Quattro settimane per richiami di elettronica digitale, circuiti programmabili,

architettura e caratteristiche hardware e software dei sistemi a microprocessore.• Verifica intermedia • Tre settimane di lezioni ed esercitazioni relative a sistemi a microcontrollore, basate

su un microcontrollore commerciale.• Verifiche finali

Possibilità di modifica in relazione ai prerequisiti degli studenti

Sistemi Elettronici Programmabili (SELPR)

Page 2: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-2

Introduzione: dal continuo al discretoRichiami di elettronica digitale: Sistemi numerici e algoritmi di conversioneFunzioni logiche e aritmetiche Circuiti combinatori e sequenzialiPLD e FPGA: Architetture; celle elementari e strutture complesseMicrocalcolatori e microprocessori: ArchitettureCaratteristiche hardware dei microprocessori: Lunghezza di parola; Velocità; RegistriMemorie permanenti e di lavoroSequenza di esecuzione di una istruzioneCaratteristiche software dei microprocessori: Codici operativi; Modi indirizzamentoProgetto di un microprocessoreSistemi elettronici digitali: definizioni; architetture di interconnessioneLe perifericheLa gestione dello scambio dei datiLa comunicazione tra sistemi digitali: Trasmissione seriale; Trasmissione parallela; Riconoscimento e correzione degli erroriLinguaggi e strumenti di programmazionePresentazione di un microcontrollore commerciale:• Architettura• Set di istruzione• Tecniche di programmazione• Sviluppo di un progettoIn funzione della disponibilità di posti di lavoro, sono previste esercitazioni pratiche sui sistemi presentati

MATERIALE DIDATTICOTrasparenze e dispense del corso www.uniroma2.it/didattica (selpr1) e www.elet.uniroma2.it (approfondimenti)Carl Hamacher, Z. Vranesic, S. Zaky: “Introduzione all’architettura dei Calcolatori” , MacGraw- HillH.A. Farhat: “Digital Design and Computer Organization”, CRC Press

Programma

Page 3: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-3

Dal Continuo al Discreto

• I fenomeni naturali sono intrinsecamente continui - temperatura, velocità, ecc.

• La misura di una grandezza è intrinsecamente discreta numero • La precisione può essere spinta quanto si vuole• Strumenti analogici e digitali conversione A/D e D/A• Simboli e numeri. Codici binari.• Simboli rappresentano oggetti come lettere dell’alfabeto, o qualità e

possono – non sempre - essere messi in ordine funzioni logiche• I numeri possono essere ordinati, sommati, moltiplicati, ecc.

concetto indipendente dalla rappresentazione• I sistemi numerici: decimale, binario. Valore posizionale• Le cifre sono i simboli usati in un sistema in una certa base 0-9 per

la base 10, 0-1 per la base 2, 0-7 per la base 8.

Page 4: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-4

• Equivalente decimale di un numero in base B

D = Pi Bi

• Equivalente binario di un numero decimale Divisioni successive per 2 I resti sono i bit successivi a partire da B0

• Algoritmi simili per numeri frazionari (<1) successive moltiplicazioni per passaggio da decimale a binario

• Half adder e full adder di numeri binari

Cin B A SUM Cout  

0 0 0 0 0  

0 0 1 1 0 Half adder

0 1 0 1 0  

0 1 1 0 1  

1 0 0 1 0  

1 0 1 0 1  

1 1 0 0 1  

1 1 1 1 1  

Full Adder

Adder

Page 5: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-5

Numeri negativi Complemento a 2Serve per fare le sottrazioni sommando il complemento a due del sottraendoIl bit più significativo dà il segno: 1 corrisponde a numero negativoPassaggio da un numero al suo complemento a 2 Complementare tutti i bit e sommare 1

0000 0 0001 1 …..011171111-1 1110-2 …..1001-7 1000-8ESEMPI 4 bit da –8 a +7 Si prendono i quattro bit meno

significativi e si trascura il riporto+1 = 0001-1 = 1111 10000

 +5 = 0101 -2 = 1110 10011

Page 6: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-6

Codici (1)

Codici Stabiliscono una corrispondenza biunivoca tra simboli/numeri e rappresentazione in termini di bit.

Lunghezza di un codice Numero di bit usato per rappresentare un simbolo/numero Con N bit possono essere rappresentati al massimo 2N “oggetti” diversi Codici ridondanti per facilitare il riconoscimento di errori, l’esecuzione di operazioni, ecc.

 Codici pesati e non pesati per numeri binario, BCD a 4 o 5 bit, eccesso 3.

 Codice ASCII (American Standard Code for Information Interchange) 7 bit per lettere e numeri i numeri hanno come primi bit 011, seguiti dai 4 bit BCD tutte le tastiere.

Bar code.

Page 7: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-7

Codici (2)

 Codifica e decodifica: dal simbolo/ numero ai bit e viceversa Funzioni logiche Display 7 segmenti.

Funzioni logiche relazioni tra variabili che possono essere “vere” o “false” – “1” o “0” Esempio: lampada accesa (“1”) se l’interruttore è acceso (“1) e c’è la corrente (“1”).

Byte: 8 bit - Digit: 4 bit - Parola o word: numero di bit corrispondente al parallelismo del sistema di elaborazione.

Le funzioni logiche sono espresse ed elaborate con le regole dell’algebra booleana.

Page 8: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-8

L’algebra booleana si basa su alcune funzioni elementari, OR, o somma logica, AND, o moltiplicazione logica e NOT, o negazione logica.

        F= A+B F vero se A o B vero o se sono veri sia A che B

        F=A.B F vero solo se sia che B sono veri.

        F=A/ F vero se A falso, F falso se A vero.

        “Vero”, “true”, corrisponde a “1” e “falso”, “false”, corrisponde a “0”.

 

OR AND NOT

A B F A B F A F

0 0 0 0 0 0 0 1

0 1 1 0 1 0 1 0

1 0 1 1 0 0    

1 1 1 1 1 1     

Algebra Booleana e Porte Elementari

Tabelle della verità

Page 9: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-9

Altre funzioni elementari sono:

• NOR OR negato• NAND AND negatoFunzioni più complesse sono rappresentabili con tabelle della verità e con

opportune interconnessioni di funzioni elementari

CIRCUITI LOGICI Data una espressione booleana, è possibile realizzare un circuito logico

corrispondente e viceversa. I circuiti logici lavorano tra due tensioni corrispondenti rispettivamente a “1” e a “0”. Sono in genere la tensione minima e la massima del circuito – terra e alimentazione e si dice che lavora in logica positiva se a “1” corrisponde la tensione più alta e a “0” la tensione più bassa.

 Per realizzare un circuito logico Funzione logica, p.e. tabella della verità

Semplificazione con leggi algebra Implementazione

Page 10: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-10

Il negato di una somma è uguale al prodotto dei negati

Il negato di un prodotto è uguale alla somma dei negati

  Leggi varie per semplificare le espressioni booleane

Possibile utilizzare solo NOR o solo NAND per realizzare la generica funzione booleana

SIMBOLI DELLE FUNZIONI ELEMENTARI

AND OR INV NAND NOR

De Morgan

Page 11: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-11

Tabelle di Look-up (LUT)

Una funzione logica può essere realizzata con un circuito logico – or, and, nor,,,,- o

In alternativa, può essere realizzata utilizzando memorie elettroniche (RAM, ROM, EEPROM, FLASH…) partendo direttamente dalla tabella della verità.

Una funzione logica ad n variabili fa corrispondere ad ognuna delle 2n combinazioni degli ingressi un valore per l’uscita: può essere implementata con una memoria 2n x1, con gli indirizzi corrispondenti alle combinazioni degli ingressi.

Questa soluzione è utilizzata per esempio nei FPGA

Page 12: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-12

Componenti Usati nei Circuiti Logici

I circuiti logici che considereremo nel corso sono realizzati con transistori MOS che possono essere schematizzati come interruttori aperti o chiusi, con resistenze, effettive o equivalenti, e capacità.

I simboli relativi sono i seguenti

NMOS PMOS R C

Page 13: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-13

Circuiti Logici ElementariI circuiti logici si basano sulla realizzazione di inverter, o, meglio, di blocchi circuitali che, in funzione degli ingressi, colleghino l’uscita all’alimentazione (pull-up, o PUN, Pull Up Network) o a terra (pull-down, o PDN, Pull Down Network). Possono essere usate diverse tecnologie: la più usata attualmente è la CMOS.

 L’inverter di base esegue la funzione “negazione”, cioè

INOUT

PUN

PDN

IN OUT

IN OUT

VDD

GND

Page 14: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-14

Altri Circuiti Logici Elementari

B

A

VDD

OUT

B

GND

NAND

OUT

GND

B

VDD

A

A

NOR

Page 15: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-15

Funzioni Complesse

)( CDBAY Da cui

)( CDBAY

B

A B

C D

A

C

D GND

VDD

Y

Funzioni più complesse si realizzano considerando prima il PDN; cioè realizzando la funzione che dà l’uscita bassa: il PUN è quindi realizzato come duale del PDN.ESEMPIO:

Page 16: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-16

Transmission Gate

Vc

Vout

Vin

Vc

FAN IN e FAN OUT: Fan in è il numero di porte di ingresso ammesse per la tecnologia considerata, mentre il fan out è il numero di ingressi che l’uscita di una porta logica può pilotare rispettando i limiti di capacità e di ritardo ammessi

Coppia NMOS/PMOS che conduce sia il valore alto che il valore basso in modo ottimale

Page 17: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-17

CIRCUITI DINAMICI

• Informazione memorizzata in capacità

• Numero MOS metà dei CMOS+2

• I due MOS collegati ad un clock per precarica e valutazione

• L’informazione si perde se la frequenza del clock è troppo bassa

OUT

VDD

PDN

Cl

t

Page 18: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-18

Circuiti Combinatori e Sequenziali

• I circuiti esaminati finora sono detti “combinatori”: l’uscita dipende solo dagli ingressi attuali

• I circuiti nei quali l’uscita dipende dagli ingressi attuali e dagli ingressi precedenti sono detti “sequenziali” -esempio tipico è il flip flop RS che memorizza un bit in logica statica

R S Qn+1

0 0 QN

0 1 1

1 0 0

1 1 NV

Q

R

S

QR Q

S

Q

Page 19: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-19

Il Clock

Sistemi complessi richiedono un segnale di clock per sincronizzare le operazioni dei diversi componenti e circuiti La memorizzazione avviene in elementi sensibili al livello – latches - o al fronte –flip flop.

Flip Flop con funzionalità diverse (RS, D, JK) sincronizzati

LATCH RS SENSIBILE AL LIVELLO

R

S

Q

CK

Q

R Q

S

CK

Q

Page 20: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-20

Latch D DATA

S Q

R

CK

D D Q

CK

Q Q

FLIP FLOP D Master –Slave Commuta sul fronte negativo

Q

D Q

D Q

CK

D Q

MS

CK

Q Q Q

Flip-Flop

Page 21: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-21

R

S

Q

Q

J

CK

K

FLIP FLOP JK

J K Qn+1

0 0 QN

0 1 1

1 0 0

1 1 QN/

D Q

MS

D Q

MS

D Q

MS

D Q

MS

CK

QQ Q Q

Registro a scorrimento

Flip-Flop

Page 22: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-22

Memorie

Un sistema di calcolo necessita di memorie per i programmi e per i dati

 MEMORIA CENTRALE e MEMORIA DI MASSA

La memoria centrale serve per i dati da elaborare e deve avere velocità elevata Accesso casuale, cioè il tempo di accesso non dipende dall’indirizzo Tecnologia microelettronica (RAM e ROM)

  La memoria di massa serve per i programmi e per dati che normalmente non vengono usati immediatamente nelle elaborazioni Tempi di accesso elevati (ms) e tecnologia elettromeccanica (hard disk)

  Memorie RAM R/W: lettura e scrittura con tempi comparabili Memorie ROM, Read Only Memories FLASH, EEPROM:

conservano le informazioni anche senza l’alimentazione o memorie permanenti scritte una volta per tutte o memorie per le quali la procedura di scrittura richiede tempi molto elevati e ha una complessità maggiore della lettura lettura in tempi come le RAM

Page 23: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-23

Architettura di una Ram B i t L i n e

C E L L A

W o r d L i n e

L 2 N - 11

A 0

.

.

.A M - 1

0

1

K

2 M - 1

.

.

.

.

.DEC

RIGA

A M

A M + 1

A M + N - 1

0 … .

D E C C O L O N N A

S E N S E A M P L I F I E R

I / O D A T A

Page 24: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-24

Dispositivi Logici Programmabili (PLD)        OR di AND

        ROM

        PAL

        PLA FUSE

OUT

.

.

. 0 A22

A1 A0

Page 25: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-25

A B C

OUT

FUSE

CAB

A B C D

B C D Convenzione:

PAL       Numero limitato di AND di ingresso con connessioni programmabili. ·        Connessioni fisse verso l’OR di uscita

Page 26: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-26

PLA (Programmable Logic Array )

FPGA Field Programmable Logic Array

 Sono i componenti più moderni: consentono fino a 4 livelli di logica combinatoria e inoltre contengono registri Possibilità di realizzare sistemi anche sequenziali, modificabili via software

ABCD

Si programmano le interconnessioni degli AND e degli OR

Page 27: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-27

Microprocessori e Microcalcolatori (1)

Un microcalcolatore è un sistema elettronico programmabile sincrono basato su circuiti integrati ad elevata integrazione collegati attraverso opportune interfacce ad organi di I/O e normalmente rivolti ad un singolo utilizzatore.

 

Un microprocessore ( o ALU, Arithmetic and Logic Unit) è un circuito integrato ad elevata integrazione in grado di eseguire operazioni logiche, aritmetiche e di controllo su dati generati dal microprocessore stesso o fornito dall’esterno.

 

La struttura di un microcalcolatore è quella classica detta di Von Neumann

CONTROLLO

MEMORIA

ALU

OUTPUTINPUT

Page 28: Prof. Adelio Salsano - Dott. Stefano Bertazzoni – Ing. Salvatore Pontarelli III Ciclo Dal 2 Marzo 2009 al 24 Aprile 2009 Lezioni Lunedì ore 11.30 – 13.15,

Sistemi elettronici programmabili 1-28

Microcalcolatori e Microprocessori (2)

• Il Microprocessore (o CPU, Central Processing Unit) in genere contiene una ALU (Arithmetic and Logic Unit), un’unità di controllo e i circuiti di interfaccia verso le periferiche.

• La Memoria può essere esterna al microprocessore.• I microprocessori si distinguono per lunghezza di parola, corrispondente

al numero di bit trattati in parallelo, oltre per le altre caratteristiche hardware e software, quali la velocità, le caratteristiche elettriche, l’architettura, il set di istruzioni, ecc.

• Lo scambio dei dati tra i diversi circuiti di un microcalcolatore e all’interno del microprocessore va da collegamenti punto-punto ai sistemi a bus.

• In genere si individua un dispositivo sorgente e uno o più dispositivi destinatari, con il dispositivo sorgente che generea il dato e un eventuale segnale di controllo e il dispositivo destinatario che riceve il dato e, quando necessario, conferma l’avvenuta ricezione.