Sunteți pe pagina 1din 5

Arhitectura Sistemelor de Calcul

Laborator 4

Verilog HDL
Modelarea circuitelor digitale complexe

Introducere
Proiectarea unui sistem digital poate duce la o soluie de dimensiuni semnificative
funcie de cerinele de proiectare (i.e., specificaii). Complexitatea unei soluii const n:

Numrul i tipul componentelor utilizate


Numrul i tipul relaiilor/conexiunilor dintre aceste componente

O metodologie de proiectare recomandat pentru a putea rezolva o problem de


proiectare este divide and conquer. n timpul elaborrii soluiei se pun n eviden
componente aflate ntr-o relaie ierarhic: de la componente complexe la componente simple
(care le alctuiesc pe cele complexe). Descompunerea ierarhic se poate opri atunci cnd
nivelul de detaliere al descrierii componentelor este suficient (e.g., de clar) pentru a permite
implementarea lor eficient (i.e., utilizare optim de resurse pentru a obine un rezultat de
calitate).
Un prim nivel de descompunere pentru proiectarea unui circuit digital complex l
reprezint punerea n eviden a dou componente principale:

Calea de date include acele componente care sunt responsabile cu stocarea i


transformarea datelor n timpul procesrii
Calea de control este reprezentat de acele componente care sunt
responsabile de generarea comenzilor ctre componentele cii de date; prin
comenzile generate se stabilesc operaiile i transferurile pe care calea de date
le efectueaz asupra datelor la un moment dat; efectuarea acestor operaii poate
conduce la activarea unor condiii (e.g., un operand are valoarea 0) pe baza
crora calea de control decide paii urmtori ai procesrilor.

O reprezentare grafic a acestor dou componente i a relaiilor dintre ele este


prezentat n figura urmtoare.
Intrare de date

Semnale de control

Intrri (externe)

Unitate (cale)
de control

Semnale de stare

Unitate (cale)
de date

Ieire de date

n acest laborator calea de control este implementat folosind automate (FSM).

Arhitectura Sistemelor de Calcul

Laborator 4

Exerciii
1. Completai implementarea automatului propus la curs pentru monitorizarea
comunicaiei dintre dou sisteme. O schi a implementrii se afl pe pagina Moodle a
disciplinei (fiierul fsm.v).
2.

Verificai implementarea automatului descris la exerciiul anterior pentru urmtoarele


cazuri:

Verificarea unui ciclu complet n funcionare corect (i.e., fr s se ajung ntr-o


stare de eroare se pleac din starea iniial i se ajunge n aceeai stare)

Verificarea atingerii ambelor stri de eroare puse n eviden n graful de fluen

Hint: Pentru rezolvarea acestui exerciiu trebuie scris un scenariu de verificare potrivit
n fiierul testbench. Intrrile automatului trebuie s ia o secven de valori potrivite
pentru a conduce automatul n strile indicate!
3. S se implementeze urmtoarea cale de date (prezentat n figura de mai jos) a unui
sistem digital complex. Calea de date este alctuit din urmtoarele elemente:

4 registre de date (R0, R1, R2, R3) a cte 32 de bii fiecare; registrele pot fi
resetate i ncrcate cu o valoare (i.e., au semnale de comand pentru operaiile
de reset i de ncrcare paralel); aceste registre sunt circuite secveniale
sincrone (i.e., au semnal de clock), iar operaiile de reset i ncrcare paralel
sunt sincrone cu semnalul de clock.

Circuite logice (combinaionale!) care implementeaz urmtoarele operaii


aritmetice i logice: adunare, SAU exclusiv, I negat ntre oricare dou dintre
valorile registrelor (i.e., operatori binari), i negare, deplasare la dreapta i
stnga cu o singur poziie o valorii oricrui registru (i.e., operatori unari)

Circuite logice (combinaionale!) pentru evaluarea unor condiii:


az registrul selectat de multiplexorul MUXA are valoarea 0
bz registrul selectat de multiplexorul MUXB are valoarea 0
eq registrele selectate de multiplexoarele MUXA i MUXB au valori
egale

Circuite logice (combinaionale!) care permit interconectarea tuturor


celorlalte module (e.g., decodor DCD, multiplexor MUX).

Semnalele de intrare marcate cu rou sunt generate de ctre calea de control (vezi
problemele urmtoare). Semnalele marcate cu albastru sunt semnale de ieire i sunt
legate la calea de control pentru evaluarea condiiilor pe care le reprezint. Semnalul
data marcat cu verde este generat din exterior i poate fi folosit pentru a scrie valori
oarecare n registrele cii de date (e.g., la iniializare).
Hint: calea de date prezentat n figur ar putea avea urmtoarea interfa:
module data_path(clk, res,
asel, bsel, alusel, wdata, data, wen, wsel,
az, bz, eq);

Arhitectura Sistemelor de Calcul

Laborator 4

res

pl

asel

reg32 (R0) dout[31:0]


din[31:0]

0
1

== 0

MUXA

res

pl

2
3

reg32 (R1) dout[31:0]

data

az

din[31:0]

DCD

wen
2

bsel

res

pl
din[31:0]

datasel

== 0

MUXB

2
3

res

pl

MUXD

0
1

reg32 (R2) dout[31:0]

wsel

bz

reg32 (R3) dout[31:0]


din[31:0]

XOR

NAND

NOT

<<1

>>1

MUX

==
eq
alusel

4. S se completeze urmtorul tabel cu valorile semnalelor de control (i.e., cele marcate cu


rou i verde n figura de mai sus) astfel nct s aib loc operaiile descrise n prima
coloan a tabelului.
operaie
R0 0
R1 0
R2 R1 + R3
R0 R0 + R1
R2 2 * R3
R1 [R0 / 2]
R0 ~R1
R2 ~R3
R3 345
R1 4096

R1 0
2

asel

bsel

alusel

datasel

data

wen

wsel

5. S se scrie o secven de operaii simple (e.g., elementare ca cele de la exerciiul


anterior) pentru realizarea urmtoarelor operaii (mai complexe). Secvenele de
operaii pot fi de orice lungime (totui, se dorete minimizarea numrului de operaii!).
Constrngere: Se va evita pe ct posibil utilizarea cmpului data!
operaie
R2 0xFFFFFFFF

asel

bsel

alusel

datasel

data

wen

wsel

operaie

asel

bsel

alusel

datasel

data

wen

wsel

R0 1
3

Arhitectura Sistemelor de Calcul

Laborator 4

operaie

asel

bsel

alusel

datasel

data

wen

wsel

operaie
R1 = R3 R2

asel

bsel

alusel

datasel

data

wen

wsel

operaie
R3 = 8 * R0

asel

bsel

alusel

datasel

data

wen

wsel

operaie
R3 = R3 + 1

asel

bsel

alusel

datasel

data

wen

wsel

operaie
R3 = R2 + R1 + R0

asel

bsel

alusel

datasel

data

wen

wsel

operaie
R3 = R2 * R1

asel

bsel

alusel

datasel

data

wen

wsel

R0 = -R2

6. S se implementeze o cale de control (FSM, vezi figura de mai jos) pentru calea de
date prezentat la exerciiul 3.

az

bz

eq

res

FSM
asel bsel alusel wen wsel datasel

Calea de control se va proiecta pentru a implementa urmtoarea operaie:


R0 R1 * R2
Hints: calea de control prezentat n figur ar putea avea urmtoarea interfa:
module control_path(clk, res,
az, bz, eq,
asel, bsel, alusel, wdata, data, wen, wsel
);
Implementarea operaiei de nmulire se realizeaz utiliznd un algoritm cu adunri
repetate.

Arhitectura Sistemelor de Calcul

Laborator 4

Observaie
Operaia de multiplicare se poate realiza (n binar) prin adunri i/sau deplasri
repetate aa cum este prezentat n exemplul urmtor. Aceast variant este (mult) mai eficient
dect varianta cu adunri repetate.
1010 x
1011
---1010
1010
0000
1010
------1101110

adunare
deplasare i adunare
deplasare
deplasare i adunare

Ce modificri ar fi necesare n calea de date folosit anterior pentru a permite


implementarea nmulirii folosind adunri i deplasri?

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