33
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET Predmet: Mikroprocesorski sistemi PARALELNI MNOŽAČ student: Dušan Nikolić broj indeksa:10027 T

PARALELNI MNOŽAČ

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PARALELNI MNOŽAČ

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET Predmet: Mikroprocesorski sistemi

PARALELNI MNOŽAČ

student: Dušan Nikolić broj indeksa:10027 T

Page 2: PARALELNI MNOŽAČ

2

SADRŽAJ:

1. Uvod 1.1 Ukratko o množačima ........................................3 1.2 Baugh-Wooley tip množača ...............................4

1.3 Množenje brojeva većeg obima .........................6 1.4 Moduli za množenje i sabiranje .........................8

2. Osnovna struktura kola 2.1 Potpuni sabirač .................................................11 2.2 Ćelija ................................................................12

2.3 Opis osnovnog množača ...................................13 2.4 Opis AMM-a .....................................................14 2.5 Spajanje i razdvajanje brojeva ..........................14 2.6 Sabirač ...............................................................15 2.7 Realizacija Paralelnog množača ........................16 2.8 Spajanje dva 16-bitna broja u 32-bitni...............18 2.9 Kola za komplementiranje ................................19

2.10 Kašnjenje i površina koju Paralelni množač zauzima na Silicijumu ..........20

3. Definisanje osnovnih elemenata u kolu, njihov izgled i kodovi 3.1 Invertor ..............................................................21 3.2 I kolo ..................................................................21 3.3 I3 kolo ................................................................22 3.4 ILI3 kolo ............................................................22 3.5 ILI4 kolo ............................................................23 3.6 XOR kolo ...........................................................23 3.7 Bafer ..................................................................24 4. Sinteza i implementacija ............................................25

5. Testiranje rada kola ....................................................27

6. Zadatak .......................................................................30

7. Literatura ....................................................................33

Page 3: PARALELNI MNOŽAČ

3

1. Uvod 1.1 Ukratko o množačima Množenje brojeva je jedna od najvažnijih operacija u kompjuterskoj aritmetici.

Jedna od osnovnih komponenti digitalnih sistema je podsistem za množenje binarnih brojeva. Efikasnost množača često uslovljava i efikasnost celog sistema. Zbog svega toga, vrše se mnoga istraživanja u pravcu projektovanja odgovarajućih arhitektura za množenje binarnih brojeva. Kod protočnih množača format prenosa može biti različit. Kod bit-serijskih protočnih množača se operacije unutar množača obavljaju na nivou bita, ali ulazno-izlazni format prenosa operanada i rezultata može biti različit. (bit-paralelni ili bit-serijski). Od postojanja globalnih linija za podatke zavisi da li su bit-serijske protočne arhitekture polu-sistoličke ili potpuno-sistoličke. Kod ovih prvih postoji globalna linija za podatke, a kod potpuno-sistoličkih ima samo lokalnih linija između susednih ćelija. Podaci u protočnim bit-serijskim arhitekturama mogu da se prostiru i u istim i u suprotnim smerovima. Osnovna ćelija protočne bit-serijske arhitekture se može sastojati iz jednog ili dva stepena. Stepeni su razdvojeni lečevima i sadrže po jedan potpuni sabirač.Operacija množenja se može obavljati i tako što parcijalni rezultat stoji, a generisani prenosi se pomeraju (ripple-carry, tj. množenje sa prebacivanjem prenosa). Takođe se parcijalni izvod može pomerati, dok generisani prenosi ostaju u mestu (carry-save, tj. množenje sa zadržavanjem prenosa). Jedino prema formatu ulazno-izlaznih podataka se protočne bit-serijske arhitekture mogu jednoznačno klasifikovati.

Protočne množače možemo prema formatu prenosa ulazno/izlaznih podataka podeliti na bit-paralelne, cifarsko-serijske i bit-serijske.

Slika 1. Klasifikacija protočnih množača

Page 4: PARALELNI MNOŽAČ

4

Oznake pojedinih klasa množača uvedene su prema formatima prenosa podataka koji učestvuju u procesu množenja. Prvo slovo označava format prenosa (Serijski ili Paralelni), drugo slovo format prenosa drugog operanda i treće slovo format prenosa rezultata.

Bit-paralelni protočni množači (PPP: Paralelni – Paralelni - Paralelni) kao ulaze imaju binarne brojeve u paralelnom obliku i generišu rezultat u istom obliku. To su dvodimenzionalna sistolička polja kod kojih se operacije u svakom procesnom elementu obavljaju na nivou bita. Cifarsko-serijski protočni množači obavljaju množenje operanada “cifra po cifra” i u istom obliku generišu i rezultat.

Postoje mnogi algoritmi i arhitekture za množenje brojeva. Druga važna činjenica je da za množenje dva broja treba određeno vreme, tako da se takođe radi na tome da vreme za izvršavanje te operacije bude što manje.

Sama arhitektura množača zavisi od toga kakve brojeve bi trebalo da množi. Postoji više algoritama po kojima se množe brojevi. U ovom radu je prikazana primena algoritma koji su predložili Baugh i Wooley.

1.2 Baugh-Wooley tip množača

Neka su A = (am-1am-2 … a0) m-bitni broj u dvojičnom komplementu, B = (bn-

1bn-2 … b0) n-bitni broj u dvojičnom komplementu, i P = A x B = (pm+n-1pm+n-2 … p0) (m+n)-bitni proizvod.

Brojevi A i B u dvojičnom komplementu se predstavljaju na sledeći način:

+−= ∑

=

−−

2

0

11 22

m

i

ii

mm aaA (1.1)

+−= ∑

=

−−

2

0

11 22

n

i

ii

nn bbB (1.2)

Proizvod P je oblika:

+−= ∑

−+

=

−+−+

2

0

11 22

nm

i

ii

nmnm ppP (1.3)

S obzirom da je P = A x B, proizvod dva označena broja tada važi:

+−×

+−= ∑∑

=

−−

=

−−

2

0

11

2

0

11 2222

n

i

ii

nn

m

i

ii

mm bbaaP

∑∑∑∑−

=

+−−

=

+−−

=

=

+−+−− −−++=

2

0

11

2

0

11

2

0

2

0

211 2222

n

i

imim

m

i

inni

m

i

n

j

jiji

nmnm babababa (1.4)

Page 5: PARALELNI MNOŽAČ

5

Treći član u izrazu (koji) je oblika:

++++−=− ∑∑

=−−

−−

−−−

=

+−−

2

011

11

112

0

11 222222

m

i

inin

mn

mmnm

i

inni babbba (1.5)

Ovakav niz nazivamo Baugh-Wooley-ev niz.

Na slici 2 prikazana je hardverska struktura množača za slučaj m=6 i n=4. Algoritmom se zahteva da su bitovi dostupni kako u komplementarnoj tako i u normalnoj formi.

Slika 2. Hardverska struktura množačkog polja obima 6x4

Struktura množačkog polja Baugh-Wooley-evog tipa za obime m=n=5 je skicirana

na slici 3:

Slika 3. Hardverska struktura množačkog polja 5x5

Page 6: PARALELNI MNOŽAČ

6

1.3 Množenje brojeva većeg obima Na osnovu prethodne analize uočili smo kako se vrši množenje dva broja u

dvojičnom komplementu obima m i n. Pri tome smo zaključili da je rezultat obima m+n bitova. Kod najvećeg broja praktičnih aplikacija množačko polje je tipa k×k pri čemu je k < m,n. Problem koji se sada javlja odnosi se na način izvođenja operacije množenja dva broja obima m i n bitova, respektivno. Da bi se ovaj problem uspešno rešio, koristi se modularna struktura množača koja množi i sabira delimične proizvode i ima rekurzivnu strukturu. Princip rada ove tehnike opisaćemo pomoću sledećeg primera. Neka su data dva 2n-to bitna broja A i B koja se mogu predstaviti kao A= AH° AL i B= BH° BL, respektivno, pri čemu su AH, AL, BH, BL n-to bitni brojevi. Proizvod P je 4n-to bitni broj. Postupak množenja se izvodi na sledeći način: P = A x B = AH° AL x BH° BL = (AH x BH + AL x BH) + (AH x BL + AL x BL) (1.6)

Generisanje delimičnih proizvoda se vrši na sledeći način: AH° AL

X) BH° BL ------------------------- AL x BL AH x BL AL x BH

+ AH x BH --------------------------------------- PHH + (PHL + PLH) + PLL

Slika 4. Slaganje delimičnih proizvoda

Kod sabiranja sva četiri delimična proizvoda u (1.6), posebna pažnja se posvećuje

njihovom položaju. Član AH je na poziciji n bita većoj po težini u odnosu na član AL , tako da je prvi delimični proizvod AH x BH na poziciji koja je n bita veća od drugog delimičnog proizvoda AL x BH, a treći delimični proizvod AH x BL je na poziciji n bita većoj od četvrtog AL x BL. Delimični proizvodi AH x BL i AL x BH su na istim pozicijama. Slika 4 pokazuje uređenje ova četiri delimična proizvoda . Svaki od tih proizvoda se može realizovati n×n množačkim modulom. Ukupno četiri takva modula su potrebna za realizaciju množača.

Page 7: PARALELNI MNOŽAČ

7

Za sabiranje delimičnih proizvoda koristi se Wallace-ovo stablo.

Slika 5. Modularna struktura množačkih nizova

Ako se zameni redosled prvog i drugog delimičnog proizvoda, kao i trećeg i četvrtog, dobijaju se izlazi modula uređeni na način levo-desno-gore-dole, kao što je prikazano na slici 5. Na slici 5 svaki pravougaonik je modul obima 4×4. Strukturom sa like 5 se realizuje 8×8 množač. Štaviše, ovakva struktura se može rekurzivno primeniti. Naime, moguće je realizovati 16×16 množač ugrađujući 8×8 množače, ili 32×32 množač kao što je prikazano na slici 5. Pri ovome se primenjuju različita Wallace-ova stabla, u zavisnosti od obima množača. Na slici 5 su obeleženi tipovi Wallace stabala potrebni za desnu polovinu množača. Leva strana je simetrična u odnosu na desnu.

Uopšteno, da bi se realizovalo m×n množenje neoznačenih brojeva, vreme potrebno za takvu operaciju iznosi:

( ) ( )[ ] FAANDUS nm ∆−+−+∆=∆ 11 ( ) FAAND nm ∆−++∆= 2 (1.8) Vreme kašnjenja množačkog modula se izračunava na sledeći način: ( ) ( )[ ] FAANDMM ∆−+−+∆=∆ × 141444 ( ) g∆×+= 262 g∆= 14 (1.9) Površina na Silicijumu potrebna da se realizuje množač m×n neoznačenih brojeva

iznosi: ( ) FAANDUS AnnAnA 12 −+×= (1.10)

Page 8: PARALELNI MNOŽAČ

8

a u konkretnom slučaju za n=4, imamo:

FAANDxMM AAA 3442

44 ×+= gg AA 1012216 ×+×= gA152= (1.11) 1.4 Moduli za množenje i sabiranje

Additive Multiply Modules (AMM) ili moduli za množenje i sabiranje su moduli u

kojima se realizuju dve aritmetičke operacije – sabiranje i množenje. AMM, ustvari, izvršavaju aritmetičku operaciju P = A x B + C + D. Pomoću ovih modula se prvo množe dva ulazna činioca. Nakon toga se na dobijeni proizvod dodaje sabirak C, a konačno sabirak D. Na slici 6 je predstavljen AMM obima 4×2. U konkretnom slučaju A je 4-bitni, a B 2-bitni broj. Proizvod P je 6-bitni, jer je 4+2=6.

Slika 6. 4 × 2 Modul za množenje i sabiranje

Proizvod se izračunava na sledeći način: BAP ×= 1234 BBBBAA LH oooo ×= (1.12)

Page 9: PARALELNI MNOŽAČ

9

Ovaj proizvod se može predstaviti na sledeći način:

(1.13) Kao što možemo videti sa slike 6, kašnjenje u najgorem slučaju za 4×2 AMM

iznosi: ( ) ANDFAxAMM ∆+∆=∆ 524 ( ) g∆+= 210 g∆= 12 (1.14) Ako su, na primer, A i B 8-bitni brojevi, razmak pozicija bitova za 4 delimična

proizvoda je data na slici 7, prema njihovim težinama:

Slika 7. 8x8 množenje pomoću 4x2 množača

Page 10: PARALELNI MNOŽAČ

10

Množački niz koji implementira 4×2 module za sabiranje i množenje je prikazan na slici 8.

sl.8 Implementacija 4x2 AMM-a

Naglasimo da su potrebni samo proizvodi P1 i P0. To znači da nema potrebe da se

čeka 12Δg, već je 6Δg dovoljno. Zbog toga, na slici 8 par AMM-ova povezan isprekidanim linijama uključuje kašnjenje od (6+12=18)Δg. Postoje tri takva para na propagacionom putu. Ako se uzme u obzir prvi i zadnji AMM, ukupno vreme kašnjenja modularnog množača koji obavlja 8×8 množenje je:

( ) gxAMM ∆=++++=∆ 78121818181288 (1.15)

Potrebna površina za množačko polje 8×8 se izračunava na osnovu relacije: ( ) ANDFAxAMM AAA 8824 += ( ) gA1680 += gA96= (1.16)

Što ukupno iznosi: ( ) ( ) ggxAMMxAMM AAAA 7689688 2488 =×=×= (1.17)

Page 11: PARALELNI MNOŽAČ

11

2. Osnovna struktura kola

Vrednosti koje budu dobijene za kašnjenje i površinu biće normalizovane u odnosu na NAND kolo sa dva ulaza. Vreme kašnjenja za NAND kolo je ∆g=2,9 ns, a površina koju zauzima na Silicijumu je Ag=3,02 mils, kada se radi u 2-mikronskoj CMOS tehnologiji. 2.1 Potpuni sabirač

Osnovni element koji je ovde korišten je potpuni sabirač. On sabira dva

jednobitna broja i prenos iz kola koje mu prethodi.

X Y C Z CO 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

Imamo četiri kombinacije za četiri eventualne jedinice. Potpuni sabirač je realizacija ove tabele.

sl.9 Potpuni sabirač

Page 12: PARALELNI MNOŽAČ

12

Vreme kašnjenja za ovaj potpuni sabirač, na osnovu slike, iznosi:

43 ORANDINVFA ∆+∆+∆=∆ ORANDINV ∆+∆+∆= 32

g∆= 239,4 (2.1) Površina koju zauzima na Silicijumu:

433433 ORORANDANDINVFA AAAAAA ++++= ORORANDANDINV AAAAA 322433 ++×++=

ORANDINV AAA 5113 ++= gA036,34= (2.2)

2.2 Ćelija

Pomoću Potpunog sabirača i I kola je realizovana Ćelija. Množenje jednobitnih

brojeva je u suštini I kolo. U ćeliji se množe dva jednobitna broja i saberu sa brojem koji se dovede na odgovarajući ulaz te ćelije . Ćelija je osnovna gradivna jedinica množača. Ona se koristi da bi se napravio množač.

sl.10 Ćelija

Page 13: PARALELNI MNOŽAČ

13

2.3 Opis osnovnog množača U množaču se množe dva 8-bitna neoznačena broja i dobija se 16-bitni rezultat i prenos.

sl.11 Množač

Množač je sastavljen od mreže 8×8 elemenata povezanih na način prikazan na

slici. Razlog za ovakvu konstrukciju je takav, jer se množenje izvodi uvek na isti način. Osnovni element od koga je izgrađena ova struktura je Ćelija. U prvom redu množača se vrši prvo množenje, nemamo prenos iz prethodnog. Taj problem rešavamo tako što na odgovarajućem ulazu dovodimo nule koje se sabiraju sa onim što smo pomnožili u tom prvom redu. U svakom redu se množi jedan činilac sa odgovarajućim bitom drugog činioca. Svaki od tih redova je pomeren ulevo zbog pomeraja prilikom množenja (zato što bitovi u drugom činiocu imaju različitu težinu). U poslednjem redu je postavljeno 8 potpunih sabirača da bi se uradilo završno sabiranje.

Vreme kašnjenja ovog množača se može izračunati na sledeći način:

( ) FAANDM ∆++∆=∆ × 8888 FAAND ∆×+∆= 16

g∆= 589,68 (2.3)

Page 14: PARALELNI MNOŽAČ

14

A površina koju zauzima možemo dobiti iz sledeće jednačine: ( ) FAFAANDM AAAA 882

88 ++=× ( ) gg AA 036,348036,34987,164 ×++=

gA76,2577= (2.4) 2.4 Opis AMM-a

AMM (additive multiply modul) čija je realizacija prikazana na slici, sastoji se od

množača koji je prethodno opisan, sabirača i kola za spajanje i razdvajanje višebitnih brojeva. To su moduli u kojima se realizuju dve aritmetičke operacije – sabiranje i množenje, kao što je već ranije objašnjeno. Realizovan je AMM za dva 8-bitna broja.

sl.12 AMM (Additive multiply module)

2.5 Spajanje i razdvajanje brojeva Na slici koja predstavlja realizaciju AMM-a postoje elementi koji spajaju dva 8-

bitna broja u 16-bitni (sl. 13) i koji razdvajaju 16-bitni broj na dva 8-bitna (sl. 14). Oni se koriste za konstrukciju modula za sabiranje i množenje.

Page 15: PARALELNI MNOŽAČ

15

Sl.13 Spajanje 8 bita u 16 bita sl.14 Razdvajanje 16 bita u 8 bita

Vreme kašnjenja za ova dva elementa je isto i iznosi:

bufurazusp ∆=∆=∆ 816168 g∆= 483,0 (2.5) A površina koju ovi elementi zauzimaju na Silicijumu je:

bufurazusp AAA ×== 16816168 gA16= (2.6)

2.6 Sabirač Sabirač koji je prikazan na slici 15 sabira dva 16-bitna broja. Koristi se pri

realizaciji modula za sabiranje i množenje.

sl.15 Sabirač

Vreme kašnjenja kroz sabirač je: gFAsab ∆=∆=∆ 239,4 (2.7)

Page 16: PARALELNI MNOŽAČ

16

A površina koju opisani sabirač zauzima na Silicijumu:

FAsab AA ×= 16 gA576,544= (2.8)

Analizirajući konstrukciju samog modula za sabiranje i množenje, dolazimo do zaključka da je najveće kašnjenje kroz njega ustvari kašnjenje kroz množač na koje se dodaje kašnjenje kroz dva sabirača i element za razdvajanje, tako da vreme kašnjenja ovakvog modula iznosi:

81688 2 urazsabMAMM ∆+∆+∆=∆ ×

ggg ∆+∆×+∆= 483,0239,42589,68 g∆= 55,77 (2.9) A površina koju zauzima iznosi:

81616888 22 urazuspsabMAMM AAAAA +×+×+= × gggg AAAA 16162576,544276,2577 +×+×+= gA912,3714= (2.10)

2.7 Realizacija Paralelnog množača Realizacija Paralelnog množača je izvedena na osnovu šeme na slici 16:

Sl.16 Realizacija Paralelnog množača

Page 17: PARALELNI MNOŽAČ

17

Na narednoj slici (sl.17) je prikazan Paralelni množač izveden na osnovu AMM-a

koji smo prethodno realizovali i dodatnih elemenata:

sl.17 Paralelni množač

Na ulaze Paralelnog množača se dovedu dva 16-bitna broja. Prvo se uvode u

kolo za komplementiranje, jer ovaj množač množi brojeve koji su označeni i predstavljeni u dvojičnom komplementu. Sa tim što se najveći bit i jednog i drugog broja šalje na izlaz da bi se proizvod naknadno komplementirao, ako je to potrebno. Ovo se radi da bi se odredio znak proizvoda na izlazu. Nakon kola za komplementiranje nalazi se element kojim se razdvaja 16-bitni broj u dva 8-bitna broja. Ovo je glavni deo kola, jer tako može da se iskoristi 16-bitni množač. Ostalih 8 bita na ulazu prva dva AMM-a se dopunjavaju nulama. 8 bita se vode na izlaz, a drugih 8 iz jednog AMM-a se vode u treći AMM. Iz drugog AMM-a, 8 bita sa manjom težinom se vode u treći AMM, a ostalih 8 u četvrti, gde dolaze i 8 većih bita iz trećeg AMM-a. Po 8 bita iz prvog i

Page 18: PARALELNI MNOŽAČ

18

trećeg AMM-a se vode u element gde se spajaju u 16-bitni broj. Ovaj element je već izveden kod projektovanja AMM-a, pa je ovde ponovo iskorišten. Drugih 16 bita se dobija preko ovakvog elementa iz četvrtog AMM-a. Na kraju imamo element koji spaja dva 16-bitna broja i dobijamo 32-bitni. Taj broj se vodi u kolo za komplementiranje da bi mu se odredio znak. Ovako je konstruisan ovaj paralelni množač koji množi dva 16-bitna broja i daje 32-bitni rezultat, a realizovan pomoću 8x8 množača.

Korišteni su još neki elementi prilikom realizacije ovog Paralelnog množača, kao

što su element za spajanje 16 bita u 32 bita i kola za komplementiranje.

2.8 Spajanje dva 16-bitna broja u 32-bitni

sl.18 Spajanje 16 bita u 32 bita

Kašnjenje kroz kolo na slici može da se predstavi jednačinom: gbufusp ∆=∆=∆ 483,03216 (2.11) A površina se može predstaviti kao: gbufusp AAA 32323216 =×= (2.12)

Page 19: PARALELNI MNOŽAČ

19

2.9 Kola za komplementiranje Kolo za komplementiranje komplementira svaki negativan broj koji dobije na

ulazu. Za znak je važan najviši bit, on određuje preko XOR kola da li će da se svi bitovi invertuju i doda 1, ili će broj da izađe nepromenjen.

sl.19 Kolo za komplementiranje 16-bitnog broja

sl.20 Kolo za komplementiranje 32-bitnog broja

Kašnjenje kroz kolo za komplementiranje 16-bitnog, odnosno 32-bitnog broja su: FAxorkompkomp ∆+∆=∆=∆ 3216 gg ∆+∆= 239,4655,0 g∆= 894,4 (2.13) Površina koju ovi elementi zauzimaju je: ( )FAxorkomp AAA +×= 1616 ( )gg AA 036,34987,116 +×= gA368,576= (2.14)

( ) 321632 32 uspFAxorkomp AAAA ++×= ( ) ggg AAA 32036,34987,132 ++×= gA736,1184= (2.15)

Page 20: PARALELNI MNOŽAČ

20

2.10 Kašnjenje i površina koju Paralelni množač zauzima na Silicijumu

Proračunato najveće vreme kašnjenja za ovaj Paralelni množač je, gledajući sliku,

vreme kašnjenja kroz kolo za komplementiranje 16-bitnog broja, kolo za razdvajanje 16-bitnog broja na dva 8-bitna, kašnjenje kroz prvi AMM, dva kašnjenja kroz drugi i treći AMM, ali manja u odnosu na kašnjenje u prvom AMM-u, jer onda bitovi ne idu kroz množač u AMM-u već im je put kroz element za spajanje, dva sabirača i element za razdvajanje 16-bitnog broja na dva 8-bitna. Vreme kašnjenja koje se dodaje na ovo kašnjenje je kašnjenje kroz element za spajanje dva 8-bitna broja u 16-bitni, kašnjenje kroz element za spajanje dva 16-bitna broja u 32-bitni, i kroz kolo za komplementiranje 32-bitnog broja.

32321616881616881616 2 kompuspuspurazsabuspAMMurazkompPM ∆+∆+∆+∆+∆×+∆+∆+∆+∆=∆

ggggggggg ∆+∆+∆+∆+∆×+∆+∆+∆+∆= 894,4483,0483,0483,0239,42483,055,77483,0894,4

g∆= 231,98 (2.16)

Površina koju ovaj Paralelni množač zauzima na čipu je:

32321616881616 2422 kompuspuspxorAMMurazkompPM AAAAAAAA ++×++×+×+×= ggggggg AAAAAAA 736,118432162987,1912,37144162368,5762 ++×++×+×+×=

gA107,17295= (2.17)

Page 21: PARALELNI MNOŽAČ

21

3. Definisanje osnovnih elemenata u kolu, njihov izgled i kodovi

Slede definicije za svaki osnovni element kola, opis njegove funkcije, slika i VHDL kod. Takođe su data vremena kašnjenja i površina koju zauzimaju na Silicijumu, u slušaju da se realizacija vrši u 2-mikronskoj CMOS tehnologiji. 3.1 Invertor

library IEEE; --biblioteka koju koristimo use IEEE.STD_LOGIC_1164.all; entity inv is --kolo vrsi invertovanje ulaznog signala port(in1 :in std_logic ; --in1 je ulaz kola out1 :out std_logic ); --out1 je izlaz kola end inv; architecture inv of inv is --opisivanje funkcije kola begin out1 <= not in1 ; --na izlaz se salje invertovani ulazni signal end inv; Osnovna njegova funkcija je da se na njegovom izlazu dobije invertovani signal. Vreme kašnjenja kroz invertor iznosi 0,414∆g, a površina koju zauzima iznosi 0,748Ag.

3.2 I kolo

library ieee; --biblioteka koju koristimo use ieee.std_logic_1164.all; entity i_kolo is --kolo vrsi "i" funkciju sa dva operanda port ( in1 : in std_logic; --prvi operand in2 : in std_logic; --drugi operand out1 : out std_logic); --rezultat funkcije "i" end entity i_kolo; architecture i_kolo of i_kolo is --opis funkcije kola begin out1 <= in1 and in2; --izlaz dobija vrednost "i" funkcije od ulaznih operanada end; Vreme kašnjenja kroz I kolo iznosi 0,765∆g, a površina koju zauzima iznosi 1,987Ag.

Page 22: PARALELNI MNOŽAČ

22

3.3 I3 kolo

library IEEE; --biblioteka koju koristimo use IEEE.STD_LOGIC_1164.all; entity i3_kolo is --kolo vrsi "i" funkciju sa tri operanda port(in1 :in std_logic ; --prvi operand in2 :in std_logic ; --drugi operand in3 :in std_logic ; --treci operand out1 :out std_logic ); --rezultat funkcije "i" end i3_kolo; architecture i3_kolo of i3_kolo is --opis funkcije kola begin out1 <= in1 and in2 and in3; --izlaz dobija vrednost "i" funkcije od ulaznih operanada end i3_kolo; Vreme kašnjenja kroz I3 kolo iznosi 1,53∆g, a površina koju zauzima iznosi 3,974Ag.

3.4 ILI3 kolo

library IEEE; --biblioteka koju koristimo use IEEE.STD_LOGIC_1164.all; entity ili3_kolo is --kolo vrsi "ili" funkciju sa tri operanda port(in1 :in std_logic ; --prvi operand in2 :in std_logic ; --drugi operand in3 :in std_logic ; --treci operand out1 :out std_logic ); --rezultat funkcije "ili" end ili3_kolo; architecture ili3_kolo of ili3_kolo is --opis funkcije kola begin out1 <= in1 or in2 or in3 ; --izlaz dobija vrednost "ili" funkcije od ulaznih operanada end ili3_kolo; Vreme kašnjenja kroz ILI3 kolo iznosi 1,53∆g, a površina koju zauzima iznosi 3,974Ag.

Page 23: PARALELNI MNOŽAČ

23

3.5 ILI4 kolo

library IEEE; --biblioteka koju koristimo use IEEE.STD_LOGIC_1164.all; entity ili4_kolo is --kolo vrsi "ili" funkciju sa cetiri operanda port(in1 :in std_logic ; --prvi operand in2 :in std_logic ; --drugi operand in3 :in std_logic ; --treci operand in4 :in std_logic ; --cetvrti operand out1 :out std_logic ); --rezultat funkcije "ili" end ili4_kolo; architecture ili4_kolo of ili4_kolo is --opis funkcije kola begin out1 <= in1 or in2 or in3 or in4; --izlaz dobija vrednost "ili" funkcije od ulaznih operanada end ili4_kolo; Vreme kašnjenja kroz ILI4 kolo iznosi 2,295∆g, a površina koju zauzima iznosi 5,961Ag. 3.6 XOR kolo

library ieee; --biblioteka koju koristimo use ieee.std_logic_1164.all; entity xor_kolo is --kolo vrsi "ekskluzivnu ili" funkciju za dva operanda port ( in1 : in std_logic; --prvi operand in2 : in std_logic; --drugi operand out1 : out std_logic); --rezultat funkcije "xor" end entity xor_kolo; architecture xor_kolo of xor_kolo is --opis funkcije kola begin out1 <= in1 xor in2; --izlaz dobija vrednost "xor" funkcije od ulaznih operanada end; Vreme kašnjenja kroz XOR kolo iznosi 0,655∆g, a površina koju zauzima iznosi 1,987Ag.

Page 24: PARALELNI MNOŽAČ

24

3.7 Bafer

library IEEE; --biblioteka koju koristimo use IEEE.STD_LOGIC_1164.all; entity buf is --bafer sluzi za odvajanje dva stepena u kolu port(in1 :in std_logic ; --in1 je ulazni signal out1 :out std_logic ); --out1 je izlazni signal end buf; architecture buf of buf is --opisivanje funkcije kola begin out1 <= in1 ; --ulazni signal se prenosi na izlaz end buf; Služi za razdvajanje dva stepena u kolu. Vreme kašnjenja kroz Bafer iznosi 0,483∆g, a površina koju zauzima iznosi 1Ag.

Page 25: PARALELNI MNOŽAČ

25

4. Sinteza i implementacija

Ovo kolo je sintetizovano u programskom paketu firme XILINX ISE. Ovo je

programski paket firme XILINX za razvoj aplikacija baziranih na njihovim CPLD i FPGA čipovima.

Izvršena je sinteza na čipu familije XILINX6x Virtex, na čipu V50CS144. Vršena je sinteza pri čemu se vodilo računa o tome da brzina rada kola bude najveća. Realizacija nije vršena da bi se uštedelo mesto na čipu, već je ideja bila da brzina bude veća, jer su to komplementarni zahtevi.

sl.21 Zauzetost pinova u FPGA čipu

Page 26: PARALELNI MNOŽAČ

26

Naredna slika (sl.22) pokazuje kako izgleda čip iznutra. Njegova struktura, raspored po ćelijama i međusobna povezanost.

Sl.22 Unutrašnja iskorišćenost i zauzetost ćelija u FPGA čipu

Sledeći parametri najbolje opisuju kako čip funkcioniše: Design Information ------------------ Command Line : C:\Xilinx\bin\nt\map.exe -p V50CS144-6 -o map.ncd -pr b -k 4 -cm area -c 100 -tx off kolo.ngd kolo.pcf Target Device : v50 Target Package : cs144 Target Speed : -6 Mapper Version : virtex -- $Revision: 1.16.8.2 $ Mapped Date : Mon Feb 13 22:54:56 2006 Design Summary -------------- Number of errors: 0 Number of warnings: 0 Logic Utilization: Number of 4 input LUTs: 859 out of 1,536 55% Logic Distribution: Number of occupied Slices: 451 out of 768 58% Number of Slices containing only related logic: 451 out of 451 100% Number of Slices containing unrelated logic: 0 out of 451 0% Total Number of 4 input LUTs: 859 out of 1,536 55% Number of bonded IOBs: 90 out of 94 95% Total equivalent gate count for design: 5,154 Additional JTAG gate count for IOBs: 4,320 Peak Memory Usage: 61 MB

Page 27: PARALELNI MNOŽAČ

27

5. Testiranje rada kola

Finalni deo projekta je testiranje rada kola. Otvorimo program VHDL duplim klikom na njegovu ikonicu. Otvorimo VHDL Design Entry i u prozoru kliknemo na projekat “paralelnimnozac”, ako smo ga već otvarali. Ako ne, onda kliknemo na dugme “More designs…” i nađemo projekat na hard disku ili CD-u.

Sl.23 Slika menija za izbor projekta

Onda u padajućem meniju ispod “Design Browser-a” izaberemo “kolo”, jer je to

naš paralelni množač:

sl.24 Izbor našeg kola

Page 28: PARALELNI MNOŽAČ

28

Da bismo testirali kolo, kliknemo na “New waveform” ikonicu. Dobijamo dva prazna polja, od kojih je u levom “Timeline” i podeoci u ns, a u desnom “Name”, “Value” i “Stimulator”. Desnim klikom se dobija padajući meni u kome se izabere “Add Signals…”. Kada kliknemo tu, otvara nam se nov prozor u kome imamo sve ulaze, izlaze i ostale elemente kola koje testiramo. Dodamo signale koje se dovode na ulaz i izlaz iz kola. Kada upotrebimo desni klik na oznaku za ulaz kola koje testiramo, iz padajućeg menija izaberemo “Stimulators...” Dobija se meni koji izgleda kao na slici. Unosimo 16-bitni binarni broj. To radimo i za drugi ulaz.

Sl.25 Izgled stranice waveforma i padajući meni

sl.26 Izbor ulaznih i izlaznih veličina za testiranje

Page 29: PARALELNI MNOŽAČ

29

sl.27 Padajući meni opcije za zadavanje vrednosti „Stimulators”

U slučaju da je neki od 16-bitnih brojeva negativan, prvo će se izvršiti

komplementacija a onda će se pomnožiti ta dva broja. Na kraju, pre izlaza, proizvod opet prolazi kroz kolo za komplementiranje, jer je neoznačen broj, a u slučaju da treba da bude negativan, znak mu menja kolo za komplementiranje.

sl.28 Dijagram ulaza i izlaza Paralelnog Množača

Na kraju, za prekid simulacije, idemo na “Simulation”, pa onda “End Simulation”.

Tako se završava testiranje našeg kola.

Page 30: PARALELNI MNOŽAČ

30

6. Zadatak Proveriti ispravnost rada Paralelnog množača za pet različitih vrednosti ulaznih

signala. Posmatrati dijagram stanja i upisati za svaki ulazni signal šta se dobija na izlazu. 1. Pokrenuti program Active HDL čija se ikonica nalazi na Desktopu 2. Izabrati VHDL Design Entry, pa Next 3. Izabrati fajl paralelnimnozac i kliknuti OK 4. Izabrati fajl kolo(kolo) u padajućem meniju ispod Design Browsera 5. Odabrati ikonicu Waveform koja se nalazi prva desno od disketice 6. Desnim klikom miša na levu polovinu praznog dela izabrati Add Signals...

sl.29 Koraci 4,5 i 6 prilikom unosa signala

Page 31: PARALELNI MNOŽAČ

31

7. Dodajemo ulazne signale X i Y i izlaz Z, tako što označimo jedan po jedan signal i kliknemo na Add

8. Vrednosti zadajemo samo ulaznim signalima X i Y, tako što kliknemo na desni klik i pritisnemo Stimulators...

9. Unosimo dva 16-bitna binarna broja, vodeći računa o znaku samih brojeva. Ako su negativni, moramo da ih kompementiramo, da bi mogli da proverimo rezultat samog množenja, jer ovo kolo vrši komplementiranje kako ulaznih, tako i izlaznih veličina, sa tim što na izlazu znak zavisi od znaka ulaznih veličina.

10. Postaviti vreme simulacije na 100ns 11. Simulacija se pokreće na ikonicu Run For (F5) 12. Beležiti rezultate u svakom koraku i proveravati rešenja ručno.

sl.30 Koraci 7, 8, 10 i 11 pri unosu vrednosti i testiranju kola

Page 32: PARALELNI MNOŽAČ

32

ULAZNI SIGNALI IZLAZNI SIGNAL R. B. Parova signala binarni dekadni heksadecimalni dekadni

X= X= 1. Y= Y= Z= Z=

X= X= 2. Y= Y= Z= Z=

X= X= 3. Y= Y= Z= Z=

X= X= 4. Y= Y= Z= Z=

X= X= 5. Y= Y= Z= Z=

Šema koju student popunjava

Podsetnik: Komplementiranje broja vršimo na sledeći način. Ako imamo, na primer, broj 7 ( u binarnom obliku je on predstavljen kao 00000111), i želimo da dobijemo -7, onda sve njegove nule zamenimo jedinicama, i sve jedinice nulama. Da bismo dobili potpuni komplement nekog broja, dodajemo i jedinicu, ako ne dodamo jedinicu, onda je to nepotpuni komplement.

00000111 11111000 +1

----------------- 11111001

Tako smo dobili broj u binarnom obliku. Broj je u potpunom komplementu, nigde

se ne javlja znak “minus”. Rad sa brojevima u ovom formatu je jednostavniji.

Page 33: PARALELNI MNOŽAČ

33

LITERATURA:

1. Volnei A. Pedroni CIRCUIT DESIGN WITH VHDL, MIT Press Cambridge, Massachusetts London, England 2. Mi Lu ARITMETIC AND LOGIC IN COMPUTER SYSTEMS, John Wiley and Sons Inc., 2004