Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... ·...

33
UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi BIT-SERIJSKI MNO@A^ ZA NEOZNA^ENE BROJEVE student: Aleksandar Blagojevi} br.indeksa: 9857

Transcript of Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... ·...

Page 1: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

BIT-SERIJSKI MNO@A^ ZA NEOZNA^ENE BROJEVE

student: Aleksandar Blagojevi} br.indeksa: 9857

Page 2: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

1

SADR@AJ: 1. UVOD U BIT-SERIJSKE MNO@A^E ................................................................. 2 2. SISTEMATIZACIJA BIT-SERIJSKIH MNO@A^A .............................................. 2 2.1. Serijski-Serijski-Paralelni (SSP) mno`a~i ............................................ 3 2.2. Milerov mno`a~ .................................................................................... 3 2.3. Tok ulaznih podataka kroz Milerov mno`a~ ......................................... 4 3. REALIZACIJA BIT-SERIJSKOG MNO@A^A U VHDL-u ................................... 6 3.1. Struktura kola mno`a~a sa registrima za upis ..................................... 6 3.2. Struktura bit-serijskog SSP mno`a~..................................................... 8 3.3. Struktura }elije bit-serijskog SSP mno`a~a ......................................... 9 3.4. Struktura potpunog sabira~a ................................................................ 1

2 3.5. Struktura pomera~kih registara ............................................................ 1

5 3.6. Struktura multipleksera ........................................................................ 1

6 3.7. Struktura D flip-flopa ............................................................................ 1

8 3.8. VHDL kodovi za osnovne gradivne blokove ........................................ 1

9 4. SINTEZA I IMPLEMENTACIJA KOLA ............................................................... 2

0 5. TESTIRANJE RADA KOLA ............................................................................... 2

4 5.1. Testiranje rada potpunog sabira~a ...................................................... 2

4 5.2. Testiranje rada multipleksera ............................................................... 2

4 5.3. Testiranje rada pomera~kog registra ................................................... 2

5 5.4. Testiranje rada }elije Milerovog mno`a~a ............................................ 2

5 5.5. Testiranje rada mno`a~a ..................................................................... 2

6 6. ZADATAK .......................................................................................................... 2

7 6.1. Rezultati ............................................................................................... 3

2

Page 3: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

2

1. UVOD U BIT-SERIJSKE MNO@A^E Primena proto~ne obrade je uspe{na koncepcija za pove}anje efikasnosti digitalnih sistema pa se dosta napora ulagalo i ula`e od strane projektanata da se ona uvede i iskoristi u {to ve}em broju primena. Uvodjenje proto~ne obrade je pokazalo veoma zna~ajne rezultate u arhitekturama namenjenim realizaciji na ~ipu. Tako sistoli~ka polja, koja su u potpunosti bazirana na principu proto~ne obrade, pokazuju izuzetno visok stepen efikasnosti upravo zbog mogu}nosti njihove realizacije na ~ipu. Jedna od osnovnih komponenti digitalnih sistema je podsistem za mno`enje binarnih brojeva. Efikasnost mno`a~a veoma ~esto uslovljava i efikasnost ~itavog sistema. Zbog svega ovoga vr{ena su mnoga istra`ivanja u pravcu projektovanja proto~nih mno`a~a, {to je rezultovalo u ~itavom nizu razli~itih proto~nih arhitektura za mno`enje binarnih brojeva. 2. SISTEMATIZACIJA BIT-SERIJSKIH MNO@A^A I pored toga {to postoji ~itav niz bit-serijskih proto~nih arhitektura, mo`e se uo~iti samo pet karakteristika po kojima se one medjusobno razlikuju. Karakteristike bit-serijskih arhitektura su:

1. format prenosa ulazno-izlaznih podataka; 2. postojanje globalne linije za podatke; 3. medjusobni odnos smerova prostiranja podataka; 4. slo`enost osnovne }elije; 5. prostranje generisanih prenosa.

Na osnovu iskustava, klasifikacija bit-serijskih mno`a~a prema formatu ulazno-izlaznih podataka pru`a najbolji uvid u pomenute arhitekture. Naime, jedino prema formatu prenosa ulazno-izlaznih podataka proto~ne bit-serijske arhitekture se 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: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

3

Oznake pojedinih klasa mno`a~a na slici 1 su uvedene prema formatima prenosa podataka koji u~estvuju u procesu mno`enja. Tako prvo slovo u oznaci ozna~ava format prenosa jednog operanda (Serijski ili Paralelni), drugo slovo format prenosa drugog operanda i tre}e slovo format prenosa rezultata. Ovde }e biti posve}ena pa`nja bit serijskim mno`a~ima sa bit-paralelnim rezultatom, tj. SSP (Serial-Serial-Paralell) mno`a~ima, i bi}e predstavljena konkretna realizacija SSP mno`a~a. 2.1. Serijski-Serijski-Paralelni (SSP) mno`a~i Va`na elementarna operacija, koja se obavlja kod matri~nih izra~unavanja je mno`enje sa akumulacijom. Ona se mo`e opisati izrazom: ci = ci-1 + ai * bi , i=1,2,3,... Mno`a~i tipa SPS i SSS ne poseduju mogu}nost direktnog izvr{enja ove operacije. To je posledica kretanja rezultata kroz polje, odnosno ~injenice da je po zavr{etku jedne operacije mno`enja deo rezultata ve} u serijskom obliku iza{ao iz polja. Da bi se realizovalo mno`enje sa akumulacijom na bazi ovakvih mno`a~a potrebno je formirati slo`enije strukture u kojima u~estvuje vi{e mno`a~a. Kod SSP mno`a~a oba operanda se serijski unose u polje a rezultat se generi{e u paralelnom obliku. Drugim re~ima, oba operanda se kre}u kroz polje u serijskom obliku a rezultat je stati~an u toku izra~unavanja. Tek posle kompletiranja izra~unavanja rezultat se mo`e generisati na izlazima polja i to ili u paralelnom obliku ili se mo`e pomo}u pomera~kog registra konvertovati u serijski oblik. Koncept stati~kog rezultata, usvojen kod SSP mno`a~a, omogu}ava direktnu implementaciju operacije mno`enja sa akumulacijom. Ako se vi{e parova operanada unesu u polje, bez izbacivanja rezultata u medjuvremenu, rezultati pojedinih mno`enja se sabiraju u samom polju i na taj na~in bez ikakvog dodatnog hardvera se formira kona~ni akumulirani rezultat. Ova osobina SSP mno`a~a je iskori{}ena za formiranje polja za mno`enje matrica zasnovanog na bit-serijskom pristupu. 2.2. Milerov mno`a~ Mno`enje dva N-bitna neozna~ena operanda

∑−

=

=1

02*

N

i

iiaa i ∑

=

=1

0

2*N

i

iibb

mogu}e je obaviti u dva koraka. U prvom koraku se polinomi

( ) ∑−

=

=1

0*

N

i

ii xaxa i ( ) ∑

=

=1

0*

N

i

ii xbxb

mno`e i formira se rezultuju}i polinom stepena 2N-2:

Page 5: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

4

( ) ∑−

=

=22

0*''

N

k

kk xpxp , gde je ∑

=−=

k

iikik bap

0

*' za 0≤k ≤2N-2

pri ~emu je ai=bi=0 za i≥N. U drugom koraku se formiraju 2N bitova p0,...,p2N-1 prizvoda a*b na osnovu polinoma p'(x). To se posti`e sabiranjem, na odgovaraju}i na~in pomerenih, koeficijenata p'k. Na slici 2 je dat serijski mno`a~ koji predstavlja linerano polje dve proste }elije. Ovaj mno`a~ se zasniva na ~injenici da se faktori p'k mogu izra~unavati istovremeno i da se aktivnosti iz prvog i iz drugog koraka mogu preklapati. Svaka }elija u polju sa slede}e slike izra~unava po jedan bit proizvoda p, pri ~emu prva }elija sleva u polju izra~unava bit najve}e te`ine a prva }elija sdesna u polju izra~unava bit najmanje te`ine. Svaka }elija se sastoji od jednog potpunog sabira~a, jednog "I" kola i ~etiri flip-flopa. Operandi "a" i "b" se unose u polje serijski i prostiru kroz polje u suprotnim smerovima. Operand "b" se unosi sa leve strane polja po~ev od bita najmanje te`ine a operand "a" se unosi sa desne strane polja po~ev od bita najve}e te`ine. U okviru svake }elije se nad prido{lim bitovima vr{i logi~ka "I" operacija i rezultat se sabira sa medjurezultatom koji odgovara bitu pi proizvoda. Prenos koji se generi{e u toku sabiranja prosledjuje se u prvu susednu }eliju sleve strane koja ovaj prenos uklju~uje u operaciju sabiranja u slede}em taktu. Da bi se obezbedilo kombinovanje bitova ai i bi na odgovaraju}i na~in, vr{i se ubacivanje nula iza svakog bita u oba operanda. Na ovaj na~in je omogu}eno da, ako se u krajnju levu i krajnju desnu }eliju ubacuju bitovi operanada na odgovaraju}i na~in, suma parcijalnih proizvoda koja se generi{e u i-toj }eliji odgovara bitu pi rezultata.

Slika 2: Milerov mno`a~

2.3. Tok ulaznih podataka kroz Milerov mno`a~ Osim gradivnih elemenata koje sadr`i svaka }elija ovog mno`a~a, potrebno je dodati i hardver za ubacivanje bitova operanada, za izbacivanje bitova rezultata i za resetovanje posle svakog ciklusa mno`enja. Ovi zahtevi se mogu zadovoljiti dodavanjem jo{ po dva flip-flopa u svaku }eliju.

Page 6: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

5

U Tabeli 1 je prikazan tok podataka kroz Milerov mno`a~ sastavljen od 16 }elija u slu~aju mno`enja dva 8-bitna neozna~ena broja. VREME / ]ELIJA 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -> ]ELIJE

b70b60b50b40b30b20b10b0 0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0a70a60a50a40a30a20a10a0

b70b60b50b40b30b20b10 b0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

a70a60a50a40a30a20a10a0

b70b60b50b40b30b20b1 0 0

b0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 a7

0a60a50a40a30a20a10a0

b70b60b50b40b30b20 b1 0

0 0

b0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 a7

0 0

a60a50a40a30a20a10a0

b70b60b50b40b30b2 0 0

b1 0

0 0

b0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 a7

0 0

0 a6

0a50a40a30a20a10a0

b70b60b50b40b30 b2 0

0 0

b1 0

0 0

b0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 a7

0 0

0 a6

0 0

a50a40a30a20a10a0

b70b60b50b40b3 0 0

b2 0

0 0

b1 0

0 0

b0 0

0 0

0 0

0 0

0 0

0 0

0 a7

0 0

0 a6

0 0

0 a5

0a40a30a20a10a0

b70b60b50b40 b3 0

0 0

b2 0

0 0

b1 0

0 0

b0

0 0 0

0 0

0 0

0 a7

0 0

0 a6

0 0

0 a5

0 0

a40a30a20a10a0

b70b60b50b4 0 0

b3 0

0 0

b2 0

0 0

b1 0

0 0

b0

0 0 0

0 a7

0 0

0 a6

0 0

0 a5

0 0

0 a4

0a30a20a10a0

b70b60b50 b4 0

0 0

b3 0

0 0

b2 0

0 0

b1

0 0 0

b0

a7

0 0

0 a6

0 0

0 a5

0 0

0 a4

0 0

a30a20a10a0

b70b60b5 0 0

b4 0

0 0

b3 0

0 0

b2 0

0 0

b1

a7

0 0

b0

a6

0 0

0 a5

0 0

0 a4

0 0

0 a3

0a20a10a0

b70b60 b5 0

0 0

b4 0

0 0

b3 0

0 0

b2

a7

0 0

b1

a6

0 0

b0

a5

0 0

0 a4

0 0

0 a3

0 0

a20a10a0

b70b6 0 0

b5 0

0 0

b4 0

0 0

b3 a7

0 0

b2

a6

0 0

b1

a5

0 0

b0

a4

0 0

0 a3

0 0

0 a2

0a10a0

b70 b6 0

0 0

b5 0

0 0

b4 a7

0 0

b3

a6

0 0

b2

a5

0 0

b1

a4

0 0

b0

a3

0 0

0 a2

0 0

a10a0

b7 0 0

b6 0

0 0

b5 a7

0 0

b4 a6

0 0

b3

a5

0 0

b2

a4

0 0

b1

a3

0 0

b0

a2

0 0

0 a1

0a0

b7 0

0 0

b6 a7

0 0

b5 a6

0 0

b4

a5

0 0

b3

a4

0 0

b2

a3

0 0

b1

a2

0 0

b0 a1

0 0

a0

0 0

b7 a7

0 0

b6 a6

0 0

b5 a5

0 0

b4

a4

0 0

b3

a3

0 0

b2

a2

0 0

b1

a1

0 0

b0 a0

0 a7

0 0

b7 a6

0 0

b6 a5

0 0

b5

a4

0 0

b4

a3

0 0

b3

a2

0 0

b2

a1

0 0

b1 a0

0 0

0 0

0 a6

0 0

b7 a5

0 0

b6 a4

0 0

b5

a3

0 0

b4

a2

0 0

b3

a1

0 0

b2

a0

0 0

b1 0

0 a6

0 0

0 a5

0 0

b7 a4

0 0

b6

a3

0 0

b5

a2

0 0

b4

a1

0 0

b3

a0

0 0

b2 0

0 0

0 0

0 a5

0 0

0 a4

0 0

b7 a3

0 0

b6

a2

0 0

b5

a1

0 0

b4

a0

0 0

b3

0 0 0

b2 0

0 a5

0 0

0 a4

0 0

0 a3

0 0

b7

a2

0 0

b6

a1

0 0

b5

a0

0 0

b4

0 0 0

b3 0

0 0

0 0

0 a4

0 0

0 a3

0 0

0 a2

0 0

b7

a1

0 0

b6

a0

0 0

b5

0 0 0

b4

0 0 0

b3 0

0 a4

0 0

0 a3

0 0

0 a2

0 0

0 a1

0 0

b7

a0

0 0

b6

0 0 0

b5

0 0 0

b4 0

0 0

0 0

0 a3

0 0

0 a2

0 0

0 a1

0 0

0 a0

0 0

b7

0 0 0

b6

0 0 0

b5

0 0 0

b4 0

0 a3

0 0

0 a2

0 0

0 a1

0 0

0 a0

0 0

0 0

0 0

b7

0 0 0

b6

0 0 0

b5 0

0 0

0 0

0 a2

0 0

0 a1

0 0

0 a0

0 0

0 0

0 0

0 0

0 0

b7

0 0 0

b6

0 0 0

b5 0

0 a2

0 0

0 a1

0 0

0 a0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

b7

0 0 0

b6

0

0 0

0 0

0 a1

0 0

0 a0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

b7

0 0 0

b6 0

0 a1

0 0

0 a0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

b7 0

0 0

0 0

0 a0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

b7 0

0 a0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

Tabela 1: Tok ulaznih podataka kroz Milerov mno`a~ i na~in generisanja parcijalnih proizvoda

Page 7: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

6

3. REALIZACIJA BIT-SERIJSKOG MNO@A^A U VHDL-u Kolo koje je zadato projektnim zadatkom je opisano u programskom jeziku Active-HDL 5.1 kompanije "ALDEC", koji danas predstavlja jedan od standardnih softverskih alata za projektovanje hardvera. Nakon toga je izvr{ena sinteza i implementacija opisa u programskom paketu ISE kompanije "XILINX". Za sam razvoj i testiranje koda kori{}en je programski paket Active-HDL 5.1. U samom projektu, osim osnovnih gradivnih elemetana, razlikujemo slede}e sklopove :

• mulitiplekser -"mux.bde" • potpuni sabira~ - "potpun_sabirac.bde" • pomera~ki registar za operand "A" - "SHIFTreg.bde" • pomera~ki registar za operand "B" - "SHIFTreg_B.bde" • }elija Milerovog mno`a~a - "celija.bde" • bit-serijski SSP mno`a~ - "bit_serijski.bde" • finalno kolo mno`a~a sa registrima za upis - "KOLO.bde"

3.1. Struktura kola mno`a~a sa registrima za upis Na slici 3 je data šema bit-serijskog mno`a~a kojem su pridru`eni registri za unos podataka, a na slici 4 je dat odgovaraju}i VHDL kôd. Funkcija pojedinih ulaznih i izlaznih pinova je slede}a:

• A(7:0) -paralelni ulaz za bitove operanda "A" • B(7:0) -paralelni ulaz za bitove operanda "B" • REZ(15:0) -paralelni izlaz za bitove rezultata mno`enja • R -ulaz "RESET" funkcije • clk -signal taktne pobude • nula -ulaz logi~ke nule

Na dijagramu se nalaze tri entiteta: "bit_serijski", "SHIFTreg" i "SHIFTreg_B". Entitet "bit_serijski" predstavlja kolo bit-serijskog SSP mno`a~a, "SHIFTreg" predstavlja pomera~ki registar za upis operanda "A" i "SHIFTreg_B" predstavlja pomera~ki registar za upis operanda "B". Pomera~ki registri su kori{}eni da bi se obezbedilo uno{enje operanada nad kojima je potrebno izvr{iti mno`enje. Struktura Milerovog mno`a~a zahteva serijski unos operanada sa ubacivanjem nula izmedju svakog bita izvornog operanda, kao {to je prikazano u Tabeli 1.

U strukturu sa slike 3 se unose 8-bitni operandi. Rezultat je du`ine 16 bitova. Unos operanada i generisanje rezultata se obavlja paralelno.

Page 8: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

7

B(7:0) serijski_izlaz

clocknula

par_ser_in

U1

shiftreg_b

A(7:0)serijski_izlaz

clocknula

par_ser_in

U2

shiftreg

A

pom(15:0)

B

Rclknula

U3

bit_serijski

B(7:0) A(7:0)

R

nulaclk

REZ(15:0)

Slika 3: [ema bit-serijskog mno`a~a sa registrima za upis library IEEE; use IEEE.std_logic_1164.all; entity KOLO is port( R : in STD_LOGIC; clk : in STD_LOGIC; nula : in STD_LOGIC := '0'; A : in STD_LOGIC_VECTOR(7 downto 0); B : in STD_LOGIC_VECTOR(7 downto 0); REZ : out STD_LOGIC_VECTOR(15 downto 0) ); end KOLO; architecture KOLO of KOLO is ---- Component declarations ----- component bit_serijski port ( A : in STD_LOGIC; B : in STD_LOGIC; R : in STD_LOGIC; clk : in STD_LOGIC; nula : in STD_LOGIC; pom : out STD_LOGIC_VECTOR(15 downto 0) ); end component; component shiftreg port ( A : in STD_LOGIC_VECTOR(7 downto 0); clock : in STD_LOGIC; nula : in STD_LOGIC; par_ser_in : in STD_LOGIC; serijski_izlaz : out STD_LOGIC ); end component; component shiftreg_b port ( B : in STD_LOGIC_VECTOR(7 downto 0); clock : in STD_LOGIC; nula : in STD_LOGIC; par_ser_in : in STD_LOGIC; serijski_izlaz : out STD_LOGIC ); end component; ---- Signal declarations used on the diagram ---- signal NET58 : STD_LOGIC; signal NET62 : STD_LOGIC;

Page 9: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

8

begin ---- Component instantiations ---- U1 : shiftreg_b port map( B => B, clock => clk, nula => nula, par_ser_in => R, serijski_izlaz => NET58 ); U2 : shiftreg port map( A => A, clock => clk, nula => nula, par_ser_in => R, serijski_izlaz => NET62 ); U3 : bit_serijski port map( A => NET62, B => NET58, R => R, clk => clk, nula => nula, pom => REZ ); end KOLO; Slika 4: VHDL kôd bit-serijskog mno`a~a sa registrima za upis

3.2. Struktura bit-serijskog SSP mno`a~a Na slici 5 je prikazana struktura bit-serijskog SSP mno`a~a. Zbog velikog broja medju veza kao i velikog obima kola koga karakteriše visoko regularna struktura, VHDL kôd nije dat iz razloga što bi se odredjene sekvence više puta ponavljale. Strukturu mno`a~a ~ini 16 bafera i 16 }elija Milerovog mno`a~a. Deo slike je zbog preglednosti i istovetnog rada }elija izostavljen i zamenjen isprekidanim linijama, a raspored i medjusobna veza elementa su identi~ni u celom kolu. Funkcija ulazno-izlaznih pinova je slede}a:

• A -serijski ulaz za bitove prvog operanda • B -serijski ulaz za bitove drugog operanda • R -ulaz "RESET" funkcije (dovodi se jednobitna informacija) • clk -signal taktne pobude • nula -ulaz logi~ke nule • pom -paralelni izlaz za bitove rezultata mno`enja

Page 10: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

9

Slika 5: Struktura bit-serijskog mno`a~a

3.3. Struktura }elije bit-serijskog SSP mno`a~a Na slici 6 je predstavljena struktura }elije bit-serijskog SSP mno`a~a, a na slici 7 je dat odgovaraju}i VHDL kôd. Funkcija ulazno-izlaznih pinova je slede}a:

• ain -ulaz za bitove operanda "a" • aout -izlaz za bitove operanda "a" iz prethodnog takta • bin -ulaz za bitove operanda "b" • bout -izlaz za bitove operanda "b" iz prethodnog takta • cin -ulaz za bitove prenosa iz prethodne }elije • cout -izlaz za bitove prenosa iz prethodnog takta • izlaz -izlaz za bitove rezultata (izlaz = izlaz + (ain x bin) + cin) • clk -signal taktne pobude • R -ulaz za "RESET" funkciju

R aout ain bout bin cout cin izlaz clk

U1

celija R aout ain bout bin

cout cin izlaz clk

U2

celija R

aout ainboutbin

cout cinizlazclk

U3

celija

in1 out1

U17 buf in1 out1

U18 buf in1 out1

U19buf

pom(15:0)

pom(15) pom(14) pom(13)

clk R

B R

aout ainboutbin

cout cinizlazclk

U14

celija

R aout ain bout bin cout cin izlaz clk

U15

celija R aout ain

boutbin cout cinizlaz clk

U16

celija

in1out1

U30buf in1out1

U31 buf in1 out1

U32 buf

pom(0) pom(1) pom(2)

Anula

pom(15:0)

Page 11: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

10

Slika 6: Struktura }elije bit-serijskog SSP mno`a~a library IEEE; use IEEE.std_logic_1164.all; entity celija is port( R : in STD_LOGIC; ain : in STD_LOGIC; bin : in STD_LOGIC; cin : in STD_LOGIC; clk : in STD_LOGIC; aout : out STD_LOGIC; bout : out STD_LOGIC; cout : out STD_LOGIC; izlaz : out STD_LOGIC ); end celija; architecture celija of celija is ---- Component declarations ----- component buf port ( in1 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; component flip_flop port ( D : in STD_LOGIC; R : in STD_LOGIC; clk : in STD_LOGIC; Q : out STD_LOGIC ); end component; component i_kolo port ( in1 : in STD_LOGIC; in2 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; component potpun_sabirac port ( c : in STD_LOGIC; x : in STD_LOGIC; y : in STD_LOGIC;

D Q

Rclk

U1

flip_flop

in1out1

in2

U2

i_kolo

cc0

xz

y

U3

potpun_sabirac

DQ

Rclk

U4

flip_flop

D Q

Rclk

U5

flip_flopDQ

Rclk

U6

flip_flop

Rclk

bin

cin

ainaout

cout

bout

in1out1

U7

buf

in1 out1

U8

buf

izlaz in1out1

U9

buf

Page 12: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

11

c0 : out STD_LOGIC; z : out STD_LOGIC ); end component; ---- Signal declarations used on the diagram ---- signal NET135 : STD_LOGIC; signal NET152 : STD_LOGIC; signal NET158 : STD_LOGIC; signal NET503 : STD_LOGIC; signal NET79 : STD_LOGIC; signal NET95 : STD_LOGIC; begin ---- Component instantiations ---- U1 : flip_flop port map( D => bin, Q => NET503, R => R, clk => clk ); U2 : i_kolo port map( in1 => NET158, in2 => NET503, out1 => NET79 ); U3 : potpun_sabirac port map( c => NET135, c0 => cout, x => NET95, y => NET79, z => NET152 ); U4 : flip_flop port map( D => cin, Q => NET95, R => R, clk => clk ); U5 : flip_flop port map( D => NET152, Q => NET135, R => R, clk => clk ); U6 : flip_flop port map( D => ain, Q => NET158, R => R, clk => clk ); U7 : buf port map( in1 => NET158, out1 => aout ); U8 : buf port map( in1 => NET503, out1 => bout );

Page 13: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

12

U9 : buf port map( in1 => NET152, out1 => izlaz ); end celija;

Slika 7: VHDL kôd }elije bit-serijskog SSP mno`a~a 3.4. Struktura potpunog sabira~a Na slici 8 je predstavljena struktura potpunog sabira~a, a na slici 9 je dat odgovaraju}i VHDL kôd. Funkcija ulazno-izlaznih pinova je slede}a:

• x -ulaz za bitove prvog operanda • y -ulaz za bitove drugog operanda • z -izlaz za bitove rezultata • c -ulaz za bitove prenosa iz prethodnog blokka • c0 -izlaz za bitove prenosa iz posmatranog bloka

Realizovani potpuni sabira~ je projektovan u odnosu na Tabelu 2, koja predstavlja tablicu istinitosti po kojoj treba da funkcioni{e zahtevani potpuni sabira~.

x y c c0 z0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1

Tabela 2: Tablica istinitosti potpunog sabira~a

Page 14: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

13

Slika 8: Struktura potpunog sabira~a library IEEE; use IEEE.std_logic_1164.all; entity potpun_sabirac is port( c : in STD_LOGIC; x : in STD_LOGIC; y : in STD_LOGIC; c0 : out STD_LOGIC; z : out STD_LOGIC ); end potpun_sabirac; architecture potpun_sabirac of potpun_sabirac is ---- Component declarations ----- component i3_kolo port ( in1 : in STD_LOGIC; in2 : in STD_LOGIC; in3 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; component ili3_kolo port ( in1 : in STD_LOGIC; in2 : in STD_LOGIC;

in1out1in2

in3

U1

ili3_kolo

in1out1

in2

U2

i_kolo

in1out1

in2

U3

i_kolo

in1out1

in2

U4

i_kolo

carry2

carry1

carry3

in1out1in2

in3

U5

i3_kolo

in1out1in2

in3

U6

i3_kolo

in1out1in2

in3

U7

i3_kolo

in1out1in2

in3

U8

i3_kolo

in1

out1in2in3in4

U9

ili4_kolo

sum1

sum2

sum3

sum4in1

out1

U10

inv

in1out1

U11

inv

in1out1

U12

inv

c1x1 y1

xyc

c0

z

Page 15: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

14

in3 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; component ili4_kolo port ( in1 : in STD_LOGIC; in2 : in STD_LOGIC; in3 : in STD_LOGIC; in4 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; component inv port ( in1 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; component i_kolo port ( in1 : in STD_LOGIC; in2 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; ---- Signal declarations used on the diagram ---- signal c1 : STD_LOGIC; signal carry1 : STD_LOGIC; signal carry2 : STD_LOGIC; signal carry3 : STD_LOGIC; signal sum1 : STD_LOGIC; signal sum2 : STD_LOGIC; signal sum3 : STD_LOGIC; signal sum4 : STD_LOGIC; signal x1 : STD_LOGIC; signal y1 : STD_LOGIC; begin ---- Component instantiations ---- U1 : ili3_kolo port map( in1 => carry1, in2 => carry2, in3 => carry3, out1 => c0 ); U10 : inv port map( in1 => y, out1 => y1 ); U11 : inv port map( in1 => c, out1 => c1 ); U12 : inv port map( in1 => x, out1 => x1 ); U2 : i_kolo port map( in1 => x, in2 => y, out1 => carry1 ); U3 : i_kolo

Page 16: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

15

port map( in1 => c, in2 => y, out1 => carry2 ); U4 : i_kolo port map( in1 => x, in2 => c, out1 => carry3 ); U5 : i3_kolo port map( in1 => c, in2 => y, in3 => x, out1 => sum1 ); U6 : i3_kolo port map( in1 => c1, in2 => y1, in3 => x, out1 => sum2 ); U7 : i3_kolo port map( in1 => y1, in2 => x1, in3 => c, out1 => sum3 ); U8 : i3_kolo port map( in1 => x1, in2 => c1, in3 => y, out1 => sum4 ); U9 : ili4_kolo port map( in1 => sum1, in2 => sum2, in3 => sum3, in4 => sum4, out1 => z ); end potpun_sabirac; Slika 9: VHDL kôd potpunog sabira~a 3.5. Struktura pomera~kih registara Na slici 10 je data struktura pomera~kog registara za upis operanda "A". Zbog velikog broja medju veza kao i velikog obima kola koga karakteriše visoko regularna struktura, VHDL kôd nije dat iz razloga što bi se odredjene sekvence više puta ponavljale. Deo slike je zbog preglednosti izostavljen i zamenjen isprekidanim linijama, a raspored i medjusobna veza elementa su identi~ni u celokupnom kolu.

Nisu dati struktura i VHDL kôd registra za upis operanda "B" zbog veoma sli~ne strukture i istog principa funkcionisanja. Osnova funkcija uop{tenog pomera~kog registra je pomeranje upisanog sadr`aja u jednu, odnosno drugu stranu. U konkretnom rešenju, pomera~ki registri su bili neophodni. Registri su

Page 17: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

16

implementirani da bi se ostvario paralelni upis operanada, a i da se obezbedi ubacivanje bitova "0" izmedju svakog bita operanada "A" i "B" na osnovu Tabele 1. Bitovi modifikovanih operanada, unose se u bit-serijski mno`a~ serijski u toku naredna 24 taktna intervala. Na osnovu Tabele 1, za operaciju mno`enja i generisanje rezultata potrebno je 24 taktnih intervala. Funkcija ulazno-izlaznih pinova je slede}a:

• A(7:0) -paralelni ulaz za bitove operanda "A" • nula -ulaz za bitove logi~ke nule • par_ser_in -izbor re`ima rada ("1"-paralelni upis; "0"-pomeranje) • serijski_izlaz -serijski izlaz za bitove operanda "A" (po Tabeli 1) • clock -signal taktne pobude

Slika 10: Struktura pomera~kog registra za operand "A" 3.6. Struktura multipleksera Mulltiplekser se koristi kao selektor bitova za serijski mno`a~. Kada je selektorski ulaz na postavljen na logi~ku "0", na izlazu multipleksera se generi{e bit operanda, a kada je selektorski ulaz postavljen na "1" na izlazu multipleksera se generi{e nula. Na slici 11 je prikazana struktura multipleksera, a na slici 12 odgovaraju}i VHDL kôd. Funkcija ulazno-izlaznih pinova je slede}a:

D Q

R clk

U1

flip_flop

paralelno_serijski

Out1peralelniIN

serijskiIN

U4

mux

paralelno_serijski Out1 peralelniIN

serijskiIN

U7

mux

A(7:0)

nula

clock

par_ser_in

A(0)

D Q R clk

U26

flip_flop

D Q

Rclk

U27

flip_flop

paralelno_serijski

Out1peralelniINserijskiIN

U29

mux

paralelno_serijski

Out1peralelniINserijskiIN

U30

mux

D Q

Rclk

U32

flip_flop

serijski_izlaz

A(7)

D Q R clk

U33

flip_flop

paralelno_serijski Out1 peralelniIN

serijskiIN

U34

mux

Page 18: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

17

• paralelno_serijski -izbor ulaza (za "0" izlaz dobija vrednost bita na "serijskiIN", za "1" izlaz dobija vrednost bita na "paralelniIN")

• serijskiIN -ulaz multipleksera • paralelniIN -ulaz multipleksera • Out1 -izlaz multipleksera

Osnovna funkcija multipleksera je funkcija preklopnika. Naime, u konkretnom slu~aju, dovodjenjem "0" ili "1" na "paralelno_serijski" vr{imo izbor jednog od dva ulaza. Ako je dovedena "0" izabran je "serijskiIN", {to zna~i da }e trenutno stanje ulaza "serijskiIN" biti preneto na izlaz, tj. na "Out1". U slu~aju da je vrednost "1" bi}e izabran "paralelniIN", {to zna~i da }e trenutno stanje ulaza "paralelniIN" biti preneto na izlaz, tj. na "Out1".

Slika 11: Struktura multipleksera library IEEE; use IEEE.std_logic_1164.all; entity mux is port( paralelno_serijski : in STD_LOGIC; peralelniIN : in STD_LOGIC; serijskiIN : in STD_LOGIC; Out1 : out STD_LOGIC ); end mux; architecture mux of mux is ---- Component declarations ----- component ili_kolo port ( in1 : in STD_LOGIC; in2 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; component inv port ( in1 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; component i_kolo port ( in1 : in STD_LOGIC;

in1out1

in2

U1

i_kolo

in1out1

in2

U2

i_kolo

out1

U3

inv

paralelno_serijski

serijskiIN

peralelniIN

in1 out

1 in2

U4

ili_kolo Out1

in1

Page 19: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

18

in2 : in STD_LOGIC; out1 : out STD_LOGIC ); end component; ---- Signal declarations used on the diagram ---- signal NET129 : STD_LOGIC; signal NET137 : STD_LOGIC; signal NET66 : STD_LOGIC; begin ---- Component instantiations ---- U1 : i_kolo port map( in1 => NET66, in2 => serijskiIN, out1 => NET129 ); U2 : i_kolo port map( in1 => paralelno_serijski, in2 => peralelniIN, out1 => NET137 ); U3 : inv port map( in1 => paralelno_serijski, out1 => NET66 ); U4 : ili_kolo port map( in1 => NET129, in2 => NET137, out1 => Out1 ); end mux;

Slika 12: VHDL kôd multipleksera 3.7. Struktura D flip-flopa Za implementaciju memorijskih elemenata u gradivnim blokovima potpuni sabira~ i pomera~ki registar kori{}en je D flip-flop. Na slici 13 je dat odgovaraju}i VHDL kôd D flip-flopa. library IEEE; --biblioteka koju koristimo use IEEE.STD_LOGIC_1164.all; entity flip_flop is --funkcija koja realizuje D flip-flop port ( D : in std_logic; --D ulaz koji se upisuje u flip-flop na uzlaznu ivicu clk-a clk : in std_logic; --ulaz za clk Q : out std_logic; --izlaz iz flip-flopa na kome je vrednost D u trajanju od jednog clk intervala R : in std_logic); --ulaz za asinhroni reset kada R ima vrednost '1' end entity flip_flop; architecture flip_flop of flip_flop is --opis funkcije kola begin process (clk) --proces koji je aktivan kada se menja clk begin if R='1' then --ispitujemo da li se vrsi resetovanje ili ne Q<='0'; --resetujemo ff tako sto mu izlaz postavimo na nulu else --ako se ne resetuje: if clk='1' then --obezbedjuje da ff radi na uzlaznu ivicu clk-a Q<=D; --ako je clk na uzlaznoj ivici, upisuje se nova vrednost end if; --ulaznog signala end if; end process; end; Slika 13: VHDL kôd D flip-flopa

Page 20: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

19

3.8. VHDL kodovi za osnovne gradivne blokove Na narednim slikama su dati VHDL kôdovi za slede}e osnovne gradivne blokove: bafer, invertor, "I" logo~ko kolo i "ILI" logi~ko kolo. 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; Slika 14: VHDL kôd bafera 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; Slika 15: VHDL kôd invertora 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; Slika 16: VHDL kôd "I" logi~kog kola library IEEE; --biblioteka koju koristimo use IEEE.STD_LOGIC_1164.all; entity ili_kolo is --kolo vrsi "ili" funkciju sa dva operanda port( in1 :in std_logic ; --prvi operand in2 :in std_logic ; --drugi operand out1 :out std_logic ); --rezultat funkcije "ILI" end ili_kolo; architecture ili_kolo of ili_kolo is --opis funkcije kola begin out1 <= in1 or in2 ; --izlaz dobija vrednost "ILI" funkcije od ulaznih operanada end ili_kolo; Slika 17: VHDL kôd "ILI" logi~kog kola

Page 21: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

20

4. SINTEZA I IMPLEMENTACIJA KOLA Bit-serijski mno`a~ za neozna~ene brojeve opisan u Sekciji 3.1. je sintetizovan kori{}enjem programskog paketa ISE 4.1i kompanije XILINX. Paket ISE 4.1i se koristi za razvoj aplikacija baziranih na XILINX-ovim kolima iz familije CPLD ili FPGA. Za implementaciju bit-serijskog SSP mno`a~a za neozna~ene brojeve iskorišćeno je FPGA kolo iz serije "SPARTAN2" koje ima oznaku "2S15CS144", a napaja se naponom od 2.5V. Listing i rezultati koji su prikazani u generisanom izve{taju odnose se na implementaciju kola na konkretnom FPGA ~ipu "2S15CS144". Design Information ------------------ Command Line : C:\Xilinx\bin\nt\map.exe -p 2S15CS144-5 -o map.ncd bit_serijski.ngd bit_serijski.pcf Target Device : x2s15 Target Package : cs144 Target Speed : -5 Mapper Version : spartan2 -- $Revision: 1.58 $ Mapped Date : Wed Sep 21 20:14:13 2005 Design Summary -------------- Number of errors: 0 Number of warnings: 0 Number of Slices: 41 out of 192 21% Number of Slices containing unrelated logic: 0 out of 41 0% Number of Slice Latches: 64 out of 384 16% Number of 4 input LUTs: 81 out of 384 21% Number of bonded IOBs: 21 out of 86 24% Number of GCLKs: 1 out of 4 25% Total equivalent gate count for design: 806 Additional JTAG gate count for IOBs: 1,008 Na osnovu dobijenih rezultata mozemo da zakljucimo sledece:

a) implementirano kolo bit-serijskog mno`a~a za neozna~ene brojeve zauzima 806 ekvivalentnih gejtova, b) dodatno, neophodno je jo{ 1008 gejtova koji se koriste za realizaciju JTAG logike kojom se vrši testiranje i programiranje FPGA kola, c) maksimalna radna frekvencija kola mno`a~a za neozna~ene brojeve je 161,316 MHz.

Na slikama 18. i 19. prikazane su unutrašnje strukture koje se odnose na zauzetost makro }elija i medjusobne povezanosti makro }elija u okviru FPGA ~ipa "2S15CS144". Slike su preuzete iz Xilinx Floorplanner Editor-a koji je zadužen u okviru paketa ISE za sam fizički razmeštaj ćelija. Slika 18. prikazuje razmeštaj ćelija gde možemo videti i koji pinovi kola su iskorišćeni. Iako se zapa`a da izvodi kola nisu grupisani, to je u~injeno da bi se postiglo pribli`no isto kašnjenje veza do svih pinova. Izgled povezanosti samih veza prikazan je na slici 19.

Page 22: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

21

Slika 18: Šema zauzetosti ćelija FPGA kola

Slika 19: Šema veza ćelija FPGA kola

Page 23: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

22

Na slici 20. je dat prikaz kola, koji je generisan u Xilinx FPGA Editor-u.

Slika 20: Prikaz kola u "Xilinx FPGA Editor-u" Na slici 21. je dat prikaz gotove komponente, koji je generisan u programu Xilinx Chip Viewer. Slika 21: Prikaz gotovog ~ipa u "Xilinx Chip Viewer-u"

Page 24: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

23

Na kraju izvršena je i analiza potrošnje kola u delu paketa pod imenom XPower, je pokazao totalnu potrošnju od 12,5mW. Pri tome, pri temperaturi ambijenta od 25 °C, temperatura kućišta je 25,425 °C. Na slici 22. prikazan je i sam fizički raspored pinova na FPGA kolu. Slika 22: Raspored pinova FPGA kola Ovim je završen ceo proces sinteze i implementacije kola. Program generiše i programski fajl kojim je potrebno isprogramirati FPGA kolo da bi se dobila željena funkcija.

Page 25: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

24

5. TESTIRANJE RADA KOLA 5.1. Testiranje rada potpunoga sabira~a

Potpuni sabira~ obavlja operaciju sabiranja definisanou Tabelom 2. Na ulaze x, y i c se dovode bitovi operanda "x", "y" i bit prenosa iz prethodnog bloka "c", respektivno. Na izlazu se dobijaju vrednosti rezultata sabiranja "z" i prenosa "c0". Na slici 23 je dat talasni dijagram koji se odnosi na testiranje rada sabira~a za slede}e vrednosti ulaznih operanada:

takt 1 takt 2 takt 3 takt 4 X 1 0 1 1 Y 1 0 1 1 C 1 1 1 0 C0 1 0 1 1 Z 1 1 1 0

Slika 23: Talasni dijagram rada potpunog sabira~a 5.2. Testiranje rada multipleksera

Multiplekser ima funkciju preklopnika. Na slici 24 je dat talasni dijagram testiranja rada multipleksera i to za slede}e vrednosti ulaza, izlaza i vrednosti selektorskog signala:

takt 1 takt 2 takt 3 takt 4

paralelno_serijski 0 1 0 1 paralelniIN 1 1 0 0 serijskiIN 0 0 1 1

Out1 0 1 1 0 Slika 24: Talasni dijagram rada multipleksera

takt 1 takt 3 takt 4takt 2

takt 1 takt 4takt 3 takt 2

Page 26: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

25

5.3. Testiranje rada pomera~kog registra Registri se koriste za unos operanda "A" i "B". Osim osnovne funkcije pomeranja unetog sadr`aja, imaju i funkciju dodavanja bitova "0" izmedju bitova operanada, na na~in koji je definisan tabelom 1. Ulaz "par_ser_in" slu`i za izbor re`ima: "0"-vr{i se pomeranje upisanog sadr`aja, "1"-vr{i se paralelan upis operanda koji treba pomerati. Vrednost ulaza "par_ser_in" je, u prvom taktu "1" (upisuje se "A"), i nakon prvog takta se menja u "0" (vr{i se pomeranje). Kao {to se sa talasnog dijagrama vidi, upisan je broj "A"=11110000. U prvom tatku se ova vrednost upisuje u registar. Na dalje se izmedju svakog bita operanda "A" upisuje vrednost "0", za vreme koje se vr{i upisivanje bitova operanda "B" (komentar "upis b" na talasnom dijagramu na slici 25.).

Slika 25: Talasni dijagram rada pomera~kog registra 5.4. Testiranje rada }elije Milerovog mno`a~a ]elija Milerovog mno`a~a je projektovana tako da na izlazu uvek dobija zbir vrednosti izlaza iz prethodnog takta, proizvoda "ain" i "bin", i vrednosti "cin". U slu~aju da je dobije rezlutat veli~ine dva bita, "cout" dobija vrednost bita ve}e te`ine dok "izlaz" dobija vrednost bita manje te`ine.

Slika 26: Talasni dijagram rada }elije Milerovog broja~a U prvom taktu izvr{eno je resetovanje }elije, tako da na izlazima ne dolazi do promene stanja. U drugom taktu na ulaze "ain", "bin" i "cin" dovedene su sve "1", izlazi "aout" i "bout" dobijaju takodje vrednosti "1". Rezultat izvr{ene operacije treba da

takt 1 takt 3takt 2

Page 27: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

26

bude "10", pa tako "cout" dobija vrednost "1", a "izlaz" vrednost "0", {to je i trebalo dobiti. U tre}em taktu promenljiva "ain" menja vrednost u "0". Sada rezlutat treba da bude jednak "1", pa tako izlaz "cout" dobija vrednost "0" a "izlaz" dobija vrednost "1", {to je i trebalo dobiti (slika 26.). 5.5. Testiranje rada mno`a~a Kolo bit-serijskog mno`a~a opisano u ovom radu se koristi za mno`enje neozna~enih osmobitnih brojeva. Proizvod je du`ine 16 bitova. Operandi se unose paralelno. U toku 24 takta uz pomo} pomera~kih registara se vr{i ubacivanje nula izmedju bitova operanada na osnovu sadr`aja definisanog Tabelom 1. Bitovi u bit-serijski mno`a~ se unose serijski. Nakon 24 takta dobija se rezultat mno`enja. Na slici 27 je dat talasni dijagram koji se odnosi na testiranje rada mno`a~a i va`i za slede}e vrednosti ulaznih operanada:

• "A(7:0)"=10000000 (dekadno 128) • "B(7:0)"=00000010 (dekadno 2) • dobijeni rezultat je "REZ(15:0)"=100 (heksadecimalno) , (256 dekadno)

Slika 27: Talasni dijagram rada mno`a~a Na slici 28 je dat talasni dijagram testiranja rada mno`a~a koji se odnosi na slede}e vrednosti ulaznih operanada:

• "A(7:0)"=10101010 (dekadno 170) • "B(7:0)"=11110000 (dekadno 240) • dobijeni rezultat je "REZ(15:0)"=9F60 (heksadecimalno) , (40800 dekadno)

Slika 28: Talasni dijagram rada mno`a~a

Page 28: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

27

6. ZADATAK Proveriti ispravnost rada bit-serijskog SSP mno`a~a za neozna~ene brojeve. Mno`a~ je projektovan tako da mo`e izvr{avati operaciju mno`enja nad dva neozna~ena (bez znaka) operanda du`ine 8 bitova. Dobijeni rezultat je du`ine 16 bitova. Operandi se unose u binarnom obliku. Postupak rada uklju~uje slede}e korake: 1. Pokrenuti program "Active-HDL 5.1" ~ija se ikona nalazi na Desktop-u 2. Otvoriti dizajn "bit_serijski" 3. U okviru "Design Browser-a" selektovati stavku "kolo (kolo)" (segment 1. na slici 29.) 4. Otvoriti novi talasni dijagram klikom na ikonu "New Waveform" u toolbar- u (segment 2. na slici 29.) Slika 29: Otvaranje dizajna u Active-HDL-u 5. Nakon otvaranja prozora "Waveform-a" desnim klikom na prazan prozor otvoriti padaju}i meni i selektovati stavku "Add Signals" (segment 3. na slici 30.)

1.

2.

Page 29: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

28

Slika 30: Prozor "Waveform Editor-a"

6. U okviru prozora "Add Signals" dodati na talasni dijagram slede}e signale: A, B, REZ, R, clk, nula. Postpak je slede}i: kliknuti na `eljeni signal (npr. A) (segment 4. na slici 31.), i zatim na dugme "Add" (segment 5. na slici 31.). Postupak je identi~an za sve signale. Nakon dodavanja `eljenih signala zatvoriti prozor klikom na dugme "Close" (segment 6. na slici 31.).

Slika 31: Prozor "Add Signals" za dodavanje signala u talasni dijagram

3.

4. 5. 6.

Page 30: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

29

7. Nakon dodavanja signala potrebno je dodeliti vrednosti ulazima. Duplim klikom u polju svake promenljive u koloni "Stimulator" pristupiti dodeljivanju vrednosti ulaza (segmnt 7. na slici 32.). Postupak je isti za sve ulaze. NAPOMENA: Polje "REZ" predstavlja izlaz, na kome se dobija rezultat mno`enja, {to zna~i da mu ne treba dodeljivati nikakvu vrednost. Slika 32: Dodeljivanje vrednosti ulazima 8. Otvara se prozor "Stimulators" u okviru koga treba definisati ulaze. Ulazi "A" i "B" predstavljaju paralelne ulaze za bitove operanada koji se mno`e (maksimalno 8-bitni). "R" predstalja ulaz za RESET funkciju, "clk" ulaz taktne pobude i "nula" ulaz logi~ke nule. 9. Definisanje vrednosti ulaza vr{i se na slede}i na~in:

• vrednosti operanada "A" i "B" su prizvoljne i unose se u okviru prozora "Stimulators" ->"Value"->u polju "Force value" (segment 8. na slici 29. gde je vrednost une{enog operanda "A" jednaka "11111111". Nakon definisanja potrebno je potvrditi unos sa "Apply" (segment 9. na slici 33.). Identi~na procedura je prilikom unosa operanda "B", s tim {to se, naravno, u okviru "Waveform editor"-a, duplim klikom selektuje ulaz "B".

Slika 33: Prozor "Stimulators" za dodelu vrednosti ulazima

7.

8.

9.

Page 31: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

30

• vrednost funkcije "R" postavljamo na "1", tj. resetujemo kolo, na identi~an na~in kao {to je u~injeno sa dodelom vrednosti operandima "A" i "B".

• vrednost funkcije "nula" postavljamo na "0", istim postupkom kao funkciji "R".

• vrednost signala taktne pobude "clk" defini{e se na slede}i na~in: "Stimulators"->"Clock"->"Apply" (segment 10. na slici 34.).

Slika 34: Prozor "Stimulators" za definisanje signala taktne pobude 10. Pustiti kolo u rad za vreme jednog takta klikom na ikonu "Run For" u "toolbar"-u (segment 11. na slici 35.).

Slika 35: Prikaz pu{tanja u rad simulacije

11. Nakon jednog takta promeniti vrednost ulaza "R" u "0" (postupkom opisanim u ta~ki 9.).

12. Da bi na izlazu iz mno`a~a dobili ta~an rezultat potrebno je prema tabeli 1. da prodje 24 taktova da bi se sra~unali svi parcijalni proizvodi. Ovo zna~i da treba na ikonu "Run For" (slika 35., segment 11.) kliknuti 24 puta zaredom. Nakon 24 taktova dobi}emo tra`eni rezultat.

10.

11.

Page 32: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

31

13. Da bi mogao da se vidi ceo talasni dijagram klikom na ikonu "Zoom To Fit" smestiti ceo dijagram u vidno polje (segment 12. na slici 36.), i o~itati rezultat (segment 13. na slici 36.). U konkretnom primeru za operande smo imali "A"=11111111 i "B"=10, a tra`eni rezultat "REZ"=111111110 (heksadecimalno 1FE). Slika 36: Sme{tanje talasnog dijagrama u vidno polje i o~itavanje rezultata 14. Od{tampati dobijeni vremenski diajagram.

12.

13.

Page 33: Bit-serijski mnozac za neoznacene brojevees.elfak.ni.ac.rs/Papers/Bit-serijski mnozac za... · 2013. 12. 6. · UNIVERZITET U NI[U ELEKTRONSKI FAKLUTET Predmet: Mikroprocesorski sistemi

32

6.1. Rezultati GRUPA 1: operand "A" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

operand "B" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

rezultat "REZ" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

GRUPA 2: operand "A" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

operand "B" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

rezultat "REZ" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

GRUPA 3: operand "A" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

operand "B" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

rezultat "REZ" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

GRUPA 4: operand "A" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

operand "B" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik

rezultat "REZ" ______________ ______________ ______________ binarni oblik heksadecimalni oblik decimalni oblik