asc l04

Upload: stefan-boldeanu

Post on 07-Jul-2018

214 views

Category:

Documents


0 download

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?