(A & B & C)+(!A & !B & C)+(A & B & !C)

Download Report

Transcript (A & B & C)+(!A & !B & C)+(A & B & !C)

Diskrečiųjų schemų sintezės
elementai
(modulis T170M012)
2012
Kauno technologjios universitetas
Elektroninių ir matavimo sistemų katedra
Doc. dr. Žilvinas Nakutis
Apie ką turėtumėte sužinoti ir
išmokti

Mintermus ir maxtermus
 Sandaugų sumos ir sumų sandaugos loginių
schemų formas
 Karno (Carnough maps, K-maps) diagramų
metodo naudojimą sintezei
 Espresso algoritmą
viso 46
2
Sintezės uždavinys
 Transliuoti
(pakeisti) aukštesnio
abstrakcijos lygmens (pvz., algoritminį)
aprašą į žemesnio lygmens aprašą (pvz.,
loginius ventilius)
 Loginė
sintezė – RTL aprašo (VHDL,
Verilog) transformavimas į ventilius
viso 46
3
Loginio įrenginio aprašų įvairovė
viso 46
4
Sintezės uždavinys
Skaitmeninės logikos sintezė – tai loginės grandinės
sukūrimas pagal užduotą aprašą loginėmis lygtimis arba
teisingumo lentele.
Užduotis:
sukurkite įrenginio grandinę,
duotai teisingumo lentelei
(Digital design with CPLD
applications and VHDL, 2000
psl. 68).
viso 46
5
Sandaugų sumos (angl. Sum-of-Products) ir sumų
sandaugos (angl. Product-of-Sums) formos

Sandaugos narys (angl. Product term) narys loginėje išraiškoje, kuriame
logiškai sudauginami vienas ar daugiau kintamųjų (signalų), pvz., A & B.

Minterm narys (angl. Minterm) - tai sandaugos narys, kuriame
sudauginami visi galimi kintamieji arba jų invertuoti nariai

Sumos narys (angl. Sum term) narys loginėje išraiškoje, kuriame logiškai
sumuojami vienas ar daugiau kintamųjų (signalų), pvz., A | B | D

Maxterm narys (angl. Maxterm) tai sumos narys, kuriame sumuojami visi
galimi kintamieji arba jų invertuoti nariai

Sandaugų suma (angl. Sum-of-products (SOP)), pvz.,
(A & B & C)+(!A & !B & C)+(A & B & !C)

Sumų sandauga (angl.Product-of-sums (POS)) pvz.,
(A+B+C) & (A+!B+!C) & (A+B+!C)
viso 46
6
Sandaugų sumos forma (SOP)
Mintermai Y=1
viso 46
7
Sandaugų sumos formos schema
ALT_INBUF
not2
A
ALT_INBUF
not1
B
ALT_INBUF
not3
C
AND3
A BC
and1
AND3
ABC
OR3
Y
or1
and2
AND3
A BC
and3
viso 46
8
Užduotis: XOR ir NXOR elementų
sintezė
viso 46
9
Sumų sandaugos formos (POS)
Mintermai !Y=1
Abiejų pusių invertavimas ir De
Morgano taisyklė
Pasiūlykite POS formos lygties sudarymo algoritmą tiesiai iš teisingumo lentelės
viso 46
10
SOP ir POS formų sudarymo apibendrinimas
Reikia
prastinti
viso 46
11
Bulio algebros savybės
Bulio algebros žinojimas leidžia suprastinti SOP ir POS formas bei
minimizuoti reikiamą ventilių skaičių.

Komutatyvumas:
A & B = B & A, A + B = B + A

Asociatyvumas:
(A & B) & C = A & (B & C),
(A + B) + C = A + (B + C),

Distributyvumas:
A & (B + C) = A & B + A & C.
Užduotis: Patikrinkite XOR (^) funkcijos asociatyvumą.
viso 46
12
Keleto kintamųjų Bulio algebros
teoremos

De Morgano teoremos:

Kita teorema:
viso 46
13
Bulio (bitinės) algebros teoremos
viso 46
14
Formų prastinimas, panaudojant
Karno diagramas

Tam, kad iš teisingumo lentelės optimaliai generuoti loginę funkciją,
patogiau naudotis Karno diagramų metodu.

Karno (pagal prancūzų matematiką Maurice Karnaugh) diagrama (angl.
Karnaugh map arba K-map,KV-map (pagal kitą atradėją Edward W.
Veitch)– tai kitas teisingumo lentelės pavidalas, kuriame kiekvienas loginių
kintamųjų derinys – teisingumo lentelės eilutė arba mintermas vaizduojamas kvadratėliu.

Edward W. Veitch šį metodą panaudojo 1952, o Maurice Karnaugh – 1953
metais.

Karno diagramos sudaromos taip, kad gretimuose jos kvadratėliuose
skirtųsi tik vieno loginio kintamojo reikšmė, o visų kitų sutaptų.
Predko, Myke. Digital Electronics Demystified, McGraw-Hill, 2004 (Ebrary bibliotekoje)
http://www.facstaff.bucknell.edu/mastascu/eLessonsHTML/Logic/Logic3.html
viso 46
15
Karno diagramos sudarymas
Pradinė funkcija
viso 46
16
Kontūrų (circle) išskyrimo taisyklės
1.
Į vieną kontūrą galima apjungti tik kartotinį 2 laipsnyje
gretimų bitų skaičių (pvz., negalima apjungti 3-jų bitų).
Taigi galima apibraukti 1, 2, 4, 8 ir t.t. lentelės langelius
Pastaba: Gretimi langeliai yra ir tie, kurie yra
priešingose diagramos pusėse.
viso 46
17
Kontūrų išskyrimo taisyklės
2.
Kontūrai gali kirstis, t.y. tas pats bitas gali
papulti į du ar daugiau kontūrų. Jeigu
egzistuoja kontūras, kuris apima tik bitus, jau
patenkančius į kitus kontūrus, tai toks kontūras
yra perteklinis (angl. redundant)
viso 46
18
Kontūrų išskyrimo taisyklės
3.
Apibraukiame ne tik po du, bet ir 2n bitų
kontūrus
viso 46
19
Iš Karno diagramos užrašome
optimizuotą lygtį

Loginė funkcija užrašoma sandaugų suma
(SOP), kurios kiekvienas dėmuo-sandauga
atitinka vieną apibrėžtą kontūrą.

Į sandaugą, atitinkančią kontūrą, rašomi tik tie
loginiai kintamieji, kurių reikšmės visuose tuo
kontūru apibrėžtuose kvadratėliuose yra
vienodos – lygios arba 0 arba 1.

Jei ta reikšmė yra lygi nuliui, į sandaugą įrašoma
invertuota kintamojo reikšmė, jei vienetui –
tiesioginė.
viso 46
20
Iš Karno diagramos užrašome
optimizuotą lygtį
Y=(!B*C)+(B*!С) +(A*С)
Y=A+C
Y=(!B*C)+(B*!С) +(A*!С)
viso 46
21
Karno diagramos panaudojimo
pavyzdys
viso 46
22
Užduotis Nr.1 su Karno
diagramomis
BC
00
01
11
10
A
0
1
0
1
1
1
0
1
1
1
Y = (!A*!C) + (A*С) + B
viso 46
23
Užduotis Nr.2 su Karno
diagramomis
CD
AB
00
00
01
1
1
1
11
1
1
1
10
01
11
10
1
1
1
Y = (A*!B*D) + (B*!D) + C*D
viso 46
24
Karno diagramų taikymas funkcijoms su
nereikšmingomis loginių kintamųjų
kombinacijomis (don’t care output)
BC
00
01
11
10
A
0
0
0
1
0
1
1
1
1
X
Y = (A*!B) + (B*С)
Kai apjungiami tik vienetai
Y = (B*С) + A
Kai apjungiamos ir nereikšmingos būsenos
Pastaba: abi lygtys teisingos
viso 46
25
Karno diagramų trūkumai
 Naudojama
dažniausiai rankiniam
optimizavimui, nes sunkiai
kompiuterizuojasi
 Dirbant rankiniu būdu galima greitai
pridaryti klaidų
 Tinka iki 6 įėjimo kintamųjų, o realiai iki 4
viso 46
26
Kiti loginių funkcijų minimizavimo
algoritmai

Quine–McCluskey algoritmas
(http://en.wikipedia.org/wiki/QuineMcCluskey_algorithm):



Formaliai patogiau aprašomas matematiškai, kad
galėtų būti realizuotas kompiuterine programa
Tinka nedideliam įėjimų/išėjimų skaičiui, nes
skaičiavimų apimtys auga eksponentiškai didėjant
įėjimo/išėjimo skaičiui
Espresso heuristinis loginis minimizatorius - defacto standartas
viso 46
27
Espresso heuristinis loginis
minimizatorius
Sukurtas Brayton’o Berkeley universitete apie 1980
metus
 Tai jau kompiuterinė programa, naudojanti heuristinius
minimizavimo algorimtus
 Minimizavimo rezultatas ne visada garantuotai optimalus
 Lyginant su kitais algoritmais skaičiavimų apimtys daug
mažesnės
 Praktiškai nėra ribojimų įėjimų/išėjimų skaičiui. Išspręsti
uždaviniai su keliomis dešimtimis in/out
 Sintezuoja schemą, atsižvelgiant į nurodytus bazinius
ventilius (angl. map to available gates), todėl gerai tinka
CPLD ir FPGA sintezei
 Algoritmas turi daug atmainų
 Naudojama daugelyje sintezės programų
viso 46
28

Logic Friday – nemokama programa loginei
sintezei Espresso algoritmo pagrindu
Pavyzdys:
Teisingumo
lentelė 7-ių
segmentų
indikatoriaus
dešifratoriui
viso 46
29
Bazinių elementų pasirinkimas
 Norime
realizuoti su
2NAND ir
NOT
elementais
viso 46
30
Sintezės rezultatas (30 ventilių)
viso 46
31
Bazinių elementų pasirinkimas
 Norime
realizuoti su
2NOR ir NOT
elementais
viso 46
32
Sintezės rezultatas (36 ventiliai)
viso 46
33
Daugiapakopė (Multi-level) sintezė
Pradžioje sintezės priemonės kuria
daugiasluoksnį loginių lygčių tinklą iš RTL
(tarpregistrinių perdavimų lygmens) aprašo
 Sukurtas tinklas yra optimizuojamas nuo
technologijos nepriklausančiomis priemonėmis
 Galiausiai, optimizuotos loginės lygtys
transformuojamos į loginių ventilių grandinę.
Vykdomas talpinimo (angl. mapping) uždavinys,
kuris apsprendžiamas esamų ventilių (IR, ARBA,
ir kt.), vėlinimų, suvartojamos galios, užimamo
ploto ir t.t.

viso 46
34
Sintezė FPGA platformai
 Panaudojant
multipleksorius
 Panaudojant peržiūros lenteles (angl. Look
Up Tables)
viso 46
35
Loginė sintezė, panaudojant
multipleksorius (MUX)
http://dropzone.tamu.edu/~wshi/475/MIT_Logic_Synthesis.pdf
viso 46
36
Kombinacinės logikos realizavimas
su MUX
viso 46
37
Multipleksoriai yra universalūs
viso 46
38
MUX apibendrinta struktūra
viso 46
39
Paskirstyta dekoduojanti logika
viso 46
40
Nuosekliosios logikos sintezė
 Naudojama


automatų teorijos:
Milio (Mealy, George H. (September 1955). "A
Method for Synthesizing Sequential Circuits".
Bell Systems Technical Journal 34: 1045–
1079. )
Muro (Moore, Edward F (1956). "Gedankenexperiments on Sequential Machines".
Automata Studies,Annals of Mathematical
Studies (Princeton, N.J.: Princeton University
Press) (34): 129–153.)
viso 46
41
Muro automato (angl. FSM – Final
State Machine) struktūra
 Palyginkite
su CPLD makrocelės struktūra
viso 46
42
Formalus Muro automato aprašas

Muro automatas aprašomas 6 parametrų rinkiniu ( S, S0,
Σ, Λ, T, G ):







Baigtine būsenų aibe ( S )
Pradine būsena S0 iš aibės (S)
Baigtine aibe, sudarančia įėjimų alfabetą ( Σ )
Baigtine aibe, sudarančia išėjimų alfabetą( Λ )
Perėjimo (angl. transition) funkcija (T : S × Σ → S), kuri
transformuoja būseną ir įėjimų alfabetą į kitą būseną
Išėjimo (angl. output) funkcija (G : S → Λ), kuri transformuoja
(angl. mapping) kiekvieną būseną į išėjimo alfabetą
Muro automato būsenų skaičius visada būna ne
mažesnis negu Milio automato būsenų skaičius tam
pačiam įrenginiui aprašyti.
viso 46
43
Programinė įranga loginei sintezei
atlikti FPGA platformai








Quartus II integruota sintezė (firmos Altera)
XST ISE projektavimo aplinkoje (firmos Xilinx)
IspLever Classic, naujas Diamond (firmos Lattice
Semiconductor)
Libero IDE integruota sintezė (Microsemi (buvusi Actel)
firma)
Encounter RTL Compiler (firmos Cadence Design
Systems)
LeonardoSpectrum and Precision (RTL / Physical)
(firmos Mentor Graphics)
Synplify (PRO / Premier) (firmos Synopsys)
BlastFPGA (firmos Magma Design Automation)
viso 46
44
Programinė įranga loginei sintezei
atlikti ASIC platformai


Design Compiler (Synopsys firmos)
Encounter RTL Compiler (Cadence Design
Systems firmos)
 TalusDesign (Magma Design Automation firmos)
 RealTime Designer (Oasys Design firmos)
Systems
 BooleDozer: loginės sintezės įrankis (IBM
firmos)
viso 46
45
Literatūra tolimesniam skaitymui
Electronic design automation : synthesis,
verification, and test / edited by Laung-Terng
Wang, Yao-Wen Chang, Kwang-Ting (Tim)
Cheng. Amsterdam : Elsevier/Morgan
Kaufmann, 2009.
Skyriai:


Introduction (pp.1-35)
Logic Synthesis in a nutshell (pp.299-400)
KTU IF biblioteka D201957
viso 46
46