Università degli Studi di Palermo Facoltà di Scienze MM.FF.NN. Corso di laurea in “Informatica” Programma di: "Architetture I" (9 CFU) Anno acc. 2008-2009 Codice 01478 Prof. Gaetano Gerardi Scopo del corso: Il corso si propone di fornire allo studente i concetti teorici generali alla base delle definizioni e realizzazioni delle moderne CPU e la conoscenza dei metodi fondamentali pratici di progetto e di realizzazione hardware sia con logica random che con logica programmata. Introduzione ai Sistemi Numerici: binari, ottale, esadecimale e tecniche di conversione di base. Complementazione ad r e a (r-1). Codici binari, decimali, con correzione di errore, riflessi. Codici alfanumerici. Logica binaria e sua realizzazione con AND, OR, NOT. Diagrammi temporali. Algebra booleana: Definizione e Teoremi fondamentali. Precedenza degli operatori, Diagrammi di Venn. Funzioni Booleane. Forme canoniche: Somma di prodotti e Prodotto di somme. Operatori binari. Rappresentazione delle funzioni Booleane con il metodo delle mappe fino a 4 variabili. Minimizzazione delle funzioni anche con l'uso delle condizioni "d'ont care". Metodo tabulare di minimizzazione: Determinazione e scelta dei primi implicanti. Logica combinatoria: Logica positiva e Logica negativa. Buffer tri-state. Bus uni e bidirezionali. Uso delle OR esclusive ed equivalence, generatori e checker di parità. Circuiti discriminatori e trigger di Schmitt. Rivelatori di fronti. Corse. Procedure di progetto e di analisi. Encoder, Decoder, Rivelatore e codificatore di parità. Conversione di codici. Comparator. Multiplexer e Demultiplexer. Analisi di circuiti logici combinatori. Realizzazioni di SHIFTER e di BARREL SHIFTER con l’uso di MUX. Timing Hazard statici e dinamici come si riparano: campionamento ritardato, unità di ritardo, K-map e filtri passa basso. Gestione delle periferiche: metodo di polling, dell’interrupt e polling e dell’interrupt vettorizzato con ROM/RAM-Mapp. Circuiti ausiliari per la connessione in cascata di comparatori e interrupt controller. Circuiti Aritmetici fondamentali: Circuiti di incremento e decremento binario; Somma binaria: Half Adder, Full Adder, Parallel adder, Look-Ahead Adder. Sottrazione Binaria. Complemento a 10 e a 9, complemento a 2 e ad 1. Sottrazione con numeri scritti in complemento ad 2 e ad 1. Somma e sottrazione BCD. Logica sequenziale: Gated Oscillator. Uso di circuiti CR ed RC per la realizzazione di: Clocks, Impulsi, Ritardi, Duplicatori di Frequenza. Implementazione dei principali Flip Flop (RS, D, T, JK) non clocked e clocked (Latch). Forme d'onda: quadra, impulsi positivi negativi, Definizione di tempi di salita e di discesa. Triggering con il primo o secondo fronte del clock. FlipFlop Master/Slave e Edge Triggered e loro equazione di stato. Circuiti Monostabili retriggerabili e non retriggerabili. Analisi dei circuiti sequenziali clocked: Tabelle, Diagrammi ed Equazioni di stato. Funzioni di ingresso dei Flip Flop, Progetto di circuiti sequenziali temporizzati, Assegnazione degli stati, Tabella di eccitazione dei Flip Flop: RS, JK, D, T. – Tel 091.6615081 – Fax 091.6615063– Email: [email protected] Università degli Studi di Palermo - Facoltà di Scienze MM. FF. NN. Pagina 2 Procedure di progetto di un Circuito Sequenziale ed uso delle Tabelle di Eccitazione, Equazioni di stato, Diagrammi temporali. Rivelatori di sequenze Circuiti sequenziali. Registri di tipo latched e non latched, Registri a scorrimento. Circuito di calcolo e check del CRC, Contatori ad anello, contatore Johnson. Contatore Gray con uscite decodificate, Contatori Binari e BCD di tipo ripple e paralleli, Up e Down. Contatori modulo N. Contatori programmabili asincroni e sincroni. Memorie Statiche RAM e ROM Register File dual port- Static Random Access MemoryFunzioni logiche realizzate con l’uso di ROM, PLA, PAL, CPLD, FPGA. Microprogrammazione: Controllore micro programmato per sequenze singole e multiple; Mapping-Prom; Realizzazione hardware di Salti condizionati e non. Sovrapposizione temporale delle operazioni di fetch ed execution: Registro Pipeline. Program counter realizzato con Incrementer+storage Registro. Stack LIFO e Chiamate a Subroutine; Overlapping dei campi di microistruzioni e gestione di loop. Gestione delle periferiche: Status polling e Polled interrupt. Linguaggio di programmazione Hardware: VHDL. Livelli di astrazione per la definizione di un progetto: Livello Strutturale, Dataflaw, Behavioral; Linguaggio VHDL per la definizione di circuiti digitali combinatori e Funzione Booleane: AND, NOR, Multiplexer, Decoders, Convertitori di codice, Demultiplexer, Parallel Adder e Parallel Subtractor, ALU, Shifter. Definizione VHDL di Latches e Flip-Flop con e senza abilitazione, sincroni ed asincroni. Definizione VHDL di un circuito sequenziale a partire da un diagramma di stati (macchine di Mealy e di Moore). Definizione VHDL di: Shift Register di tipo PIPO, SIPO, PISO, Universale, Contatori Binari UP, DOWN e UP/DOWN con clear e preset sincroni ed asincroni. Registri di Memoria statica. Sintesi, implementazione hardware, map e Place&Route, simulazione behavioural e Post-Route Uso del Simulazione PSPICE (student edition) Simulazione di sistemi combinatori e sequenziali Uso del Sintetizzatore Xilinx (ISE WebPACK) Sintesi e Simulazione di sistemi combinatori e sequenziali definite in VHDL. Modalità esami: Esami orali durante il quale lo studente deve dimostrare padronanza dei concetti teorici in programma e padronanza nell’uso dei due CAD fondamentali PSPICE e XILINX (ISE WebPACK) anche attraverso la soluzione di uno o più problemi. Libri di testo: G. Gerardi “Introduzione alle reti logiche Combinatorie e Sequenziali” (DISPENSE) G. Gerardi “Architettura Microprogrammata di Computer” (DISPENSE) Testi Consigliati M. Morris Mano & Charles R.Kime "Reti Logiche" (traduzione dell'edizione italiana a cura di Antonio Gentile, Filippo Sorbello e Salvatore Vitabile) Addison WESLEY Donnamaie E. White “Bit-Slice Design: Controllers and ALUs” published by Garland STPM press,1981, scaricabile da: http://www10.edacafe.com HARDY Electronics AB “VHDL Handbook” scaricabile da web Manuali CAD: PSPICE: Manuale d'uso Simulatore (fornito con il sintetizzatore/simulatore) Xilinx: Manuale d'uso ISE Web PACK (fornito con il sistema) – Tel 091.6615081 – Fax 091.6615063– Email: [email protected]