asc l04
TRANSCRIPT
-
8/18/2019 ASC L04
1/5
Arhitectura Sistemelor de Calcul Laborator 4
1
Verilog HDLModelarea circuitelor digitale complexe
IntroducereProiectarea unui sistem digital poate duce la o soluție de dimensiuni semnificative
funcție de cerințele de proiectare (i.e., specificații). Complexitatea unei soluții constă în:
Numărul și tipulcomponentelor utilizate Numărul și tipulrelațiilor/conexiunilor dintre aceste componente
O metodologie de proiectare recomandată pentru a putea rezolva o problemă deproiectare este “divide and conquer ”. În timpul elaborării soluției se pun în evidențăcomponente aflate într- o relație ierarhică: de la componente complexe la componente simple(care le alcătuiesc pe cele complexe). Descompunerea ierarhică se poate opri atunci cândnivelul de detaliere al descrierii componentelor este suficient (e.g., de clar) pentru a permiteimplementarea lor eficientă (i.e., utilizare optimă de resurse pentru a obține un rezultat decalitate).
Un prim nivel de descompunere pentru proiectarea unui circuit digital complex îlreprezintă punerea în evidență a două componente principale:
Calea de date – include acele componente care sunt responsabile cu stocarea șitransformarea datelor în timpul procesării
Calea de control – este reprezentată de acele componente care sunt
responsabile de generarea comenzilor către componentele căii de date; princomenzile generate se stabilesc operațiile ș i transferurile pe care calea de datele efectuează asupra datelor la un moment dat; efectuarea acestor operații poateconduce la activarea unor condiții (e.g., un operand are valoarea 0) pe bazacărora calea de control decide pașii următori ai procesărilor.
O reprezentare grafică a acestor două componente și a relațiilor dintre ele esteprezentată în figura următoare.
Unitate (cale)de control
Unitate (cale)de date
Semnale de control
Semnale de stare
Intrare de date
Ieșire de date
Intrări (externe)
În acest laborator calea de control este implementată folosind automate (FSM) .
-
8/18/2019 ASC L04
2/5
Arhitectura Sistemelor de Calcul Laborator 4
2
Exerciții 1. Completați implementarea automatului propus la curs pentru monitorizarea
comunicației dintre două sisteme. O schiță a implementării se află pe pagina Moodle adisciplinei (fișierulfsm.v).
2.
Verificați implementarea automatului descris la exercițiul anterior pentru următoarelecazuri:
Verificarea unui ciclu complet în funcționare corectă (i.e., fără să se ajungă într-ostare de eroare – se pleacă din starea inițială și se ajunge în aceeași stare)
Verificarea atingerii ambelor stări de eroare puse în evidență în graful de fluență
Hint: Pentru rezolvarea acestui exercițiu trebuie scris un scenariu de verificare potrivitîn fișierul testbench. Intrările automatului trebuie să ia o secvență de valori potrivitepentru a conduce automatul în stările indicate!
3. Să se implementeze următoarea cale de date (prezentată în figura de mai jos)a unuisistem digital complex. Calea de date este alcătuită din următoarele elemente:
4 registre de date (R0, R1, R2, R3) a câte 32 de biți fiecare; registrele pot firesetate și încărcate cu o valoare (i.e., au semnale de comandă pentru operațiilede reset și de încărcare paralelă); aceste registre sunt circuite secvențialesincrone (i.e., au semnal de clock), iar operațiile de reset și încărcare paralelăsunt sincrone cu semnalul de clock.
Circuite logice (combinaționale!) care implementează următoarele operațiiaritmetice și logice: adunare,SAU exclusiv, ȘI negat – între oricare două dintrevalorile registre lor (i.e., operatori binari), și negare, deplasare la dreapta șistânga cu o singură poziție – o valorii oricărui registru (i.e., operatori unari)
Circuite logice (combinaționale!) pentru evaluarea unor condiții:
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 valoriegale
Circuite logice (combinaționale!) care permit interconectarea tuturorcelorlalte module (e.g., decodor – DCD, multiplexor – MUX).
Semnalele de intrare marcate cu roșu sunt generate de către calea de control (veziproblemele următoare). Semnalele marcate cu albastru sunt semnale de ieșire și suntlegate la calea de control pentru evaluarea condițiilor pe care le reprezintă. Semnaluldata marcat cu verde este generat din exterior și poate fi folosit pentru a scrie valorioarecare în registrele căii de date (e.g., la inițializare).
Hint : calea de date prezentată în figură ar putea avea următoarea interfață:
module data_path(clk, res,asel, bsel, alusel, wdata, data, wen, wsel,az, bz, eq);
-
8/18/2019 ASC L04
3/5
Arhitectura Sistemelor de Calcul Laborator 4
3
reg32 (R0)
din[31:0]
dout[31:0]
respl
reg32 (R1)
din[31:0]
dout[31:0]
respl
reg32 (R2)
din[31:0]
dout[31:0]
respl
reg32 (R3)
din[31:0]
dout[31:0]
respl
MUXA
MUXB
asel
bsel
+ NOTXOR 1NAND
MUX alusel
DCDwen
wsel
==
eq
datasel
data
== 0
== 0
bz
az
0
1
2
3
01
23
01
23
10
0 1 2 3 4 5
MUXD
4. Să se completeze următorul tabel cu valorile semnalelor de control (i.e., cele marcate curoșu și verde în figura de mai sus) astfel încât să aibă loc operațiile descrise în primacoloa nă a tabelului.
operație asel bsel alusel datasel data wen wselR0 0R1 0R2 R1 + R3R0 R0 + R1R2 2 * R3R1 [R0 / 2]R0 ~R1R2 ~R3R3 345R1 4096R1 0 ∗ 2̅ ̅
5. Să se scrie o secvență de operații simple (e.g., elementare – ca cele de la exercițiulanterior) pentru realizarea următoarelor operații (mai complexe). Secvențele deoperații pot fi de orice lungime (totuși, se dorește minimizarea numărului de operații!).Constrângere: Se va evita pe cât posibil utilizarea câmpului data!
operație asel bsel alusel datasel data wen wselR2 0xFFFFFFFF
operație asel bsel alusel datasel data wen wselR0 1
-
8/18/2019 ASC L04
4/5
Arhitectura Sistemelor de Calcul Laborator 4
4
operație asel bsel alusel datasel data wen wselR0 = -R2
operație asel bsel alusel datasel data wen wselR1 = R3 – R2
operație asel bsel alusel datasel data wen wselR3 = 8 * R0
operație asel bsel alusel datasel data wen wselR3 = R3 + 1
operație asel bsel alusel datasel data wen wselR3 = R2 + R1 + R0
operație asel bsel alusel datasel data wen wsel
R3 = R2 * R1
6. Să se implementeze ocale de control (FSM, vezi figura de mai jos) pentru calea dedate prezentată la exercițiul 3.
FSM
az bz eq
asel bsel alusel wen wsel datasel
res
Calea de control se va proiecta pentru a implementa următoarea operație:
R0 R1 * R2
Hints: calea de control prezentată în figură ar putea avea următoarea interfață:
module control_path(clk, res,az, bz, eq,asel, bsel, alusel, wdata, data, wen, wsel);
Implementarea operației de înmulțire se realizeaz ă utilizând un algoritm cu adunărirepetate .
-
8/18/2019 ASC L04
5/5
Arhitectura Sistemelor de Calcul Laborator 4
5
Observație
Operația de multiplicare se poate realiza (în binar) prin adunări și/sau deplasărirepetate așa cum este prezentat în exemplul următor. Această variantă este (mult) mai eficientădecât varianta cu adunări repetate.
1010 x1011----1010 adunare
1010 deplasare și adunare 0000 deplasare
1010 deplasare și adunare -------1101110
Ce modificări ar fi necesare în calea de datefolosit ă anterior pentru a permiteimplementarea înmulțirii folosind adunări și deplasări?