Sunteți pe pagina 1din 8

4.

Sinteza evolutivă a circuitelor numerice

4.1 Sinteza funcţiilor binare folosind porţi logice

 proiectarea convenţională este un proces “top-down”, în


care se pleacă de la o specificaţie clară a temei de proiectare
şi se ajunge la o soluţie posibilă, folosind o metodă de
proiectare, metodă care poate limita serios creativitatea
proiectantului.

 un algoritm evolutiv permite explorarea întregului spaţiu de


soluţii posibile, datorită lipsei unor reguli impuse de metoda
de proiectare, reguli care restricţionează inevitabil spaţiul de
căutare.

 Hardware evolutiv (Evolvable Hardware – EHW):


- intrinsec (foloseşte circuite fizice, care evoluează
într-un mediu real)
- extrinsec (foloseşte un model software al circuitului
real, iar evoluţia are loc prin simulare pe
calculator)

 folosim un algoritm genetic clasic, în care criteriul de oprire


ar putea fi atingerea unei evaluări de 100% pentru cel mai
bun cromozom din populaţie.

 problema esenţială care trebuie rezolvată aici este găsirea


unei modalităţi convenabile de codificare a circuitului
într-un cromozom şi de evaluare a acestui cromozom.

SE 4 - 1
4 out
1 I IV
2
5
3 II III 6

Tipuri de porţi:

A AND B OR

C XOR D NOT

Cromozomul:
1 2 A 1 2 B 5 3 A 4 6 C

I II III IV

Fig. 4.1 Reprezentarea cromozomilor pentru sinteza cu porţi

 pentru o matrice formată din 4 porţi cu câte 2 intrări, se


numerotează intrările în circuit (1, 2, 3) şi ieşirile porţilor I,
II, III cu 4, 5 şi respectiv 6, iar structura cromozomului
poate avea reprezentarea din figura 4.1.

x2 x1
x3 x2 f1
f1

x1 x3

Fig. 4.2 Două soluţii diferite pentru funcţia f1

 forma minimă a funcţiei f1 obţinută prin minimizare pe


diagrama Karnaugh este f1 = x1 ⋅ (x2 ⊕ x3 ) + x3 ⋅ (x1 ⊕ x2 ) ,
dar soluţia evolutivă oferă un cost mai mic (4 porţi şi
8 intrări)
SE 4 - 2
x1
x3
x1
x2
f2 x2
x4
x3 f2

x4

Fig. 4.3 Două soluţii diferite pentru funcţia f2

 forma minimă a funcţiei f2 obţinută cu diagrama


Karnaugh este f 2 = (x1 ⋅ x3 ) ⊕ (x 2 ⋅ x 4 ) + ( x3 ⋅ x 4 ) ⋅ (x1 ⊕ x 2 ) ,
(adică un cost de 11 porţi şi 18 intrări), dar soluţia
evolutivă oferă un cost mai mic (9 porţi şi 16 intrări)

 fiecare cromozom este evaluat pe baza tabelului de


adevăr al funcţiei binare căutate, iar adoptarea lui ca
soluţie posibilă a problemei se face numai dacă valorile
funcţiei rezultate coincid cu cele din tabel în proporţie de
100%

 în cazul proiectării cu porţi logice, se poate observa că


proiectantul uman preferă să utilizeze numai porţile ŞI,
SAU şi NU, având serioase dificultăţi în utilizarea
porţilor SAU EXCLUSIV. Vinovată de această limitare
este reprezentarea funcţiilor pe diagrama Veitch-
Karnaugh. Algoritmul genetic este eliberat de această
constrângere şi foloseşte cu aceeaşi uşurinţă orice poartă
logică, având chiar o predilecţie pentru folosirea lui SAU
EXCLUSIV.

SE 4 - 3
0 0 10 3 3 10
A 5
1 2 6 S
0 XOR 1 XOR
1
B
5 C out
2 0 0 16
C in 6 4 2 6
0
AND 3 MUX
2

Cromozomul:
0 1 0 10 0 0 2 6 3 2 1 10 0 2 3 16 6 5

Fig. 4.4 O altă reprezentare a cromozomilor

 toate celulele din reţea au numai 3 intrări şi o ieşire, sunt


conectate într-o structură combinaţională şi pot fi porţi
logice sau multiplexoare cu două căi de intrare.

A0 0 0
C out
C out MUX MUX
C in 1 1

A0 B0
B0 S
A0
C in B0 S
C in

Fig. 4.5 Două soluţii pentru sumatorul complet de 1 bit

 implementarea optimă clasică a sumatorului complet de 1


bit este realizată cu 5 porţi logice

 implementarea evolutivă a celor două funcţii binare luate


separat redescoperă soluţia cu 2 porţi SAU EXCLUSIV
pentru S, iar pentru transport foloseşte 2 multiplexoare
(2 celule în loc de 3)
SE 4 - 4
0 C out
MUX
1

B0
A0 S
C in

Fig. 4.6 Soluţia optimă pentru sumatorul complet de 1 bit

 implementarea evolutivă a sistemului celor două funcţii


binare oferă însă soluţia optimă pentru acest circuit

 evoluţia este mai dificilă, iar găsirea circuitului optim s-a


făcut după circa 20 de rulări ale algoritmului genetic pe
parcursul a 2000 de generaţii (50 de indivizi în populaţie,
încrucişare de 100% şi mutaţie de 5%)

 circuitul rezultat este extrem de eficient şi el nu a fost


cunoscut de către proiectanţii umani de sisteme numerice.
Relativ recent, acest circuit a fost introdus în macrocelulele
unor circuite FPGA.

4.2 Implementarea cu structuri PLD

 există 2 nivele logice: un nivel de porţi logice ŞI şi un nivel


format dintr-o poartă SAU pentru fiecare funcţie binară

 se implementează funcţia într-o formă disjunctivă, folosind


porţile din structură, iar minimizarea numărului de porţi nu
mai este, de obicei, principala preocupare; mai important
este să descoperim funcţia de care avem nevoie

SE 4 - 5
Biţi de arhitectură Algoritm Biţi de arhitectură
1010 . . . 11 0110 . . . 10
genetic
(Cromozom) (Cromozom evoluat)

Configurare Reconfigurare

PLD PLD
Evoluţie
hardware

Fig. 4.7 Evoluţia unei structuri PLD


x1 x2 x3 x4

F1

F2

Fig. 4.8 Două funcţii binare rezultate prin evoluţie


 parametrii algoritmului genetic folosit:
- lungimea cromozomului: 32 biţi
- număr cromozomi: 20, 10 fiind înlocuiţi la fiecare pas
- încrucişare într-un punct cu probabilitate de 60%
- mutaţie cu probabilitate de 1%

SE 4 - 6
4.3 Implementarea cu structuri FPGA

 sinteza unui discriminator de frecvenţă, cu o intrare şi o


ieşire: ieşirea este 0V, dacă semnalul aplicat pe intrare este
un semnal dreptunghiular cu frecvenţa de 1 KHz, şi +5V,
dacă frecvenţa semnalului de intrare devine 10 KHz

 dificultăţi ce apar la sinteza circuitului:


- nu există acces la o constantă de timp măsurabilă
(semnal de ceas, constantă de timp RC etc.)
- s-a impus o configuraţie de circuit limitată la un număr
de 100 de celule
- perioadele semnalelor de intrare sunt cu circa 5 ordine
de mărime mai mari decât timpii de propagare prin
celule (câteva ns)

 s-a folosit un algoritm genetic cu o populaţie de 50


cromozomi, probabilitate de încrucişare de 70% şi 3
mutaţii pe genotip. Cromozomul are 18 biţi/celulă, deci un
număr total de 1800 biţi. Funcţia de evaluare cere
maximizarea diferenţei dintre tensiunile de ieşire pentru
cele 2 frecvenţe diferite, care sunt aplicate la intrare aleator,
pe durate de câte 500ms.

Osciloscop
Integrator
OUT analogic

Circuitul FPGA biţi configuraţie PC

IN

Fig. 4.10 Două funcţii binare rezultate prin evoluţie

SE 4 - 7
Fig. 4.11 Circuitul rezultat prin evoluţie hardware

 s-a folosit circuitul FPGA XC 6216 – firma Xilinx, care ar


permite evoluţia pe o arie de 64 x 64 celule

 figura prezintă numai interconexiunile dintre celule, nu şi


funcţia logică a fiecărei celule. Intrarea în fiecare celulă este
marcată printr-un pătrat mic, iar ieşirea printr-o săgeată.
Circuitul global are o singură intrare, pe care se aplică un
semnal care are una dintre frecvenţele date mai sus, şi o
singură ieşire, care furnizează prin una din cele două valori
binare răspunsul circuitului.

 durata experimentului: 3 săptămâni. Pentru evaluarea


fiecărui cromozom erau necesare circa 5 secunde, iar timpii
necesari pentru selecţie, aplicarea operatorilor genetici, sau
configurarea circuitului FPGA erau neglijabili, comparativ
cu valoarea de 5 secunde.
SE 4 - 8

S-ar putea să vă placă și