Presentation is loading. Please wait.

Presentation is loading. Please wait.

MULTIPLY – ACCUMULATE CIRCUITS (MAC)

Similar presentations


Presentation on theme: "MULTIPLY – ACCUMULATE CIRCUITS (MAC)"— Presentation transcript:

1 MULTIPLY – ACCUMULATE CIRCUITS (MAC)
student: Vladan Mitić T

2 y(n)= ∑bi x(n-i) ************** (1)
MAC ( MULTIPLY – ACCUMULATE CIRCUITS ) je množenje praćeno akumuliranjem dobijenih vrednosti u određenim delovima kola. Kod određenih kola je standardna operacija posebno kod sistema koji su zasnovani na digitalnim filtrima. Množenje MAC množačem je ključna operacija u digitalnom signal procesiranju. Najveći broj DSP procesora je projektovan da obavlja MAC operacije kakve su one koje se odnose na (FIR) filtriranje a mogu se izraziti jednačinom: L-1 y(n)= ∑bi x(n-i) ************** (1) i=0 gde su {b0,b1,...bL-1} koeficijenti filtra a {x(n),x(n-1),...x(n-L+1)} su uzrokovani signali pri čemu je L dužina filtra. Za izračunavanje izraza (1) potrebno je obaviti sledeće korake: Korak 1. Pribaviti dva operanda bi i x(n-i) iz memorije Korak 2. Pomnožiti bi i x(n-i) da bi se dobio proizvod Korak 3. Sabrati proizvode bix(n-i) sa sadržajem akomulatora Korak 4. Ponoviti korake 1,2,3 za i=0,1,2,3,...L-1 Korak 5. Zapamtiti rezultat y(n) koji se čuva u akomulatoru u memoriji Korak 6. Ažurirati pokazivače za bi i x(n-i) i ponoviti korake od 1-5 za naredni ulazni uzorak.

3 Opšta interna arhitektura jednog DSP procesora koja
obavlja ovu operaciju pokazana je na sledećoj slici:

4 Standardna operacija množenja zahteva nekoliko taktna intervala kada se izvršavaju na nekoliko mikroprocesora ili mikrokontrolerima jer se obavlja putem repetitivnog izvršenja operacije pomeri-i-saberi (shift add). Da bi se ostvarila zahtevana brzina kod DSP algoritama koji koristi intenzivno množenje, DSP proicesori kakav je recimo TMS320 koriste potpuni paralelni hardverski množač koji može da množi dva operanda u jednom taktnom intervalu. Ilustracije radi neki od DSP-ova kakvi su iz (TI) familije C55X imaju po dve MAC jedinice a 4 četrdesetobitna akumulatora.

5 Sagledavajući ovakve tendencije u razvoju specijalnih arhitektura u ovom seminarskom radu učinjen je pokušaj da se projektuje jedan ključni blok DSP procesora-MAC jedinica. Cilj rada nije bio usmeren ka tome da se projektuje MAC jedinica sa 40-bitnim brojevima nego da se sagledaju osnovni principi rada ovakve jedinice i u cilju boljeg sagledavanja dobijenih rezultata na vežbama koje bi studenti radili, realizuje jedna MAC jedinica koja množi dva 8-bitna broja. Sabirač je 16-bitni. Proširenje kola je takođe moguće povećanjem vektora.

6 MAC množač je kolo koje sabira proizvode brojeva koji se dovedu na ulazu. Ovu funkciju MAC množač realizuje na sledeći način: U prvom clock-u se dovode brojevi x i y, zatim se izračuna njihov proizvod pomoću množača. Taj prizvod (njegova vrednost) se upamti u registar ( privremena memorija koja je ovde realizovana od D flip flopova). U sledećem clock-u dovode se novi brojevi x i y (nove vrednosti), pomnože se i saberu sa sadržajem iz registra (prethodna vrednost proizvoda brojeva x i y)... Krajnje rezultate očitavamo na izlazu i oni su dati u heksadecimlanom obliku. Blok šema je data na sl.2.

7 Realizacija MAC kola MAC množač
Množač je napravljen tako da množi 8-bitne brojeve, kako pozitivne tako i negativne brojeve. Na izlazu MAC množača dobijamo 16-bitne brojeve. Mogućnost množenja sa negativnim brojevima omogućava nam kolo za komplementiranje. Kolo radi potpuni komplement negativnog broja i olakšava nam posao množenja. Na slikama su date blok šema i strukturalna šema respektivno:

8 Kolo za komplementiranje 8
Kao što smo malopre već napomenuli, ovaj MAC množač može da množi i pozitivne i negativne brojeve. Osnovni “krivac“ za to je kolo za komplementiranje, bez koga bi realizacija MAC množača bila mnogo komplikovanija. Na ulazu smo iskoristili 8-bitno kolo za komplementiranje. Sada se vratimo malo unazad i setimo se na jednom primeru kako se vrši tjs. realizuje potpuni komplement jednog 8-bitnog broja. Ako imamo broj 2 u binarnom obliku i želimo da dobijemo negativan broj tjs. -2, njegov potpuni komplement ćemo dobiti na sledeći način: Ispišemo broj 2 ( ) pa sve njegove nule zamenimo jedinicama i jedinice nulama i taj dobijeni broj saberemo još sa 1, tada dobijmo potpuni komplement broja 2. +1

9 Osnovna električna šema realizacije 8-bitnog kola za komplementiranje je data na slici
Sa slike se primećuje da se kolo za komplementiranje 8 sastoji od 8 xor kola i jednog adder 8 (osmobitnog sabirača). Na izlazu imamo takodje 8 bitni signal.

10 Osmobitni sabirač se sastoji od 8 potpunih sabirača

11 Ćelija za MAC Drugi sastavni element MAC množača je Ćelija za MAC. Njen izgled je dat na slici: Ćelija za MAC je sastavljena od dva elemenata. Prvi je I kolo a drugi je potpuni sabirač.

12 Potpuni sabirač Osnovni element ćelije za MAC,osmobitnog i šesnestobitnog sabirača je potpuni sabirač. Potpuni sabirač je dat na slici. Slika je realizovana od invertora, I kola i ILI kola. Iza I kola se nalazi ILI kolo koje sabira sva stanja koja mu se dovedu.Tako da prvo ILI kolo služi da sabere izlaze iz prvih 3 I kola koja određuju prenos dok drugo ILI kolo služi da sabere izlaze sa druga četiri I kola i ono predstavlja izlaz.

13 Kolo za komplementiranje 16
Za razliku od kola za komplementiranje 8 koje je radilo sa 8-bitnim brojevima na izlazu imamo kolo za “komplementiranje 16“ koje radi sa 16-bitnim ciframa što je i logično jer množenjem dva 8 - bitna broja dobijamo 16 - bitni. Njegova šema je data na slici Primećujemo da se sada kolo za komplementiranje 16 sastoji iz 16 XOR kola i jednog sabirača, takođe 16 – bitnog.

14 ADDER (sabirač) Sabirač (adder) je kolo koje ima funkciju kao što i samo njegovo ime govori da sabira. Zadatak mu je da sabere vrednosti dobijene iz MAC množača i vrednost iz registra koja je upamćena u predhodnom koraku. Izlaz sabirača se vodi na registar i ta vrednost se opet privremeno smešta u njega. Blok šema 16 – bitnog sabirača kao i njegova električna šema su date na slikama respektivno. Sabirač se sastoji od 16 malih blokova za sabiranje, a to su ustvari potpuni sabirači

15 Registar Registar je po suštini uređen skup memorijskih ćelija koje mogu biti raspoređene prostorno, bez međusobnih veza, ili mogu na neki način biti povezani kombinacionim kolima. To su sekvencijalna kola koja se koriste za memorisanje digitalnih informacija. U najvećem broju slučajeva se realizuju od D flip flopova sa zajedničkim signalnim taktom. Konkretno kod nas registar smo realizovali od D flip flopova i on nam služi kao privremena memorija za smeštanje podataka. Taj podatak se u sledećem koraku sabira sa trenutnim rezultatom iz sabirača. Njegova blok i električna šema su date respektivno na sledećim slikama:

16 Bafer Bafer je deo kola koji služi za izjednačavanje impedanse između izlaza registra i kompletnog izlaza kola. Njegova blok šema i električna su date respektivno na sledećim slikama:

17 Sinteza i implementacija
Naše kolo smo sintetizovali u programskom paketu firme XILINX ISE 4.1. Ovo je programski paket firme XILINX za razvoj aplikacija baziranih na njihovim CPLD i FPGA čipovima. Za implementaciju MAC množača iskorišćeno je FPGA kolo iz XILINX – ove familije VIRTEX 2 i ono nosi oznaku 2V4OCS144. Dolazi u 144 pinskom kućištu. Iako nije imalo potrebe za tolikim brojem pinova, upotrebljeno je ono jer iz te familije nije postojao manji čip. Naredne tri slike smo doboli koristeći program XILINX i to dodatak pod TOOLS - om FLOOR PLANER

18

19

20

21 Na predhodnim slikama smo imali prilike da vidimo kako izgleda čip, tjs. iskorišćenost njegovih pinova, na sledećoj slici prikazaćemo kako izgleda čip iznutra. Njegova struktura, raspored po ćelijama i međusobna povezanost.

22 Parametri potrošnje, zauzetosti pinova, vreme rada,temperatura kao i radna frekvencija
Za nas iz sledećih rezultata je najvažnije: Implementirano kolo zauzelo 1493 gejtova kao i da je pridodato još 2880 gejtova Koristimo 60 od 88 žica što je 68% Radna frekvencija od MHz Min. clock je nS. Ambijentalna temperatura 25 C Temperatura kućišta 29 C Pri napajanju od 1.5V struja od 75 mA pravi potrošnju od 75mAx1.5V=112.5mW, tjs. kako je dobijeno u karakteristici 113mW

23 Kod kompletnog MAC množača u VHDL-u je:
-- Design unit header -- library IEEE; use IEEE.std_logic_1164.all; entity MAC is port( R : in STD_LOGIC; clk : in STD_LOGIC; nula : in STD_LOGIC := '0'; x : in STD_LOGIC_VECTOR(7 downto 0); y : in STD_LOGIC_VECTOR(7 downto 0); carry : out STD_LOGIC; izlaz : out STD_LOGIC_VECTOR(15 downto 0) ); end MAC; architecture MAC of MAC is ---- Component declarations ----- component adder port ( nula : in STD_LOGIC; x : in STD_LOGIC_VECTOR(15 downto 0); y : in STD_LOGIC_VECTOR(15 downto 0); z : out STD_LOGIC_VECTOR(15 downto 0)

24 end component; component buf16 port ( in1 : in STD_LOGIC_VECTOR(15 downto 0); out1 : out STD_LOGIC_VECTOR(15 downto 0) ); component MAC_mnozac nula : in STD_LOGIC; ulazX : in STD_LOGIC_VECTOR(7 downto 0); ulazY : in STD_LOGIC_VECTOR(7 downto 0); carry : out STD_LOGIC; izlazZ : out STD_LOGIC_VECTOR(15 downto 0) component registar D : in STD_LOGIC_VECTOR(15 downto 0); R : in STD_LOGIC; clk : in STD_LOGIC; Q : out STD_LOGIC_VECTOR(15 downto 0)

25 end component; ---- Signal declarations used on the diagram ---- signal pom : STD_LOGIC_VECTOR (15 downto 0); signal pom0 : STD_LOGIC_VECTOR (15 downto 0); signal pom1 : STD_LOGIC_VECTOR (15 downto 0); begin ---- Component instantiations ---- U1 : registar port map( D => pom0, Q => pom1, R => R, clk => clk ); U2 : MAC_mnozac izlazZ => pom, nula => nula, ulazX => x, ulazY => y U3 : adder carry => carry,

26 x => pom, y => pom1, z => pom0 ); U4 : buf16 port map( in1 => pom1, out1 => izlaz end MAC;

27 Testiranje rada kola 1. Sa Desktop-a pokrenemo program VHDL tako što dva puta levim tasterom miša kliknemo na njegovu ikonicu. 2. Nakon pokretanja programa dolazimo do koraka gde nam on nudi koji projekat želimo da otvorimo.

28

29

30

31

32

33 ZADATAK Proveriti ispravnost rada MAC množača za pet različitih vrednosti ulaznih signala. Posmatrati dijagram stanja i upisati za svaki ulazni signal šta se dobija na izlazu. Potrebna konfiguracija : - IBM kompatibilan PC računar Pentium III ili Pentium IV - Minimum 256 MB RAM memorije - 20 GB Hard Disk - Monitor rezolucije 1024x768 - Miš, tastatura

34 Pokrenuti program Active HDL čija se ikonica nalazi na Desktop-u
Otvoriti dizajn MAC Množač Izabrati MAC u padajućem meniju ispod Design Browser-a Odabrati ikonicu Waveform koja se nalazi prva desno od disketice Desnim klikom miša na levu polovinu praznog dela izabrati add signals. Vrednosti zadajemo samo ulaznim veličinama tako što desnim klikom na ulaznu veličinu biramo stimulations. Sami odabrati koja veličina će imati koju vrednost Izabrati da vreme simulacije bude 100nS Simulaciju pokrenuti na ikonicu RUN FOR (F5) Zabeležiti dobijene rezultate u svakom koraku

35

36

37

38 tabela u kojoj treba beležiti rezultate nakon odrađenog zadatka.


Download ppt "MULTIPLY – ACCUMULATE CIRCUITS (MAC)"

Similar presentations


Ads by Google