Sunteți pe pagina 1din 40

Capitolul 6

Sinteza CLC
folosind VHDL

2010 Proiectarea sistemelor digitale 1


Tematica
ØInformaț ii generale
ØEtapele proiectării asistate de calculator
ØEtapele sintezei şi implementării
ØExemple de sinteza cu FPGA
Ø

2010 Proiectarea sistemelor digitale 2


Informaț ii introductive
Utilizarea VHDL ț n sinteza circuitelor logice presupune existenț a unei
platforme pentru proiectarea asistatǎ de calculator.
țn cadrul cursului se va utiliza platforma Xilinx ISE 9.2i pentru editarea,
compilarea programelor ț i generarea testelor, respectiv ModelSim XE III 6.4b
pentru simulare.
Implementǎrile se vor face pe un modul FPGA al firmei Xilinx, cu indicativul
xc3s400-4ft256.

2009-2010 PDSD 3
Etapele proiectarii asistate de calculator
Editarea modelului VHDL.

Verificarea corectitudinii sintaxei programului. Aceastǎ verificare este necesarǎ dar


nu și suficientǎ deoarece nu garanteazǎ corectitudinea modelului sau faptul cǎ
acesta este implementabil la nivel fizic pe modulul avut șn vedere.

Declararea unor constrțngeri de proiectare cum ar fi asignarea porturilor la pinii


modulului utilizat, criteriile de optimizare a proiectǎrii. Aceastǎ etapǎ nu este
necesarǎ decșt șn cazul șn care se dorește implementarea efectivǎ a
circuitului proiectat.

Generarea programului pentru modulul utilizat la implementare. Suplimentar


utilizatorului i se oferǎ schema bloc sau diverse detalii ale schemei la nivel logic
și fizic. Pe durata generǎrii programului, sunt generate diverse mesaje de
avertizare sau eroare care ghideazǎ proiectantul șn depanarea modelului sau
optimizarea solușiei alese.

2009-2010 PDSD 4
Etapele proiectarii asistate de calculator
Folosind opșiunile de generare a testelor se genereazǎ programele de test (test
bench) tot șn limbaj VHDL (scrierea programelor de test nu face obiectul
acestui curs).

Se testeazǎ funcșionarea funcșionalǎ (fǎrǎ luarea șn considerare a


șntșrzierilor) și dacǎ nu apar anomalii se trece la simularea funcșionǎrii
reale.

Se transferǎ programul pentru FPGA șn modulul disponibil.

Se efectueazǎ testele pentru verificarea și validarea funcșionǎrii șn condișii


reale. șn cazul șn care testele eșueazǎ se modifică solușia propusǎ,
parcurgǎnd din nou toate etapele.

Dacǎ toate testele efectuate nu mai pun șn evidenșǎ nici o eroare, se trece la
producșia de serie.

2009-2010 PDSD 5

  

Exemple de

sinteză

2009-2010 PDSD 6
Convenș ii pentru numele semnalelor
Pentru numele semnalelor vom utiliza următoarele convenșii de prefixare:

i – port de intrare scalar;


ia – port de intrare vecorial (input arraay);
o – port de iesire scalar;
oa – port de iesire vectorial (output array);
s – semnal scalar;
sa – semnal vectorial (signal array);
a – alias scalar;
aa – alias vectorial (alias array).

2009-2010 PDSD 7
Sinteza unui comparator de egalitate
Se considerǎ un dispozitiv logic care primește la intrare doi operanzi A și B pe
4 biși fiecare și oferǎ la ieșire semnalul AeqB activ pe nivel ridicat.

2009-2010 PDSD 8
Sinteza unui comparator de egalitate (var1)

2009-2010 PDSD 9
Sinteza unui comparator de egalitate (var 1)

2009-2010 PDSD 10
Sinteza unui comparator de egalitate (var 1)

2009-2010 PDSD 11
Greşeala tipică

?
oAeqB
1

2009-2010 PDSD 12
Sinteza unui comparator de egalitate (var 2)

2009-2010 PDSD 13
Sinteza unui comparator de egalitate (var 3)

2009-2010 PDSD 14
Sinteza unui multiplexor logic
Varianta 1

2009-2010 PDSD 15
Sinteza unui multiplexor logic

2009-2010 PDSD 16
Sinteza unui multiplexor logic
Varianta 2

2009-2010 PDSD 17
Sinteza unui multiplexor logic
Varianta 3

2009-2010 PDSD 18
Sinteza unui decodificator
Varianta 1

2009-2010 PDSD 19
Sinteza unui decodificator

2009-2010 PDSD 20
Sinteza unui decodificator
Varianta 2

Funcșia
conv_std_logic_vector( valoare_țntreagǎ, lungime_vector)
transformǎ valoarea șntreagǎ a primului parametru șntr-un vector binar
tip std_logic_vector(0 to lungime_vector).

2009-2010 PDSD 21
Sinteza unui decodificator

2009-2010 PDSD 22
Sinteza unui decodificator
Varianta 3

2009-2010 PDSD 23
Sinteza unui codificator de prioritate

2009-2010 PDSD 24
Sinteza unui codificator de prioritate

2009-2010 PDSD 25
Sinteza unui convertor de cod

oaY(6) ț a, oaY(5) ș b, oaY(4) ș c, oaY(3) ș


d,
oaY(2) ș e, oaY(1) ș f, oaY(0) ș g.

2009-2010 PDSD 26
Sinteza unui convertor de cod

2009-2010 PDSD 27
Sinteza unui convertor de cod

2009-2010 PDSD 28
Sinteza unui multiplexor vectorial
Vom numi multiplexor vectorial un multiplexor care primeşte la intrare L
magistrale cu lățimea de m biși fiecare şi transferă magistrala selectată prin
combinașia de pe intrările de selecșie pe o magistrală de ieşire cu aceeaşi
lășime.

2009-2010 PDSD 29
Sinteza unui multiplexor vectorial

2009-2010 PDSD 30
Sinteza unui multiplexor vectorial

2009-2010 PDSD 31
Sinteza unui sumator binar elementar
S= a ț b ț
Ti
T= ab+a Ti
+b Ti

2009-2010 PDSD 32
Sinteza unui sumator binar elementar

2009-2010 PDSD 33
Sinteza unui sumator binar elementar

2009-2010 PDSD 34
Sumator binar elementar pe 8 biș i

2009-2010 PDSD 35
Sumator binar elementar pe 8 biș i

2009-2010 PDSD 36
Sumator binar elementar pe 8 biș i

2009-2010 PDSD 37
Multiplicator pentru numere cu semn
Vom considera cei doi operanzi reprezentași ca numere binare pe 8 biși șn
formatul:
bs b6 b5 b4 b3 b2 b1 b0

Regula de reprezentare a semnului este:


bs=0 – număr pozitiv;
bs=1 – număr negativ.

Rezultatul va avea formatul:


ps p14 b13 p12 p11 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0

2009-2010 PDSD 38
Multiplicator pentru numere cu semn

2009-2010 PDSD 39
Intrebări ?
2010 Proiectarea sistemelor digitale 40

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