Esercitazioni a.a. 04/05 (file pdf).

Transcript

Esercitazioni a.a. 04/05 (file pdf).
Università di Udine - Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica
Laboratorio di Architettura degli Elaboratori - A.A. 2012/13
Circuiti logici, lezione 1
Sintetizzare circuiti combinatori che soddisfino le seguenti specifiche, poi
implementarli1 e simularne il comportamento2 mediante lo strumento TKGate3 .
Esercizio 1
Il circuito fornisce in uscita il valore prevalente di tre segnali d’ingresso binari
(cioè 1 se ci sono almeno due “1”, 0 altrimenti).
Esercizio 2
Dati quattro ingressi binari, il circuito fornisce due valori di uscita: il primo
assume il valore 1 se l’OR logico (disgiunzione) dei primi due ingressi è uguale
all’AND logico (congiunzione) dei rimanenti ingressi; la seconda uscita vale 1
se il NOT logico (negazione) della congiunzione dei primi due ingressi coincide
con il quarto ingresso.
Esercizio 3
Dato l’insieme A={a, b}, si possono codificare due suoi sottoinsiemi X, Y ⊆A
mediante le funzioni caratteristiche Xa , Xb , Ya , Yb , ove:
1 se c∈Z
Zc ,
0 se c∈Z
/
Ad esempio, hXa , Xb , Ya , Yb i=h1, 0, 1, 1i rappresenta X={a}, Y ={a, b}.
Assumendo che le funzioni caratteristiche siano codificate mediante segnali
d’ingresso binari, il circuito implementi la seguente funzione:
1 se X∩Y ( Y (ove ( significa ⊆ ma 6=)
F ,
0 altrimenti
1 Per progettare un circuito procedere come segue: aggiungere le componenti (menù Make:
Gate: ... ; I/O: Switch, LED) e collegarle tra loro con il mouse; infine salvare il progetto.
2 Procedere come segue:
intraprendere la simulazione (menù Simulate: Begin
Simulation); avviare la simulazione nella nuova finestra che viene aperta dal sistema (menù
Simulate: Run) ed intervenire con il mouse sugli switch per testare le configurazioni di input.
3 Per lavorare in laboratorio didattico autenticarsi su un server Linux, che mette a disposizione la versione 1.8.7 del software TKGate. Per installare il software su un calcolatore
personale consultare la pagina web del corso (vedi pagina web del docente); i problemi relativi
alla versione 1.8.7 di TKGate in ambiente Linux possono essere risolti come segue:
• acquisire i diritti di amministratore (root)
• eseguire il comando mkdir /usr/share/tkgate-1.8.7/libexec
• eseguire il comando ln -s /usr/bin/gsim /usr/share/tkgate-1.8.7/libexec/gsim
Circuiti logici, lezione 2
Sintetizzare circuiti combinatori che soddisfino le seguenti specifiche, poi
implementarli e simularne il comportamento mediante lo strumento TKGate.
Esercizio 1
• Progettare un circuito che, ricevuti 3 bit in ingresso, stabilisca se questi
rappresentano nella notazione binaria un numero divisibile per 4.
• Progettare un circuito che, ricevuti 4 bit in ingresso, stabilisca se questi
rappresentano nella notazione binaria un numero divisibile per 2 o per 5.
• Progettare un circuito che stabilisca se la rappresentazione binaria di una
cifra decimale {0, 1, . . . , 9} divisibile per 3. (Suggerimento: decidere il
numero di segnali d’ingresso necessari alla rappresentazione; configurazioni di ingresso che non corrispondono a cifre decimali sono gestite come
condizioni di indifferenza.)
Esercizio 2
a) Progettare un half-adder 4 e realizzarlo come modulo5 TKGate.
b) Utilizzando 4 moduli half-adder, costruire un circuito che ricevuto in ingresso un numero binario di 4 cifre, restituisca in uscita il numero binario
successivo. Infine trasformare il circuito in un modulo.
4 L’half-adder è un circuito combinatorio che somma due bits e genera il bit risultato ed un
riporto.
5 Per creare ed utilizzare un modulo nel file corrente procedere in tre passi: definire il modulo (menù Module: New, Edit Interfaces, Close); selezionare il modulo (doppio click con
il mouse) e progettarne il contenuto (menù Make: ... , Module: Module Input/Output)
scegliendo i nomi degli input e degli output uguali a quelli dell’interfaccia definita al primo
passo; creare istanze del modulo selezionando il modulo principale main+ e trascinando nella
finestra di progettazione il modulo definito nei due precedenti passi.
Circuiti logici, lezione 3
Esercizio 1
a) Utilizzanod due moduli half-adder, progettare un full-adder 6 come modulo
TKGate.
b) Dati due numeri naturali m ed n, rappresentati posizionalmente dalle
cifre binarie hm1 , m0 i e hn1 , n0 i, sommare m ed n utilizzando il modulo
full-adder progettato al punto a).
Esercizio 2
Come in lezione 1 - esercizio 3, codificare insiemi X, Y ⊆A={a, b} mediante
funzioni caratteristiche. Implementare l’operazione di differenza simmetrica di
insiemi:
X∆Y , (X∪Y )−(X∩Y )
ove le operazioni di unione, intersezione e differenza di insiemi sono progettate
mediante moduli TKGate.
6 Il full-adder è un circuito combinatorio che somma due bits ed un riporto e genera il bit
risultato ed un nuovo riporto.
Circuiti logici, lezione 4
Esercizio 1 Utilinzando il modulo dell’esercizio 2 b), lezione 2, costruire un
contatore sequenziale a 4 cifre, ossia un circuito sequenziale, senza ingressi e con
4 uscite che ad ogni ciclo di clock aggiorna il valore in uscita trasformandolo nel
numero binario successivo7 .
Esercizio 2
a) Progettare un decoder 8 a 2 ingressi.
b) Progettare un decoder a 2 ingressi dotato di un segnale aggiuntivo di
Enable, se il segnale Enable a 0 tutte le uscite valgono 0, se Enable vale 1
si comporta come un circuito decoder. Realizzae il circuito come modulo
TKGate.
c) Utilizzare il modulo dell’esercizio precedente per realizzare un decoder a
3 ingressi ed uno a 4 ingressi.
7 Per utilizzarre i flip-flop di tipo D in TKGate operare come segue: introdurre il flip-flop
(menù Make: Memory: Flip-Flop) ed il suo orologio (menù Make: I/O: Clock); collegare
l’ingresso D e le uscite Q, Q alla componente combinatoria del circuito; introdurre due switch
che contrallono rispettivamente gli ingressi C ed E di tutti i flip-flop. Il segnale C (Clear)
se posto a 0, azzera il contento dei flip-flop. Il segnale E (Enable) se posto a 1 blocca il
combiamento di stato nei flip-flop.
In modalità simulazione selezionare con il mouse il bottone con l’orologio (il quarto da
sinistra) affinchè il flip-flop assuma uno stato iniziale non indeterminato; settare gli ingressi
C ed E rispettivamente a 1 e 0 (lasciandoli in seguito inalterati) e modificare poi liberamente
gli input a livelli del circuito, alternandoli agli impulsi di orologio.
8 Il decoder è un circuito combinatorio con n input e 2n output, che attiva uno solo dei
segnali di uscita in dipendenza dalla configurazione d’ingresso.
Circuiti logici, lezione 5
Esercizio 1 Modificare il circuito contattore sequenziale dell’esercizio 1, scorsa
lezione, nel seguente modo.
• Aggiungere un segnale di abilitazione al conteggio, se il segnale zero il
contatore non cambia stato.
• Aggiungere un segnale di azzeramento, se il segnale assume il valore 1, lo
stato (e valore di uscita del contatore diventato 0.
• Trasfomare il contatore in modo che conti modulo 10, assio dopo aver
generato 9 in uscita, nel ciclo sucessivo genera 0.
Esercizio 2 Costuire un circuito che simuli il funzionamento di un ascensore
a due piani. Il circuito ha due segnali di ingressi che fungono da segnali di
chiamata al piano, ha due segnali di uscita che segnalano la presenza al piano
Si supponga inoltre che ascensore impiegati tre cicli di clock per passare da un
piano all’altro.
Esercizio 3 Costruire un multiplexer, con 2 ingressi di controllo e 4 di
segnale, a partire da un decoder a 2 ingressi.