BIT-SERIJSKI ZA NEOZNA^ENE BROJEVE

Slides:



Advertisements
Similar presentations
28/10/2007DSD,USIT,GGSIPU1 Latch & Register Inference.
Advertisements

1 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Bistabilna kola i osnovne sekvencijalne mreže
FPGAs and VHDL Lecture L13.1 Sections 13.1 – 13.3.
Random-Access Memory Distributed and Block RAM Discussion D10.3 Example 41.
ENG2410 Digital Design LAB #6 LAB #6 Sequential Logic Design (Flip Flops)
George Mason University ECE 448 FPGA and ASIC Design with VHDL FPGA Design Flow ECE 448 Lecture 7.
Combinational logic circuit
MIKROPROCESORSKI SISTEMI
Programi zasnovani na prozorima
PRIJENOS PODATAKA.
Petlje WHILE – WEND.
CASE naredba višestrukog grananja
PONAVLJANJE CheckBox Koristi se za rešavanje zadataka gde je potrebno omogućiti uključivanje ili isključivanje jedne ili više opcija. Važna svojstva: –Checked.
Struktura i princip rada računara
Implementacija direktne forme FIR filtra u VHDL-u
ISE Tutorijal III deo.
Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)
Arhitektura i organizacija računara
OPIS KONAČNIH AUTOMATA POMOĆU VHDL-a
JEDNOSTAVNI 16-BITNI PROCESOR SA
Programiranje - Blokovi naredbi i logički tipovi –
OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU
CheckBox RadioButton RadioGroup
Naredbe ciklusa.
OPERACIONI POJAČAVAČI SA DIFERENCIJALNIM ULAZOM I IZLAZOM
Projekat strukturnog kabliranja.
Microsoft Office 2007 MS Office je programski paket koji sadrži više programa: MS Word – program za obradu teksta MS Excel – program za izradu tabela sa.
Projektovanje procesorskih resursa
REPEAT…UNTIL Naredbe ciklusa.
Internet mreže, FTN - KZI
PROGRAMSKE PETLJE Milenković Gabrijela.
MULTIPLY – ACCUMULATE CIRCUITS (MAC)
Studenti: Ristić Goran br.ind Filipović Darko br.ind 9551
Explore-plots Katarina Jeremić 143/2011 Jovana Vulović 33/2011
ISE Tutorial.
ISE Tutorijal II deo.
KREIRANJE OBJEKATA.
PARALELNI CRC Ivana Nikolić Milan Miladinović.
Konkurentne naredbe dodele
Reference ćelije i opsega
LABORATORIJSKA VEŽBA VEŽBA 4
Podešavanje osobina stranica
Standardne kombinacione mreže
PROGRAMABILNI PERIFERIJSKI INTERFEJS INTEL 8255
Vežba 1. Formatiranje teksta korišćenjem stilskih šablona
Struktura MAC adrese i Ethernet okvira
Naredba Case Višestruko grananje.
MIKROPROCESORSKI SISTEMI
Organizacija sistema zasnovana na
32-bitni mikrokontroleri i primena
M-datoteke.
Element form Milena Kostadinović.
MessageBox.
Konkurentne naredbe dodele
VEKTORSKI UPRAVLJAN ASINHRONI MOTOR
32-bitni mikrokontroleri i primena - MS1BMP
MATEMATIČKI FAKULTET, UNIVERZITET U BEOGRADU
Lazarus okruženje TIPOVI UNIT-a
Osnovni simboli jezika Pascal
Do While ... Loop struktura
5. Baze podataka Postavke MS Accessa.
Skup instrukcija procesora
Fakultet elektrotehnike i računarstva
ARHITEKTURA NA RAZINI LOGIČKIH SKLOPOVA
Programski jezik Python
Founded in Silicon Valley in 1984
LimeSurvey Uvjetni prikaz pitanja Internetska istraživanja
Ponavljanje Pisana provjera
Vježbenica 2: struktura grananja – 2.dio
Presentation transcript:

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

DOMINANTNE OPERACIJE I CILJ PROJEKTANTA Dominantne operacije u DSP-u su sabiranje i mno`enje, odnosno mno`enje sa akumulacijom. Cilj je da se projektuje mno`a~ koji: a. zauzima malu povr{inu na silicijumu b. karakteri{e se velikom brzinom rada c. odlikuje se mikro potro{njom

PODELA MNO@A^A Proto~ne mno`a~e mo`emo prema formatu prenosa ulazno-izlaznih podataka podeliti na bit-paralelne, cifarsko-serijske i bit-serijske. Bit-serijski mno`a~ zadovoljava zahteve male povr{ine na ~ipu i mikro potro{nje.

PODELA MNO@A^A - Karakteristike Velika povr{ina ~ipa Neznatno ka{njenje Velika disipacija snage Umerena povr{ina ~ipa Umereno ka{njenje Umerena disipacija snage Mala povr{ina ~ipa Veliko ka{njenje Veoma mala disipacija snage

PREDLO@ENO RE[ENJE Bit-serijski mno`a~ sa paralelnim izlazom tipa SSP (Serial_in-Serial_op-Paralell_out). Koncept stati~kog rezultata omogu}ava direktnu implementaciju operacije mno`enja sa akumulacijom. Ova osobina je iskori{}ena za formiranje polja za mno`enje matrica zasnovanog na bit-serijskom pristupu (Milerov mno`a~).

Milerov mno`a~ Milerov mno`a~ predstavlja linerano polje dve proste }elije. Operand "b" se unosi sa leve strane polja po~ev od bita najmanje te`ine. Operand "a" se unosi sa desne strane polja po~ev od bita najve}e te`ine. Svaka }elija u polju izra~unava po jedan bit proizvoda p. Prva }elija sleva izra~unava bit najve}e te`ine. Prva }elija sdesna izra~unava bit najmanje te`ine.

REALIZACIJA U VHDL-u Rad kola bit-serijskog mno`a~a je opisan u programskom jeziku Active-HDL 5.1. Sinteza i implementacija opisa izvr{ena je u programskom paketu ISE kompanije "XILINX". 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"

REALIZACIJA U VHDL-u Struktura mno`a~a sa registrima Funkcija ulazno-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 R -ulaz "RESET" funkcije clk -signal taktne pobude nula -ulaz logi~ke nule

REALIZACIJA U VHDL-u Struktura mno`a~a sa registrima – nastavak 1 “bit_serijski" predstavlja kolo bit-serijskog SSP mno`a~a. "SHIFTreg" predstavlja pomera~ki registar za upis operanda "A“. "SHIFTreg_B" predstavlja pomera~ki registar za upis operanda "B". U kolo se unose 8-bitni operandi, a rezultat je du`ine 16 bitova.

REALIZACIJA U VHDL-u Struktura bit-serijskog SSP mno`a~a Mno`a~ je sa~injen od 16 bafera i 16 }elija Milerovog mno`a~a. 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 clk -signal taktne pobude nula -ulaz logi~ke nule pom -paralelni izlaz za bitove rezultata

REALIZACIJA U VHDL-u Prikaz bit-serijskog SSP mno`a~a aout ain bout bin cout cin izlaz clk U1 celija U2 U3 in1 out1 U17 buf U18 U19 pom(15:0) pom(15) pom(14) pom(13) B U14 U15 U16 U30 U31 U32 pom(0) pom(1) pom(2) A nula

REALIZACIJA U VHDL-u Struktura }elije bit-serijskog mno`a~a 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+(ainxbin)+cin) clk -signal taktne pobude R -ulaz za "RESET" funkciju

REALIZACIJA U VHDL-u Prikaz }elije bit-serijskog mno`a~a

REALIZACIJA U VHDL-u Struktura potpunog sabira~a 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 slede}u tablicu istinitosti: x y c c0 z 1

REALIZACIJA U VHDL-u Prikaz potpunog sabira~a

REALIZACIJA U VHDL-u Struktura pomera~kih registara Funkcija pomera~kog registra je pomeranje upisanog sadr`aja u jednu, odnosno drugu stranu. Pomera~ki registri omogu}avaju paralelni upis operanada, i ubacivanje bitova "0" izmedju svakog bita operanada "A" i "B“.

REALIZACIJA U VHDL-u Struktura pomera~kih registara – nastavak 1 Bitovi modifikovanih operanada, paralelno se unose u registre, a iz registara se serijski unose u bit-serijski mno`a~. Operacija mno`enja je kompletna nakon 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“-funkcija pomeranja) serijski_izlaz -serijski izlaz operanda "A" clock -signal taktne pobude

REALIZACIJA U VHDL-u Prikaz pomera~kog registra za unos operanda “A” Q R clk U1 flip_flop paralelno_serijski Out1 peralelniIN serijskiIN U4 mux U7 A(7:0) nula clock par_ser_in A(0) U26 U27 U29 U30 U32 serijski_izlaz A(7) U33 U34

REALIZACIJA U VHDL-u Struktura multipleksera Multiplekser ima ulogu preklopnika. Funkcija ulazno-izlaznih pinova je slede}a: paralelno_serijski -izbor ulaza serijsjkiIN -ulaz multipleksera paralelniIN -ulaz multipleksera Out1 -izlaz multipleksera Dovodjenjem vrednosti "0" ili "1" na "paralelno_serijski" vr{i se izbor jednog od dva ulaza. Ako je dovedena "0" izabran je "serijskiIN“. Trenutno stanje ulaza "serijskiIN" bi}e preneto na “Out1”. Ako je dovedena "1" izabran je "paralelniIN“. Trenutno stanje ulaza "paralelniIN" bi}e preneto na "Out1".

REALIZACIJA U VHDL-u Prikaz multipleksera in1 out1 in2 U1 i_kolo U2 U3 inv paralelno_serijski serijskiIN peralelniIN U4 ili_kolo Out1

REALIZACIJA U VHDL-u Struktura D flip-flopa Flip-flop je osnovno kolo za izgradnju memorijskih elemenata. Uz pomo} D flip-flopa realizovanie su }elije Milerovog mno`a~a i pomera~ki registri. VHDL kôd D flip-flopa je oblika: 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 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 ulaza end if; end if; end process; end;

SINTEZA I IMPLEMENTACIJA KOLA Bit-serijski mno`a~ za neozna~ene brojeve je sintetizovan u programskom paketu ISE 4.1i kompanije XILINX koji se koristi za razvoj aplikacija baziranih na CPLD i FPGA kolima. Za implementaciju mno`a~a iskorišćeno je FPGA kolo iz XILINX-ove familije "SPARTAN2" tipa "2S15CS144".

SINTEZA I IMPLEMENTACIJA KOLA Listing rezultata implementacije 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

SINTEZA I IMPLEMENTACIJA KOLA Rezlutati implementacije kola Implemetnirano kolo je zauzelo 806 ekvivalentnih gejtova. 1008 gejtova je neophodno za realizaciju JTAG logike kojom se vrši testiranje i programiranje FPGA kola. Kolo koristi napajanje od 2.5V. Iskori{}enost FPGA ~ipa je 21%. Maksimalna radna frekvencija kola 161,316 MHz. Maksimalna potrošnja kola je 12,5mW.

SINTEZA I IMPLEMENTACIJA KOLA [ema zauzetosti }elija FPGA kola

SINTEZA I IMPLEMENTACIJA KOLA [ema veza }elija FPGA kola

SINTEZA I IMPLEMENTACIJA KOLA Prikaz gotovog ~ipa Raspored pinova ~ipa

TESTIRANJE RADA KOLA Testiranje rada potpunog sabira~a Na slici je dat talasni dijagram testiranja rada sabira~a za slede}e vrednosti: takt 1 takt 2 takt 3 takt 4 x 1 y c c0 z takt 1 takt 3 takt 4 takt 2

TESTIRANJE RADA KOLA Testiranje rada multipleksera Na slici je dat talasni dijagram testiranja rada multipleksera za slede}e vrednosti: takt 1 takt 2 takt 3 takt 4 paralelno_serijski 1 paralelniIN serijskiIN Out1 takt 1 takt 4 takt 3 takt 2

TESTIRANJE RADA KOLA Testiranje rada pomera~kog registra Vrednost ulaza "par_ser_in" je u prvom taktu "1" (upis "A"). Nakon prvog takta "par_ser_in" se menja u "0" (vr{i se pomeranje sadr`aja). Upisan je broj "A"=11110000. Izmedju svakog bita operanda "A" upisuje se vrednost "0", i za to vreme se vr{i upisivanje bitova operanda "B" (komentar “upis b“ na dijagramu).

TESTIRANJE RADA KOLA Testiranje rada }elije mno`a~a ]elija Milerovog mno`a~a je projektovana tako da na izlazu imamo uvek zbir vrednosti izlaza iz prethodnog takta, proizvoda "ain" i "bin", i vrednosti "cin". U slu~aju da se dobije rezlutat veli~ine dva bita, "cout" dobija vrednost bita ve}e te`ine dok "izlaz" dobija vrednost bita manje te`ine. takt 1 takt 3 takt 2

TESTIRANJE RADA KOLA Testiranje rada mno`a~a Kolo bit-serijskog mno`a~a sa registrima ima funkciju da izra~una proizvod dva binarna broja maksimalne du`ine 8 bitova. Proizvod mo`e biti maksimalne du`ine 16 bitova. Operandi se unose paralelno u registre, uz pomo} pomera~kih registara se vr{i ubacivanje nula izmedju bitova operanada, i dalje serijsko uno{enje bitova u bit-serijski mno`a~. Nakon 24 takta dobija se rezultat mno`enja operanada.

TESTIRANJE RADA KOLA Testiranje rada mno`a~a – nastavak 1 Na slici je dat talasni dijagram testiranja za slede}e vrednosti: - "A(7:0)"=10101010 (dekadno 170) - "B(7:0)"=11110000 (dekadno 240) - rezultat je "REZ(15:0)"=9F60 (heksadecimalno), (40800 dekadno)

ZADATAK za ve`bu studenta Proveriti ispravnost rada mno`a~a. Pokrenuti program "Active-HDL 5.1" ~ija se ikona nalazi na Desktop-u. Uneti operande u binarnom obliku.

ZADATAK Prozor “Active-HDL”-a Otvoriti dizajn "bit_serijski" U okviru "Design Browser-a" selektovati stavku "kolo (kolo)“. 2. Otvoriti novi talasni dijagram klikom na ikonu "New Waveform" u toolbar-u. 1.

ZADATAK Dodavanje signala u “Waveform Editor”-u Nakon otvaranja prozora "Waveform-a" desnim klikom na prazan prozor otvoriti padaju}i meni i selektovati stavku "Add Signals“. 3.

ZADATAK Manipulacija signalima u “Waveform Editor”-u U okviru prozora "Add Signals" dodati na waveform slede}e signale: A, B, REZ, R, clk, nula. 4. 6. 5. Nakon dodavanja signala potrebno je dodeliti vrednosti ulazima. U koloni "Stimulator" dodeliti odgovaraju}e vrednosti ulazima. 7.

ZADATAK Simulacija Pustiti kolo u rad za vreme jednog takta klikom na ikonu "Run For" u toolbar-u. 11.

ZADATAK Simulacija – nastavak 1 Nakon jednog takta promeniti vrednost ulaza "R" u "0" Potrebno je 24 taktova da bi se sra~unali svi parcijalni proizvodi, a samim tim i kona~an rezlutat. Da bi mogao da se vidi ceo talasni dijagram klikom na ikonu "Zoom To Fit" smestiti ceo dijagram u vidno polje. 12. 13.

ZADATAK Simulacija – nastavak 2 O~itati tra`eni rezultat. U konkretnom primeru za operande su uzeti "A"=11111111 i "B"=10, a tra`eni rezultat "REZ"=111111110 (heksadecimalno 1FE). NAPOMENA: U uputstvu za vežbu su precizno naznačeni redosled i koraci uno{enja vrednosti, na~in definisanja parametara i o~itvanja rezlutata.

ZAKLJU^AK Efikasnost realizacije operacija mno`enja ima izuzetno veliki uticaj na efikasnost DSP sistema. Bit-serijski mno`a~i imaju ekstremo jednostavne procesne elemente (}elije). Veze izmedju elemenata su {irine jednog bita, kratke i regularno rasporedjene, {to je od izuzetnog zna~aja za realizaciju. Znatno je smanjen broj ulazno-izlaznih pinova na ku}i{tu ~ipa. Mogu}nost realizacije mno`a~a sa velikim brojem elemenata na istom ~ipu. Veoma mala disipacija snage na ~ipu.

ZAKLJU^AK nastavak 1 Osnovni nedostatak: Usvajanjem bit-serijskog formata prenosa podataka smanjuje se propusnost sistema, a samim tim se smanjuje brzina obrade. Da ne bi do{lo do degradacije performansi potrebno je u {to ve}oj meri primeniti proto~nu obradu.