of 143/143
7/21/2019 Indrumar CN http://slidepdf.com/reader/full/indrumar-cn 1/143  !"#$%&'#()(%) +,-./012.34 5#" 6787&%(#9 3)(%5&) 5% 3):87:)(;)&% !  # $ % & ' ( !"#$%$&% () *$+,&#-%$&% #,$#",-&.+$ /&#0&1,%.& /,1#$+1& )))))))))))))))))))))))))))))))))))))))))))) ( !"#$%$&% 2) *$+,&#-%$&% %3.,#%,,.+$ 4+.+/,15 ,&$%$6,, 5& 7+5".& ))))))))))))))))))))))))))))) (8 !"#$%$&% 9) *$+,&#-%$&% 5,/3+:,-,0&.+$ %$,-7&-,#& ;1 0,$<". 4,= )))))))))))))))))))))))))))) 28 !"#$%$&% 8) >&3$&:&1-%$&% 5%-&.+$) ?3&$%,, %$,-7&-,#& @AB ))))))))))))))))))))))))))))))))) 9C !"#$%$&% D) E1,-, 5& &=&#",& , #+7%15 ,1-&<$%-&) FGH 2IJ( , FGH 2IJI ))) 8D !"#$%$&% C) *$+,&#-%$&% 5,/3+:,-,0&.+$ %$,-7&-,#& ;1 0,$<". 7+K,. ))))))))))))))))))))))) DD !"#$%$&% L) *$+#&/+$". 5,5%#-,# H!M ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) CD !"#$%$&% N) G&7+$,, , ,&$%$6,, 5& 7&7+$,, ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) L2 !"#$%$&% I) O$%1/7,/,% , $&#&3,% /&$,%. % ,14+$7%,&, )))))))))))))))))))))))))))))))))))))))))) N9 !"#$%$&% (J) A+5"$, 5&-&#-+%$&P#+$&#-+%$& 5& &$+$,) A$,3-%$&% ,14+$7% ,&, ))))))))))) I2 F1&=% F *$&:&1-%$&% 7&5,".", 5& 5&:0+.-%$& 6%$5Q%$& MR!RSM T&K*%#U RVW X C)2, ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (J8 F1&=% B *$&:&1-%$&% /,7".%-+$".", /+4-Q%$& V*RG ))))))))))))))))))))))))))))))))))))))))))))))) (92 F1&=% A Y%.+$,,.& 3,1,.+$ 3$+<$%7%K,., 3&1-$" HRZR!FB HR?( P 2W )))))))))))))))))) (9L B,K.,+<$%4,& ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (8(

Indrumar CN

  • View
    19

  • Download
    0

Embed Size (px)

DESCRIPTION

Chestii pentru calculatoare numerice, ACS, LOLOLOLOL

Text of Indrumar CN

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 1

    C U P R I N S

    Lucrarea 1. Proiectarea circuitelor secveniale sincrone ............................................ 1

    Lucrarea 2. Proiectarea aplicaiilor folosind ierarhii de module ............................. 14

    Lucrarea 3. Proiectarea dispozitivelor aritmetice n virgul fix ............................ 24

    Lucrarea 4. Reprezentarea datelor. Operaii aritmetice ZCB ................................. 36

    Lucrarea 5. Uniti de execuie i comand integrate. AMD 2901 i AMD 2909 ... 45

    Lucrarea 6. Proiectarea dispozitivelor aritmetice n virgul mobil ....................... 55

    Lucrarea 7. Procesorul didactic DLX ......................................................................... 65

    Lucrarea 8. Memorii i ierarhii de memorii ............................................................... 72

    Lucrarea 9. Transmisia i recepia serial a informaiei .......................................... 83

    Lucrarea 10. Coduri detectoare/corectoare de erori. Criptarea informaiei ........... 92

    Anexa A Prezentarea mediului de dezvoltare hardware XILINX WebPack ISE -

    6.2i ................................................................................................................................. 104

    Anexa B Prezentarea simulatorului software SPIM ............................................... 132

    Anexa C Valoriile pinilor programabili pentru DIGILAB DIO1 / 2E .................. 137

    Bibliografie ................................................................................................................... 141

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 2

    11

    Proiectarea circuitelor secveniale sincrone 1. Prezentare teoretic

    n cadrul acestei lucrri de laborator se va prezenta metodologia de proiectare a unui circuit secvenial sincron. Circuitul final este obinut cu ajutorul diagramelor Karnough-Vength iar implementarea sa este realizat cu ajutorul utilitarului Schematic, din pachetul software de dezvoltare Xilinx WebPACK ISE 6.2 i.

    Calculatoarele sunt construite din circuite integrate care conin elemente de comutare denumite pori. Porile elementare sunt : I, SAU, I-NU, SAU-NU i NOT. Circuitele simple pot fi realizate prin combinarea direct de pori individuale. Circuitele mai complexe sunt: multiplexoare, codificatoare, circuite de deplasare i unitile aritmetico-logice.

    n 1975, Ron Cline de la Signetics (companie preluat mai trziu de Philips i n cele din urm de Xilinx) a avut ideea introducerii a dou plane de programare. Cu ajutorul celor dou plane de progamare, aa cum se poate observa n figura 1.1, se poate realiza orice circuit descris printr-o combinaie de pori I i SAU. Aceste dispozitive s-au numit dispozitive PLA (Programmable Logic Array).

    Caracteristicile acestor tipuri de circuite constau n urmtoarele:

    x conin dou planuri programabile; x orice circuit compus dintr-o combinaie de pori I sau SAU poate fi implementat; x ieirile porilor elementare I sunt distribuite la intrrile mai multor pori SAU; x densitate mare de logic disponibil pentru utilizator;

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 3

    x timp de propagare mare (Tpd), deci viteza de funcionare era relativ mic (mai mic dect a circuitelor PAL prezentate mai jos).

    Ieiri

    OR OR OR

    AND

    AND

    AND

    AND

    Intrri

    Figura 1.1: Exemplu de dispozitiv PLA.

    O alt companie MMI (mai trziu preluat de compania AMD) a modificat aceast arhitectur obinnd arhitectura PAL (Programmable Array Logic - figura 1.2). Modificarea introdus de MMI a constat n fixarea unui plan programabil (planul SAU), n acest fel valoarea lui Tpd a fost micorat. Tot n urma acestei modificri, complexitatea circuitelor programabile a fost redus. Dezavantajul a constat n pierderea flexibilitii oferit de circuitele programabile PLA.

    Alte arhitecturi au urmat acestora, (de exemplu PLD - Programmable Logic Device) dar fr a avea succesul comercial al arhitecturilor PLA sau PAL.

    Toate circuitele din aceast familie erau programate electric i erau terse n aproximativ 20 de minute folosind lumin ultraviolet. Toate aceste circuite logice programabile au fost incluse n categoria circuitelor SPLD (Simple PLD).

    Urmtoarele circuite logice aprute sunt circuitele CPLD - figura 1.3 (Complex Programmable Logic Device). Conceptul acestor dispozitive presupune utilizarea de blocuri PLD sau macrocelule, interconectate ntre ele, ntr-un singur circuit.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 4

    Ieiri

    OR

    OR

    AND

    AND

    AND

    AND

    Intrri

    Figura 1.2: Arhitectur PAL produs de MMI - Birkmer 1978.

    Aceste circuite opereaz n prezent la viteze de 200MHz. O caracteristic important a acestor circuite este aceea c modelul de timp pentru circuitele proiectate este uor de determinat.

    Figura 1.3: Arhitectur CPLD. Numrul maxim de pori este 200.

    Dispozitivele CPLD posed o serie de caliti, care le fac utilizabile nc i n prezent:

    x ofer cea mai simpl cale de implementare a unui proiect. Odat ce proiectul a fost descris ntr-un limbaj HDL (Hardware Design Language), programatorul utilizeaz un set de utilitare de dezvoltare CPLD n vederea optimizrii i simulrii circuitului proiectat. Modificrile ulterioare fcute circuitului proiectat sunt reimplementate n circuitul CPLD iar testarea poate avea loc imediat.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 5

    x costuri de dezvoltare reduse. Costurile achiziionrii programelor de optimizare i simulare n cazul circuitelor CPLD sunt reduse (programele de implementare, optimizare i testare oferite de Xilinx sunt gratis).

    x modificarea uoar a circuitelor proiectate. Aceast calitate se datoreaz faptului c un circuit CPLD este reprogramabil. Este foarte uor s se fac o modificare a proiectrii, implementrii i testrii chiar prin apeluri la distan.

    x aria de implementare este redus. Aceast calitate este n direct coresponden cu calitatea uneltelor software folosite pentru optimizarea circuitului proiectat. Cu ct efortul de optimizare este mai mare cu att timpul de procesare necesar este mai mare. Odat ce circuitul proiectat funcioneaz conform specificaiilor, se trece la implementarea n mas. Acum exist o multitudine de firme productoare de chip-uri care preiau doar fiierul obinut cu ajutorul programelor utilitare de implementare i ofer circuitul hardware.

    n 1985, compania numit Xilinx, aduce un nou concept. Realizarea unui circuit cu o structur regulat care s conin celule logice sau module, interconectate ntre ele i asupra crora utilizatorul s aib un control complet. Acest lucru implic faptul c utilizatorul poate proiecta, programa i aduce modificri unui circuit oricnd este necesar.

    Circuitele de acest tip poart numele de Field Programmable Gate Array FPGA (figura 1.4). Numrul de pori coninute de un circuit FPGA depete 10 milioane.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 6

    Figura 1.4: Arhitectur FPGA (Xilinx - Freeman - 1985); peste 10.000.000 de pori.

    Actualmente exist dou tipuri de baz de circuite FPGA:

    x SRAM FPGA

    x OTP (One Time Programable) FPGA

    Aceste dou tipuri difer prin modalitatea de implementare a celulelor logice, precum i prin mecanismul utilizat pentru realizarea conexiunilor n interiorul circuitului. Aa cum se poate uor intui, piaa de circuite FPGA este dominat de ctre SRAM FPGA. Dac la circuitele FPGA de tipul OTP se utilizeaz pori logice tradiionale, pentru implementarea circuitului proiectat, la cele de tipul SRAM se utilizeaz LUT (Look Up Table).

    Circuite secveniale sincrone Definiie: Sistemele digitale n a cror componen exist elemente de memorie precum i elemente logice combinaionale se numesc circuite secveniale.

    Ieirea unui circuit secvenial la orice moment de timp este o funcie de intrrile externe ale sale i de starea sa intern la acel moment de timp. Starea circuitului este definit de coninutul elementelor de memorie din circuit i este o funcie de strile anterioare i de intrrile circuitului.

    Exist dou tipuri de circuite secveniale: sincrone i asincrone. Comportarea unui circuit sincron depinde de valorile semnalului la momente discrete de timp. Comportarea unui circuit asincron depinde de ordinea n care se modific semnalele de intrare, aceste modificri putnd aprea la orice moment de timp. Instanele de timp discrete ntr-un circuit sincron sunt determinate de un semnal de control, uzual denumit ceas .

    Circuitele secveniale sincrone utilizeaz bistabilele ca elemente de memorie. Un bistabil este un circuit electronic care poate memora l sau 0. Un bistabil poate memora una din cele dou stri logice pn la apariia frontului de ceas. n figura 1.5 sunt prezentate simbolurile Xilinx ale celor mai utilizate bistabile: D, JK i T, mpreun cu tabelele lor de excitaie.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 7

    a)

    b)

    c)

    Figura 1.5: Bistabilele T (a), D (b), i JK (c); simboluri i tabele de excitaie.

    Procedura clasic urmat n cazul proiectrii oricrui circuit secvenial sincron este urmtoarea:

    1. se construiete diagrama logic a circuitului pornind de la enunul problemei;

    2. se determin numrul de bistabile p necesare, pornind de la numrul de stri ale diagramei stabilite la pasul l, utiliznd formula: 2p - 1 < n < 2p, unde n reprezint numrul de stri;

    3. se asigur cte o etichet de lungime p bii pentru fiecare stare;

    4. se stabilete tabela strilor de tranziie i tabela de ieire;

    5. se determin o tabel de intrare pentru fiecare bistabil, utiliznd tabelele de excitaie prezentate n figura 1.5;

    6. se determin ecuaiile de intrare pentru fiecare intrare a bistabilelor ce compun circuitul secvenial sincron;

    7. se deseneaz diagrama circuitului.

    Pentru a exemplifica procedura enunat se consider un exemplu practic. Se dorete proiectarea unui automat folosit n distribuirea buturilor rcoritoare. Se presupune c fiecare sticl cost 15.000 lei. Automatul accept monede de 5.000 lei precum i bancnote de 10.000 i 50.000 lei.

    Se presupune existena unui mecanism care sorteaz banii primii i emite trei semnale, cte unul pentru fiecare tip. Cele trei semnale determin tranziii ale automatului dintr-o

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 8

    stare n alta n funcie de valorile lor. Automatul trebuie s elibereze sticla i restul corect n cazul in care suma acumulat este mai mare dect 15.000 de lei.

    Pasul 1. Diagrama logic corespunztoare enunului problemei este prezentat n figura 1.6.

    Figura 1.6: Diagrama logic pentru automatul de distribuit buturi rcoritoare.

    Pasul 2. n diagrama din figura 1.6 se poate observa c numrul de stri este 11. Deoarece 24 este primul numr mai mare dect 11, rezult c vor fi necesare 4 bistabile. Bistabilele utilizate n implementare sunt bistabile de tipul D. Ele vor fi numerotate D0, ... D3 iar tabela de excitaie utilizat este cea prezentat n figura 1.5.

    Pasul 3. Codificarea strilor este urmtoarea: A - 0000, B - 0001, C - 0010, D - 0011, E -0100, F - 0101, G - 0110, H - 0111,I - 1000, J - 1001, K - 1010.

    Pasul 4. Din diagrama de stri stabilit la pasul l, se poate deduce tabelul 1.1. Codificarea semnalelor cuprinse n tabelul 1.1 este urmtoarea:

    x M, B1 , B2 - semnale care se activeaz cnd o moned de 5.000 lei, bancnot de 10.000 / 50.000 lei este introdus n aparat;

    x EM, EB1 - semnal care se activeaz cnd o moned de 5.000 lei, bancnot de 10.000 lei trebuie returnat de ctre aparat;

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 9

    x ESB - semnal care se activeaz 21 BBM cnd o sticl de butur rcoritoare trebuie eliberat de ctre aparat.

    Stare iniial Stare Final Condiii Comenzi

    B 0001 21 BBM

    C 0010 21 BBM H 0111 21 BBM

    A - 0000

    A 0000 21 BBM

    EBl & ESB

    A 0000 21 BBM

    ESB

    I 1000 21 BBM EBl & ESB C 0010 21 BBM

    B - 0001

    B 0001 21 BBM D 0011 21 BBM A 0000

    21 BBM + 21 BBM C - 0010

    C 0010 21 BBM

    EBl & ESB ESB + EM & ESB

    E 0100 - - - D - 0011 D 0011 21 BBM

    EBl

    F 0101 - - - E - 0100 E 0100

    21 BBM EBl

    G 0110 - - - F - 0101 F 0101

    21 BBM EBl

    G - 0110 A 0000 - - - EM F 0101 - - - H - 0111 H 0111

    21 BBM EBl

    J 1001 - - - I - 1000 I 1000 21 BBM

    EBl

    K 1010 - - - J - 1001 J 1001

    21 BBM EBl

    K - 1010 A 0000 - - - EBl

    Tabelul 1.1: Tabelul strilor de tranziie.

    Pasul 5. n acest pas se elaboreaz tabelele K-V de minimizare pornind de la tabelul 1.1 i tabelul de excitaie pentru bistabilul D din figura 1.5. Rezultatul obinut este prezentat

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 10

    n figura 1.7. Aceast tabel este valabil doar pentru bistabilul 4, corespunztor intrrii D3.

    Figura 1.7: Tabela K-V de minimizare pentru D3.

    Rezultatul obinut n urma minimizrii tabelei K-V din figura 1.7 este:

    2120313 BBMyyyyD (1.1) n mod analog se deduc i celelalte funcii de excitaie. Rezultatele obinute sunt:

    0122112202310213201210120

    01210210121

    23011232103012211

    1201321020132102122

    yyyBBMyBMBM

    yyyByBBMyyyyBBMyyyD

    yyBBMyBBMyyBBM

    yyyyyyyBBMyyyyyBBMD

    yyyyyBBMyyyyyBBMyyyyD

    (1.2)

    Pasul 6. Pentru fiecare semnal de ieire (EM, EB1 i E S B) se determin cte o tabel K-V cu ajutorul creia se va stabili forma canonic. Spre exemplu, pentru semnalul EM, pornind de la tabelul 1.1, se poate deduce tabela K-V prezentat n figura 1.8.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 11

    Figura 1.8: Tabela K-V de minimizare pentru EM.

    Conform tabelei K-V prezentat n figura 1.8 se poate deduce urmtoarea form canonic pentru EM:

    01221013 yyyBBMyyyEM (1.3)

    Procednd n mod analog pentru semnalele EB1 si ESB se obin urmtoarele forme canonice:

    12013210121232101231 yyyyyBBMyyyyyyBBMyyyyEB (1.4) > @01210121012123 yyBBMyyBBMyyBBMyyESB (1.5) Pasul 7 . Pentru desenarea diagramei circuitului se folosete o procedur destul de laborioas care va fi prezentat n paragraful urmtor.

    Implementarea unui circuit secvenial folosind Xilinx ISE Cu ajutorul pachetului software WebPACK ISE, proiectele diverselor circuite pot fi introduse foarte uor i rapid utiliznd limbaje de descriere cum sunt VHDL sau Verilog sau utiliznd utilitarul Schematic . Acest utilitar folosete metoda tradiional de proiectare, utiliznd biblioteci de pori logice i circuite logice programabile. Marele dezavantaj al acestei metode este faptul c proiectul rezultat este dependent total de tehnologia i circuitul FPGA ales la nceputul proiectrii. Un alt dezavantaj major l constituie faptul c circuitele elaborate cu acest utilitar nu mai respect conceptul de reutilizare.

    Acest concept este deosebit de important n industrie, unde un circuit odat proiectat este folosit pentru orice platform sau circuit FPGA/CPLD existent. Acest concept este valabil pentru circuitele proiectate folosind limbaje de descriere hardware cum sunt VHDL sau Verilog.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 12

    OBSERVAIE . Mediul de programare Xilinx WebPACK ISE este prezentat n detaliu n Anexa A. Se recomand citirea cu atenie a acestei anexe naintea nceperii realizrii oricrei proiectri.

    Proiectarea unui circuit cu ajutorul utilitarului Schematic presupune parcurgerea urmtorilor pai:

    1. Stabilirea circuitului i a familiei de circuite FPGA/CPLD utilizate n implementarea circuitului proiectat.

    Din meniul File se selecteaz opiunea New Project . Aici se alege un nume pentru proiect, spre exemplu laboratorl. Pentru a putea implementa fizic proiectul n final, se introduce XC9500 CPLDs n cmpul Device Family, Auto-PQ XC9500 n cmpul Device i XST Verilog n cmpul Design Flow. n final se selecteaz opiunea New Source din meniul Project.

    n noua fereastra deschis se selecteaz opinea Schematic i se introduce un nume pentru circuitul proiectat, spre exemplu soft- drink. Se execut Next i apoi Close. Dac toate operaiile au fost realizate cu succes, atunci o pagin nou de lucru, ca n figura 1.9, devine disponibil pentru a realiza circuitul dorit, utiliznd doar circuitele din biblioteca XC9500 CPLD.

    n figura 1.9 sunt prezentate doar cteva din opiunile disponibile. Restul opiunilor pot fi uor descoperite dac sgeata mouse-ului este mutat deasupra opiunii dorite.

    2. Proiectarea circuitului dorit utiliznd doar circuite componente ale bibliotecii XC9500 CPLD. Circuitul proiectat va conine patru bistabile D precum i logica aferent implementrii ecuaiilor de la 1.1 pn la 1.4. Este important pentru simulare ca proiectul s conin porturile de intrare i de ieire.

    nainte de a trece la pasul urmtor, se verific dac implementarea este corect. Pentru aceasta se alege opiunea Check Schematic din meniul Tools.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 13

    Figura 1.9: Mediul de proiectare Schematic .

    3. Ultimul pas, naintea simulrii, este crearea fiieirului netlist. Acesta este un fiier text echivalent cu circuitul generat la pasul anterior. El reprezint o cale compact pentru alte programe care doresc s "neleag" ce pori logice exist n proiect, cum sunt ele conectate i care sunt denumirile porturilor de I/O.

    Formatul EDIF (Electronic Digital Interchange Format) reprezint standardul industrial pentru fiierele netlist. Xilinx ofer un format propriu pentru fiierul netlist, formatul XNF (Xilinx Netlixt Format).

    2. Desfurarea lucrrii

    1. Fololosind ecuaiile 1.1 pna la 1.5, utilitarul Schemtic precum i circuitele disponibile n biblioteca XC9500CPLD, se va implementa circuitul secvenial prezentat n figura 1.6.

    2. Se va simula circuitul obinut la punctual 1, folosind simulatorul ModelSim.

    3. Se va implementa automatul obinut prin intermediul pachetului de dezvoltare Xilinx WebPACK ISE 6.2i n circuitul CPLD XC9500.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 14

    3. Probleme propuse 1. Se d funcia booleana: zyxxyxF .

    x Determinai tabela de adevr a acestei funcii.

    x Determinai diagrama logic utiliznd expresia booleana original.

    x Simplificai expresia algebric utiliznd algebra booleana.

    x Determinai tabela de adevr a expresiei simplificate i artai c este aceeai cu cea determinat la punctul a.

    x Desenai diagrama logic a expresiei simplificate i comparai numrul total de pori logice folosite cu numrul total de pori logice folosite n diagrama stabilit la punctul b.

    2. Simplicai urmtoarele funcii booleene utiliznd diagrame K-V:

    x F(A, B, C, D) = (4,6,7,15) x F(A, B, C, D) = (3, 7, 11, 13, 14, 15) x F(A, B, C, D) = (0, l, 2, 4, 5, 7, 11, 15) x F(A, B, C, D) = (0, 2, 4, 5, 6, 7, 8, 10)

    3. S se proiecteze i s se simuleze utiliznd WebPACK ISE, un numrtor care numr cresctor/descresctor de la 0 la 15.

    4. S se proiecteze i s se simuleze utiliznd WebPACK ISE, un circuit secvenial care recunoate urmtoarea secven: 0001 1000.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 15

    22

    Proiectarea aplicaiilor folosind ierarhii de module

    1. Prezentare teoretic

    n cadrul acestui laborator se va prezenta metodologia de proiectare TOP DOWN utilizat n cazul proiectrii oricrui circuit netrivial. Deasemenea, vor fi prezentate o parte din utilitarele cuprinse n pachetul de dezvoltare Xilinx WebPACK ISE 6.2i care reduc drastic timpul alocat implementrii i testrii unui circuit.

    Actualmente, n industrie, proiectele realizate sunt deosebit de complexe. Metoda utilizat n vederea proiectrii lor este tehnica TOP DOWN . Conform acestei metode, proiectul este mprit n module, fiecare modul fiind implementat i testat separat, urmnd ca la final modulele s fie combinate. WebPACK ISE 6.2 pune la dispoziia proiectantului o serie de utilitare care pot fi utilizate n proiectarea modulelor precum CORE Generator, State Diagram, HDL Design i DCM Wizard . n final, combinarea tuturor modulelor se va realiza prin intermediul utilitarului Schematic . Pentru a exemplifica metoda TOP DOWN precum si utilitarele disponibile n WebPACK ISE 6.2, se va considera implementarea urmtoarei secvene de program:

    for (x = 0, y = 3, i = 0, i d 10; i = i + 1) x = x + y;

    if (x < 0) y = 0; else x = 0;

    Numerele se consider binare de 8 bii iar valoarea sumei yxx va fi afiat cu ajutorul unui dispozitiv LCD cu apte segmente. Resursele hardware necesare implementrii secvenei de program sunt prezentate n figura 2.1.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 16

    Toate aceste resurse vor fi implementate pentru circuitul CPLD XC9500 aflat n dotarea laboratorului. Primii pai de creare a unui proiect, selectarea circuitului FPGA dorit, etc. se presupun cunoscui i realizai.

    Figura 2.1: Resursele hardware necesare implementrii secvenei de cod.

    ntreaga implementare realizat ca exemplu pstreaz principiul reutilizabilitii. n consecin, modulele sunt implementate utiliznd limbajul VERILOG i nu se va face apel la librria Xilinx, disponibil pentru acest tip de circuit CPLD. Singurul modul implementabil cu ajutorul utilitarului State Diagram este modulul FSM.

    Modulul registru - Se proiecteaz n Verilog conform urmtoarei proceduri:

    x Se selecteaz opiunea New Source din cadrul meniului Project. n fereastra nou aprut se alege Verilog Module urmnd s se introduc numele modulului, spre exemplu registru.

    x Urmtoarea fereastr este dedicat definirii intrrilor/ieirilor modulului specificnd pentru fiecare semnal numele, tipul semnalului (I/O), bitul cel mai semnificativ precum i bitul cel mai puin semnificativ. n vederea unei reutilizabiliti ct mai mare se ignor acest pas.

    Pentru implementrile viitoare este mai bine s se defineasc dimensiunea oricrui semnal de I/O prin intermediul unui parametru Width. Dac ntr-un alt proiect este nevoie de intrri de 32 bii, spre exemplu, este suficient modificarea doar a acestui parametru, restul implementrii rmnnd nemodificat.

    x Se implementeaz modulul dorit, utiliznd sintaxa i construciile permise de Verilog. Spre exemplu, implementarea registrului necesar proiectului poate fi observat n figura 2.2.

    x Se creeaz un simbol care va fi utilizat n schema final prin apelarea utilitarului

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 17

    Create Schematic Symbol.

    x n cazul n care modulul proiectat este complex, se va realiza o simulare comportamental a modulului utiliznd simulatorul ModelSim .

    Figura 2.2: Secvena de cod Verilog pentru implementarea unui registru. Aceast procedur se repet pentru proiectarea modulelor: sumator, convertor, comparator-LEQ, comparatorLT, zero-gen, zece-generator i unu-generator. Modulul FSM - Proiectarea lui se realizeaz cu ajutorul utilitarului State Diagram. Din meniul Project se selecteaz opiunea New Source. n fereastra nou deschis se introduce numele fsm i se selecteaz opiunea State Diagram. Panoul cu butoanele de lucru se afl poziionat stnga fa de foaia virtual de lucru. Introducerea diagramei de stri se face conform urmtoarei proceduri:

    x Se va selecta butonul Add State; apoi se va poziiona n cadrul foii virtuale de lucru starea STATE0.

    1. Pentru modificarea numelui acestei stri se execut dublu click asupra strii STATE0. n fereastra nou deschis se introduce A n loc de STATE0. n cazul exemplului prezentat sunt necesare cinci stri: A, B, C, D, E.

    2. Se repet pasul 2 pn se introduc toate strile, care compun diagrama de stri a circuitului.

    3. Se selectez butonul Add Transition pentru a aduga tranziiile dintr-o stare ntr-o alt stare. n situaia n care, datorit unor condiii, se rmne

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 18

    n aceeai stare, se va utiliza tot butonul Add Transition.

    Dup selectarea butonului Add Transition, se alege starea iniial i apoi starea urmtoare. n mod automat se va trasa o linie sau un arc de cerc terminate printr-o sgeat care va uni cele dou stri selectate. Direciile sgeilor vor indica modalitatea de parcurgere a strilor.

    n cazul exemplului prezentat, strile sunt parcurse n ordine de la starea A pn la starea E. Exist i o excepie: din starea C este posibil rentoarcerea n starea B.

    4. Adugarea unei aciuni pentru o stare: aciunea unei stri arat cum trebuie s se comporte ieirile circuitului ntr-o stare dat. Pentru a specifica comportarea ieirilor ntr-o stare dat trebuie mai nti s se selecteze starea dorit i apoi s se efectuez un dublu click. Fereastra nou aprut are un buton, Output Wizard, utilizat pentru specificarea comportrii ieirilor.

    n cazul exemplului prezentat, n starea A, ieirile xCLEAR i iCLEAR trebuie s aib valoarea zero. Specificarea acestor cerine se realizeaz cu ajutorul urmtoarei secvene de operaii:

    o Se selecteaz starea A i se execut dublu click;

    o Se selecteaz butonul Output Wizard.

    o n seciunea Output Wizard se selecteaz valorile DOUT = xCLEAR, CONSTANT = 0;

    o Se apas butonul OK pentru a asigna valoarea constant 0 ieirii xCLEAR;

    o Se selecteaz butonul Output Wizard.

    o n cmpul Output Wizard se aleg valorile DOUT = iCLEAR, CONSTANT = 0;

    o Apsarea butonului OK implic asignarea valorii 0 ieirii iCLEAR;

    o Se selecteaz butonul OK pentru a nchide fereastra Edit State.

    Rezultatul aplicrii unei astfel de secvene de operaii poate fi observat n figura 2.3.

    Odat cu creterea experienei n utilizarea utilitarului State Editor , se va observa c acelai efect se obine i dac n interiorul cmpului Outputs din cadrul ferestrei Edit State se introduce secvena xCLEAR = 0; iCLEAR = 0.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 19

    Figura 2.3: Introducerea de actiuni pentru starea A.

    5. Se repet pasul 5 pn se epuizeaz toate strile, care compun graful strilor circuitului.

    6. Adugarea condiiei RESET - Aceast condiie este deosebit de important deoarece prima stare care este activat (starea de intrare), este indicat de RESET. Pentru adugarea ei trebuie selectat butonul AddReset. Se alege punctul iniial n jurul strii de intrare i apoi se selecteaz starea de intrare. n cazul exemplului prezentat, punctul de start al condiiei RESET trebuie unit cu starea A.

    7. Trecerea dintr-o stare n alt stare se poate realiza fie prin intermediul unor condiii, fie automat. n cazul automat, linia de tranziie care unete cele dou stri nu conine nici o condiie. n cazul n care trecerea de la o stare ntr-o alt stare se realizeaz numai prin intermediul unor condiii, aceste condiii trebuie specificate.

    Este suficient s se realizeze un dublu click pe linia de tranziie dorit pentru c fereastra Edit Condition s fie deschis. n cadrul acestei ferestre, n cmpul Condition se introduc condiiile care trebuie ndeplinite. Acest pas se repet pn cnd sunt introduse toate condiiile care afecteaz funcionarea circuitului.

    n cazul exemplului prezentat, circuitul trece din starea C n starea B numai dac i < 0. Respectarea acestei condiii este dat de valoarea semnalului LT. Dac LT = 1, atunci inegalitatea i < 0 este adevrat, altfel LT = 0. Rezultatul implementrii pailor prezentai poate fi observat n figura 2.4.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 20

    Figura 2.4: Modulul FSM proiectat cu ajutorul utilitarului State Diagram.

    x Optimizarea circuitului FSM obinut - aceast opiune este absolut necesar s fie selectat pentru a obine un circuit performant n funcie de un criteriu ales de noi, spre exemplu viteza de funcionare a circuitului rezultat sau minimizarea ariei ocupate de noul circuit. Intrarea n aceast procedur se realizeaz odat cu selectarea butonului Optimize situat n bara orizontal de butoane. n cazul exemplului prezentat, are loc urmtoarea succesiune de operaii:

    1. Se selecteaz butonul Optimize aflat n bara orizontal de butoane;

    2. Circuitul utilizat pentru implementare este XC9500 care este un circuit Xilinx CPLD; de aceea se va alege opiunea CPLD/PAL;

    3. Se dorete ca circuitul s funcioneze cat mai rapid (implicit aria ocupat va fi mai mic), deci se va alege opiunea Speed(register outputs);

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 21

    4. Exist ansa, n cazul proiectelor care conin zeci sau sute de stri, ca nu toate condiiile impuse s fie acoperite. Pentru a evita acest neajuns se va alege opiunea Guarantee coverage. Automatul proiectat n figura 2.4 conine un numr mic de stri ceea ce va conduce la selectarea opiunii Maximize Speed. Reduce Areea.

    5. Urmtoarea fereastr se refer la optimizarea modului de ncrcare a semnalelor de intrare ale automatului. Se prefer utilizarea setrilor deja existente.

    6. Automatul proiectat este translatat n cod Verilog/VHDL sau ABEL pentru a putea fi apelat sub form de modul, ntr-un alt modul aflat pe un nivel superior, n cadrul ierarhiei de module.

    7. Unul dintre utilitarele cu care se pot realiza toi paii de optimizare descrii este utilitarul Xilinx XST.

    Rezultatul procedurii de optimizare a automatului cu stri proiectat este un fiier Verilog, aa cum se poate observa n figura 2.5.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 22

    Figura 2.5: Optimizarea modulului FSM rezult ntr-o descriere Verilog.

    Modulul TOP Este considerat modulul de vrf i posed ca submodule toate modulele proiectate pn n acest moment. Conform procedurii de proiectare Xilinx, el este n mod obligatoriu proiectat cu ajutorul utilitarului Schematic. Proiectarea lui presupune conectarea tuturor submodulelor componente i stabilirea semnalelor de intrare/ieire.

    Nu trebuie pierdut din vedere faptul c modulul proiectat anterior, FSM, trebuie adugat la proiect. Pentru aceasta, se selecteaz opiunea Add Source, din meniul Project, i se alege fiierul FSM.v. Ultima etap este selectarea sursei FSM.v i lansarea procedurii Create Schematic Symbol. n urma acestui pas, sunt create toate modulele necesare implementrii circuitului dorit.

    OBSERVAIE n codul surs al fiierului FSM.v fost introdus i o linie de cod prin care ieirea yLOAD primete valoarea 0 indiferent de starea n care se gsete automatul.

    Ultima etap a procesului de proiectare o constituie verificarea ntregului circuit proiectat. Aceast etap presupune utilizarea unui simulator performant, de exemplu ModelSim XE.

    Urmtorul proces este procesul de sintez. Acesta presupune n primul rnd specificarea exact a tipului de circuit CPLD folosit n procesul de implementare. n fereastra Sources in Projects se poate observa c ntreaga proiectare realizat pn acum a fost executat pentru Auto xc9500-.

    Deoarece proiectarea a fost realizat independent de platforma utilizat (proiectarea modulelor s-a executat n Verilog), este foarte simplu s se modifice tipul circuitului Xilinx fr ns a modifica modulele deja proiectate.

    Pentru a schimba tipul circuitului Xilinx, se face dublu click n fereastra Sources in Projects pe Auto xc9500-. n noua fereastr se selecteaz n cmpul Device circuitul xc95108. Restul cmpurilor sunt completate automat i nu este necesar s fie modificate. Pentru a putea lansa utilitarul PACE, este necesar s se specifice fiierul de constrngeri. Pentru aceasta, se adaug un nou fiier surs de tipul Implementation Constraints File la proiect, iar n fereastra de editare a fiierului de constrngeri, se realizeaz urmtoarele operaii:

    x Se selecteaz celula (dublu click) Period din linia asociat intrrii de ceas CLK.

    x n fereastra Clock Period se definete semnalul de ceas. n cadrul exemplului prezentat, au fost utilizate valorile deja existente.

    x Se nchide aceast fereastr selectnd butonul OK.

    x Se apas butonul Ports pentru a defini i celelalte porturi de intrare/ieire. Spre exemplu, se selecteaz intrarea RESET i se utilizeaz butonul dreapta al mouse-ului pentru a alege opiunea Pad to Setup unde se va specifica

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 23

    comportarea semnalului.

    x Semnalele ledout0 . . . ledout6 au toate acelai comportament. Este indicat s se grupeze aceste semnale ntr-unul singur ledout-gr i apoi, s se selecteze opiunea Clock to Pad, pentru a specifica comportamentul grupului de semnale ledout-gr.

    x Se salveaz toate modificrile fcute i apoi se prsete editorul de constrngeri.

    Dup realizarea fiierului de constrngeri trebuie invocat utilitarul grafic PACE care realizeaz asignarea porturilor de intrare/ieire prezente n modulul TOP cu porturile fizice ale circuitului CPLD. Procesul este foarte simplu i const n selectarea intrrii/ieirii dorite i apoi alegerea pinului corespunztor. Fiecare pin este reprezentat printr-un numr, semnificaia fiecrui numr regsindu-se n manualul circuitului oferit de ctre productor.

    Ultimul proces este cel de implementare. Acesta este un proces automat si nu ofer (n cazul proiectrii cu circuite CPLD) nici o metod de a controla subprocesele sale. n urma lui va rezulta un fiier cu extensia bit care va fi ulterior transferat n circuitul CPLD fizic, testnd astfel funcionarea circuitului proiectat.

    2. Desfurarea lucrrii 1. Se vor proiecta n Verilog i testa folosind ModelSim toate modulele care

    alctuiesc schema funcional din figura 2.1.

    2. Se va implementa i se va testa schema functional prezentat n figura 2.1 utiliznd Xilinx WebPACK ISE 6.2i i ModelSim.

    3. Se va implementa fizic schema din figura 2.1 folosind circuitul CPLD XC9500, aflat n dotarea laboratorului.

    3. Probleme propuse 1. S se implementeze o main automat de eliberare a buturilor rcoritoare folosind circuitele FPGA/CPLD existente n laborator. S se elaboreze un raport cu diferenele de proiectare observate.

    2. Se consider un numrtor binar de 28 bii. S se proiecteze un circuit care afieaz cei mai semnificativi patru bii n format hexazecimal utiliznd un dispozitiv cu apte segmente. Pentru implementare se vor utiliza circuitele CPLD/FPGA din dotarea laboratorului.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 24

    3. S se proiecteze i implementeze folosind circuite CPLD/FPGA, un circuit secvenial care s ndeplineasc urmtoarele cerine:

    x introducerea unei combinaii de la tastatur ca o secven de lungime 24.

    x combinaia introdus se memoreaz ca un cod.

    x orice alt combinaie introdus este ignorat (tastatura este blocat).

    x introducerea combinaiei permite deblocarea tastaturii i setarea unei alte combinaii de cod.

    4. S se proiecteze i implementeze jocul BLACKJACK utiliznd Xilinx WebPack ISE 6.2i.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 25

    33

    Proiectarea dispozitivelor aritmetice n virgul fix

    1. Prezentare teoretic Scopul acestui laborator este acela de a prezenta sumatorul carry look ahead precum i o modalitate de implemetare a operaiilor de adunare, scdere, nmulire i mprire n virgul fix. Reprezentarea numerelor n virgul fix este descris n standardul IEEE 754 i se presupune cunoscut.

    Cuvintele calculatoarelor sunt compuse din bii, deci ele pot fi reprezentate ca numere binare. Numrul de bii din care este compus un cuvnt se alege n funcie de precizia cu care se dorete realizarea operaiilor n calculator. Spre exemplu, un cuvnt de 32 bii ofer o gam de reprezentare cuprins ntre 0 i 232 - l (4.294.967.295).

    Numerele ntr-un calculator pot fi fr semn sau fr semn. n cazul n care un numr este reprezentat fr semn, el se codier numr pozitiv. Orice calculator folosete pentru numerele binare cu semn reprezentarea n cod complementar fa de 2. Aceast reprezentare are avantajul c toate numerele negative au l n bitul cel mai semnificativ, ea devenind standardul universal pentru aritmetica de ntregi a calculatoarelor.

    n cazul n care se lucreaz cu numere binare de dimensiuni mari: 32, 64 sau 128 bii, este recomandat citirea/scrierea lor utiliznd o baz mai mare dect baza 2 i care s asigure ulterior conversia rapid a numrului ntr-un numr binar.

    Deoarece aproape toate dimensiunile de date de calculator sunt multipli de 4, utilizarea numerelor hexazecimale pentru operaii de citire/scriere este o soluie des ntlnit.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 26

    Conversia din binar n hexazecimal se realizeaz mecanic prin nlocuirea fiecrui grup de patru cifre binare printr-o singur cifr hexazecimal i invers.

    Proiectarea unei uniti aritmetice / logice Unitatea Aritmetic/Logic (UAL) este dispozitivul care efectueaz operaiile aritmetice i logice. Operaiile aritmetice i logice executate de ctre orice calculator sunt: adunarea, scderea, I la nivel de bit, SAU la nivel de bit.

    n calculator, adunarea se efectueaz prin adunarea celor dou numere bit cu bit de la dreapta la stnga, transportul trecnd la urmtoarea cifr din stnga.

    Scderea folosete adunarea: nainte de a fi adunat, scztorul este transformat ns n negativul su.

    Se va proiecta un circuit care implementez operaii aritmetice i logice pe l bit (UAL de 1 bit), urmnd ca acest circuit s fie multiplicat de 32 de ori, pentru a obine o unitate aritmetic/logic, care lucreaz cu numere binare de lungime 32 bii (UAL de 32 bii).

    Cele mai simple operaii de implementat sunt operaiile I i SAU, care necesit din punct de vedere al resurselor hardware, doar o poart I cu dou intrri, o poart SAU cu dou intrri i un multiplexor, aa cum se poate observa n figura: 3.1.a.)

    Figura 3.1: UAL de 1 bit care realizeaz operaiile l i SAU.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 27

    Urmtoarea operaie care va fi implementat este operaia de adunare. Pentru aceasta se va utiliza un sumator de l bit care va fi adugat logicii deja existente. Unitatea aritmetic logic de l bit care realizeaz operaiile: I, SAU i adunare este prezentat n figura 3.1.b.)

    Pentru implementarea operaiei de scdere mai trebuie adugat un multiplexor i un inversor resurselor hardware deja existente aa cum se poate observa n figura 3.1.c. Conform acestei figuri, dac semnalul not_b = l i semnalul cin = l, atunci se obine scderea n cod complementar fa de 2 a lui b din a.

    Tot n figura 3.1 c.) se poate observa c, pentru realizarea operaiilor logice sau al operaiei de adunare, este suficient ca semnalele not_b i cin s fie 0. Din aceast cauz se pot combina aceste dou semnale ntr-o singur linie de control numit not_b1, ca n figura 3.1.d.)

    n cazul n care se adun doi operanzi cu acelai semn pot s apar cazuri de depire. Acestea trebuie evideniate pentru a elimina situaiile n care rezultatul obinut poate fi citit/interpretat eronat. O verificare simpl a depirii la adunare este s se constate dac semnalul cin spre cel mai semnificativ bit este diferit de semnalul cout de la cel mai semnificativ bit. Schema final pentru un UAL de l bit n care sunt semnalate situaiile de posibil depire este prezentat n figura 3.1.d.)

    Un circuit UAL de 32 de bii se realizez printr-o nlnuire de 32 de uniti UAL de l bit. n cazul n care se dorete introducerea instruciunilor de ramificaie condiionat, circuitului UAL de 32 bii i se mai adaug un inversor i o poart logic OR cu 32 de intrri, aa cum se poate observa n figura 3.2.

    Figura 3.2: UAL de 32 bii.

    Aceste instruciuni determin o ramificare a controlului, fie dac dou registre sunt egale n coninut, fie dac ele sunt diferite. Verificarea egalitii cu ajutorul circuitului UAL se realizeaz prin scderea lui b din a i apoi testarea rezultatului cu zero. Astfel, dac se adaug hardware pentru a se verifica dac rezultatul este 0, se poate testa egalitatea. Metoda cea mai simpl de calcul presupune efectuarea unui SAU ntre toate ieirile, apoi acest semnal s fie scos printr-un inversor.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 28

    013031 ... rezultatrezultatrezultatrezultatZERO (3.1)

    Sumatorul cu anticiparea transportului

    n vederea determinrii factorilor generare i propagare transport se pornete de la ecuaia care determin transportul de intrare pentru sumatorul 1.

    0000001 bacinacinbcin (3.2)

    Factoriznd ecuaia 3.2, se obine urmtoarea ecuaie:

    )(1 iiiiiiiiiiii bacbabacacbc (3.3)

    Dac n aceast ecuaie se noteaz termenul ii ba cu ig i ii ba cu ip atunci ecuaia 3.3 devine:

    iiii cpgc 1 (3.4)

    Termenii ig i ip se numesc generare transport i propagare transport. Dac n ecuaia 3.4 se presupune c ig = l, atunci rezult c 1ic = 1. Aceasta nseamn c sumatorul genereaz un transport ctre sumatorul urmtor, independent de valoarea intrrii cin. Anolog, dac se presupune n ecuaia 3.4, ig = 0 i ip = 1 atunci rezult c ii cc 1 , adic sumatorul propag transportul de la intrare la ieire.

    Exemplu S se determine ecuiile pentru un sumator cu anticiparea transportului care realizeaz suma a dou numere binare de 4 bii.

    Soluie: Ecuaiile sunt urmtoarele:

    0001 cpgc 0010112 cppgpgc

    00120121223 cpppgppgpgc (3.5) 0012301231232334 cppppgpppgppgpgc

    Aa cum se observ i n exemplul prezentat, aceast form simplificat conduce la un volum considerabil de circuite logice chiar i pentru un sumator de 16 bii. Pentru a nltura acest inconvenient este nevoie s se treac la un nivel superior de abstractizare.

    Pentru a mri viteza, n cazul folosirii unui sumator de 16 bii, este necesar efectuarea anticiprii transportului cu sumatoare de 4 bii. Noile semnale, P i G, vor semnifica propa-garea i generarea transportului la nivel de bloc. Ecuaiile la nivel de bloc pentru transportul

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 29

    de intrare al fiecrui grup de 4 bii al sumatorului de 16 bii sunt prezentate n ecuaiile 3.6, dar ele sunt asemntoare cu ecuaiile 3.5.

    0001 cPGC 0010112 cPPGPGC (3.6)

    00120121223 cPPPGPPGPGC 0012301231232334 cPPPPGPPPGPPGPGC

    unde:

    01230 ppppP 45671 ppppP

    8910112 ppppP 121314153 ppppP

    01231232330 gpppgppgpgG (3.7) 45675676771 gpppgppgpgG

    891011910111011112 gpppgppgpgG 121314151314151415153 gpppgppgpgG

    Implementarea hardware este prezentat n figura 3.3.

    Exemplu S se determine valorile gi, pi, Pi i Gi ale urmtoarelor dou numere de 16 bii: a = 0001 1010 0011 0011 i b = 1110 0101 1110 1011. S se determine i valoarea termenului C4.

    Soluie : Se determin nti valorile iii bag i iii bap .

    a: 0001 101000110011

    b: 11100101 1110 1011

    ig : 0000000000100011

    ip : 1111 1111 1111 1011

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 30

    Figura 3.3: Sumator pe 16 bii

    Determinarea semnalelor P3, P2, P1 i P0 sunt simple operaii I ntre propagrile nivelului inferior.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 31

    111113 P 111112 P 111111 P 011010 P

    00000)1101()101()01(00 G (3.8) 10100)0111()111()01(01 G 00000)0111()011()01(02 G 00000)0111()011()01(03 G

    100100)00111()0111()111()01(04 C Se observ c la adunarea numerelor a i b de 16 bii exist un transport de ieire.

    Algoritmul de nmulire al lui Booth Acest algoritm ofer o modalitate de a nmuli dou numerelor binare ntregi cu semn folosind reprezentarea cod complementar fa de 2.

    Algoritmul exploateaz faptul c secvenele de 0 din nmulitor necesit doar deplasare, iar secvenele de l din cadrul nmulitorului, cuprinse ntre rangurile mk 22 , pot fi tratate ca

    mk 22 1 .

    Exemplu. Se consider numrul binar 001 110 (+14). Acest numr conine o secven de l ntre poziiile 23 i 21. Rezult k = 3 i m = l. Numrul poate fi reprezentat ca: 2k+1 - 2m = 24 - 21 = 16 - 2 = 14.

    nmulirea M u 14 (unde M reprezint nmulitorul iar 14 denmulitul) poate fi realizat ca: M x 24 - M u 21. Se observ c produsul poate fi obinut prin deplasarea nmulitorului binar M de 4 ori la stnga i scderea lui M deplasat stnga, odat.

    Algoritmul lui Booth necesit examinarea biilor nmulitorului i deplasarea produsului parial. nainte de a deplasa produsul parial, nmulitorul poate fi adunat/sczut la/din pro-dusul parial conform regulilor:

    1. Qn = 0, Qn+1 = 0 sau Qn = l, Qn+1 = l - produsul parial nu se modific;

    2. Qn = l, Qn+1 = 0 - se scade nmulitorul din produsul parial;

    3. Qn = 0, Qn+1 = l - se adun nmulitorul la produsul parial.

    n figura 3.4 sunt prezentate resursele hardware necesare implementrii acestui algorithm precum i biii Qn i Qn+1.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 32

    Figura 3.4: Resursele hardware necesare implementrii algoritmului lui Booth.

    Semnificaia resurselor folosite n figura 3.4 este urmtoarea:

    x Registru BR registru care menine valoarea nmulitorului;

    x E registru de 1 bit folosit pentru memorarea valorii transportului rezultat n urma operaiei de adunare;

    x Registru AC registru auxiliar de lucru;

    x Registrul QR registru care menine valoarea denmulitului

    Qn reprezint cel mai puin semnificativ bit al denmulitului memorat n QR. Un registru suplimentar Qn+1 este adugat la QR pentru a facilita inspectarea celor 2 bii ai denmulitului. Acest registru este iniializat cu 0.

    Un exemplu numeric pentru algoritmul lui Booth este prezentat n tabelul 3.1. Algoritmul lui Booth este prezentat sub form de organigram n figura 3.5. Exemplul numeric prezentat presupune c nmulitorul are valoarea -9 i denmulitul are valoarea -13 (-9 x -13).

    Qn Qn+1 BR + 1 = 01001 AC QR Qn+1 SC Iniial 0000 10011 0 101 1 0 se scade BR 01001

    01001

    ashr 00100 11001 1 100

    1 1 ashr 00010 01100 1 011

    0 1 se adun BR 10111

    11001

    ashr 11100 10110 0 010

    0 0 ashr 11110 01011 0 001

    1 0 se scade BR 01001

    00111 ashr 00011 10101 1 000

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 33

    Tabelul 3.1: Algoritmul lui Booth. Exemplu. ashr = deplasare aritmetic la dreapta

    Figura 3.5: Algoritmul lui Booth de nmulire a dou numere binare cu semn.

    mprirea numerelor binare n virgul fix Uzual, operaia de mprire este realizat folosind comparri succesive, deplasri i operaii de scdere. mprirea binar este mai simpl dect mprirea zecimal, deoarece

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 34

    biii care formeaz ctul sunt 1 sau 0 i de aceea nu este necesar s se estimeze de cte ori dempritul sau restul parial este cuprins n mpritor.

    Resursele hardware necesare implementrii operaiei de mprire sunt cele prezentate n figura 3.6. Algoritmul hardware de mprire a dou numere binare n virgul fix este prezentat sub form de organigram n figura 3.7.

    Figura 3.6: Resursele hardware necesare operaiei de mprire.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 35

    Figura 3.7: Organigrama operaiei de mprire.

    2. Desfurarea lucrrii

    1. Se va implementa n Verilog i simula folosind simulatorul ModelSim o unitate aritmetic logic cu dimensiunea de 32 bii. Schema bloc este prezentat n figura 3.2.

    2. Se va proiecta, implementa n Verilog i testa funcionarea unui sumator cu transport anticipat (carry look ahead), care opereaz cu numere de 8 sau 32 de bii.

    3. Se va implementa n Verilog i testa cu ajutorul simulatorului ModelSim algoritmul de nmulire al lui Booth.

    4. Se va implementa n Verilog i testa cu ajutorul simulatorului ModelSim algoritmul de mprire prezentat n figura 3.7

    3. Probleme propuse

    1. S se obin negativul lui 210 i apoi s se verifice rezultatul. Numrul este reprezentat pe 32 de bii.

    2. S se converteasc versiunea binar de 16 bii a lui 210 i - 210 n numere binare de 32 bii.

    3. S se converteasc urmtoarele numere haxazecimale i binare n cealalt baz: eca8642016 i 0001 0011 0101 0111 1001 1011 1101 11112.

    4. S se scrie ecuaia pentru logica transportului anticipat la un sumator cu 64 bii, utiliznd sumatoare de 16 bii ca blocuri hardware de baz. S se includ n soluie un desen asemntor cu cel prezentat n figura 3.3.

    5. Formulai o procedur hardware pentru detecia depirii (overflow) prin compararea semnului sumei cu semnele celor dou numere binare. Numerele sunt reprezentate n cod complement fa de 2.

    6. Elaborai un algoritm sub form de organigram pentru adunarea/scderea a dou

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 36

    numere binare n virgul fix, dac numerele negative sunt reprezentate n cod complement fat de l.

    7. Demonstrai c produsul a dou numere, fiecare avnd n bii, ntr-o baz r are drept rezultat un numr binar a crui lungime nu este mai mare de 2n bii. Demonstrai c afirmaia de mai sus conduce la concluzia c n cazul operaiei de nmulire nu putem avea depire.

    8. Artai coninutul registrelor E, A, Q i SC (ca n tabelul 3.1) dac nmulitorul este 10101 iar denmulitul este 11111. Semnele nu sunt incluse.

    9. S se verifice cu ajutorul algoritmului lui Booth urmtoarea egalitate: 0010 x 1101 = 1111 1010.

    44

    Reprezentarea datelor. Operaii aritmetice ZCB (Zecimal Codificat Binar).

    1. Prezentare teoretic

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 37

    n cadrul acestui laborator se vor prezenta modalitile de reprezentare a numerelor n calculatoarele numerice, precum i realizarea operaiilor de adunare i scdere a numerelor ZCB.

    n calculatoarele numerice, informaia memorat n format binar se regsete n memorie sau n registrele procesorului. Registrele conin date sau informaii de control. Informaia de control este format dintr-un grup de bii utilizat n vederea specificrii secvenei semnalelor de comand necesare manipulrii datelor n registre. Datele sunt numere i alte informaii codificate binar, care sunt prelucrate n vederea obinerii unui rezultat numeric.

    Toate tipurile de date, cu excepia numerelor binare, sunt reprezentate n registrele calculatorului n form binar, deoarece acestea sunt alctuite din bistabile, care pot memora informaie 0 sau l .

    Reprezentarea numerelor Un sistem de numeraie, care utilizeaz baza r este un sistem, care folosete simboluri distincte pentru cifrele r. Fiecrei cifre i este asignat un simbol unic. irurile prin care se reprezint numerele sunt compuse din simboluri. Pentru a determina cantitatea reprezentat de un numr este necesar s se nmuleasc fiecare cifr cu un ntreg putere a lui r i apoi s se formeze suma tuturor cifrelor ponderate.

    Sistemul de numeraie zecimal este alctuit din zece simboluri: 0, 1, 2, 3, 4, 5, 6, 7, 8 i 9. irul de cifre 126.3 este interpretat ca: l u 102 + 2 u 101 + 6 u 10 + 3 u10-1.

    Sistemul de numeraie binar utilizeaz baza 2 rezultnd astfel numai dou simboluri 0 i l, utilizate n cadrul acestui sistem de numeratie. irul de bii 101111 este interpretat ca: l u 25 + 0 u 24 + l u 23 + l u 22 + l u 21 + l u 20.

    Sistemul de numeraie octal utilizeaz baza opt i este alctuit din urmtoarele opt simboluri: 0, l, 2, 3, 4, 5, 6 i 7. irul de cifre 736 este interpretat ca (478)10 si (111011110)2.

    Sistemul de numeraie hexazecimal utilizeaz baza 16 i este alctuit din urmtoarele simboluri: 0, l, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E i F. irul de cifre F3 este interpretat (243)10 i (11110011)2.

    Sistemul de numeraie binar este cel mai natural sistem pentru calculator (aa cum s-a subliniat, circuitele bistabile pot memora doar 0 i 1), n timp ce pentru utilizator, sistemul de numeraie zecimal este considerat ca sistem natural. O metod de soluionare a acestui conflict o constituie convertirea tuturor intrrilor din format zecimal n format binar, realizarea tuturor operaiilor aritmetice n binar i apoi convertirea rezultatului n format zecimal.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 38

    O alt metod este utilizarea numerelor binare codificate zecimal (ZCB). Este foarte important s nu se confunde conversia numerelor zecimale n binar si codificarea binar a numerelor zecimale. Cnd se realizeaz conversia numrului zecimal 99 ntr-un numr binar se obine irul de bii 1100011, reprezentarea ZCB fiind 10011001. Singura diferen const n simbolurile utilizate pentru reprezentarea biilor.

    n tabelul 4.1 se poate observa codificarea numerelor zecimale n diferite sisteme de numeraie.

    Codurile complementare Reprezentarea n cod complementar este utilizat n calculatoarele numerice pentru simplificarea operaiei de scdere i pentru manipulri logice. Exist dou tipuri de coduri complementare pentru fiecare baz r folosit: cod complementar fa de r i cod complementar fa de r - 1. Dac r este substituit cu 2 atunci se obine cod complementar fa de 2 i cod complementar fa de 1. Analog dac r este substituit cu 10.

    Cod complement fa de r - 1

    Fie dat numrul N n baza r avnd n ranguri. Reprezentarea numrului N n cod complementar fa de r - l este definit ca (rn - 1) - N. n cazul numerelor zecimale, r = 10 i r - l = 9, reprezentarea numrului N n cod complementar fa de 9 este (10n - 1) - N.

    10n reprezint un numr care conine un singur l urmat de un numr de n digii 0. 10n - l este un numr reprezentat de n digii 9. Dac n = 4, spre exemplu, 104 = 10000 i 104 - l = 9999. Concluzia care se impune este urmtoarea: complementul fa de 9 al unui numr zecimal este obinut prin scderea fiecrui digit din 9. Ca exemplu, se consider numrul N = 546700 dat. Reprezentarea numrului N n cod complementar fa de 9 este: 999999 - 546700 = 453299.

    Dac substituim r cu 2 atunci r - 1 = l, iar numrul N reprezentat n cod complementar fa de l este (2n - 1) - N. Raionnd ca n cazul complementului fa de 9, se ajunge la concluzia urmtoare: complementul fa de l al unui numr binar este obinut scznd fiecare bit din 1.

    Numr hexazeci-mal

    Hexazecimal codificat binar

    Numr octal

    Octal codi-ficat binar

    Numr ZCB

    Numr zecimal

    0 0000 0 000 0000 0 1 0001 1 001 0001 1 2 0010 2 010 0010 2 3 0011 3 011 0011 3 4 0100 4 100 0100 4 5 0101 5 101 0101 5

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 39

    6 0110 6 110 0110 6 7 0111 7 111 0111 7 8 1000 1000 8 9 1001 1001 9 A 1010 10 B 1011 11 C 1100 12 D 1101 13 E 1110 14 F 1111 15

    Tabelul 4.1: Reprezentarea numerelor zecimale n diferite sisteme de numeraie.

    Cnd se efectueaz scderea se observ c modificarea biilor este 0 n l sau l n 0. Astfel, se poate concluziona: complementul fa de l al unui numr binar se obine prin inversarea biilor numrului N. Spre exemplu, reprezentarea numrului N = 1011001 n cod complementar fa de l este 0100110. Dac r este substituit cu 8 sau 16 atunci se scade fiecare digit al numrului N din 7 respectiv F. Complementul fa de r

    Complementul fa de r al unui numr de n digii, N, n baza r este definit ca rn - N n cazul n care N z 0 i 0 dac N = 0. Comparnd cu complementul fa de r - 1, se observ c, complementul fa de r este obinut prin adugarea lui l la complementul fa de r - 1. Astfel, complementul fa de 10 al numrului zecimal N = 2389 este 7610 + l = 7611, iar complementul fa de 2 al numrului binar N = 101100 este 010011 + l = 010100.

    Complementul fa de 10 poate fi ns format i aplicnd urmtoarea procedur:

    x rmn nemodificate toate cifrele zero cele mai puin semnificative; x se scade prima cifr diferit de zero (cea mai puin semnificativ) din 10; x se scad celelalte cifre pn la cifra cea mai semnificativ.

    Conform procedurii, reprezentarea numrului N = 246700 n cod complementar fa de 10 este 753300. n mod similar se procedeaz n cazul reprezentrii n cod complementar fa de 2. Se pstreaz toi biii cei mai puin semnificativi neschimbai dac valoarea lor este 0, precum i primul bit cel mai puin semnificativ care are valoarea 1. Se nlocuiesc toi ceilali bii cu l dac valoarea lor este 0 si cu 0 dac valoarea lor este 1. Numrul binar N = 1101100 este reprezentat n cod complement fa de 2 ca 0010100.

    Alte coduri binare

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 40

    n calculatoarele numerice precum i n diverse aplicaii este necesar s se utilizeze alte coduri precum codul Gray, codul 2421, codul excess-3 Gray, etc. Acestea sunt prezentate n tabelele 4.2 i 4.3.

    Cod Gray

    Numr zecimal echivalent

    Cod Gray

    Numr zecimal echivalent

    0000 0 1100 8 0001 1 1101 9 0011 2 1111 10 0010 3 1110 11 0110 4 1010 12 0111 5 1011 13 0101 6 1001 14 0100 7 1000 15

    Tabelul 4.2: Codul Gray. Digital zecimal

    BCD 8421

    2421 Excess-3 Excess-3 Gray

    0 0000 0000 0011 0010 1 0001 0001 0100 0110 2 0010 0010 0101 0111 3 0011 0011 0110 0101 4 0100 0100 0111 0100 5 0101 1011 1000 1100 6 0110 1100 1001 1101 7 0111 1101 1010 1111 8 1000 1110 1011 1110 9 1001 1111 1100 1010

    Tabelul 4.3: Diferite coduri pentru cifrele zecimale.

    Operaii aritmetice ZCB Existena unei astfel de uniti este justificat de faptul ca utilizatorul oricrui calculator ofer datele de intrare n format zecimal i se ateapt ca i rezultatul afiat s fie tot n format zecimal. Pentru calculatoarele numerice, soluia adoptat este de a converti datele de intrare n date binare, de a efectua toate operaiile solicitate n mod binar i apoi de a converti rezultatul n format zecimal pentru a fi vizualizat de ctre utilizator.

    Toate calculatoarele numerice au n componena lor o unitate aritmetic zecimal deoarece intrrile si ieirile sunt foarte frecvente. Exist ns si multe calculatoare numerice, care au n componena lor hardware pentru calcule aritmetice n care datele sunt

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 41

    reprezentate n format binar si zecimal. Utilizatorul poate specifica n acest caz cum s se efectueze calculele, binar sau zecimal.

    Sumator ZCB Considerm adunarea a dou numere ZCB mpreun cu un posibil transport din stagiul anterior. Fiecare cifr care compune un numr ZCB nu poate depi valoarea 9, deci suma a dou cifre nu poate depi valoarea 9 + 9 + 1 = 19, unde l reprezint transportul din etajul/rangul anterior.

    Pentru realizarea sumei celor dou numere ZCB, exist sumatoare binare de 4 bii. Sumatorul va forma suma n binar i valoarea ei se va ncadra n rangul 0 ... 19. Numerele binare sunt prezentate n tabelul 4.4, folosind notaiile K, Z8, Z4, Z2 i Z1, unde K reprezint transportul iar indicii literei Z sunt ponderile 8, 4, 2 i l, asignate celor 4 bii n codul ZCB.

    Sum binar Sum ZCB

    K Z8 Z4 Z2 Z1 C S8 S4 S2 S1 Zecimal 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 2 0 0 0 1 1 0 0 0 1 1 3 0 0 1 0 0 0 0 1 0 0 4 0 0 1 0 1 0 0 1 0 1 5 0 0 1 1 0 0 0 1 1 0 6 0 0 1 1 1 0 0 1 1 1 7 0 1 0 0 0 0 1 0 0 0 8 0 1 0 0 1 0 1 0 0 1 9 0 1 0 1 0 1 0 0 0 0 10 0 1 0 1 1 1 0 0 0 1 11 0 1 1 0 0 1 0 0 1 0 12 0 1 1 0 1 1 0 0 1 1 13 0 1 1 1 0 1 0 1 0 0 14 0 1 1 1 1 1 0 1 0 1 15 1 0 0 0 0 1 0 1 1 0 16 1 0 0 0 1 1 0 1 1 1 17 1 0 0 1 0 1 1 0 0 0 18 1 0 0 1 1 1 1 0 0 1 19

    Tabelul 4.4: Determinarea sumatorului ZCB.

  • Universitatea POLITEHNICA din Bucureti, Catedra de Calculatoare 42

    Examinnd coninutul tabelului 4.4, se deduce c atunci cnd suma binar este mai mic sau egal dect 1001, numrul ZCB corespunztor este identic; nici o conversie nu este necesar. Atunci cnd suma este mai mare dect 1001, se obine un numr invalid n reprezentare ZCB.

    Procedura de adunare a dou numere ZCB implic utilizarea unui sumator binar (la fiecare moment de timp este realizat adunarea a cte unei cifre a numrului ZCB) i este urmtoarea:

    1. Biii cei mai puin semnificativi ai celor dou numere ZCB sunt nsumai rezultnd o sum binar;

    2. Dac suma obinut la pasul l este egal sau mai mare dect 1010, ea este corectat prin adugarea valorii 0110;

    3. Operaia realizat n pasul 2 va genera automat un transport ctre pasul 4;

    4. Urmtoarea pereche de bii ZCB este nsumat mpreun cu transportul generat la pasul 3;

    5. Dac rezultatul obinut n pasul 4 este mai mare sau egal cu 1010, atunci el se corecteaz prin nsumare cu valoarea 0110;

    6. Se repet paii 1 - 5 pn cnd ultimile perechi de bii ZCB sunt adunate.

    Circuitul logic care detecteaz corecia necesar este determinat pe baza tabelului 4.4. O corecie este necesar atunci cnd K = 1. Condiia pentru realizarea coreciei poate fi exprimat ca o funcie booleana aa cum se poate observa n ecuaia 4.1.

    2848 ZZZZKC (4.1)

    Un sumator ZCB care adun doi operanzi ZCB (adunarea biilor ZCB este realizat n paralel) i care include logica de corecie este prezentat n figura 4.1.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    43

    Figura 4.1: Schema bloc a sumatorului ZCB.

    Adunarea i scderea ZCB Datele zecimale pot fi adunate n trei moduri diferite aa cum se poate observa n figura 4.2.

    Metoda paralel utilizeaz un numr de sumatoare ZCB egal cu numrul de cifre care formeaz numrul ZCB. Suma este realizat n paralel i necesit doar o operaie elementar.

    n cadrul metodei 2, cifrele sunt aplicate serial la intrrile unui singur sumator ZCB, ct timp biii pentru fiecare cifr codificat sunt transferate n paralel. Suma este format prin deplasarea numerelor prin sumatorul zecimal la fiecare moment de timp. Dac numrul ZCB este format din k cifre, atunci vor fi necesare k operaii elementare, una pentru fiecare deplasare zecimal.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    44

    Figura 4.2: Modaliti de adunare ZCB

    n cadrul metodei 3, biii sunt deplasai cte unul la fiecare moment de timp prin sumatorul complet. Suma binar obinut dup patru deplasri trebuie corectat pentru a deveni o cifr valid ZCB valid.

    Scderea ZCB se realizeaz tot prin intermediul adunrii deoarece A - B = A + B + 1, unde B nseamn complementul lui B fa de 9.

    2. Desfurarea lucrrii

    1. Se va implementa n Verilog i simula schema bloc prezentat n figura 4.1 folosind Xilinx WebPACK ISE 5.1i i simulatorul ModelSim.

    2. Se vor implementa n Verilog i se vor simula cele trei circuite de adunare ZCB prezentate n figura 4.2. Rezultatele obinute (timpii de funcionare) vor fi comparai i se va stabili care dintre metode este cea mai eficient.

    3. Probleme propuse

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    45

    1. Determinai o procedur hardware pentru detectarea apariiei unei depiri prin compararea semnului sumei cu semnele celor doi operanzi. Numerele sunt reprezentate n cod complementar fa de 2.

    2. Elaborai un algoritm sub form de diagram pentru adunarea i scderea a dou numere binare dac numerele negative sunt reprezentate n cod complementar fa de 1.

    3. S se proiecteze i s se simuleze utiliznd Xilinx WebPACK ISE 6.2i un circuit, care realizeaz conversia din codul Gray n codul binar i invers.

    4. S se proiecteze i s se simuleze utiliznd Xilinx WebPACK ISE 6.2i un circuit, care realizeaz conversia din codul BCD 8421 n codul binar i invers.

    5. S se proiecteze i s se simuleze utiliznd Xilinx WebPACK ISE 6.2i un circuit, care realizeaz conversia din codul 2421 n codul binar i invers.

    6. S se proiecteze, simuleze i s se implementeze un sumator ZCB folosind Xilinx WebPack 6.2i.

    7. Utiliznd circuite combinaionale, s se implementeze i simuleze folosind Xilinx WebPack 6. 2i un circuit complement ZCB fa de 9.

    8. Utiliznd circuite combinaionale, s se implementeze i simuleze folosind Xilinx WebPack 6.2i un circuit complement ZCB fa de 9. Digiii zecimali sunt reprezentai n cod excess-3.

    9. Proiectai circuitele hardware necesare operaiei de adunare/scdere a numerelor ZCB dac numerele negative sunt reprezentate n cod complement fa de 10. Indicai o modalitate de detecie a situaiei de depire.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    46

    55

    Uniti de execuie i comand integrate. AMD 2901 i AMD 2909

    1. Prezentare teoretic

    Unitile de execuie se prezint sub forma unor circuite integrate pe scar medie/larg. Ele sunt structurate pe un anumit numr de bii astfel nct prin concatenarea lor i utilizarea unor circuite adiionale, se pot realiza sisteme de prelucrare pentru date organizate pe 4, 8, 16,24,32,48 sau 64 de bii.

    Unitile de execuie integrate s-au comercializat n asociaie cu unitile de comand corespunztoare i cu o serie de circuite adiionale, formnd microprocesoarele pe trane de bii, microprocesoarele "bit-slice", microprocesoarele "multi-chip" etc. Printre cele mai rspndite familii de microprocesoare "bit-slice" s-au aflat i cele produse de compania Advanced Micro Devices sub numele de AMD 2900.

    AMD 2901 Unitatea de execuie AMD 2901 este organizat pe trane de 4 bii/circuit i este prevzut cu elementele necesare cuplrii n cascad.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    47

    Semnalele de comand se aplic sub forma unor vectori binari la terminalele circuitului, fiind, de regul, preluate sub controlul unui circuit micro-secveniator integrat (AMD 2909, 2911) de la o memorie cu coninut permanent.

    n figura 5.1 se prezint schema bloc a circuitului AMD 2901.

    Figura 5.1: AMD 2901 - schem bloc.

    Semnificaia resurselor hardware prezente n figura 5.1 este urmtoarea:

    x un ansamblu de 16 registre generale de cte 4 bii, organizate sub forma unei memorii(RAM) biport, cu dou intrri de adrese, o intrare de date i dou ieiri de date;

    x o unitate aritmetic-logic, cu transport anticipat, capabil s efectueze 3 operaii aritmetice binare i 5 operaii logice i s genereze, att indicatorii de condiii: depire, zero, semn, transport ( 4nC ), ct i condiiile de propagare ( P ) i generare ( G ) ale transportului, la nivelul ntregului circuit;

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    48

    x un selector de date (selector resurse UAL) pentru cele dou intrri ale unitii aritmetice-logice, care pot reprezenta combinaii ntre ieirile memoriei biport (A, B), o intrare extern de date (D), constanta "ZERO" i ieirea unui registru suplimentar - extensie (Q);

    x un selector de ieire din circuit, care furnizeaz prin intermediul unor tampoane TS fie date de la ieirea A a memorie biport, fie datele de la ieirea UAL;

    x un registru auxiliar-extensie (Q), care poate fi ncrcat fie cu datele de la ieirea UAL, fie cu propriul su coninut deplasat stnga/dreapta prin intermediul unei reele logice de deplasare-multiplexor QSHIFT;

    x o reea de deplasare-multiplexor RAMSHIFT, plasat pe intrarea B a memoriei biport RAM.

    Conform figurii 5.1, vectorul de comand este compus din 9 bii dup cum urmeaz: biii 0:2I reprezint sursa UAL, biii 3:5I reprezint funcia UAL iar biii 6:8I reprezint destinaia UAL.

    Unitatea aritmetic-logic poate efectua, sub controlul semnalelor 5:3I , trei operaii arit-metice binare i cinci operaii logice, asupra operanzilor aplicai la intrrile R i S. n tabelul 5.1, sunt prezentate funciile logice realizate de unitatea de execuie AMD 2901.

    Microcod octal Microcod octal

    0:2I 3:5I Grup Funcie

    0:2I 3:5IGrup

    Funcie

    0 4 QA 2 6 Q 1 4 BA 3 6 B 5 4 AD 4 6 A 6 4

    AND

    QD 7 6

    PASS

    D 0 3 QA 2 3 Q 1 3 BA 3 6 B 5 3 AD 4 3 A 6 3

    OR

    QD 7 3

    PASS

    D 0 6 QA 2 4 0 1 6 BA 3 4 0 5 6 AD 4 4 0 6 6

    EXOR

    QD 7 4

    "ZERO"

    0 0 7 QA { 0 5 QA 1 7 EXNOR BA { 1 5 MASK BA 5 7 AD { 5 5 MASK AD

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    49

    6 7 QD { 6 5 QD 2 7 Q

    3 7 B 4 7 A 7 7

    INVERT

    D

    Tabelul 5.1: AMD 2901 - Funcii logice.

    Funciile aritmetice realizate de ctre AMD 2901 sunt cele prezentate n tabelul 5.2.

    Microcod octal 0 nC 1 nC 0:2I 3:5I Grup Funcie Grup Funcie

    0 0 A + Q A + Q + 1 1 0 A + B A + B + 1 5 0 D + A D + A + 16 0

    ADD

    D + Q

    ADD plus 1

    D + Q + 1 2 0 Q Q + 13 0 B B + 1 4 0 A A + 1 7 0

    PASS

    D

    Incrementare

    D + 1 2 1 Q 1 Q 3 1 B 1 B 4 1 A 1 A 7 2

    Decrementare

    D 1

    PASS

    D 2 2 -Q 1 -Q 3 2 -B 1 -B 4 2 -A 1 -A 7 1

    Complementul fat de 1

    -D 1

    Complementul fat de 2

    -D 0 1 Q A 1 Q A1 1 B A 1 B A 5 1 A D 1 A D 6 1

    Scdere n com- plementul fa de

    1 Q D 1

    Scdere n com- plementul fa de

    2 Q D

    0 2 A Q 1 A Q1 2 A B 1 A B 5 2 D A 1 D A 6 2

    Scdere n com- plementul fa de

    1 D A 1

    Scdere n com- plementul fa de

    2 D Q

    Tabelul 5.2: AMD 2901 - Funcii aritmetice.

    Microinstruciunea care controleaz unitatea de execuie posed 24 de bii. Biii 3 - 0 au aprut ca urmare a nglobrii datei n microinstruciune. Cmpul D al

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    50

    microinstruciunii (n figura 5.3 Data "D") se va extinde n incremeni de 4 bii odat cu extinderea lungimii cuvntului prelucrat de ctre unitatea de execuie.

    Cmpul nC este asociat cu transportul n rangul cel mai puin semnificativ al unitii de execuie, fiind la latitudinea celui care scrie microprogramul.

    AMD 2909 Secveniatorul de microprogram AMD 2909 face parte din familia de circuite AMD 2900 i constituie elementul de baz n jurul cruia este organizat unitatea de comand microprogramat. Schema bloc a unitii de comand este prezentat n figura 5.2

    Resursele hardware prezente n figura 5.2 sunt urmtoarele:

    x Multiplexor (MUX) 4 x (4:1);

    x Incrementator (INC);

    x Contor de microprogram (CMP);

    x Registru de microinstruciuni (RMI);

    x Memorie de tip PROM (PROM);

    x Comutator de adrese (CA);

    x Registru de ramificare (RR);

    x Indicatorul de stiv (IS);

    x Stiv cu capacitatea 4 cuvinte x 4 bii (STV).

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    51

    Figura 5.2: AMD 2909 - schem bloc.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    52

    n locaiile memoriei PROM, adresate cu ajutorul cmpului 0:3P , sunt stocai vectori de comand, care impun unitii de comand microprogramate efectuarea operaiilor prezentate n tabelul 5.3.

    0:3P - cod hexa

    Operaie Mnemonica

    0 Ramificare la adresa R dac F z 0 JRNZF 1 Ramificare necondiionat la adresa R JR 2 CONTINU CONT 3 Ramificare la adresa D JD 4 Ramificare la subrutina cu adresa R dac F z 0 JSRNZF 5 Ramificare la subrutina cu adresa R JSR 6 Revenire din subrutin RS 7 Ramificare la adresa coninut n vrful stivei (fr POP) JSTV 8 Terminare de ciclu i POP dac F = 0 TCPOZF 9 PUSH i CONTINU PUCONT A POP i CONTINU POCONT B Terminare de ciclu i POP dac 4nC = 1 TCPOC C Ramificare la adresa R dac F = 0 JRZF D Ramificare la adresa R dac F3 = 1 JRF3 E Ramificare la adresa R dac OVR = l JROVR F Ramificare la adresa R dac 4nC = 1 JRC

    Tabelul 5.3: Setul de operaii pentru AMD 2909.

    Proiectarea i simularea aplicaiilor dezvoltate pe circuitele AMD 2901 i AMD 2909 se vor realiza cu ajutorul simulatorului C#_AMD. Aplicaia C#_AMD ofer posibilitatea de a urmri funcionarea pas cu pas a execuiei unui program.

    Aa cum se poate observa i n figura 5.3, editorul este mprit n dou pri. Jumtatea superioar a ferestrei prezint instruciunile linie cu linie, iar cea inferioar ofer posibilitatea operrii unor modificri precum: introducere de linii noi (InsertLine), respectiv tergerea anumitor linii din program (DeleteLine).

    nceputul procesului de simulare se realizeaz odat cu selectarea butonului Test. n fereastra Simulator sunt afiate: programul surs, instruciunea curent n format binar, registrele unitii de execuie AMD 2901 i registrele de comand AMD 2909. Toate resursele afiate n aceast fereastr au fost prezentate n figurile 5.1 i 5.2.

    Exemplu. Se consider un microprocesor pe 4 bii realizat cu circuite din familia AMD 2900. Se dorete proiectarea i simularea unui contor pe 16 bii. Contorul este realizat prin concatenarea registrelor de cte 4 bii R3, R2, R1, R0.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    53

    Soluie. Primul pas este realizarea algoritmului care rezolv cerinele impuse n enun. Cu ajutorul ferestrei de editare, algoritmul este ncrcat n simulator aa cum se observ n figura 5.3.

    Figura 5.3: Algoritmul de implementare al unui contor pe 16 bii folosind circuite din familia AMD 2900.

    Se selecteaz butonul TEST pentru a simula aplicaia proiectat. Rezultatele simulrii la un moment dat pot fi observate n figura 5.4. a) i b) funcie de interfaa selectat.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    54

    Figura 5.4: Fluxul informaional n cazul implementrii unui contor pe 16 bii folosind circuite din familia AMD 2900.

    2. Desfurarea lucrrii

    1. Se va elabora diagrama logic pentru exemplul prezentat n figura 5.3;

    2. Cu ajutorul tabelelor 5.1, 5.2, 5.3, se va realiza programul care implementeaz funcionarea unui contor pe 16 bii;

    3. Cu ajutorul simulatorului JAMD se va introduce programul obinut i se va rula pas cu pas. Se va observa coninutul resurselor microprocesorului la fiecare pas.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    55

    3. Probleme propuse

    1. S se proiecteze i s se simuleze folosind simulatorul JAMD, un numrtor zecimal, hexazecimal, octal.

    2. S se proiecteze i s se simuleze un program, care determin maximul a patru numere.

    3. S se proiecteze i s se simuleze algoritmul de nmulire al lui Booth.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    56

    66

    Proiectarea dispozitivelor aritmetice n virgul mobil

    1. Prezentare teoretic

    n cadrul acestui laborator se vor prezenta algoritmii hardware pentru implementarea operaiilor de adunare, scdere, nmulire i mprire a numerelor n virgul mobil utiliznd conceptele benzii de asamblare.

    Banda de asamblare Banda de asamblare este o tehnic de descompunere a proceselor secveniale n suboperaii, fiecare suboperaie putnd fi executat ntr-un segment special dedicat i n paralel cu alte suboperaii. Rezultatul obinut n cadrul fiecrui segment este transferat urmtorului segment din banda de asamblare. La rezultatul final se ajunge atunci cnd datele au trecut prin toate segmentele benzii de asamblare.

    Suprapunerea calculelor este posibil datorit asocierii unui registru fiecrui segment al benzii de asamblare. Registrele au rolul de a izola segmentele astfel nct fiecare segment al benzii de asamblare poate opera pe date distincte simultan cu operarea altor segmente.

    Exemplu Se dorete aflarea rezultatul expresiei: iii CBA pentru 7...1 i . Soluie Fiecare operaie poate fi implementat n cte un segment al benzii de asamblare. Fiecare segment conine unul sau dou registre precum i un circuit combinaional aa cum se poate observa n figura 6.1. Registrele R1 ... R5 primesc date noi la fiecare apariie a

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    57

    frontului de ceas. Circuitul de nmulire precum i sumatorul din figura 6.1 sunt circuite combinaionale.

    Figura 6.1: Calculul expresiei iii CBA folosind banda de asamblare.

    Coninutul registrelor benzii de asamblare este prezentat n tabelul 6.1.

    Segmentul 1 Segmentul 2 Segmentul 3 Ceas R1 R2 R3 R4 R5

    1 Al B1 2 A2 B2 11 BA C1 3 A3 B3 22 BA C2 111 CBA 4 A, B4 33 BA C3 222 CBA

    5 A5 B5 44 BA C4 333 CBA 6 A6 B6 55 BA C5 444 CBA

    7 A7 B7 66 BA C6 555 CBA 8

    77 BA C7 666 CBA 9

    777 CBA

    Tabelul 6.1: Coninutul registrelor benzii de asamblare.

    Reprezentarea numerelor n virgul mobil Reprezentarea numerelor n virgul mobil face obiectul standardului IEEE 754. Conform acestui standard reprezentarea lor este alctuit din dou pri. Prima parte reprezint un

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    58

    numr cu semn denumit mantis. Partea a doua specific poziia punctului zecimal i se numete exponent.

    Reprezentarea numerelor n virgul mobil poate fi fcut n precizie simpl sau dubl.

    Folosirea preciziei simple impune o reprezentare a numrului utiliznd 32 de bii. Primul bit (bitul cel mai semnificativ) este bitul de semn. Dac valoarea acestui bit este 0, numrul este pozitiv, altfel numrul este negativ. Urmtorii 8 bii sunt alocai pentru valoarea exponentului, iar ultimii 23 de bii reprezint mantisa. Gama de reprezenatre n cazul preciziei simple este: -1.8 u 10-38 y 3.40 u 1038.

    n cazul n care se folosete precizia dubl, numrul biilor utilizai pentru reprezentarea numrului se dubleaz devenind 64. Primul bit (bitul cel mai semnificativ) este bitul de semn. Exponentul este reprezentat pe urmtorii 11 bii, iar mantisa sau fracia pe 52 de bii.

    Reprezentarea general a unui numr n virgul mobil, folosind precizia simpl, este dat n ecuaia 6.1.

    1272)1()1( Exponents MANTISA (6.1)

    Valoarea variabilei Exponent din cadrul ecuaiei 6.1 este 127 pentru a se evita valori negative ale exponentului. Pentru precizia dubl, aceast valoare se modific devenind 1023.

    Adunarea i scderea n virgul mobil Resursele hardware necesare implementrii acestor operaii sunt prezentate n figura 6.2.

    Figura 6.2: Resursele hardware necesare adunrii/scderii a dou numere n virgul mobil.

    Algoritmul necesit parcurgerea urmtoarelor etape:

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    59

    1. Se verific dac unul dintre operanzi este zero sau nu;

    2. Se aliniaz mantisele;

    3. Se adun sau se scad mantisele;

    4. Se normalizeaz rezultatul obinut.

    Algoritmul de adunare/scdere a dou numere n virgul mobil utiliznd tehnica band de asamblare poate fi observat n figura 6.3.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    60

    Figura 6.3: Adunarea i scderea a dou numere reprezentate n virgul mobil.

    n cadrul segmentului l al benzii de asamblare, exponenii sunt comparai prin scdere. Exponentul mai mare este ales ca exponent al rezultatului. Rezultatul diferenei indic de cte ori mantisa asociat cu exponentul mai mic trebuie deplasat ctre dreapta. Astfel se realizeaz alinierea mantiselor.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    61

    Variabila Valoarea1 memoreaz rezultatul comparrii. Dac bitul cel mai semnifica-tiv al acestei variabile este 0, mantisa primului numr trebuie deplasat dreapta. Pentru a memora numrul de deplasri care trebuie efectuate, au fost alocai 8 bii (Valoarea1[7 : 0]).

    Dac Valoarea1[8] este l, atunci mantisa asociat numrului 2 trebuie deplasat dreapta de un numr de ori egal cu valoarea lui Valoarea1[7 : 0]. Pentru implementarea sumatorului care apare n cadrul benzii de asamblare se recomand utilizarea unui sumator cu transport anticipat (CARRY LOOK AHEAD).

    n cadrul segmentului 3 al benzii de asamblare, cele dou mantise sunt adunate sau sczute n funcie de valoarea semnalului OP. Dac OP = 0 atunci trebuie realizat operaia de adunare i, n consecin, cele dou mantise trebuie adunate. Dac OP = 1, operaia de scdere trebuie realizat i, n consecin, cele dou mantise trebuie sczute.

    Rezultatul pasului de adunare/scdere a mantiselor se reprezint pe 26 de bii. Bitul cel mai semnificativ, bitul 25, este utilizat pentru a specifica dac mantisa este egal sau nu cu zero. Restul de bii este folosit pentru a reprezenta registrele E i A concatenate.

    Rezultatul este normalizat n cadrul segmentului 4 al benzii de asamblare. Cnd apare o depire superioar, mantisa-rezultat este deplasat dreapta i exponentul este incrementat cu o unitate. Cnd apare o depire inferioar, numrul de zerouri din cadrul mantisei (poziiile cele mai semnificative) determin numrul de deplasri stnga al mantisei, numr care trebuie sczut din exponent. Memorarea acestui numr se face prin intermediul variabilei Valoarea2.

    Dac bitul cel mai semnificativ al variabilei Valoarea1 este 0, atunci exponentul trebuie deplasat spre stnga, altfel exponentul trebuie s fie deplasat spre dreapta. Numrul de deplasri este indicat de ctre Valoarea2[7 : 0].

    Rezultatele simulrii acestui algoritm folosind mediul de dezvoltare Xilinx pot fi observate n figura 6.4.

    nmulirea n virgul mobil Operaia de nmulire n virgul mobil presupune realizarea urmtorilor pai:

    1. Se verific dac unul dintre numere este zero sau nu;

    2. Se adun exponenii;

    3. Se nmulesc mantisele;

    4. Se normalizeaz produsul.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    62

    Figura 6.4: Rezultatele simulrii algoritmului de adunare/scdere.

    Implementarea n band de asamblare al acestui algoritm poate fi observat n figura 6.5.

    nmulirea a dou numere binare se realizeaz cu ajutorul unui circuit combinaional (denumit matrice de multiplicare) care formeaz toi biii produsului odat. Aceasta este cea mai rapid metod deoarece timpul necesar efecturii operaiei este egal cu timpul de propagare al semnalului lund n calcul ruta cea mai dezavantajoas.

    Circuitul matrice de multiplicare necesit un numr mare de pori, implementarea lui este neeconomic, acesta fiind principalul motiv pentru care acest circuit nu a avut o rpndire foarte mare pn la apariia circuitelor integrate. Proiectarea unui asemenea circuit ale crui intrri ar avea dimensiunile de j respectiv k bii va necesita kj u pori I i sumatoare de kj 1 bii pentru a obine un produs de (j + k) bii. Un exemplu de circuit matrice de multiplicare este prezentat n figura 6.6.

    Trebuie remarcat c exponentul rezultat corect este obinut prin scderea valorii 127 din exponentul sum.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    63

    Figura 6.5: Algoritmul de nmulire a dou numere n virgul mobil.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    64

    Figura 6.6: Circuitul matrice de multiplicare pentru k = 4 i j = 3.

    mprirea n virgul mobil Algoritmul de mprire a dou numere reprezentate n virgul mobil necesit parcurgerea urmtorilor pai:

    1. Se verific dac unul dintre cei doi operanzi este zero sau nu;

    2. Se iniializeaz registrele i se evalueaz semnul;

    3. Se aliniaz dempritul;

    4. Se scad exponenii;

    5. Se mpart mantisele.

    Algoritmul n band de asamblare al acestei operaii este prezentat n figura 6.7

    mprirea a dou numere n virgul mobil normalizate va produce ntotdeauna un ct normalizat. Din acest motiv, spre deosebire de celelalte operaii n virgul mobil, rezultatul operaiei de mprire nu necesit normalizare.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    65

    Figura 6.7: Algoritmul de mprire a dou numere n virgul mobil

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    66

    2. Desfurarea lucrrii

    1. Se va proiecta n Verilog utiliznd Xilinx WebPACK ISE 5.1i algoritmul de adunare/scdere a dou numere reprezentate n virgul mobil, prezentat n figura 6.3.

    2. Se va verifica funcionarea algoritmului utiliznd simulatorul ModelSim.

    3. Se va utiliza circuitul Xilinx Spartan XC2S200E pentru a verifica timpii reali de funcionare a circuitului proiectat.

    3. Probleme propuse

    1. S se proiecteze i simuleze utiliznd Xilinx WebPACK 5.2i i limbajul Verilog un circuit combinaional care s realizeze operaia de nmulire dintre dou numere binare. Se va utiliza schema prezentat n figura 6.6;

    2. S se proiecteze i simuleze utiliznd Xilinx WebPACK 5.2i i limbajul Verilog un circuit care s realizeze operaia de nmulire n virgul mobil precizie simpl prezentate n figura 6.5;

    3. S se proiecteze i simuleze utiliznd Xilinx WebPACK 5.2i i limbajul Verilog un circuit care s realizeze operaia de mprire n virgul mobil precizie simpl prezentate n figura 6.7;

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    67

    77

    Procesorul didactic DLX

    1. Prezentare teoretic

    Procesorul didactic DLX este compus din urmtoarele resurse hardware:

    1. UAL (Unitate arimetic - logic pentru ntregi);

    2. RG[32 : 31] - registre generale biport;

    3. TS1, TS2, TD - registre tampon pentru registrele generale. Acestea sunt trans-parente programatorului;

    4. TEMP - registru temporar, transparent pentru programator;

    5. RAI - Registrul adresei de ntrerupere (Registru Special);

    6. CP - Contorul de Program;

    7. RA, RD - Registrul de adrese, registrul de date;

    8. RI - Registrul instruciunii;

    9. M - memoria principala.

  • [Figures / Material] based on or adapted from figures and text owned by Xilinx Inc. courtesy of Xilinx Inc. 94 Xilinx Inc. 2003. All rights reserved.

    68

    Operaiile executate de unitatea aritmetic i logic sunt operaii aritmetice, logice i operaii de deplasare. Operaiile de deplasare pot fi: 21 SS - deplasare logic stnga, 21 SS !! - deplasare logic dreapta i 21 aSS !! - deplasare aritmetic dreapta.

    Instruciunile procesorului DLX au 32 de bii, dintre care 6 sunt folosii pentru codificarea operaiei si au urmtorul format:

    1. Instruciuni de tipul I - acestea sunt instruciunile de tipul imediat i au formatul prezentat n figura 7.1 a.). Instruciunile conin cmpurile: COP - cod operaie, rs, rd - adresele registrului surs i destinaie, imediat - conine fie o adres, fie un operand imediat.

    Figura 7.1: Formatul instru