Sunteți pe pagina 1din 75

Capitolul 7

Sinteza unor CLS


folosind VHDL

2010 Proiectarea sistemelor digitale 1


Sinteza unor
registre şi
numărătoare
2010 2
Proiectarea sistemelor digitale
Sinteza unui latch tip D
Un latch este un element de memorie binarǎ cu o intrare de date și o intrare
de validare, care permite preluarea informației de la intrarea de date și
transferul la ieșire numai pe durata activǎrii intrǎrii de validare. Dacǎ
intrarea de validare este dezactivatǎ, la ieșire se pǎstreazǎ ultima valoare
cititǎ, indiferent ce se ȋntȃmplǎ pe intrarea de date.

2009-2010 PDSD 3
Sinteza unui latch tip D

2009-2010 PDSD 4
Sinteza unui latch tip D

2009-2010 PDSD 5
Sinteza unui bistabil (flip-flop) tip D

Un bistabil preia informația de la intrare şi o transmite la ieşire numai pe


durata frontului activ al impulsului de tact.

2009-2010 PDSD 6
Sinteza unui bistabil (flip-flop) tip D
Varianta 1

2009-2010 PDSD 7
Sinteza unui bistabil (flip-flop) tip D
Varianta 2

2009-2010 PDSD 8
Sinteza unui bistabil (flip-flop) tip D

2009-2010 PDSD 9
Sinteza unui bistabil tip D cu Reset asincron

2009-2010 PDSD 10
Sinteza unui bistabil tip D cu Reset asincron

2009-2010 PDSD 11
Sinteza unui bistabil tip D cu Reset asincron

2009-2010 PDSD 12
Sinteza unui registru paralel-paralel

2009-2010 PDSD 13
Sinteza unui registru paralel-paralel

2009-2010 PDSD 14
Sinteza unui registru paralel-paralel

2009-2010 PDSD 15
Sinteza unui registru de deplasare dreapta
Pentru a evita orice confuzie vom defini deplasare dreapta transferul de
informație de la celula cu indice minimcǎtre celula cu indice maxim și
deplasare stȃnga transferul de informație de la celula cu indicele maxim cǎtre
celula cu indicele minim.

2009-2010 PDSD 16
Sinteza unui registru de deplasare dreapta

2009-2010 PDSD 17
Sinteza unui registru de deplasare dreapta

2009-2010 PDSD 18
Sinteza unui registru multifuncțional
ISDS
ISDD
D0 D1 D2 D3

0 Q1 0 Q0 Q2 0 Q1 Q3 0 Q2
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3

C1 S1 S1 S1 S1

C0 S0
Y S0
Y
S0
Y
S0
Y

D Q D Q D Q D Q
TACT
CLK CLK CLK CLK

Q0 Q1 Q2 Q3
C1 C0 operatia
0 0 stergere sincrona

0 1 incarcare paralela
1 0 deplasare dreapta
1 1 deplasare stanga

2009-2010 PDSD 19
Sinteza unui registru multifuncțional

2009-2010 PDSD 20
Sinteza unui registru multifuncțional

2009-2010 PDSD 21
Sinteza unui registru multifuncțional

2009-2010 PDSD 22
Sinteza unui registru multifuncțional

2009-2010 PDSD 23
Sinteza unui bloc de registre

Va fi considerat un bloc de 4 registre (paralel-paralel) cu ȋnscriere sincronǎ pe


frontul pozitiv al impulsului de tact și cu inițializare asincronǎ.
Fiecare registru are o adresa (sunt necesare adrese pe W=2 biți).
Lungimea registrului este B=8 biți.
Ȋnscrierea unei noi date ȋn registrul selecta este posibilǎ numai dacǎ a fost
activatǎ (1 logic) intrarea de validare scriere, Write_enable.
Citirea este posibilǎ ȋn orice moment.
Inițializarea asincronǎ afecteazǎ simultan toate registrele din bloc.

2009-2010 PDSD 24
Sinteza unui bloc de registre

2009-2010 PDSD 25
Sinteza unui bloc de registre

2009-2010 PDSD 26
Sinteza unui bloc de registre

2009-2010 PDSD 27
Sinteza unui bloc de registre

2009-2010 PDSD 28
Sinteza unui bloc de registre

2009-2010 PDSD 29
Sinteza unui numărător binar direct

2009-2010 PDSD 30
Sinteza unui numărător binar direct

2009-2010 PDSD 31
Sinteza unui numărător binar direct

2009-2010 PDSD 32
Sinteza unui numărător binar reversibil

2009-2010 PDSD 33
Sinteza unui numărător binar reversibil

2009-2010 PDSD 34
Sinteza unui numărător binar reversibil

2009-2010 PDSD 35
Sinteza unui numărător Johnson
00000

IS 00001
TACT

00011
RESET Qn-1 Q1 Q0
00111

01111

11111

11110

11100

11000

10000

2009-2010 PDSD 36
Sinteza unui numărător Johnson

2009-2010 PDSD 37
Sinteza unui numărător Johnson

2009-2010 PDSD 38
Sinteza unui numărător ȋn inel
INIT

TACT IS 00000001

00000010
INIT
Qn-1 Qn-2 Q1 Q0
00000100
...
00001000

00010000

00100000

0100000

10000000

2009-2010 PDSD 39
Sinteza unui numărător ȋn inel

2009-2010 PDSD 40
Sinteza unui numărător ȋn inel

2009-2010 PDSD 41
Sinteza FSM

2009-2010 PDSD 42
Modele Mealy
m n
x(t) z(t)
TACT
SLC k
s(t+1)
BM
k s(t)

INIT

x(t) m n z(t)
z*(t)
REG

SLC INIT TACT

k s(t+1)
BM
k s(t)

2009-2010 PDSD 43
Sinteza unui recunoscător de secvență

1/0
INIT 0/0
1/0
0/0
1/0 0/0 1/0 0/0 1/0
S0 S1 S2 S3 S4 S5

0/0 0/1

0/0

2009-2010 PDSD 44
Sinteza unui recunoscător de secvență

2009-2010 PDSD 45
Sinteza unui recunoscător de secvență

2009-2010 PDSD 46
Sinteza unui recunoscător de secvență

2009-2010 PDSD 47
Sinteza unui recunoscător de secvență

2009-2010 PDSD 48
Sinteza unui recunoscător de secvență
Varianta 2

2009-2010 PDSD 49
Sinteza unui recunoscător de secvență

2009-2010 PDSD 50
Sinteza unui recunoscător de secvență

2009-2010 PDSD 51
Sinteza unui recunoscător de secvență

2009-2010 PDSD 52
Sinteza unui recunoscător de secvență

2009-2010 PDSD 53
Sinteza unui recunoscător de secvență
m
x(t) n
SLC SLC
excitatie
BM iesiri
z(t)

y(t)
k
TACT

1 1
INIT
1
1 0 1 0 1 0
0
S0 S1 S2 S3 S4 S5 S6
0 0 0 0 0 0 1
1
0
0
0
0

2009-2010 PDSD 54
Sinteza unui recunoscător de secvență

2009-2010 PDSD 55
Sinteza unui recunoscător de secvență

2009-2010 PDSD 56
Sinteza unui recunoscător de secvență

2009-2010 PDSD 57
Sinteza unui recunoscător de secvență

2009-2010 PDSD 58
Sinteza unui numărător Gray
m
x(t) n
SLC
excitatie
BM z(t)
S0
y(t) 000
k
TACT
S7 S1
100 001

S6 S2
101 011

1X
S5 S3
111 010

S4
110

2009-2010 PDSD 59
Sinteza unui numărător Gray
Varianta 1

2009-2010 PDSD 60
Sinteza unui numărător Gray

2009-2010 PDSD 61
Sinteza unui numărător Gray

2009-2010 PDSD 62
Sinteza unui numărător Gray
Varianta 2

2009-2010 PDSD 63
Sinteza unui numărător Gray

2009-2010 PDSD 64
Sinteza unui numărător Gray

2009-2010 PDSD 65
Sinteza unui numărător Gray

2009-2010 PDSD 66
Sinteza unui numărător Gray
Varianta 3

2009-2010 PDSD 67
Sinteza unui numărător Gray

2009-2010 PDSD 68
Sinteza unui numărător Gray

2009-2010 PDSD 69
Emularea unei memorii ROM
Modulele SPARTAN xc3s400-4ft256 nu dispun de o memorie EPROM ci doar
de blocuri de memorie RAM cu ȋnscriere sincronǎ. Un astfel de bloc poate fi
ușor folosit pentru a juca ȋn aplicații rolul de memorie ROM;
Pentru exemplificare vom considera un convertor de cod din cod binar ȋn cod
7segmente pentru afișor cu LED cu anod comun. Afișorul va afișa 16 cifre
hexazecimale (0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F);
Pentru implemntare vom crea o memorie ROM cu organizarea 16x7;
Adresa se modificǎ sincron, pe frontul pozitiv al impulsului de tact. Ieșirea este
disponibilǎ permanent.

2009-2010 PDSD 70
Emularea unei memorii ROM

2009-2010 PDSD 71
Emularea unei memorii ROM

2009-2010 PDSD 72
Emularea unei memorii ROM

2009-2010 PDSD 73
Emularea unei memorii ROM

2009-2010 PDSD 74
Intrebări ?
2009-2010 PDSD 75

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