PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.
II. Sumator pe un bit
II.1. Scopul lucrării
Lucrarea propune proiectarea unui sumator pe un bit.
Este prezentată introducerea teoretică şi se cere
implementarea sumatorului şi simularea funcţionării acestuia.
II.2. Descriere teoretică a lucrării
Un sumator pe M biţi are la intrare două numere pe M
biţi şi la ieşire o sumă de M biţi. De asemenea există o intrare
pentru transportul din rangul anterior (Carry In) şi încă o ieşire
pentru transportul spre rangul superior (Carry Out).
Schema sumatorului este prezentată mai jos :
Transport din
rangul anterior
M biţi intrare
M biţi ieşire
M biţi intrare
Fig 2.1. Sumatorul
În unităţile de calcul moderne sunt folosite circuite de
adunare şi scădere implementate paralel. La baza oricărei
structuri de adunare se află sumatorul complet pe un bit.
Construcţia acestuia începe de la construirea tabelului
de adevar pentru o operaţie de adunare.
21
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU
Sumatorul complet pe un bit este conceput pentru
adunarea a două numere pe câte un bit fiecare returnând
drept rezultat un bit de sumă şi unul de transport. Acesta are
două intrări fiind cele două numere iar cea de-a treia fiind
transportul pe intrare conform figurii de mai jos:
Fig. 2.2. Schema bloc a sumatorului elementar
Pentru adunarea a două numere pe un bit fiecare ar fi
fost suficient numai intrarea a şi b.
Totuşi în unele situaţii. Pentru ca acest modul să poată
fi folosit în sumatoare extinse pe mai mulţi biţi poate fi necesar
ca să existe în plus, ca intrare, şi eventualul transport rezultat
dintr-un proces anterior.
În practică, pentru realizarea circuitelor de adunare a
doi operanzi pe mai mult de un bit, se folosesc mai multe
asemenea blocuri interconectate între ele.
Pentru proiectarea sumatorului de mai sus se foloseşte
urmatorul tabel de adevăr:
Ai Bi Ti Si Ti-1
0 0 0 0 0
0 0 1 1 0
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
22
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.
O soluţie de implementare a circuitului folosind şi porţi
XOR (disponibile în structurile logice actuale) ar fi următoarea:
Fig. 2.3. Schema logică a sumatorului elementar
• întârzierea / poartă @ 12ns
• Þ timpul de răspuns al circuitului @ 24ns
Prin factorizare se pot obţine forme mai simple, realizabile cu
circuite mai puţine:
Si Ai Bi Ti Ti Bi Ti Ai Bi Ti Bi Ti
Si Ai Bi Ti Ai Bi Ti Ai Bi Ti
Fig. 2.4. Schema logică a sumei
23
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU
• Timpul de întârziere XOR @ 18ns Þ timpul de răspuns
al circuitului @ 36ns
• Se preferă forma cu un nr. minim de niveluri pentru că
în general se impune un timp cât mai mic de realizare
al sumei.
• Transportul pe un singur rang, Ti-1 :
Fig. 2.5. Schema logică a transportului
T i 1 Ai Bi T i Ai Bi T i Ai Bi T i Ai Bi T i
Bi T i Ai Ai Ai T i Bi Bi Ai Bi T i T i
Ai Bi Ai T i Bi T i
II.3. Implementarea practică a sumatorului elementar
La fel ca în cazul circuitului care determină drumul
optim vom prezenta toţi paşi necesari pentru a implementa
circuitul sumator elementar.
Pentru implementarea şi simularea circuitului fom folosi
Xilinx ISE 8.1i.
24
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.
Pasul 1: Folosind File-New Project, vom crea un proiect nou
corespunzător acestui circuit.
Pasul 2: Denumim proiectului, iar la Top Level Source Type
selectăm Schematic.
25
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU
Pasul 3: Verificam daca familia este XC9500 CPLDs.
Pasul 4: Apasam butonul New Source, pentru a crea un fişier
nou în proiect.
26
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.
Pasul 5: Alegem din lista tipul de sursa-Schematic, dsenumim
fişierului şi trecem la pasul următor.
Pasul 6: Schema logică se realizează folosind din bara de
meniu Symbols-Add Symbols pentru a plasa porţile logice pe
27
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU
placă, apoi Add Wires pentru a conecta porţile şi nu în ultimul
rând folosim IO Markers pentru a desena intrările, respectiv
ieşirea circuitului.
Pasul 7: Selectăm din meniul ferestrei Process-Implement Top
Module, pentru a implementa schema creată.
28
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.
Pasul 8: Acest raport indică faptul că schema este corect
corectă din punct de vedere al funcţionalităţii.
Pasul 9: Alegem modul Behavioral Simulation pentru a simula
funcţionarea schemei implementatea la pasul anterior.
29
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU
Pasul 10: În fereastra Processes, folosim Create New Source.
Pasul 11: Seletam din listă obţiunea Test Bench WaveForm,
urmând să denumim fişierului test.
30
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.
Pasul 12: Verificăm dacă fişierul test este asociat fişierului
sursă, dupa care trecem la pasul următor.
Pasul 13: În fereastra deschisă selectăm Combinatorial,
deoarece circuitul implementat face parte din categoria
circuitelor combinaţionale
31
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU
Pasul 14: În fişierul test asignăm valori intrărilor, conform
tabelului de adevăr.
Pasul 15: Folosind Model Sim vom obţine fişierul de simulare.
II.4. Teme propuse
32
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.
Să se implementeze şi apoi simuleze cicuitul sumator
pe 4 biţi.
33