UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET PREDMET: ARHITEKTURE I PROGRAMIRANJE PROGRAMIBILNIH KOLA

Size: px
Start display at page:

Download "UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET PREDMET: ARHITEKTURE I PROGRAMIRANJE PROGRAMIBILNIH KOLA"

Transcription

1 UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET PREDMET: ARHITEKTURE I PROGRAMIRANJE PROGRAMIBILNIH KOLA SEMINARSKI RAD Projektovanje DSP-a na FPGA platformama korišćenjem System Generator projektnog alata PROFESOR GORAN LJ. DJORDJEVIĆ NIŠ 2009 STUDENT GORAN S. NIKOLIC 1

2 Sadržaj 1 Projektovanje DSP-ova visoko-performansni na platformama FPGA Promena standarda Procesiranje kompleksnosti Integracija na nivou sistema Kako porediti DSP rešenja Projektovanje DSP-a sa FPGA platformama Šta je System Generator i kako početi Xilinx-ov DSP blokset Realizacija FIR filtra Podrška za MATLAB Procena sistemskih resursa Hadrware Ko-simulacija Platforma za integracije sistema Instalacija Podrška za hardware-sku Ko-simulaciju Instaliranje Korišćenje instalera ISE Design Suite Izbor verzije MATLAB-a za System Generator Instalacija alat potrebnih za hardversku kosimulaciju Hardverska Kosimulacija bazirana na Ethernet-u Hardverska Kosimulacija bazirana na JTAG-u Hardverska Kosimulacija na platformama drugih proizvodjača Kompajliranje Xilinx HDL biblioteka MXE Biblioteke Konfigurisanje System Generator keša Podešavanje veličine Prikazivanje i promena verzija System Generator-a Projektovanje hardware-a korišćenjem System Generator-a Kratak uvod u FPGA Tok projektovanja korišćenjem System Generator-a Analiziranje algoritma Implementacija dela nekog velikog dizajna Implementiranje kompletnog dizajna Modeliranje u System Generator-u na sistemskom nivou Skup blokova System Generator-a Xilinx-ov skup blokova Xilinx referentni skup blokova Tipovi signala Bit-True i Cycle-True modeliranje Tajming i taktovanje Modeli višestrukih brzina (Multirate) Blokovi promene brzine (Rate-Changing) Hardversko preuzorkovanje Asinhrono taktovanje Sinhrono taktovanje Tutorial Primer: Korišćenje opcije generator takta (DCM) Kratak pregled rezime Automatsko generisanje koda Kompajliranje i simulacija korišćenjem System Generator bloka Tip kompajliranja i dugme za generisanje (Generate) Simulink-ov sistemski taktni period Prikaz blok ikona

3 4.2.3 Hijerarhijsko upravljanje Rezultati kompajliranja Korišćenje fajlova projektinih ograničena u System Generator-u Period sistemskog takta Ograničenja vezana za višetaktne sisteme IOB (Input/Output Block) tajming i rasporedjivanje ograničenja Primer projektnog ograničenja Opsluživanje takta u HDL-u od strane System generator-a Keširana jezgra HDL testbenč Kompajliranje MATLAB M-fajlova u hardver Selector Konačni automat FIR Korišćenje FDATool u aplikacijama digitalnog filtra Prikaz dizajna Generisanje koeficijenata Generisanje i dodeljivanje koeficijenata za FIR filter Xilinx Filter Block Simulacija Hardver/Softver ko-dizajn Hardver/Softver ko-dizajn u System Generator-u Black Box (Crna kutija) blok PicoBlaze blok EDK Processor Blok Integrisanje procesora i namenski projektovanog hardvera Memory Map Creation Generisanje Hardvera Režim rada EDK pcore generisanje (orijentisano ka EDK) HDL Netlist režim rada (orijentisano ka System Generator-u) Hardverska kosimulacija Generisanje softverskih drajvera Pisanje Softvera za EDK Procesore Asinhrona podrška za EDK procesor EDK alat u System Generator-u Importovanje EDK Processor-a EDK Import Wizard Učinjene promene na hardware-u procesora nakon importovanja Ograničenja Projektovanje sa Embedded procesorima i mikrokontrolerima Aplikacija projektovana sa mikrokontrolerom PicoBlaze Pregled mikrokontrolera PicoBlaze PicoBlaze arhitektura Primer korišćenja PicoBlaze mikrokontrolera u System Generator-u Projektovanje i eksportovanje MicroBlaze procesorskih periferija Primer projektovanja i simulacije MicroBlaze procesorskog sistema Kreiranje DSP48 koprocesora Importovanje u XPS Project Konfigurisanje memorijske mape interfejsa Pisanje softvera Kreiranje bloka za hardversku kosimulaciju Kreiranje testbenča Ažuriranje Co-Simulation bloka sa kompajliranim softverom

4 5.7.3 Startovanje simulacije Parametri FIR digitalnog filtra Kompromis pri projektovanju filtra Projektovanje nisko-propusnog filtra specifikacija Projektovanje nisko-propusnog filtra specifikacija Projektovanje digitalnog filtra u System Generator u Primena System Generator-a u DSP procesiranju korišćenjem Spartan 3E Starter Kit-a Zaključak Reference

5 1 Projektovanje DSP-ova visoko-performansni na platformama FPGA Kako DSP tehnologija ima sve vecu primenu u najmodernijim, visoko-kompleksnim (high-end, high-complexity) komercijalnim i aplikacijama opšte namene, tradicionalni digitalni signal procesori imaju niz ograničenja u ispunjavanju njihovih performansnih zahteva. Kompleksnost procesiranja u mnogim od ovih aplikacija zahteva masivan paralelizam da bi se izvršile kompleksne DSP funkcije u realnom vremenu. Cena korišćenja velikih DSP formi da bi se implementirao takav paralelizam je često neprihvatljiva, tako da projektanti sistema nemaju drugog izbora nego da traže alternativno rešenje. Ovaj uvodni deo, u kratkim crtama, prikazuje mogućnosti koje nudi projektovanje bazirano na FPGA platformama s ciljem da se udovolji današnjim izazovima koje zahtevaju DSP aplikacije visokihperformansi. Pomenuto rešenje može da bude ili kao samostalno (stand-alone) ili kao dopuna tradicionalnim DSP aplikacijama. Detaljnija analiza korišćenja metodologija projektovanja bazirana na modelu obelodanjuje lakoću sa kojom FPGA platforme mogu da se iskoriste da realizuju pomenute veoma kompleksne DSP implementacije. Konačno, primer iz oblasti bežičnog prenosa tehnologija višestruki-ulaz višestruki izlaz (MIMO- Multiply In Multiply Out) se koristi da ilustruje ovaj koncept kao i brojni drugi primeri Promena standarda Za poslednje dve dekade, umrežavanje, procesiranje slike i vojna industrija nameću zahtev za novim i mnogo efikasnijim načinom procesiranja signala. U kontekstu DSP-a tržište žičane i bezične komunikacije doživljava revoluciju standarda sa Wi-Fi, WiMAX, 3G, 4G, i WCDMA sistemskim standardima, aplikacionim standardima kao što su OFDM i MIMO, kao i tehnološkim standardima kao što su softverski definisan radio (SDR). Dodatno, neprekidne promene se takodje javljaju i na polju audio, video i tržištu prenosa signala kao i u vojnoj industriji Procesiranje kompleksnosti Svaki standard predstavlja priliku i izazov za kompanije DSP dizajna. Ipak, DSP procesiranje koje zahtevaju mnogi od navedenih standarda ima za posledicu performansni gap, koji tradicionalni DSP-ovi i procesori opšte namene (GPP) ne mogu da reše. Slika 1. Performansni gap 5

6 Slika 2. Performanse i fleksibilnost FPGA kola Pomenute aplikacije zahtevaju kompleksno procesiranje i radno opterećenje proračunavanja od 10 megasempla po sekundi (MSPS) do 100 MSPS. Fenomen digitalnih konvergencija (video, govor, podaci) i prilagodjavanje korisničkim individualnim potrebama kreira istovremeno zahteve za sofisticiranije procesiranje u realnom vremenu i veliki propusni opseg da bi podržale sadržajem bogate multimedijalne podatke Integracija na nivou sistema Razmatranje projektovanja DSP sistema kao jedinog problema u signal procesiranju predstavlja samo deo problema. Za mnoge aplikacije, DSP funkcije nisu pojedinačni entiteti, već jedan od nekoliko sistem na čipu (SoC) funkcija, zato se nameće potreba da je tretiramo kao osnovu sistema integracije sa temama koji takav pristup nosi sa sobom. Ove teme uključuju sledeće: povezivanje koristi standarde kao što su RapidIO, PCIe, ATCA, 1G/10G Ethernet, i DDR/DDR2 memorije teme upravljanja sistemom kao što su statistički monitoring, QoS/CoS i prioriteti u saobraćaju neophodnost da se odgovori zahtevima za održavanjem potrošnje u granicama standarda i zahtevima za ispravnošću signala (signal integrity) postavljenim od strane bit error rates (BER). 6

7 1.1.4 Kako porediti DSP rešenja Na slici 3 dato je pet glavnih najkritičnijih tema za DSP tehnologiju. Performanse Fleksibilnost dizajna Alat za projektovanje Potrošnja po uredjaju Potrošnja po kanalu Cena po uredjaju Cena po kanalu Programabilni DSP npr. TI, ADI DSP ASIC npr. NEC < 2 MSPS > 100 MSPS S/W samo C-based Flow H/W samo jednom & S/W mnogo puta ASIC design flow DSP ASSP Npr. Broadcom MPU DSP Npr. Renesas Na FPGA-u zasnovan DSP Npr. Xlinix Često optimizovan < 1 MSPS > 100 MSPS Ne ili linearno Drop in Solution S/W samo C-based Flow H/W mnogo puta S/W mnogo puta Simulink ili HDL based OK za portabl OK za portabl OK za portabl Nekoliko vati OK za portabl Nije skalibilno Počinje sa < $2 Nije skalabilno Skalibilno > 250 KU Skalibilno Malo skalibilno Često optimizovano Malo skalibilno Nije skalibilno Počinje sa $5 + Nije skalibilno Skalibilno < 250KU Skalibilno Best OK Worst Slika 3. Uporedni prikaz trenutno dostupnih DSP rešenja Kako se performanse i zahtevi za kompleksnošću povećavaju, masivan paralelizam koji je dostupan kod DSP dizajna baziranog na FPGA postaje kritičan kriterijum za selekciju. Ako dodamo ovome fleksibilnost FPGA dizajna da se prilagodi promenama standarda kao i njegova sposobnost da skalira potrošnju i cenu zasnovano na primeni pojedinih algoritama koji se implementiraju, lako je videti zašto FPGA dobija istaknuto mesto kao vodeća DSP tehnologija. Učiniti pravi izbor je diktirano velikim delom konkretnim aplikacijama. U nekim slučajevima najbolji izbor je kombinacija programabilnog DSP-a i FPGA, gde se FPGA koristi ili kao pre-procesor DSP-u ili kao co-processor Projektovanje DSP-a sa FPGA platformama Protekle dve decenije, FPGA čipovi su evoluirali od kolekcije programabilnih logičkih gejtova do integrisanih sistem-nivovskih FPGA platformi sa sledećim karakteristikama: Upravljanje taktom Memorije Paralelni i serijski ulaz/izlaz Ethernet MAC Mikrokontroler(i) i mikroprocesor(i) FPGA platforme pružaju brojne multiply-accumulate (MACC) funkcije što predstavlja fundamentalni DSP gradivni blok. Nasuprot tome tradicionalni DSP obezbedjuje jedan do četiri pomenutih MACC jedinica. 7

8 Slika 4. FPGA performanse i fleksibilnost Design Entry Design Synthesis Design Verefication Functional Simulation Optimization Stattic Timing Analysis FPGAs Mapping Placement Routing CPLDs Fitting Back Annotation Timing Simulation Bitstream Geberation Download to a Xilinx Device In-Circuit Vrefication Slika 5. Pojednostavljeni prikaz Xilinx FPGA toka projektovanja (Design Flow) Premošćavanje projektantskog procepa (design gap) pomoću projektantskih alata i metodologija zasnovanih na modelu Opšte prihvaćeno korišćenje FPGA za realizaciju DSP funkcija kao što su filtri i neki preprocesori ili ko-procesori sa tradicionalnim DSP ovima pruža mogućnost premošćavanja performansnog procepa za visoko-kompleksne, visoko-performansne DSP projekte, i dozvoljava nam da se usredsredimo na metodologiju projektovanja. Tradicionalni DSP projektanti, kada bi koristili klasičan HDL pristup, najpre bi morali da prikupe dokumentaciju, zatim da savladaju tehnike projektovanja zasnovane na HDL jeziku da bi bili u stanju da postignu rezultat kao kod DSP procesora. Uspešno prevazilaženje projektantskog procepa izmedju FPGA i DSP dizajn toka nameće kao potrebu projektni pristup baziran na modelu koji će da omogući projektantu da veoma brzo artikuliše, ponovi i validira posmatrani projektni sistem uključujući i FPGA unutar postojećeg DSP design flow- 8

9 a. Takav design flow već postoji korišćenjem MATLAB i Simulink-a (interaktivni blok dijagram alata zasnovanog na MATLAB-u). Slika 6. Tok projektovanja System generator-a MATLAB je alat za razvoj zasnovan na algoritmima i analizi podataka. Simulink, kao njegov interaktivni blok, dozvoljava grafičko projektovanje arhitekture, vremensku simulaciju i praćenje ponašanja celog sistema. Kao nadgradnja MATLAB nam pruža mogućnost da objedinimo modele digitalnih, analognih i komponenti pobudjivanjih dogadjajima zajedno u jednoj simulaciji. Korišćenjem Simulink-a dolazimo brže do konačne realizacije projekta ugradjivanjem modela iz biblioteka pre-built blokova. Xilinx nudi blok biblioteke u okviru svog System Generatora za DSP alate ( sadrži bit-true i cycle-accurate modele za FPGA sa posebnim akcentom na matematičke, logičke i DSP funkcije) koji se ugradjuju u Simulink. AccelDSP alat pruža mogućnost projektantu DSP algoritma da kreira HDL dizajn iz MATLAB-a i eksportuje ga u System Generator za DSP. 9

10 da se: Korišćenjem design flow-a koji kombinuje DSP i FPGA kako je dato na prethodnoj slici xxxmože kreira validirani referentni dizajn; da se radi na nivou blok-dijagrama; zatim da se simulira ponašanje celog sistema (uključujući digitalne, analogne i komponente pobudjivane dogadjajem); da se automatski generiše HDL i/ili C kod za projekat uz istovremeno ispitivanje metode particionisanja na bazi kompromisa izmedju DSP-a i FPGA. Osim toga, Lyrtech FPGAlink i DSPlink alati obezbedjuju Simulink bloksetove sa ugradjenim FPGA i DSP drajverima u razvojne platforme. 10

11 2 Šta je System Generator i kako početi System Generator je Xilinx-ov projektni alat namenjem za DSP procesiranje koji pruža mogućnost korišćenja Mathworks-ovog Simulink projektnog okruženja, zasnovanog na modelima, za projektovanje FPGA. Prednost korišćenja System Generatora je da se ne zahteva prethodno veliko iskustvo u radu sa Xilinx FPGA kolima kao i metodologijom projektovanja na nivou RTL-a. Projektovanje je smešteno u DSP pristupačnom Simulink okruženju modelovanja korišćenjem Xilinx blokseta. Svi koraci naniže u procesu FPGA implementacije, uključujući sintezu, razmeštanje i rutiranje, automatski se primenjuju generisanjem FPGA fajla za programiranje 2.1 Xilinx-ov DSP blokset Xilinx DSP blokset namenjem simulink-u obezbedjuje preko 90 gradivnih blokova. Ovi blokovi uključuju opštije DSP gradivne blokove kao što su sabirači, množači i registri. Takodje uključen je i skup kompleksnih DSP gradivnih blokova kao što su blokovi korekcije greške na odredištu (forward error correction), FFT, filteri i memorije Realizacija FIR filtra Sistem generator uključuje i FIR kompajler blok koji je ciljno namenjen za DSP48 hardverske resurse koji su dostupni u Virtex4 i Virtex5 serijama FPGA čipova u cilju kreiranja optimizovane implementacije koja može da radi na taktnoj frekvenciji većoj od 500 MHz. Opcije konfigurisanja dozvoljavaju izvodjenje direktne polifazne decimacije, polifazne interpolacije i implementacije prekomerno uzorkovanja (oversampling). Standardne MATLAB funkcije, kao što su fir2 ili Mathworks-ov FDATool alat, mogu da se koriste za kreiranje koeficijenata filtra za Xilinx FIR Kompajler Podrška za MATLAB Algoritamski MATLAB modeli mogu da se ugrade u System Generator kroz AccelDSP. AccelDSP uključuje algoritamsku sintezu koja kao ulaze uzima floating-point (u pokretnom zarezu) MATLAB-ov model i generiše potpuni fixed-point (u nepokretnom (fiksnom) zarezu) model za korišćenje u System Generator-u. Karakterišu ga konverzija floating-to-fixed point (pokretnog zareza u nepokretan zarez), automatsko umetanje IP kora, istraživanje dizajna i algoritam vremenskog planiranja. Takodje u System Generator-u uključen je MCode blok koji obezbedjuje korišćenje ne-algoritamskog MATLAB-a za modeliranje i implementaciju jednostavnih upravljačkih operacija Procena sistemskih resursa System Generator poseduje blok za procenu korišćenih resursa (Resource Estimator) koji generiše procenu zauzetosti površine čipa i pre razmeštanja i rutiranja. Ovo je veoma korisna pomoć u procesu podele na hardver i softver uz čiju pomoć projektant sistema dobija potpunu iskorišćenost FPGA resursa koji, na primer, uključuju do 640 pomnoži/akumuliraj (ili DSP) blokova u Viretx5 seriji Hadrware Ko-simulacija System Generator obezbedjuje ubrzanu simulaciju kroz hardversku kosimulaciju. System Generator će automatski kreirati token, hardverske simulacije za dizajn koji je aktiviran iz blokseta Xilinx DSP, koji će raditi na jednoj od 20 podržanih hardware-skih platformi. Ovaj hardver će ko-simulirati sa ostatkom Simulink sistema i time obezbediti povećanje simulacionih performansi i do 1000x Platforma za integracije sistema System Generator je jedinstveno simulaciono i implementaciono okruženje koje obezbedjuje platformu za projektovanje DSP sistema na FPGA komponentama na različitim nivoima projektovanja 11

12 RTL, Simulink, MATLAB i C/C++. System Generator podržava blokove "crna kutija" (black box) koji dozvoljavaju RTL-u da bude importovan u Simulink i kosimulirani bilo sa ModelSim-om ili Xilinx ISE Simulator-om. System Generator takodje podržava rad sa MicroBlaze ugradjenim procesorom koji, u takvom okruženju, mogu da se programiraju na C/C++ jezicima Instalacija Preuzimanje programa System Generator je jedino dostupan putem preuzimanja sa Xilinx web sajta. Možete da ga kupite, registrujete se i preuzmete ga sa sajta: Podrška za hardware-sku Ko-simulaciju Uz odgovarajuću FPGA razvojnu ploču postoji mogućnost da probamo sve opcije koje nam nudi System Generator kao na primer, da koristimo FPGA hardversku kosimulaciju sa Simulink simulacijom. System Generator softver uključuje podršku za XtremeDSP razvojne sisteme, MicroBlaze Multimedia demonstracione ploče, MVI hardware-ska platforma, ML401 Virtex-4 platforma, ML506 Virtex-5 platforma, i Spartan-3A DSP 1800 starter platforma i 3400 razvojna platforma. Dodatno System Generator ploča za podršku različitim pakovanjima obezbedjuje podršku za dodatne platforme hardverske kosimulacije. System Generator podrška za pakovanja može da se preuzme sa sledećeg URLa: Instaliranje Softverski preduslovi Da bi ste pokrenuli i maksimalno iskoristili mogućnosti System Generator-a neophodno je da imate instalirane sledeće softvere: Jednu od sledećih verzija MATLAB-a firme MathWorks Inc.: MATLAB v7.4/simulink v6.6 (R2007a) MATLAB v7.5/simulink v7.0 (R2007b) Napomena: MATLAB mora da bude instaliran u direktorijumu koji u svom imenu nema blanko znake (t.j., C:\MATLAB\2007a) Xilinx ISE Foundation verzija 10.1 Neke karakteristike u System generator-u zahtevaju da budu instalirani sledeći softveri: Alat za logičku sintezu System Generator-a je potpuno kompatibilan sa Xilinx XST (uključen u ISE Fondation paket) i Synplify Pro v8.6.2 ili v8.9 firme Synplicity Inc. (HDL) simulator se zahteva jedino za ko-simulaciju HDL modula u okviru Simulink-a koristeći System Generator. System Generator ko-simulator interfejs je kompatibilan sa Xilinx ISE Simulator, ModelSim Xilinx izdanje MXE (opcija sa ISE Foundation), i ModelSIm PE ili SE verzija 6.3c firme Model Technology Inc. Napomena: Za instalaciju na operativnom sistemu Windows, potrebno je definisati sistemsku varijablu (environment variable) $XILINX, a njenu vrednost postaviti na putanju do direktorijuma gde je instaliran ISE sofver. ISE softver service packs može da se preuzme sa Xilinx DownloadCenter Korišćenje instalera ISE Design Suite Pre pokretanja ISE Design Suite instalera neophodno je zatvoriti sva instaciranja MATLAB-a U slučaju kada su sva instanciranja MATLAB-a zatvorena, pokrenemoinstaleri pratimo uputstva na ekranu 12

13 Izbor verzije MATLAB-a za System Generator Kao poslednji korak u toku instalacije System Generator-a, kliknite na polje za potvdru MATLAB instalacije sa kojom želite da povežete tekuću verziju System Generator-a, i onda kliknite na dugme Apply. Ukoliko nemate odgovarajuću verziju od ponudjenih sa MATLAB liste, na primer verzija instalirana na nekom od drugih računara u lokalnoj mreži, klikniti na Add Version, pozicionirajte se na vršni direktorijum MATLAB verzije koja nije na listi i onda kliknite Add. Ukoliko želite da povežete ovu verziju MATLAB-a sa System Generator-om, kliknite na polje potvrde novije verzije izlistane u MATLAB instalacijama, a onda kliknite na Apply Ako u trenutku instalacije System Generator-a nemate dostupnu verziju MATLAB-a kliknite na Choose Later da biste nastavili sa instalacijom. Kasnije nakon što instalirate MATLAB možete da ga povežete sa System Generator-om izvršavajući Windows meni stavku Start > All Programs > Xilinx ISE Design Suite 10.1 > DSP Tools > Select MATLAB version for Xilinx System Generator Instalacija alat potrebnih za hardversku kosimulaciju Ukoliko ne planirate da koristite hardversku kosimulaciju, možete da preskočite ovu temu Hardverska Kosimulacija bazirana na Ethernet-u Installing an ML402 Board for Ethernet Hardware Co-Simulation Installing an ML506 Board for Ethernet Hardware Co-Simulation Installing a Spartan-3A DSP 1800A Starter Platform for Ethernet Hardware Co-Simulation Installing a Spartan-3A DSP 3400A Development Platform for Ethernet Hardware Co-Simulation Hardverska Kosimulacija bazirana na JTAG-u Installing an ML402 Board for JTAG Hardware Co-Simulation Hardverska Kosimulacija na platformama drugih proizvodjača Kroz program Xilinx XtremeDSP Initiative, Xilinx saradjuje sa distributerima i mnogim OEM (Original Equipment Manufacturer) firmama koje nude sredstva i razvojne sisteme za podršku DSP projektovanju. Obratite se sledećoj Xilinx web stranici za više informacija o dostupnim platformama Kompajliranje Xilinx HDL biblioteka Ako nameravate da simulirate System Generator dizajn korišćenjem ModelSim, morate da kompajlirate vašu IP (core) biblioteku. Ova tema opisuje ovu proceduru. ModelSim (PE ili EE/SE) Xilinx alat koji kompajlira biblioteke za korišćenje u ModelSim PE ili EE/SE naziva se compxlib. Sledeća komanda kompajlira sve dostupne VHDL ili Verilog bilbioteke: compxlib s mti_se f all l all Detaljno uputstvo za korišćenje kompajlera compxlib dato je u poglavlju ISE Software priručnika" Synthesis and Simulation Design Guide " MXE Biblioteke Ako nameravate da koristite ModelSim XE (Xilinx Edition), "skinite" biblioteke koje su namenski kompajlirane za MXE sa Xilinx web sajta. Raspakovati MXE biblioteke u direktorijum u kojem je MXE instaliran, t.j. c/:modeltech_xe/. Ovo je lokacija gde MXE očekuje da nadje Xilinx kompajliranu biblioteku, tako da nije neophodno da menjate vaš modelsim.ini fajl. 13

14 Konfigurisanje System Generator keša I System Generator simulator i dizajn generator koriste keš memoriju na disku u cilju ubrzanja rada Keš se koristi za privremeno smeštanje i brzi pristup datotekama koje se generišu u toku rada System Generator-a Podešavanje veličine Podrazumevana veličina keša iznosi 500 MB. Veličina keša se može promeniti postavljanjem e SYSGEN_CACHE_SIZE enviroment variable na željenu veličinu keša u MB.. Postavljanje broja ulaza Keš može da primi ograničeni broj fajlova, podrazumevano do 20000Da bi postavili veličinu ulaza keša baze podataka, postavite SYSGEN_CACHE_ENTRIES enviroment variable na željeni broj ulaza. Postavljanjem ovog broja na veoma malu vrednost uticaće negativno na performanse keša. Postavite ovaj broj na veliku vrednost kada istovremeno radite na nekoliko velikih projekata Prikazivanje i promena verzija System Generator-a Moguće je da imate nekoliko verzija System Generator-a na vašem računaru. MATLAB komanda xlversion prikazuje koje su verzije instalirane i pruža mogućnost prebacivanja sa jedne verzije na drugu. Komanda xlversion je korisna kada se vrši nadgradnja modela radi prelaska na novu vreziju System Generator-a. Unošenjem xlversion u MATLAB, konzola prikazuje verziju System Generator-a koji je instaliran, a unošenjem xlversion <version> prebacujemo se na specificiranu verziju. 14

15 3 Projektovanje hardware-a korišćenjem System Generator-a System Generator je alat za modelovanje na sistemskom nivou koji olakšava projektovanje hardvera na FPGA-u. Njegovom ugradnjom u Simulink obezbedjuje se proširenje postojećih blokova standardnog Simulink okruženja sa ciljem obezbedjivanja okruženja za modelovanje pogodnog za projektovanje hardvera. Alat pruža visok nivo abstrakcije budući da omogućava automatsko kompajliranje Simulik modela u FPGA. Alat takodje obezbedjuje pristup osnovnim FPGA resursima kroz abstrakcije niskog nivoa, pružajući mogućnost izrade veoma efikasnog FPGA projektovanja. Kratak uvod u FPGA Tok projektovanja korišćenjem System Generator-a Prikazuje osnove FPGA i razmatra činjenice u vezi sa kompajliranjem, programiranjem i arhitekturom u kontekstu System Generator-a Opisuje nekoliko podešavanja koja su korisna u toku konstrukcije projekta u System Generator-u Modelovanje na nivou sistema u System Generator-u Razmatra sposobnost System Generator-a da direktno sa visokog nivoa modelovanja vrši implementaciju na različite FPGA komponente 15

16 3.1.1 Kratak uvod u FPGA FPGA je integrisano kolo opšte namene koje se "programira" od strane projektanta, a ne od strane proizvodjača uredjaja. Za razliku od aplikaciono-specifičnih integrisanih kola (ASIC), čija se funkcija definiše u fazi izrade čipa, FPGA kolo može da menja svoju funkciju više u toku eksploatacije. FPGA se programira unosom konfiguracionog programa, tzv. bitstrima (od, bitstream) u njegovu statičku RAM memoriju. Mnogo sličniji objektnom kodu za mikroprocesore, bitstream je fajl generisan od strane kompajlera koji prevodi projekat realizovan na visokom nivou u ekvivalentan, ali na niskom nivou. Xilinx System Generator je pionirska ideja kompajliranja Simulink modela visokog nivoa u FPGA bitstrim. FPGA pruža mogućnost implementacije širokog opsega aritmetičkih i logičkih funkcija na dvodimenzionalnom polju konfigurabilnih hardverskih resursa. Ovi resursi uključuju odgovarajuće DSP blokove, množače, memorije sa dvostrukim pristupom, tabele pretraživanja (LUT), registre, trostatičke bafere, multipleksere i kola za taktovanje. Dodatno, Xilinx FPGA sadrži sofisticirane I/O mehanizme koji mogu da opslužuju širok opseg zahteva za komunikacionim propusnim opsegom i radnim naponom. Virtex-4 i Virtex-II Pro FPGA familija sadrži embedded (ugradjenje) mikrokontrolere (IBM PowerPC 405) i multi-gigabitne serijske primopredajnike. Resursi za proračunavanje i I/O blokovi se povezuju u jedinstven sistem pod kontrolom bitstream-a, a od strane programabilne arhitekture sačinjene od blokova za medjupovezivanje. FPGA su digitalna kola visokih performansi za procesiranje podataka. DSP peroformanse proizilaze iz sposobnosti FPGA da konstruišu paralelne arhitekture za procesiranje podataka. Nasuprot mikroprocesorima ili DSP procesorima gde su performanse u vezi sa taktnom frekvencijom na koji procesor može da radi, FPGA performanse su u vezi sa nivoom paralelizma koji se može postići. Kombinacijom sve veće frekvencije sistemskog takta (danas su uobičajene frekvencije od 100 do 200 MHz) i distribuirane memorijske arhitekture, pružaju se mogućnosti projektantu sistema da eksploatiše paralelizam u DSP (i drugim) aplikacijama koje rade sa nizovima podataka. Na primer, propusni opseg raw memorije FPGA čipa koji radi na taktnoj frekvenciji od 150MHz može da bude 100 TB/s. Postoje mnoge DSP aplikacije (npr., digitalni konvertor naviše/naniže) koje mogu da se implementiraju samo u namenski projektovanom integrisanom kolu (IC) ili na FPGA, zato što von Neumann-ovoj arhitekturi procesora nedostaje i sposobnost proračunavanja i zahtevani memorijski propusni opseg. Prednost korišćenja FPGA u odnosu na ASIC proističe iz značajnog smanjenja uloženog inženjerskog vremena, skraćenja vreme isporuke, i konfigurabilnosti FPGA koja dozvoljava projektantu da modifikuje dizajn čak i nakon ugradnje u ciljni sistem. Radeći u System Generator-u trebamo da budemo svesni činjenice da FPGA ima mnoge stepene sobode u implementiranju funkcija za procesiranje signala. Imamo, na primer, slobodu da definišemo širinu staze podataka kroz sistem i da na taj način iskoristimo mnoge pojedinačne blokove za procesiranje podataka (npr., pomnoži-akumuliraj blok), u skladu sa sistemskim zahtevima. System Generator obezbedjuje abstrakciju visokog nivoa koje nam dozvoljava da prilikom projektovanja na FPGA u velikoj meri razmišljamo na nivou algoritma koji želimo da implementiramo. Medjutim, što više poznajemo osnovu arhitekture FPGA, verovatnije je da ćemo biti u stanju da iskoristimo sve mogućnosti koje nam FPGA pruža kako bi postigli bolje performanse. Iz ugla gledanja DSP inženjera, FPGA se može zamisliti kao 2-D polje logičkih slajsova i DSP blokova ugrađenih u kofigurabilnu strukturu za međupovezivanje. U Virtex-4 DSP seriji, DSP blokovi mogu da rade na frekvenciji višoj od 450 MHz, i da se sprežu sa dual port memorijskim blokovima (BRAM) čiji portovi mogu da se konfigurišu na širok opseg veličina reči (18Kb ukupno po BRAM). Virtex-4 SX55 serija komponenti sadrži 512 takvih blokova DSP i BRAM. Kroz System Generator može se pristupiti svim ovim resursima kroz aritmetičke i logičke abstrakcije koje treba da realizuju digitalne filtre visokih performansi, FFT i druge aritmetičke i funkcije za procesiranje signala. 16

17 Slika 7. DSP blok Iako su DSP inženjeri familijarni sa funkcijom pomnoži-akumuliraj koja je podržana od strane Virtex-4 DSP bloka, poželjno je da se bliže upoznamo sa Virtex familijom logičkih slajsova (prikazano na slici dole), koji predstavljaju osnovnu jedinicu logičkog polja. Slika 8. Virtex familija logičkih slajsova Svaki od logičkih slajsova sadrži: dve 4-ulazne tabele pretraživanja (LUT), dva konfigurabilna D- flip-flopa, multipleksere, namensku logiku za prenos, i gejtove koji se koriste za kreiranje množača zasnovanog na slajsovima. Svaki LUT može da implementira proizvoljnu 4-ulaznu Boolean-ovu funkciju. Zajedno sa nemenski projektovanom logikom za ubrzanje aritmetičkog prenosa, LUT ovi mogu da se koriste za realizaciju brzih sabirača/oduzimača i osnovnih množača bilo koje veličine reči. Dodatnim implementiranjem Boolean-ovih funkcija, svaka od LUT može takodje da se konfiguriše kao 16x1-bitni RAM ili kao pomerački registar SRL16. SRL16 pomerački registar je sinhrono taktovan 16x1 bitnim linijama za kašnjenje sa dinamički adresibilnim tap point-om. Navedene različite memorijske opcije se u okviru System Generator-u predstavljaju sa visokim nivoom abstrakcije. Umesto obezbedjivanja D flip-flop primitiva, System Generator obezbedjuje registre proizvoljnih veličina. Postoje dva bloka koja obezbedjuju abstrakciju linije za kašnjenje proizvoljne širine i dubine koja se mapira direktno na SRL16 konfiguraciju. Blok kašnjenja može da se koristi za balansiranje protočnog sistema, a može takodje da se koristi i kao memorija za smeštanje niza podataka koji se koriste u vremenski multipleksiranoj raspodeli (Time Division Multiplexed - TDM). 17

18 Adresabilni blok pomeračkog registra (ASR) sa funkcijama opisanim na slici dole, obezbedjuje proizvoljnu širinu i proizvoljnu dubinu tapped linije za kašnjenje. Ovaj blok je posebno interesantan DSP inženjerima pošto mogu da ga koriste kako za realizaciju tapped linije za kašnjenje tako i za realizaciju konvertora paralelne informacije u TDM niz podataka Slika 9. Adresibilni blok pomeračkog registra Iako RAM može da se relizuje ili BRAM ili LUT (RAM16x1) primitivama, takav način zahteva priličnu obazrivost prilikom projektovanja, kako da bi se obezbedilo efikasnije mapiranje, i uz to zahteva značajno angažovanje projektanta s obzirom na obilje detalja o kojima mora da vodi računa da bi se memorijske primitive korektno objedinile u jednu veliku strukturu. System Generator eliminiše potrebu za takvim koracima. Na primer, blok RAM memorija sa dvostrukim pristupom (DPRAM) prikazan na narednoj slici efikasno se mapira ili BRAM ili RAM16x1 memorijskim elementima na komponenti. Kao što se može videti na dijalogu koji služi za konfigurisanje DPRAM-a, interfejs nam pruža mogućnost da specificiramo tip memorije (BRAM ili RAM16x1), dubinu, inicijalni sadržaj memorije i druge karakteristike. Napomena: Blok RAM (BRAM) U savremenim FPGA komponentama dostupna su dva tipa memorijskih elemenata: Distribuirani RAM i Blok RAM. Distribuirani RAM, koji ima formu flip-flopova koji su kreirani u okviru logike opšte namene (slajsovi), je pogodan za smeštanje male količine podataka, realizaciju registara i pomeračkih 18

19 registara, i dr. Blok RAM predstavlja konfigurabilnu memoriju sa adresnim, portom podataka i upravlčjačkim portom i za aplikacije sa velikim brojem podataka predstavlja pravi izbor. 3.2 Tok projektovanja korišćenjem System Generator-a System Generator, kao projektni alat, može da se koristi u mnogim segmentima projektovanja. Jedan od segmenata je analiziranje algoritma bez implementiranja projekta u hardware. Drugi je korišćenje System Generator za projektovanje dela nekog mnogo većeg projekta. Treća mogućnost je da System Generator projekat predstavlja kompletno rešenje i da treba da se implementira u FPGA hardware-u. U nastavku se detaljnije opisuju sve tri mogućnosti Analiziranje algoritma System Generator je posebno koristan za potrebe analize algoritma, projektovanje prototipova, i analizu modela. U ovom slučaju primena ovog alata je u cilju ispitivanja ponašanja algoritma kako bi se stekao osećaj za potencijalne probleme sa kojima bi se suočili kada bismo realizovali projekat do kraja. Takodje u krajnjoj liniji možemo da dobijamo informaciju o ceni projekta i performansama pri konačnoj implementaciji projekta u hardver. Napomenimo da, s obzirom da je ovo priprema projekta, nije neophodno da transliramo projekat u hardver. U ovim podešavanjima, objedinjuju se glavni delovi projekta bez da se vodi računa o nekim ciljevima ili detaljima implementacije. Simulink blok i MATLAB M-code obezbedjuju pobudne signale za simulaciju i za analiziranje rezultata. Proračunavanje iskorišćenosti resursa daje grube praračune cene hardverske realizacije projekta. Eksperimenti za generisanje hardvera mogu da sugerišu hardware-sku brzinu rada koja je ostvrljiva. Čim se dodje do obećavajućeg rezultata projekat može da se finalizuje. System Generator dozvoljava da se "prečišćavanje" izvede u koracima tako da neki delovi projekta mogu da budu spremni za implementaciju na hardver dok drugi ostaju na visokom nivou projektovanja i apstraktni Implementacija dela nekog velikog dizajna Često se System Generator koristi da se implementira deo nekog velikog dizajna. Na primer, System Generator je dobar za delove projekta u kojima treba implementirati stazu podataka i upravljanje, ali je manje pogodan za sofisticirane spoljašnje interfejse koje zahtevaju striktan tajming. U ovom slučaju, može da bude korisno da implementiramo delove dizajna koristeći se System Generator-om, a druge delove implementiramo korišćenjem nekih drugih alata za projektovanje, i onda kombinujemo delove u jedan ceo projekat. Tipičan primer za ovakav način projektovanja je da kreiramo HDL wrapper (omotač) koji predstavlja unešeni dizajn, a da deo projekta u System Generator realizujemo kao komponentu. S tim što deo koji nije uključen u deo projetka realizovanog kroz System Generator može da bude ili komponenta u omotaču ili da bude direktno instaciran iz omotača Implementiranje kompletnog dizajna Mnogo puta se desi da sve što vam je potrebno za projektovanje dostupno vam je kroz System Generator. Za takve dizajne, dovoljno je da pritiskom na dugme Generate damo nalog System Generatoru da prevede projekat u HDL i da generiše fajlove neophodne za obradu HDL od strane alata za downstream. Generisani fajlovi uključuju sledeće: HDL koji implementira sam dizajn Takt omotač (wrapper) koji okružuje dizajn i generiše signale takta i takta dozvole koji su neophodni dizajnu HDL testbenč koji okružuje takt omotač. U testbenču su ugrađeni rezultati iz Simulink simulacije da bi ih ponovo poredio sa onima koji su proizvod logičkog simulatora Projektni fajlovi i skriptovi koji se koriste kao ulazi u različite alate za sintezu kao što su XST i Symplify Pro kako bi se aktivirali na System Generator HDL-u 19

20 Fajlovi koji obezbedjuju da se System Generator HDL koristi kao projekat u Project Navigator-u 3.3 Modeliranje u System Generator-u na sistemskom nivou System Generator obezbedjuje da se projektovanje hardvera ostvari modeliranjem sistema na visokom nivou u fleksibilnom okruženju. Pri projektovanju u System Generator-u signali nisu samo bitovi. Oni mogu biti označeni i neoznačeni brojevi u fiksnom zarezu Blokovi nisu samo zamena za hardver. Oni odgovaraju na svoje okruženje tako što automatski prilagodjavaju rezultate koje generišu i hardver koji treba da realizuju. System Generator dozvoljava da projekat bude sastavljen od raznovrsnih sastavnih delova. Apstraktni modeli zasnovani na protoku podataka, tradicionalni jezici za projektovanje hardvera (VHDL, Verilog i EDIF) i funkcije koje proističu iz programskog jezika MATLAB, mogu da se koriste potpuno ravnopravno, simuliraju zajedno, i konačno sintetizuju u završni hardver. Simulacioni rezultati System Generator-a su tačni na nivou bita i taktnog ciklusa To znači da se rezultati koje se dobijaju u simulaciji tačno poklapaju sa rezultatima koje bi trebalo da generiše hardver. Simulacije u System Generator-u su znatno brži od onih u tradicionalnim HDL simulatorima, i njih je lakše analizirati. System Generator blokovi Opisuju kako su System Generator blokovi organizovani u biblioteke i kako blokovi mogu da se parametrizuju i koriste Tipovi signala Modelovanje bit-true i cycle-true Tajming i taktovanje Sinhronizacioni mehanizmi Opisuju tipove podataka koje se koriste od strane System Generator-a i na koji način tipovi podataka mogu da se automatski dodele alatu Specificira odnos izmedju simulacija zasnovanih na Simulink-u modela System Generator-a i ponašanja hardware-a koji može da se generiše iz njega Opisuje kako se takt implementira u hardware i kako se njegova implementacija kontroliše unutar System Generator-a. Objašnjiva kako System Generator-i prevodi multirate Simulink model u radni sinhroni taktni hardware. Opisuju mehanizme koji mogu da se koriste za sinhronizaciju toka podataka kroz elemente staze podataka u dizajn System Generator-a visokog nivoa i opisuju kako mogu da se implementiraju funkcije staze upravljanja Blok maski i prelaz parametara Objašnjava kako se kreiraju parametrizovati sistem i podsistemi u Simulink-u Proračun zauzeća resursa Obisuju kako generisati proračun hardware-a koji je neophodan da bi se implemntirao System Generator dizajn. 20

21 3.3.1 Skup blokova System Generator-a Simulink skup blokova je biblioteka blokova čiji modeli mogu da se povežu sa drugim modelima u okviru Simulink blok editora u cilju kreiranja funkcionalnih modela nekog dinamičkog sistema. Za modeliranje sistema System Generator skup blokova se koristi kao i bilo koji drugi Simulink skup blokova. Blokovi obezbedjuju apstraktne matematičke, logičke memorijske i DSP funkcije tako da mogu da se koriste da bi se izgradio sofisticiran sistem za procesiranje signala (i drugi). Takodje postoje blokovi koji obezbedjuju i interfejs ka drugim softverskim alatima (npr. FDATool, ModelSim) kao i softveru System Generator za generisanje koda. System Generator blokovi su bit-accurate i cycle-accurate. Bit-accurate blokovi generišu vrednosti u Simulink-u koji se uparuju sa odgovarajućim vrednostima generisanim od strane hardvera: cycle-accurate blok generiše vrednosti koje odgovaraju vrednostima koje se generišu na kraju svakog taktnog ciklusa Xilinx-ov skup blokova Xilinx-ov skup blokova je familija biblioteka koja sadrži osnovne blokove System Generator-a. Neki od blokova su niskog nivoa tako da obezbedjuju pristup hardware-u posebnih namena. Drugi su blokovi visokog nivoa koji implementiraju (na primer) algoritme za procesiranje signala i algoritme napredne komunikacije. Posebno je pogodno što su blokovi sa širokom primenom (npr., Gateway I/O blokovi) članovi nekoliko biblioteka. Svaki blok se sadrži u biblioteci Index. Biblioteke su opisane u narednoj tabeli. Biblioteka Opis Index Svaki blok u Xlinix Blockset-u Basic Elements ElementsStandard gradivni blokovi za digitalnu logiku Communication Blokovi modulatora i korekcije grešeke na odredištu, obićno korišćeni u digitalnim komunikacionim sistemima Control Logic Blokovi za upravljanje kolom i konačni automat (state machine) Data Types Blokovi za konverziju tipova podataka (uključuje gateway-eve) DSP Blokovi za digitalno procesiranje signala (DSP) Math Blokovi koji implementiraju matematičke funkcije Memory Blokovi koji implementiraju memorije Shared memory Blokovi koji implementiraju i pristupaju Xilinx deljivim memorijama Tools Korisnički blokovi kao što su generatori koda, proračunavanja iskorišćenosti resursa, HDL ko-simulacije itd Xilinx referentni skup blokova Xilinx referentni skup blokova sadrži složene System Generator blokove koji implementiraju širok spektar funkcija. Blokovi u ovom skupu su organizovani u različite biblioteke. Biblioteke su opisane u narednoj tabeli. Biblioteka Opis Komunikacija Blokovi obično korišćeni u sistemima digitalne komunikacije Upravljačka logika Logički blokovi za upravljanje kolom i automate (state machine) DSP Blokovi za digitalno procesiranje signala (DSP) Slika Blokovi za procesiranje slike Matematika Blokovi koji implementiraju matematičke funkcije Svaki od blokova u skupu blokova prati skup konfiguracionih parametara. 21

22 Blokovi iz biblioteka referentnog skupa mogu da se koriste takvi kakvi jesu ili kao polazna tačka kada se konstruiše projekat koji ima slične karakteristike. Svaki od referentnih blokova ima opis svoje implementacije i zahtevani hardware-ski resurs. Pojedinačna dokumentacija za svaki od blokova je takodje obezbedjena Tipovi signala U cilju obezbedjivanja bit-accurate simulacije hardware-a, System Generator blokovi rade sa logičkim vrednostima (1 i 0), ali i sa numeričkim vrednostima u formatu fiksnog zareza proizvoljne preciznosti. Nasuprot tome, osnovni skalarni tip signala u Simulink-u je dvostruke preciznosti tipa pokretni zarez. Veza izmedju Xilinx bloka i Non-Xilinx blokova je obezbedjena pomoću sprežnih (gateway) blokova. Gateway In blok konvertuje signal dvostruke preciznosti u Xilinx signal, a Gateway Out konvertuje Xilinx signal u signal dvostruke preciznosti. Simulink kontinualni vremenski signal mora da se uzorkuje pomoću Gateway In bloka. Većina Xilinx blokova su polimorfni, tj. postoji mogućnost da se izvedu zaključci o (metodom dedukcije) odgovarajućim izlaznim tipovima signala zasnovano na njihovim ulaznim tipovima. Kada se specificira potpuna presiznost (full precision) za blok u njegovom parametarskom dijalogu, System Generator odabira izlazni tip tako da obezbedi da se ne izgubi preciznost. Znakovno proširenje i proširenje nulama dešavaju se automatski ako je to neophodno. Izbor preciznosti od strane korisnika je takođe podržana opcija Ovo dozvoljava da postavljate izlazne tipove za blokove i da specificirate kako bi kvantizacija i prekoračenje trebalo da se opsluže. Mogućnost kvantizacije uključuje nejednostrano zaokruživanje ka plus ili minus beskonačnosti, zavisno od znaka ili odsecanja. Opcija prekoračenja uključuje zasićenje, odsecanje ili prekoračenje tretira kao grešku. Napomena: Na primer, ako je port deklarisan s tipom Fix_11_9 to znači da se preko ovog porta prenose signali koji se tretiraju kao označeni jedanaestobitni brojevi u drugom komplementu sa 9 bita u razlomljenom delu ili ako je tip Ufix_5_3 onda je signal 5-bitni neoznačeni broj sa 3 bita u razlomljenom delu. U System Generator delu simulink modela, svaki signal mora da bude uzorkovan. Vreme uzorkovanja može da bude prenešeno iz prethodnog bloka korišćenjem Simulink-ovih pravila kašnjenja ili eksplicitno postavljeno u blok putem njegovog dijaloga. Kada postoji povratne petlje, ponekad system generator nije u mogućnosti da zaključi koliki je period uzorkovanja i/ili koji je tip signala, i u tom slučaju alat objavljuje poruku o grešci. Assert Blocks (Blokovi potvrde) moraju da se umetnu u petlju kako bi se ovaj problem razmotrio. Nije neophodno da dodajemo blokove na svaku tačku u petlji; obično je dovoljno da to bude jedna tačka koja će da "prekine" petlju Bit-True i Cycle-True modeliranje Simulacije u System Generator-u su bit-true i cycle-true. Kada se kaže da je simulacija bit-true misli se da su, na prelazu (interfejs) izmedju System Generator blokova i Non-System Generator blokova, vrednost generisane u simulaciji bit-po-bit identične odgovarajućim vrednostima izgenerisanim u hardveru. Kada se kaže da je simulacija cycle-true misli se da su, na prelazu (interfejs) izmedju System Generator blokova i Non-System Generator blokova, vrednosti tajminga generisane u simulaciji identične odgovarajućim vrednostima tajminga u hardveru. Granice projekta predstavljaju tačke u kojima postoje System Generator sprežni (gateway) blokovi. Kada se projekat prevodi u hardver, Gateway In (respektivno, Gateway Out) blokovi postaju toplevel ulazni (respektivno, izlazni) portovi Tajming i taktovanje Vremenski diskretni sistemi Projekti definisani u System Generator-u su vremenski diskretni sistemi. Drugim rečima, signali i blokovi koji ih generišu povezani su sa frekvencijom uzorkovanja. Blokovska frekvencija uzorkovanja 22

23 odredjuje koliko često se blok budi (dozvolja svom stanju da bude ažuriran). Za većinu blokova, brzina uzorkovanja se postavlja automatski. Nekoliko blokova, ipak, postavljaju brzinu uzorkovanja eksplicitno ili implicitno. Jednostavan System Generator model ilustruje ponašanje vremenski diskretnog sistema. Razmotrimo model koji je prikazan na sledećoj slici. Model sadrži sprežne blokove: gateway in koji se pobudjuje od strane Simulink izvora (SineWave) i gateway out koji pobudjuje Simulink odredište (Scope). U ovom primeru, Gateway In blok je konfigurisan sa periodom uzorkovanja od jedne sekunde. Gateway Out blok konvertuje Xilinx signal u fiksnom zarezu nazad u signal tipa dvostruke preciznosti (tako da ga možemo analizirati u Simulink scope), stim što je frekvencija uzorkovanja odredjena automatski Modeli višestrukih brzina (Multirate) System Generator podržava multirate projektovanje, tj. mogućnost da projekat sadrži signale koji se zorkuju različitim frekvencijama. System Generator automatski kompajlira multirate modele u hardver Ovo obezbedjuje da se multirate dizajni implementiraju na način koji je i prirodan i realan u Simulink-u Blokovi promene brzine (Rate-Changing) System Generator sadrži blokove koji imaju mogućnost da menjaju brzinu uzorkovanja. Najosnovniji blokovi izmenjivači brzine su Up Sample i Down Sample. Kako je prikazano na narednoj slici, ovi blokovi eksplicitno menjaju brzinu signala za fiksan umnožak koji je specificiran u dijalogu bloka. Drugi blokovi (npr., Parallel To Serial i Serial To Parallel konvertori) menjaju brzinu implicitno na način odredjen postavljanjem parametara u dijalogu bloka. Razmotrimo jednostavan multirate primer dat dole. Ovaj model ima dva perioda uzorkovanja, SP1 i SP2. Gateway In dijalog definiše period uzorkovanja SP1. Down Sample blok uslovljava promenu perioda uzorkovanja modela kreirajući novi SP2 koji je polovina perioda uzorkovanja SP1. 23

24 3.3.9 Hardversko preuzorkovanje Neki od System Generator blokova poseduju osobinu preuzorkovanja, tj., njihovo unutrašnje procesiranje se radi na brzinama koje su veće nego što je brzina podataka na izlazu. Prilikom hardverske realizacije ovo zahteva više od jednog taktnog ciklusa da bi ostvario uzorkovanje podataka. U Simulink takvi blokovi nemaju primetan efekat na brzinu uzorkovanja Jedan blok koji poseduje osobinu preuzorkovanja je DAFIR FIR filter. Preuzorkovani DAFIR procesira uzorke serijski dakle radi na većim brzinama, ali sa manje hardvera. Mada blokovi koji imaju preuzorkovanje ne uslovljavaju eksplicitno promenu brzine uzorkovanja u Simulink-u, System Generator uzima u obzir unutrašnju brzinu uzorkovanja zajedno sa svim drugim brzinama uzorkovanja kada generiše logiku taktovanja tokom hardverske implementacije. Zato je neophodno da, kada specificiramo vrednost sistemskog perioda Simulink-a u dijalogu System Generator bloka, razmotrimo blokove koji rade u režimu preuzorkovanja Asinhrono taktovanje System Generator je prevashodno namenjen projektovanju sinhronih digitalnih sistema koji se taktuju jednim signalom takta. On može, pod odredjenim uslovima, da se koristi za projektovanje sistema koji sadrže više od jednog takta. Ovo je moguće obezbediti podelom sistema na više izolovanih taktnih domena uz obezbeđivanje mehanizama za razmenu informacija izmedju domena putem memorije sa dvostrukim pristupom i FIFO-a. System Generator potpuno podržava takav multi-clock dizajn, uključujući podršku za simulaciju u Simulinku i generisanje kompletnog hardverskog opisa Sinhrono taktovanje Kako je prikazano na narednoj slici, kada se koristi System Generator simbol u cilju kompajliranja dizajna u hardver, postoje tri taktne opcije za Multirate implementaciju: (1) Clock Enables (podrazumevana) Dozvola takta, (2) Clock Generator (DCM) Generator takta, (3) Expose Clock Ports 24

25 3.4 Tutorial Primer: Korišćenje opcije generator takta (DCM) Sledeći primer korak-po-korak pokazuje kako da se bira Clock Generator (DCM) opcija, generiše netlista HDL dizajna, implementira dizajn u ISE, vrši simulacija dizajna, pristupa fajlovima i izveštajima koji se generišu tokom ovih procesa, a sve u cilju verifikacije da je DCM korektno instanciran i konfigurisan. Primer dcm_case1 projekta je lociran na sledećoj putanji <sysgen-tree>/examples/clocking_options/dcm_case1/dcm_case1.mdl 1. Otvorimo model u MATLAB-u i posmatrajmo sledeće blokove: Adresabilni pomerački registar (ASR): koristi se za realizaciju ulaznog bafera kašnjenja. Adresni port radi n puta brže nego port podataka, gde je n broj filterskih tapova (na primer 5) Koeficijenti ROM: koristi se za smeštanje koeficijenti filtra Brojač: generiše adrese ROM-a i ASR-a Komparator: generiše signale reset i dozvola MAC jedinica: koristi se za realizaciju pomnoži-saberi operatora za filtar Demonstration on Using the Clock Generator (DCM) Option Step In Din z -1 in _reg d q addr ASR z -1 a_reg System Generator a out Counter 0 addr z -1 Coefficient ROM a a=b b z -3 z -1 b_reg z -1 r2 b rst MAC Engine q d z -1 q en Capture Register 5 z -1 z -1 put _reg Out Dout Scope (c) Copyright Xilinx, Inc. #-- All rights reserved. Double click for System Generator documentation on this demo. Double Click for Copyright Notice 25

26 This subsystem implements a multiply -accumulate engine. 1 a a z -2 (ab ) z -1 b 2 b 3 b Mult int _reg rst q 1 q rst Accumulator 2. Dvostrukim klikom na simbol System Generator otvara se sledeći dijalog. Kao što je prikazano na prethodnoj slici, selektujemo Clock Generator (DCM) i onda kliknemo na Generate. Nakon nekoliko trenutaka, ispod radnog direktorijuma kreira se poddirektorijum nazvan hdl-netlist. 3. Dvbostrukim klikom na fajl dcm_case1_sysgen.log pristupamo listi taktova DCM-a 4. Pokrenuti ISE, a zatim učitati ISE projekat sa sledeće putanje./hdl_netlist/dcm_case1_dcm_mcw.ise 5. Ispod kartice Project Navigator Processes, dva puta kliknemo na Implentation Design 6. Na kartici Project Navigator Sources, uradimo sledeće: 26

27 a. Dva puta kliknemo na fajl dcm_case1_dcm_mcw.vhd, onda pomerimo prikaz naniže da bi uočili VHDL deklaraciju komponente DCM, kao što je prikazano ispod: b. Primetimo da System Generator automatski kreira instancu komponente DCM i podešava njene parametre u skladu sa zahtevanim krakteristikama taktnog izlaza. c. Zatvorimo VHDL fajl Sledeće je da ispitamo kašnjenje takta razmatrajući izveštaj o tajmingu ISE-a. Da bismo bili u stanju da vidimo taktne izlaze DCM -a u okviru ISE izveštaja o tajmingu, neophodno je da prvo kreiramo fajl korisničkih ograničenja user constraint file (UCF) 7. Ispod kartice Processes > User Constraints, dva puta kliknemo na Create Timing Constraints. Unesimo korisnička ograničenja u projekat na način kako je to prikazano na narednoj slici, i onda snimimo fajl. 8. Ispitivanje DCM taktnog izlaza ostvaruje se aktiviranjem opcije: Ispod kartice Processes > Implementation Design > Place&Route >Generate Post-Place & Route Static Timing 9. Nakon završetka, dva puta kliknemo na Analize Post-Place & Route Static Timing i trebalo bi da se dobijemo izveštaj kao na narednoj slici: 27

28 Vremenski izveštaj pokazuje da se kašnjenje takta nalazi u zahtevanom opsegu 10 ns i 50ns Sledeće što možemo da primenimo je simulacija korišćenjem ModelSim-a 10. Kao što je prikazano na sledećoj slici, iz padajuće liste Sources for izaberite Behavioral Simulation. Napomena: System Generator automatski kreira VHDL testbenč, skript fajl i ulazno/izlazni fajl stimulansa. Kartica Processes se menja i prikazuje u skladu sa izborom u padajućoj listi Sources for. 28

29 11. Dvostrukim klikom na Simulate Behavioral Model u prozoru Processes, pokreće se simulator ModSim Nakon završetka simulacije možemo da posmatramo i analiziramo simulacione talasne oblike kako je to prikazano na sledećoj slici 29

30 3.4.1 Kratak pregled rezime Kada selektujete opciju Clock Generator (DCM) System Generator automatski izvodi zaključke i instacira DCM bez daljih intervencija. Nema potrebe da postavljate atribute ili specificirate DCM taktne izlaze. Taktna brzina se odredjuje na isti način kao kada koristite podrazumevanu Clock Enables opciju. Trebalo bi da očekujete minimalnio košenje ivice takta (clock skew) u poredjenju sa Clock Enables opcijom. 30

31 4 Automatsko generisanje koda System Generator automatski kompajlira dizajn u reprezentaciju niskog nivoa. Način na koji System Generator kompajlira model može da varira, i zavisi od podešavanja u Systeme Generator bloku modela. Osim što generiše HDL opis hardvera alat generiše pomoćne fajlove. Neki od fajlova (npr,. projektni fajl, fajl ograničenja) pomažu alatu za unos konfigiracionog fajla u FPGA komponentu ( downstream), dok se drugi koriste za verifikaciju dizajna (npr., VHDL testbench). Kompajliranje i simulacija korišćenjem System Generator bloka Rezultati kompajliranja Opisuje kako da koristite System Generator blok da bi kompajlirali dizajn u ekvivalentni HDL niskog nivoa Opisuje fajlove niskog nivoa koji se generišu od strane System Generator-a HDL Testbench Opisuje VHDL testbenč koji System Generator generiše 4.1 Kompajliranje i simulacija korišćenjem System Generator bloka System Generator automatski kompajlira projekte u odgovarajuću reperezentaciju niskog nivoa. Projekti se kompajliraju i simuliraju korišćenjem System Generator bloka. Ovo poglavlje opisuje kako se koristi ovaj blok. Da bismo uopšte putem System Generator-a simulirali dizajn ili ga translira u hardver, u dizajn mora da se uključi System Generator blok. Zato kada se kreira novi dizajn preporuka je da se odmah na početku doda System Generator blok. System Generator blok je član Xilinx-ovih Blockset biblioteka Basic Elements i Tools. Kao što je slučaj sa svim ostalim Xilinx-ovim blokovima, System Generator blok može da se nadje u Index-u biblioteka. Svaki dizajn mora da sadrži najmanje jedan System Generator blok, ali takodje može da sadrži više njih na različitim nivoima (jedan po nivou). System Generator blok koji je ispod drugog u hijerarhiji je slave; prvi je uvek master. Područije delovanja System Generator bloka sadrži nivoe hijerarhije u kojima je on ugradjen i sve sisteme ispod tog nivoa. Neki od parametra (npr., Simulink System Period) mogu da se specificiraju jedino u master-u. Nakon što se doda blok System Generator, moguće je da se specificira kako bi trebalo generator koda i simulacija da se opsluže. Dijalog je prikazan dole: 31

32 4.2 Tip kompajliranja i dugme za generisanje (Generate) Pritiskom na dugme Generate dajemo nalog System Generator-u da kompajlira delove dizajna u ekvivalentan izlaz niskog nivoa. Deo koji se kompajlira je podstablo u čijem se korenu nalazi podsistem koji sadrži dati blok (da bi se kompajlirao unešeni dizajn koristi se System Generator blok koji se smešta na vrh dizajna). Tip kompajliranja (pod opcijom Compilation) odredjuje tip rezultata koji bi trebalo da se generiše. Mogući tipovi su: Dva tipa netliste, HDL Netlist i NGC Netlist Bitstream generiše FPGA konfiguracioni fajl koji je spreman za unos na platformi FPGA hardvera. EDK Export Tool za eksportovanje ka Xilinx Embedded Development Kit-u raznih varijanti hardverske kosimulacije, i Timing Analyzing izveštaj o vremenskoj analizi. HDL Netlist je tip koji se najčešće koristi. U ovom slučaju, rezultat je kolekcija HDL i EDIF fajlova, i nekoliko pomoćnih fajlova koji pojednostavljuju dowstream procesiranje. Pomenuta kolekcija fajlova je spremna za procesiranje od strane alata za sintezu (npr., XST), a onda dolazi na red alat za punjenje dizajna u FPGA komponentu. (tj., ngdbuild, map, par, i bitgen) kako bi se generisao konfiguracioni fajl za Xilinx FPGA. Fajlovi koji se generišu su sa više detalja opisani u Compilation Results. NGC Netlist je slična HDL Netlist-i samo što su rezultujući fajlovi tipa NGC umesti HDL. Napomena: NGC fajl je netlista koja sadži i podatke logičkog dizajna i ograničenja. Ovaj fajl je zamena za EDIF(*1) i NCF(*2) fajlove. 32

33 *1: EDIF = Electronic Data Interchange Format. An industry standard file format for specifying a design netlist. *2: NCF = Netlist Constraints File. ovaj fajl se najčešće koristi da definiše ograničenja pri projektovanju u šematik editoru i alatima drugih proizvodjača Kada se odabere hardverska kosimulacija, onda System Generator generiše FPGA konfiguracioni fajl koji je spreman da se izvršava na ciljnoj FPGA platformi. Pojedinačne platforme zavise od varijante izbora. Na primer, kada je varijanta izbora Hardware Co-simulation > XtremeDSP Development Kit > PCI and USB, generisani konfiguracioni fajl je prilagođen razvojnim pločama iz serije XtremeDSP. System Generator takodje generiše hardverski kosimulacioni blok koji se povezuje sa bitstream. Ovaj blok ima mogućnost da učestvuje u Simulink simulaciji. On je funkcionalno ekvivalentan delu dizajna iz koga je proistekao, ali se implementira u hardver putem svog bitstream-a. U simulaciji, blok dostavlja podatke koji su rezultat proračuna u radnom hardveru. Preostali parametri kompajliranja su opisani u sledećoj tabeli. Neki od njih su dostupni samo kada je izabran tip kompajliranja HDL Netlist. Na primer, mesto pina za takt ne može da se odabere za kompajliranje hardversku kosimulacije zato što je njegova pozicija različita za svaku hardversku platformu FPGA. Control Part Target Directory Radni direktorijum Synthesis Tool Hardware Description Language (Jezik za opis hardware-a) Create Testbanch (Kreiranje testbenča) Import As Configurable (Importuj kao konfigurabilni) FPGA Clock Period Clock Pin Location Multirate Implementation Opis Definiše FPGA deo koji će da se koristi Definiše gde bi trebalo da System Generator upiše rezultate kompilacije. Zbog toga što System Generator i FPGA alati za fizičko projektovanje tipično kreiraju mnogo fajlova najbolje je da kreirate poseban radni direktorijum Specificira alat koji će se koristiti za sintezu projekta Izbor su Synplify, SynplifyPro i Xilinx XST Specifira jezik koji se koristi za opis HDL netlist-e projekta. Izbor su VHDL i Verilog Ovim se daje nalog System Generator-u da kreira HDL testbenč. Simuliranje testbenča u HDL simulatoru poredi simulacione rezultate Simulinka sa onim dobijenim iz kompajlirane verzije projekta. Da bi konstruisao test vektore, System Generator simulira projekat u Simulink-u i pamti vrednosti vidjene na gateway-u. Vršni HDL fajl za testbenč je nazvan <name>_testbanch.vhd/v, gde je name ime koje proističe iz dela dizajna koji se testira. Ovim se nalaže System Generator-u da uradi dve stvari: 1) konstruiše blok na koji će rezultati kompilacije da se povežu 2) konstruiše konfigurabilni podsistem sastavljen od bloka i originalni podsistem iz koga je proistekao Definiše period hardverskog takta u nanosekundama. Vrednost koja se unosi ne mora da bude celobrojna. Period takta se ugradjuje u alat za implementaciju kroz fajl ograničenja, gde se definiše pod opcijom globalni PERIOD. Višetaktni signali se ograničavaju na celobrojni umnožak ove vrednosti. Definiše lokacije pina namenjenje za takt hardware-a. Ova informacija se takodje prenosi kroz fajl ograničenja Clock Enable (default): Kreira kolo za generisanje signala dozvole takta koji se koristi u dizajnu sa višestrukim brzinama rada Clock Generator (DCM): Kreira takt wrapper-a sa DCM-om koji može da 33

34 pobudjuje do tri taktna porta na različitim brzinama za Virtex-4 i Virtex-5 i do dva taktna porta za Spartan-3A DSP. Usmeravanje taktnih signala na izlazne portove DCM-a se definiše sledećom prioritetnom šemom: CLK0>CLK2x>CLKdv>CLKfx Expose Clock Ports: Ova opcija prenosi višestruke taktne portove na vrh System Generator dizajna tako da projektant može da koristi višestruke sinhronizacione taktne ulaze Provide clock enable clear pin Ovim se daje nalog System Generator-u da kreira ce_clr port na vrh takt wrapper-a. Signal ce_clr se koristi kao reset signal za kolo koje generiše signal dozvole taktovanja. Mogućnost da resetujete logiku za generisanje takta dozvole obezbedjuje projektantu mogućnost da dinamički kontroliše početak uzorkovanja na stazi podataka Simulink-ov sistemski taktni period U okviru dijaloga bloka System Generator može da se specificira vrednost Simulink System Period. Izabrana vrednost ukazuje na osnovnu brzinu, u sekundama, na kojoj simulacije dizajna treba da rade. Period mora da bude umnožak svih perioda uzorkovanja korišćenih u dizajnu. Na primer, ako dizajn sadrži blokove čiji je period uzorkovanja 2, 6, i 8, onda najveći prihvatljivi period uzorkovanja je 2, mada su i druge vrednosti kao što su 1 i 0.5 takodje prihvatljive. Periodi uzorkovanja nastaju na tri načina: neki su specificirani eksplicitno, neki se proračunavaju automatski, a neki nastaju implicitno u okviru blokova koji uključuju promenu unutrašnje brzine. Pre nego što se izvrši simulacija i kompajliranje dizajna, System Generator proverava da li je sistemski period adekvatno dodeljen u svakom periodu uzorkovanja. Ako se utvrdi problem, System Generator otvara dijalog sugerišući odgovarajuće vrednosti. Klikom na dugme označeno sa Update u okviru System Generator-a prihvataju se vrednosti koje se sugerišu. Klikom na dugme označeno sa View Conflict Summary u mogućnosti smo da vidimo sumarni prikaz konflikta perioda. Ako se dozvoli System Generator-u da ažurira period, simulaciju ili kompajliranje moraju ponovo da se izvrše. Postoji mogućnost da se ugradi System Generator model koji nije konzistentan zato što je njegov period neuskladjen sa ostalim blokovima u sistemu. (Na primer, neki od blokova zahtevaju da rade na sistemskoj brzini. Pobudjivanje ovih blokova većom brzinom dovodi do nekonzistentnosti modela). Ukoliko čak i nakon ažuriranja perioda sistema, System Generator izveštava da postoji konflikt, model ostaje nekonzistentan i mora da se koriguje. Kontrola perioda je hijerarhijska Prikaz blok ikona Opcije koje su ponudjene kao kontrolni elementi utiču na prikazivanje blok ikona na modelu. Nakon kompajliranja modela (koji se dogadja kada se pritisne Generating, Simulating, ili Control-D) mogu da se prikažu različite informacije o bloku odabranog modela u zavisnosti od toga koja je opcija odabrana. Default prikazane su osnovne informacije o smeru porta Sample rates prikazana je brzina uzorkovanja za svaki od portova Pipeline stage- prikazan je broj protočnih stepeni HDL port names- prikazana su imena portova Input data types- prikazani su ulazni tipovi podataka za svaki od portova Output data types- prikazani su izlazni tipovi podataka za svaki od portova Hijerarhijsko upravljanje Upravljanje Simulink System Period-om blokova System Generator je hijerarhijskog tipa. Hijerarhijsko upravljanje na System Generator bloku primenjuje se na delove dizajna u okviru oblasti rada bloka, ali može se promeniti od strane drugih System Generator blokova koji su dublje u dizajnu. Na primer, pretpostavimo da je Simulink System Period postavljen u System Generator bloku koji je na 34

35 vrhu dizajna, ali se promeni u okviru System Generator bloka koji je u podsistemu S. U tom slučaju podsistem S će imati drugi taktni period, ali će ostatak dizajna koristiti postavljeni period na vršnom nivou Rezultati kompajliranja Tema diskusije je generisanje fajlova System Generator-a niskog nivoa kada se u okviru System Generator bloka selektuje HDL Netlist i klikne na dugme Generate. Fajlovi koji se tom prilikom generišu su tipa HDL, NGC i EDIF i generišu se u cilju implementacije dizajna. Dodatno, System Generator generiše pomoćne fajlove koji pojednostavljuju dowstream procesiranje, tj. omogućavaju učitavanje dizajna u Project Navigator, simulaciju korišćenjem HDL simulatora, i sintezu korišćenjem različitih alata za sintezu. Svi fajlovi se smeštaju u radni direktorijum specificiran System Generator blokom. Ako se ne zahteva testbenč onda su ključni fajlovi generisani od strane System Generator-a sledeći: Ime fajla ili tip <design>.vhd/.v <design>_cw.vhd/.v.edn i.ngc fajlovi Opis Ovu formu zapisa sadrži većina HDL-ova za projekat Ovo je forma zapisa HDL omotača za <design>_files.vhd/.v. On generiše signal takta i signal takta dozvole Sem generisanja HDL-a, System Generator koristi CORE generator (coregen) da bi implementirao pojedine delove dizajna. Coregen generiše EDIF fajlove čije ime tipično bude nešto kao: multiplier_virtex2_6_0_ b830b.edn Ostali potrebni fajlovi mogu da se isporuče kao.ngc fajlovi globals <design>_cw.xcf (ili.ncf) <design>_cw.ise hdlfiles synplify_<design>.prj, ili xst_<design>.pr vcom.do Ovaj fajl sadrži parove ključ/vrednost koji opisuju projekat i namenjeni su korišćenju u Perl skriptama Ovaj fajl sadrži ograničenja za tajming i lokaciju porta. Ona se koriste od strane Xlinx alata za sintezu XST i Xilinx implementacionog alata. Ako se koristi neki drugi alat onda se sufiks menja u.ncf Ovaj fajl omogućava HDL i EDIF fajlovima da budu ugradjeni u Xlinx-ov razvojno okruženje Project Navigator Sadrži kompletnu listu HDL fajlova koji su generisani od strane System Generator-a Ovi fajlovi omogućavaju kompajliranje dizajna pomoću izabranog alata za sintezu. Ovo je skript koji omogućava kompajliranje dizajna radi funkcionalne simulacije u ModelSim-u. Ako se pak testbenč zahteva, onda, pored prethodno navedenih fajlova System Generator generiše fajlove koji obezbedjuju poredjenje simulacionih rezultata. Komparacije se vrše izmedju rezultata simulacije iz Simulink-a i odgovarajućih rezultata iz ModelSim-a. Dodatni fajlovi su sledeći: Ime fajla ili tip *.dat fajlovi <design>_cw.vhd/.v Opis Sadrže rezultate simulacije iz Simulink-a Ovo je testbenč koji okružuje dizajn. Kada se simulira u ModelSim-u ovaj testbenč poredi 35

36 vsim.do pn_behavioral.do pn_postmap.do pn_postpar.do pn_posttranslate.do rezultate simulacije iz Simulink-a sa onim dobijenim od strane ModelSim-a Skript koji se koristi u ModelSim-u da bi izvršio testbanch simulaciju Ovi fajlovi omogućava startovanje simulacije u ModelSim-u iz Project Navigator-a 4.3 Korišćenje fajlova projektinih ograničena u System Generator-u Kada se dizajn kompajlira, System Generator generiše constraint file koji obaveštava alate za post-procesiranje kako da obrade dizajn. Ovaj način omogućava alatu da generiše visoko-kvalitetnu implementaciju, i da to čini koristeći znatno manje vremena. Ograničenja obezbedjuju sledeće: Period sistemskog takta Brzina, u vezi sa sistemskim taktom, na kojoj različiti delovi dizajna moraju da rade Lokacije pinova na koje se vezuju portovi Brzina na kojoj portovi moraju da rade Format fajla projektnih ograničenja zavisi od alata za sintezu koji je specifiran u System Generator bloku. Kada se selektuje XST, fajl je napisan u XCF formatu; za Synplify i Synplify Pro koristi se NCF format. Odgovarajuće ekstenzije su.xcf i.ncf Period sistemskog takta Period sistemskog takta (tj., period najbržeg hardware-skog takta u dizajnu) može da se specificira u System Generator bloku. System Generator upisuje ovaj period u fajl ograničenja. Alati za post-procesiranje koristi zadati period kao cilj kada implementira dizajn Ograničenja vezana za višetaktne sisteme Mnogi dizajni sadrže delove koji rade na različitim taktnim brzinama. Za najbrže delove, koristi se period sistemskog takta. Za ostale delove, period takta je celobrojni umnožak perioda sistemskog takta. Važno je da alati za konfigurisanje FPGA znaju koju brzinu svaki deo dizajna mora da zadovolji. Sa ovim informacijama, efikasnost i efektivnost alata se značajno povećava, tako što se smanjuje vreme kompajliranja i poboljšava hardverska realizacija. Podela dizajna na delove i brzina na kojoj svaki od delova mora da radi, zadaje se u fajlu ograničena IOB (Input/Output Block) tajming i rasporedjivanje ograničenja Kada se prevedu u hardver System Generator-ovi blokovi Gateawy-In i Gateway-Out postaju ulazni i izlazni portovi. Lokacija ovih portova i brzina na kojoj oni moraju da rade zadaje se kao parametar u Gateway-In i Out dialog box-u. Za više informacija o Gateway-In i Gateway-Out blokovima pogledajte opis u okviru Simulink modela. Lokacija porta i brzina se specificiraju u fajlu ograničenja putem IOB tajminga Primer projektnog ograničenja Na narednoj slici prikazan je jedan jednostavan višetaktni dizajn i ograničenje koje System Generator generiše za njega. 36

37 Up-sampler udvostručava brzinu, a down-sampler je konfigurisan kao delitelj brzine sa faktorom 3. Pretpostavimo da je sistemski taktni period 10 ns. Onda su taktni periodi: 10 ns za FIR, 20 ns za ulazni registar i 30 ns za izlazni registar. Sledeći tekst opisuje sadržaj fajla ograničenja koji definiše ove informacije. Linija koja ukazuje da je sistemski takt period 10 ns je sledeća: # Global period constraint NET "clk" TNM_NET = "clk_392b7670"; TIMESPEC "TS_clk_392b7670" = PERIOD "clk_392b7670" 10.0 ns HIGH 50 %; Da bismo definisali vremenska ograničenja, blokovi u dizajnu se dele u tajming grupe. Dva bloka su u istoj tajming grupi ako i samo ako rade na istim brzinama uzorkovanja. U ovom projektu postoje tri tajming grupe sa odgovarajućim brzinama. Način kreiranja fajla ograničenja ukazuje da nije neophodno ime za najbržu grupu. Ostale grupe su sa imenima ce_2_392b7670_group i ce_3_392b7670_group, koje odgovaraju periodama od 20 ns i 30 ns, respektivno. FIR radi na sistemskoj (tj., najvećoj) brzini i prema tome za njega važi globalno ograničenje, kako je prikazano u prethodnom delu. Grupa ce_2_392b7670_group sadrži blokove koji rade na polovini sistemske brzine, tj. ulazni registar i upsampler. Svaki od blokova u ovoj grupi pobudjuje se signalom takta dozvole koji je nazvan ce2_sysgen. Vremensko ograničenje za ovu grupu je sledeće: # ce_2_392b7670_group and inner group constraint Net "ce_2_sg_x0*" TNM_NET = "ce_2_392b7670_group"; TIMESPEC "TS_ce_2_392b7670_group_to_ce_2_392b7670_group" = FROM"ce_2_392b7670_group" TO "ce_2_392b7670_group" 20.0 ns; Opsluživanje takta u HDL-u od strane System generator-a Ova tema opisuje kako System Generator opslužuje takt ka HDL-u koji je generisao. Pretpostavimo da se dizajn zove <design>. Kada System Genarator kompajlira dizajn, on kreira kolekciju HDL entiteta ili modula. Entitet najvišeg nivoa, koji je nazvan <design>, smešten je u fajlu koji se zove <design>. vhd/.v. Takt i signal dozvole pojavljuju se u paru kroz sve nivoe u HDL-u. Tipična imena za taktne signale su clk1, clk2 i clk3,a imena odgovarajućih signala dozvole su ce_1, ce_2 i ce_3, respektivno. Ime ukazuje na frekvenciju za par takt/signal dozvole. Logika pobudjivana od strane clk1 i ce_1 radi na sistemskoj (tj., najbrže) frekvenciji, dok logika pobudjivana sa (recimo) clk2 i ce_2 radi na polovini sistemske frekvencije. Taktovi i signali dozvole se ne generišu u okviru vršnog entiteta nazvanog <design> ili bilo kog entiteta nižeg nivoa; umesto toga, oni se tretiraju kao ulazni signali u vršni entiet. Naravno, mora da postoji način da se taktovi i signali dozvole generišu. System Generator kreira zasebne taktne omotače (opisano u fajlu nazvanom <design>_cw_.vhd/.v) koji ovo obezbedjuju. Ovaj omotač predstavlja spoljašnje okruženje prethodno opisanim fajlovima. Razlog za to je fleksibilnost.u nekim aplikacijama, prethodno generisani HDL opisi se dodaju novom većem dizajnu, ali taktni omotač se izostavlja. U tom slučaju, projektant mora da obezbedi dodatna kola za generisanje taktnog domena. 37

38 Ako je, sa druge strane, postojeći taktni omotač generisan u okviru tekuće aplikacije odgovarajući za potrebe nove aplikaciju, onda se on kao takav može uključiti u novi projekat. Kao dodatna pogodnost, System Generator generiše DCM wrapper (opisan u fajlu <design>_dw_.vhd/.v) koji onda okružuje taktni omotač, kao koncetrični krugovi. Kada se inkorporira System Generator HDL u veliki dizajn, moguća su sledeća rešenja za izvore takta i signale dozvole: Koristi se HDL koji System Generator kreira, ali se isključi takt i DCM wrapper-e Koriste se HDL koji System Generator kreira i taktni omotač, ali se isključi DCM wrapper Koristi se HDL koji System Generator kreira i koristi se takt i DCM wrapper-e Ako u vaš rad koristite DCM wrapper, potrebno je da promenite ekstenziju fajla sa _vhd ili _v na.vhd ili.v Imena taktova i signala dozvole u System Generator HDL ukazuju na mogućnost da je taktni interval jedinstven, ali to nije slučaj. Da bismo ovo ilustrovali pretpostavimo da dizajn sadrži taktove clk_1 i clk_2, i pridružene im signale dozvole ce_1 i ce_2, respektivno. Naime, projektant može da očekuje da bi hardver korektno radio ako bi se ce_1 i ce_2 signali vezali na visoko, a clk_2 bio pobudjivan taktnim signalom čija je taktna frekvencija polovina taktne frekvencije takta clk_1. Za većinu System Generator dizajna ovo neće raditi. Umesto toga clk_1 i clk_2 moraju da se pobudjuju istim taktom, ce_1 mora da bude postavljen na visok naponski nivo i ce_2 mora da se menja s polovinom taktne frekvencije taktova clk_1 i clk_2. Taktni omotač (wrapper) sadrži dve komponente: jednu komponentu za sam dizajn i jednu komponentu za takt drajvera koji generiše taktove i signala dozvole. Takt drajvera je sadržan u fajlu pod imenom <design>_cw.vhd/.v. Logika u okviru <design>_cw generiše ce_x signale. Opciono ce_clr port bi trebalo da se generiše ako je dizajn generisan sa izabranom opcijom Provide clock enable clear pin na System Generator bloku. Portovi koji nisu taktovi ili signali dozvole prolaze kroz spoljašnji taktni omotač. Šematski, taktni omotač izgleda kao dijagram na sledećoj slici Keširana jezgra System generator koristi jezgra generisana od strane Xilinx CORE Generator-a (coregen) da bi implemetirao pojedine delove dizajna. Generisanje jezgara može da bude dugotrajan proces, tako da System Generator, olakšava procees time što privremeno pamti (kešira) svako generisano jezgro. Pre nego što se coregen pozove, System Generator pretražuje keš i ukoliko u njemu pronađe traženo jezgro, System Generator ga ponovo koristi. Podrazumevano, keš se nalazi u direktorijumu $TEMP/sg_core_cashe. Maksimalan broj jezgara u kešu Sistem Generatora ograničen je na Kada dostigne ovu granicu, System Generator briše keširana jezgra da bi oslobodio prostor za nova. Sistemske promenljive se koriste u cilju promene lokacije keša i veličine keša. Promenljive su opisane u narednoj tabeli Sistemske promenljive Opis 38

39 (Environment variables) SGCORECASHE SGCORECACHELIMIT Lokacija gde su smešteni core fajlovi. postavljanjem ove promenljive na blanko string nalaže se System Generator-u da ne kešira core-ove Maksimalan broj core-ova u kešu HDL testbenč Obično, dizajn kreiran System Generator-om je bit i cycle-accurate, tako da su rezultati Simulink simulacija ekvivalentni sa onim što vidimo u hardveru. Postoji, ipak, trenutak kada je korisno da uporedimo rezultate Simulink simulacije sa onima dobijenim korišćenjem HDL simulatora. Naročito, ovo ima smisla kada dizajn sadrži blokove tipa crna kutija (black boxes). Ovo se obezbedjuje izborom opcije Crete Testbench u okviru bloka System Generator-a. Pretpostavimo da je dizajn nazvan <design>, i da je System Generator blok smešten na vrh dizajna. Pretpostavimo takodje da je u bloku polje Compilation postavljeno na HDL Netlist i da je izabrana opcija Create Testbench. Kad se klikne na dugme Generate, System Generator, osim uobičajenih dodatno generiše i sledeće fajlove: 1. Fajl pod imenom <design>_tb.vhd/.v koji sadrži entitete HDL testbenča 2. *.dat fajlove koji sadrže test-vektore za korišćenje u simulacijama HDL testbenča 3. Skriptove vcom.do vsim.do koji mogu da se koriste u ModelSim da bi kompajlirali i simulirali testbenč uporedjujući Simulink test-vektore sa onim koji se generišu u HDL-u. System Generator genereše.dat fajlove tako što beleži vrednosti koje prolaze kroz gateways. U HDL simulaciji, ulazne vrednosti iz.dat fajlova se koriste kao stimulansi, a izlazne su očekivani rezultati. Testbenč je jednostavni omotač koji tokom simulacije, stimulansima pobuđuje HDL za posmatrani dizajn i poredi HDL rezultate sa onima koji se očekuju. 4.4 Kompajliranje MATLAB M-fajlova u hardver System Generator obezbedjuje neposrednu podršku za MATLAB standardne fajlove kroz MCode blok. MCode blok primenjuje ulazne vrednosti na neku M-function koristeći Xilinx-ov tip podataka tipa fiksni zarez (fixed-point). Nova izlazna vrednost se dobija jednom za svaki period uzorkovanja. Blok MCode može da poseduje i unutrašnje stanje korišćenjem postojane promenljive stanja. Ulazni portovi bloka su odredjene ulaznim argumentima specificiranim M-funkcijom, a izlazni izlaznim argumentima M-funkcije. Takođe, MCode pruža mogućnost za realizaciju konačnog automata, upravljačke logike i složenih izračunavanja. U cilju konstruisanja MCode bloka neophodno je da se napiše M-function-a. M-file mora da bude u direktorijumu gde je i fajl modela koji će da koristi M-file ili u direktorijumu na MATLAB putanji. Ovaj tutorial sadrži deset primera koji ilustruju korišćenje bloka Mcode: Primer 1. Selector - pokazuje kako da implementiramo funkciju koja vraća maksimalnu vrednost od više ulaznih podataka. Primer 2. Arithmetic Operations - pokazuje kako da implementiramo jednostavne aritmetičke operacije. Primer 3. Complex Multiplier with Latency - pokazuje kako da realizujemo složen množač sa kašnjenjem. Primer 4. Shift operations - pokazuje kako da implementiramo operacije pomeranja Primer 5. Passing Parameters into Mcode Block - pokazuje kako da prosledimo parametre bloku MCode blok 39

40 Primer 6. Optional Input Ports - pokazuje kako da implementiramo opcione ulazne portove na bloku Mcode. Primer 7. Finite State Machines - pokazuje kako da implementiramo konačni automat Primer 8. Parameterizable Accumulator - pokazuje kako da ugradimo parametrizovan akumulator Primer 9. FIR Example and System Verification - pokazuje kako da modelujemo FIR blok i kako da izvršimo njegovu verifikaciju. Primer 10. RPN Calculator - pokazuje kako da modelujemo RPN (Reverse Polish notation) kalkulator zasnovan na stack mašini Primer 11. disp Function - pokazuje kako da štampamo vrednosti promenljivih. Napomena: U Inverznoj Polish Notaciji (RPN) ili tzv, postfiks notaciji operatori se pišu nakon operanada. Na primer, izraz napisan u konvencionalnoj infiks notaciji "5 + ((1 + 2) * 4) 3" u RPN notaciji se piše kao * + 3. Ovakav način zapisa pogodan je za realizaciju u tzv. nulto-adresnim mašinama koje izvršavaju instrukcije korišćenjem magacina (stack). To jest, operandi se smeštaju u magacin (po principu LIFO) i kada se operacija izvršava njen operand se uzima sa vrha magacina, a dobijeni rezultat se smešta nazad u magacin Prva dva primera su u mcode_block_tutorial.mdl fajlu iz direktorijuma example/mcode_block u okviru instalacije System Generator-a. Primeri 3 i 4 su u mcode_block_tutorial2.mdl fajlu. Primeri 5 i 6 su u mcode_block_tutorial3.mdl fajlu. Primeri 7 i 8 su u mcode_block_tutorial4.mdl fajlu. Primer 9 je mcode_block_verify_fir.mdl. Primer 10 je mcode_block_rpn_calculator.mdl Selector Ovaj primer opisuje upravljačku jedinicu staze podataka koja određuje veću od dve ulazne vrednosti. M-function se specificira na sledeći način i snimljena je u M-file xlmax.m: function z = xlmax(x, y) if x > y z = x; else z = y; end Fajl xlmax.m trebalo bi da bude snimljen ili u istom direktorijumu gde je i fajl modela ili na MATLAB vršni direktorijum. Pošto je xlmax.m snimljen na odgovarajuće mesto naredni korak je da Mcode blok unesemo u simulink model, otvorimoe dijalog za unos parametara bloka i unesemo xlmax u MATLAB Function polje. Nakon klika na dugme OK, blok dobija dva ulazna porta x i y i jedan izlazni, z. 40

41 Sine Wave 1 Sine Wave 2 In x In y x z y max example Out input 1 Out input 2 Out select_max xlmax result System Generator (c) Copyright Xilinx, Inc. #-- All rights reserved. Out1 In1 Out2 Out3 In2 Out4 simple arith example Out z1 Out z2 Out z3 Out z4 simple arith results Double Click for Copyright Notice Sledeća slika prikazuje kako izgleda blok nakon kompajliranja modela. Može se videti da blok proračunava i postavlja neophodan podatak tipa fixed-point na izlazni port. 41

42 1 x 2 y x y xlmax xlmax block z 1 z Konačni automat Ovaj primer pokazuje kako se kreira konačni automat korišćenjem MCode. Automat prikazan na donjoj slici detektuje pojavu sekvence 1011 u povorci ulaznih bitova. M-function koja se koristi od strane MCode bloka sadrži funkciju prelaza koja određuje sledeće stanje automata na osnovu tekućeg stanja i trenutnih vrednosti ulaza. Za razliku od primera 3, M-function u ovom primeru definiše u kontinuitetu promenljivu stanja za čuvanje tekućeg stanja konačnog automata u MCode blok. Sledeći M-code koji definiše funkciju detect1011_w_state smeštena je u fajlu detect1011_w_state.m. function matched = detect1011_w_state(din) % This is the detect1011 function with states for detecting a % pattern of seen_none = 0; seen_1 = 1; seen_10 = 2; seen_101 = 3; % initial state, if input is 1, switch to seen_1 % first 1 has been seen, if input is 0, switch % seen_10 % 10 has been detected, if input is 1, switch to % seen_1011 % now 101 is detected, is input is 1, 1011 is % detected and the FSM switches to seen_1 % the state is a 2-bit register persistent state, state = xl_state(seen_none, {xlunsigned, 2, 0}); % the default value of matched is false matched = false; switch state case seen_none if din==1 state = seen_1; else state = seen_none; end case seen_1 % seen first 1 if din==1 state = seen_1; else state = seen_10; end case seen_10 % seen 10 if din==1 state = seen_101; else % no part of sequence seen, go to seen_none state = seen_none; 42

43 end end case seen_101 if din==1 state = seen_1; matched = true; else state = seen_10; matched = false; end Sledeći dijagram prikazuje podblok automata bloka MCode nakon kompajliranja; MCode blok koristi M- function detect1011_w_state. Detect 1011 Example : This example shows how to implement a state machine to detect a sequence '1011'. Overlapping sequences are allowed so that if the input sequence is the machine produces an output of Input Signal From Workspace In Input CurrentState Inputs Outputs Mealy State Machine Out Current State Out Found Current State Output Output of Block Ram State Machine System Generator??? State and Output Table: =================== Input Current State ,0 1,0 1 2,0 1,0 2 0,0 3,0 3 2,0 1, Next State, Found Detect 1011 State Machine FIR Ovaj primer pokazuje kako se MCode blok koristi za modeliranje digitalnog filtra tipa FIR. Takodje, pokazano je kako obaviti sistemska verifikacija sa MCode blokom. 43

44 This example demonstates how to use vector state variables. It also shows how to use the MCode block to do system verification. System Generator In Gateway In x simple _fir y Out fir output low perform fir Scope 1 a b error_ne eq eq Out error when ne x fir_transpose y Out transpose fir output transpose fir Model sadrži dva FIR bloka. Oba su modelirana sa MCode blokom i oba se mogu sintetizovati. Sledeće dve funkcije modeluju ova dva bloka. function y = simple_fir(x, lat, coefs, len, c_nbits, c_binpt, o_nbits, o_binpt) coef_prec = {xlsigned, c_nbits, c_binpt, xlround, xlwrap}; out_prec = {xlsigned, o_nbits, o_binpt}; coefs_xfix = xfix(coef_prec, coefs); persistent coef_vec, coef_vec = xl_state(coefs_xfix, coef_prec); persistent x_line, x_line = xl_state(zeros(1, len-1), x); persistent p, p = xl_state(zeros(1, lat), out_prec, lat); sum = x * coef_vec(0); for idx = 1:len-1 sum = sum + x_line(idx-1) * coef_vec(idx); sum = xfix(out_prec, sum); end y = p.back; p.push_front_pop_back(sum); x_line.push_front_pop_back(x); function y = fir_transpose(x, lat, coefs, len, c_nbits, c_binpt, o_nbits, o_binpt) coef_prec = {xlsigned, c_nbits, c_binpt, xlround, xlwrap}; out_prec = {xlsigned, o_nbits, o_binpt}; coefs_xfix = xfix(coef_prec, coefs); persistent coef_vec, coef_vec = xl_state(coefs_xfix, coef_prec); persistent reg_line, reg_line = xl_state(zeros(1, len), out_prec); 44

45 if lat <= 0 error('latency must be at least 1'); end lat = lat - 1; persistent dly, if lat <= 0 y = reg_line.back; else dly = xl_state(zeros(1, lat), out_prec, lat); y = dly.back; dly.push_front_pop_back(reg_line.back); end for idx = len-1:-1:1 reg_line(idx) = reg_line(idx - 1) + coef_vec(len - idx - 1) * x; end reg_line(0) = coef_vec(len - 1) * x; Parametri se konfigurišu na sledeći način: U cilju potvrde (verifikacije) da su funkcionalnosti ova dva bloka jednake, koristimo još jedan MCode blok da bi poredili izlaze ova dva bloka. Ako dva izlaza nisu jednaka u bilo kom trenutku blok za proveru greške će dati izveštaj o grešci. Sledeća funkcija vrši proveru greške: function eq = error_ne(a, b, report, mod) persistent cnt, cnt = xl_state(0, {xlunsigned, 16, 0}); switch mod case 1 eq = a==b; case 2 eq = isnan(a) isnan(b) a == b; case 3 eq = ~isnan(a) && ~isnan(b) && a == b; 45

46 otherwise eq = false; error(['wrong value of mode ', num2str(mod)]); end if report if ~eq error(['two inputs are not equal at time ', num2str(cnt)]); end end cnt = cnt + 1; Blok se konfiguriše na sledeći način: 4.5 Korišćenje FDATool u aplikacijama digitalnog filtra 46

47 Sledeći primer pokazuje jedan od načina specificiranja, implementacije i simulacije FIR filtra korišćenjem FDATool bloka. FDATool blok se koristi za definisanje koeficijenata i red filtra, a Xilinx Blocksets se koristi za implementaciju FIR filter korišćenjem jedne MAC (Multiply-ACcumulate) jedinice. Kvalitet frekventnog odziva se određuje njegovim poredjenjem sa Simulink-ovim modelom filtra dvostruke-preciznosti. Iako se u ovom primeru koristi jedna MAC za realizaciju FIR filtra, preporučujemo da proučite DSP Reference Library model koji se nalazi u Xilinx Reference Blockset-u. DSP Reference Library sadrži multi-mac kao i više-kanalni (multi-channel) implementacije filtera sa različitim tipovima memorije koje se koriste za realizaciju. Demo aplikacija koja je uključena u System Generator demos library takodje pokazuje efikasan način implementacije interpolacionog filtra zasnovanog na MAC jedinici. Da bismo videli pomenute demo aplikacije ukucajmo sledeću komandu u MATLAB komandnom prozoru: >>demo blockset xilinx onda izaberimo FIR filtriranje: Polyphase 1:8 filter korišćenjem SRL16Es iz liste demo dizajna 47

48 Polyphase 1:8 MAC-based FIR Using SRL 16Es Step In filter in d z -1 q Data_In Data_Out d z -1 q Out filter out Filter Output RRC Filter (c) Copyright Xilinx, Inc. #-- All rights reserved. Double Click for Copyright Notice System Generator Resource Estimator Double click for more information Prikaz dizajna Kao izvor podataka za pobudu dve različite realizacije FIR filtra, u ovom dizajnu se koristi blok generator slučajnih brojeva iz biblioteke DSP Blockset : Prvi filter je onaj koji bi trebalo da se implementira u FPGA. To je FIR filter za rad s podacima u fiksnom zarezu realizovan pomoću jednog bloka memorije sa dvostrukim pristupom i jedne MAC jedinice. Drugi filter se tretira kao referentni filter. Radi se o FIR filteru za rad s podacima dvostrukepreciznosti, tipa direct-form II transpose filter. Frekventni odziv svakog filtra se zatim prikazuje prenosna funkcija. MAC Based FIR filter Random Source Din 0 Taps din_quat MAC Based FIR Dout In1 Out1 In2 Out2 NaN Filter B-Xfer -nan MAC FIR Xfer Scope B-FFT MAC vs DF 2T Filter Specification Sampling frequency : Fs = 44.1 KHz Passband frequency : Fpass = 6 KHz Stopband frequency : Fstop = KHz Passband ripple : Apass = 1dB Stopband ripple : Astop = 48 db DF2T Reference Filter B-Xfer -nan DF2T Xfer Scope 1 This design example implements a 43 tap FIR Filter with a MAC engine and a Dual Port Ram used for data and coefficient storage. The filter is a Low Pass filter with a cut off frequency of 6 Khz. The Sampling Frequency is 44.1 Khz. System Generator 48

49 4.5.2 Generisanje koeficijenata 1. U MATLAB-ovo polje Current Directory unesemo sledeće: <sysgen_tree>/sysgen/examples/mac_fir. 2. Otvorimo model projekta tako što ćemo ukucati mac_df2t u MATLAB-ov komandni prozor Za potrebe ovog tutorijala, promenljive coef, coef_width, coef_binpt, data_width, data_binpt i Fs nisu definisane. Najpre ove promenljive definišemo u prozoru Mask Editor koji aktiviramo aktiviranjem polja Mask Parameters..., dok definisanje koeficijenata filtra koristimo MATLAB-ov alat FDATool. Potpuno funkcionalni model dostupan je u tekućem direktorijumu i nazvan je mac_df2t_soln.mdl Parametrizacija FIR Bloka zasnovanog na MAC jedinici 1. Najpre se desnim tasterom miša klikne na MAC Based FIR block, a onda izabere Edit Mask kako je to prikazano na narednoj slici 2. Način na koji se dodaju parametri coef, data_width, i data_binpt prikazan je na slici 49

50 4.5.3 Generisanje i dodeljivanje koeficijenata za FIR filter 3. Privuče se i smesti FDATool blok u vaš model iz DSP Xilinx Blockset Library 4. Dvostruko se klikne na FDATool blok i u Filter Design&Analysis Tool se unese sledeća specifikacija koja definiše nisko-propusni filter za audio signale. Frekvencija uzorkovanja: Frekvencija propusnog opsega: Frekvencija ne-propusnog opsega: Treperenje (ripple) u okviru propusnog opsega: Treperenje (ripple) u okviru ne-propusnog opsega 5. Klikne se na dugme Design Filter koje se nalazi u donjem delu otvorenog prozora i na taj način se dobije informacije o redu filtra kao i mogućnost da se analizira njegov amplitudski odziv Takođe, FDATool omogućava prikazivanje faznog odziva, impulsnog odziva, koeficijenate filtra i dr. Za realizaciju prethodno navedene specifikacije filtra za FIR filter sa dubinom od 43-tap-a koristićemo FDATool. Koeficijenti filtra mogu da se prikažu u MATLAB-ovom radnom prostoru pomoću sledeće funkcije: >>xlfda_numerator ('FDATool') Ova funkcija se može iskoristiti i za pronalaženje keficijenata maksimalne i minimalne vrednosti, što je bitno za izbor adekvatne dužine (broja bita) keficijenata i pozicije binarne tačke >>max(xlfda_numerator ('FDATool')) >>min(xlfda_numerator ('FDATool')) U ovom tutorijalu, za predstavljanje keoficijenata koristi se tip podataka Fix_12_12, koji predstavlja 12-bitni broj sa binarnom tačkom koja je levo od dvanaestog bita. Rezultat gore 50

51 navedene funkcije max je da je vrednost najvećeg koeficijenta , što znači da binarna tačka mora da bude pozicionirana levo od bita najveće težine. Kako ovo da shvatimo? Opseg brojeva tipa Fix_12_12 je od -0.5 do Ako pomerite binarnu tačku udesno (korišćenjem broja Fix_12_11 broja) izgubićete jedan bit dinamičkog opsega zato što Fix_12_11 broj ima opseg od -1 do što je mnogo više od potrebne prezentacije koeficijenata. 6. Unesu se vrednosti parametara coef, coef_width, coef_binpt, data_width, data_binpt i Fs kao što je prikazano na narednoj slici Napomenimo da koeficijenti mogu da se snime u fajl i da se kasnije ponovo koriste u nekom drugom projektu Xilinx Filter Block Sledeći blok dijagram pokazuje kako može da se implementira FIR filter zasnovan na MAC-u. U ovoj tački, MAC filter je podešen za 10-bitne označene ulazne podatke (tipa Fix_10_8), 12-bitne označene koeficijente (Fix_12_12) i 43 tapova (stepena). Svi ovi parametri mogu da se modifikuju direktno iz grafičko interaktivnog okruženja MAC bloka. Za smeštanje keficijenata i podataka neophodna 51

52 je memorija. Za potrebe ovog tutorijala nameće se korišćenje memorije sa dvostrukim pristupom sa opcijom kružnog (cirkularnog) RAM bafera. Pri tom, vrednosti odmeraka se upisuju i čitaju preko porta A (RAM mod), a koeficijenti se samo čitaju preko porta B (ROM mod). Blok Multiplier je konfigurisan tako da koristi ugradjen množač dostupan u Xilinx Virtex II i Virtex-II Pro seriji. Zahtevana preciznost za množač i akumulator je funkcija koeficijenata i broja stepena filtra. Pošto se oni fiksiraju tokom projektovanja, to je moguće prilagoditi hardverske resurse specifikacijama filtra. Za akumulator je jedino značajno da ima dovoljnu preciznost (broj bitova) da akumulira maksimalni ulaz nasuprot broju koeficenata filtra koji se računaju na sledeći način: Napomena: Acc_nbits =ceil (log 2 (sum (abs (coef*2)))) U matematici i računarskoj tehnici floor i ceil funkcije prevode realni broj u sledeći najmanji ili sledeći najveći ceo broj. Na primer, floor(x) = je najveći ceo broj x ne veći od x, a ceil(x) = je najmanji ceo broj x ne manji od x. Nakon reseta akumulator se inicijalizuje na tekuću vrednost ulaza, a ne na nulu, što dozvoljava MAC jedinici da obradjuje ulazne podatke bez zastoja. Izlazni registar je neophodan za smeštanje poslednjeg parcijalnog proizvoda, i to u operacijama kada se obradjuje kontinualan ulazni signal (streaming) pošto MAC jedinica ponovo puni svoj akumulator sa dolazećim vrednostima odmah nakon završetka prethodnog proračunavanja. Konačno, konvertor naniže (downsampler) redukuje frekvenciju uzorkovanja prihvatnog registra na željenu frekvenciju uzorkovanja. Blok se konfiguriše sa kašnjenjem kako bi se dobila najefikasnija hardverska implementacija. Brzina konvertora naniže (dowsampler) je jednaka broju koeficijenata Simulacija Kada se simulacija pokrene dobiće se poruka koja je pokazana na narednoj slici. System Generator preuzima svoj ulazni period uzorkovanja od din Gateway In bloka čiji je ulazni period uzorkovanja podataka podešen na 1/Fs. Kako je FIR filter zasnovan na MAC-u preuzorkovan (oversampled) u skladu sa brojem tapova tj. radna frekvencija filtra mora biti povećana i usklađena s brojem stepena filtra, System Clock Period bi trebalo uvek da bude 1/(Filter Taps * Fs). Klikom na dugme Update, period sistemskog takta (System Clock Period) se postavlja na e-007 = 1/(43 * 44100) s. Sada može da se izvrši simulacija. Primetimo da Xilinx implementacija FIR filtra zasnovanog na MAC-u zadovoljava polaznu specifikaciju i da je njegov frekventni odziv uglavnom identičan Simulink modelu dvostruke preciznosti. 52

53 Moguće je da se poveća i smanjuje preciznost Xilinx filtra u cilju postizanja najboljeg kompromisa izmedju površine/performansi/kvaliteta kako bi se zadovoljile specifikacije projekta. 53

54 To se ostvaruje na sledeći način: Zaustavi se simulacija i modifikuje širina podataka na Fix_8_6 i siširina koeficijenata na Fix_10_10. Ažurira se model (Ctrl-d) i smesti u blok MAC jedinice. Sada bi trebalo da se uoči da će staza podataka automatski biti ažurirana na samo osamnaest bitova na izlazu množača i dvadeset bitova na izlazu akumulatora. Rastartuje se simulacija i posmatra kakav će efekat da izazove na frekventni odziv. Slabljenje se ustvari degradira (manje od 40 db) usled smanjenja preciznosti. 54

55 5 Hardver/Softver ko-dizajn 5.1 Hardver/Softver ko-dizajn u System Generator-u Tradicionalna tehnika projektovanja (nezavisno projektovanje hardvera i softvera) sada, sa pojavom heterogenih modula i kreiranjem kompleksnih modula na čipu, doživljava promene. U novom pristupu, tzv. hardversko-softverskom kodizajnu, projektanti imaju za cilj uskladjivanje rada hardverskih i softverskih komponenti uz odredjene kompromise izmedju dva zahteva postizanja optimalnih prformansi i mogućnostima korišćenje tehnologije. Kako postoje FPGA komponente sa ugrađenim procesorom (hard-core), kao i mogućnost ugradnje procesora kao jezgra (soft core) ili čak ugradnje više jezgara neophodno je razmotriti System Generator pristup, tj. njegovo mesto i ulogu i sa ovog aspekta. System Generator na sledeća tri načina uvodi procesor u projekat: importovanjem Black box bloka, MicroBlaze Microcontroller bloka ili EDK Processor bloka Black Box (Crna kutija) blok Black Box pristup obezbedjuje najveći stepen fleskibilnosti, po cenu povećanja složenosti dizajna. Na ovaj način može da se ugradi bilo koji HDL procesor u System Generator dizajn. Svi portovi i magistrale na procesoru mogu da se prikažu kroz System Generator dijagram što olakšava realizaciju interfejsa izmedju procesora i drugih System Generator blokova PicoBlaze blok PicoBlaze blok obezbedjuje najmanji stepen fleksibilnosti, ali je i najmanje kompleksan za korišćenje. Xilinx MicroBlaze microcontroller blok realizuje ugradjeni 8-bitni mikrokontroler korišćenjem MicroBlaze makroa. Za smeštanje programa se obično koristi jedinstveni blok ROM-a kapaciteta 1024 bajtova. Takodje PicoBlase mikrokontroler se može programirati u PicoBlaze asemblerskom jeziku EDK Processor Blok Namena EDK Processor bloka je da obezbedi interfejs logiku MicroBlaze procesora, koji je konfigurisan korišćenjem Xilinx Platform Studio (XPS), i okruženja. Odnosno obezbedjuje Shared Memory blokovima u okviru System Generator kao što su "From/To Register", "From/To FIFO" i "Shared Memory" da se povežu sa procesorom kroz automatski generisani memorijsko preslikani interfejs. Nakon povezivanja, softver koji se izvršava na MicroBlaze procesoru je u mogućnosti da pristupa memoriji. U EDK Processor blok može da se importuje MicroBlaze procesor koji je prethodno konfigurisan korišćenjem programa Xilinx Platform studio i Base System Builder. Takođe, System Generator dizajn koji sadrži EDK Processor blok se može eksportovati u EDK projekat. Proces eksportovanja kreira PLB-zasnovan ili FSL-zasnovan pcore, koji može da se doda na bilo koji XPS projekat i komunicira sa MicroBlaze ili Power PC procesorom. Napomena: 64-bit Processor Local Bus (PLB) sadrži upravljačku jedinicu magistrale, watchdog tajmer i jedinicu staze podataka čiatanja i upisa koja se karakteriše sa samo tri ciklusa arbitracije. PLB sadrži centralni arbiter magistrale, neophodnu logiku za kontrolu magistrale i gejting tehnike, i sve neophodne 55

56 OR/MUX strukture magistrale. Obezbedjuje direktnu konekciju do 16 mastera i 16 slejvova. IP jezgro je jedno od više od 20 jezgara koja su dostupna kroz Embedded Development Kit. FSL_V20 Fast Simplex Link (FSL) Bus je komunikacioni kanal tipa tačka-ka-tački koji prenosi podatke u jednom smeru i koristi se u brzim komunikacijama izmedju bilo koja dva dizajn elementa na FPGA komponenti. FSL interfejs je dostupan kod Xilinx MicroBlaze processora. Interfejs se takodje koristi za prenos podataka ka i iz registarskog polja u procesoru. 5.2 Integrisanje procesora i namenski projektovanog hardvera Integrisanje procesora sa namenski projektovanim (tzv. korisničkim) je prilično zahtevan proces. Komunikacije izmedju procesora i korisničkih delova hardvera često se ostvaruje preko deljive magistrale. Dodatno, informacija koja se prenosi najčešće sadrži različite tipove podataka; na primer podatak za procesiranje, podatak koji označava status hardvera ili podatak kojim se utiče na režim rada hardvera. Prenos podataka izmedju procesora i namenski projektovane logike je proces koji je sklon greškama tako da je bolje automatizovati ga. Osim toga, povezivanje je samo jedan deo problema, pisanje softvera za komunikaciju sa namenski projektovanom logikom takodje predstavlja izazov. EDK Processor blok pruža rešenje za oba navedena problema kroz proces automatizacije. EDK Processor blok, zbog svoje strukture, nameće da se interfejs izmedju procesora i korisničke logike realizuje putem deljive memorije. Ovo obezbedjuje memorijsko preslikani tip memorije i povezuje softverske drajvere.odeljak koji sledi opisuje memorijsko preslikani tip memorije i softverske drajvere koji se generišu. Memory Map Creation Generisanje hardvera Hardverska kosimulacija Generisanje softverskih drajvera Objašnjava generisanje memorijsko-preslikanog tipa memorije Dokumentuje različite opcije generisanja hardvera Objašnjava kako se kreirate model hardverske kosimulacije za EDK Processor blok Dokumentuje kako se softverski drajveri kreiraju Pisanje softvera za EDK Processor Dokumentuje proces pisanja softvera u cilju upravljanja hardverom Asinhrona podrška za EDK Processor Dokumentuje mogućnost System Generator-a, i u ulaznom i u izlaznom modu, da obezbedi procesoru i System Generator dizajnu da radi sa taktnim signalima različitih frekvencija 56

57 5.2.1 Memory Map Creation System Generator model je prikazan na prethodnoj slici u donjem desnom uglu. System Generator modul predstavlja korisnički namenski projektovanu logiku koju treba integrisati sa MicroBlaze procesorom. U toku konstrukcije modela, za prenos parametra se koristi deljiva memorijska lokacija kojoj se pristupa putem softvera. Na primer, zapis o tekućem statusu hardware-a može da se smesti u registar. Da bi ova informacija postala vidljiva procesoru neophodno je da se registar zameni imenovanim deljivim registrom. Naimenovani deljiv registar "status" odnosi se na ime memorijske lokacije gde je smešten sadržaj koji će biti neophodan u toku razvoja softvera. Blok GUI EDK Processor pruža mogućnost da ova deljiva memorija bude pridodata memorijskoj mapi procesora (na slici dolelevo). Blok dijagram na vrhu prethodne slike pokazuje način na koji se ostvaruje ovaj postupak. Kada se deljiva memorija pridoda memorijskoj mapi procesora, EDK Processor blok kreira odgovarajuću deljivu memoriju. Ova deljiva memorija se zatim pridoda memorijskoj mapi koja je generisana za dati EDK Processor blok. Nakon toga se koristi adapter magistrale koji treba da poveže memorijsku mapu na MicroBlaze procesor. Kada je hardver generisan svaki deljivi memorijski par (neimenovan-imenovan) se implementira jedinstvenom memorijskom lokacijom. Implementacija za svaki tip deljive memorije je dokumentovana u odeljku Shared Memory Support Generisanje Hardvera EDK Processor blok podržava dva režima rada: generisanje EDK pcore i HDL netlisting. Različiti režimi rada prikazani su na narednoj slici i mogu da budu izabrani iz padajuće liste grafičkog interfejsa EDK Processor bloka. 57

58 5.2.3 Režim rada EDK pcore generisanje (orijentisano ka EDK) Xilinx Embedded Development Kit (EDK) obezbedjuje periferijama da budu "povezane" sa procesorima kreiranim u okviru EDK. Ove periferije mogu da se pakuju kao pcores-ovi. Svaki od pcoreova sadrži kolekciju fajlova koji sadrže opis hardverskih periferija, softverskih drajvera, veza na magistrali i odgovarajuće dokumentacije. Nakon što se postavi režim rada u EDK-pcore-generation korišćenjem EDK Export Tool (selektovan putem System Generator bloka) System Generator je u mogućnosti da kreira pcore iz datog System Generator modela. Prethodna slika prikazuje deo modela koji se kreira kao pcore. U ovom režimu rada jasno je da je MicroBlaze dodat modelu kao place-holder. U tom slučaju njegova konačna implementacija će biti uneta u EDK tek kada se periferije dodaju u EDK projekat. Kao takav, pcore koji se kreira sadrži namenski projektovan hardver, generiše memorijsku mapu kao i virtuelne veze ka namenski projektovanom hardveru i adapter magistrale HDL Netlist režim rada (orijentisano ka System Generator-u) EDK Processor može takodje da se uvede u System Generator model kada se izabere režim rada HDL Netlisting. EDK Processor blok može da se postavi u režim rada HDL Netlisting samo kada je EDK projekat podržan od strane bloka. Kada je u HDL netlisting režim rada, procesor koji je opisan u EDK projektu biće importovan u System Generator kao "crna kutija". U EDK projektu postoji podrška za automatsko kreiranje interfejsa koji treba poveže memorijsku mapu System Generator i procesora. Način povezivanja procesora MicroBlase i memorijski preslikanog hardvera se opisuje u obliku hardverske netliste. Ovaj model može da se koristi za softverski-zasnovanu simulaciju procesora, ili hardversku kosimulaciju Hardverska kosimulacija Aktuelni EDK Processor blok obezbedjuje i softverski zasnovanu simulaciju i hardverski zasnovanu simulaciju. Kreiranje hardverskog kosimulacionog bloka prati standardni kosimulacioni tok. Kada hardverska kosimulacija detektuje procesor, kartica Softver u kosimulacionom korisničko grafičkom interfejsu postaje aktivna. Program koji će se izvršavati na procesoru može se napisati uz pomoć alata XPS koji deo softverskog paketa EDK. Medjutim pre nego što pokrenemo simulaciju neophodno je, koristeći se karticom Softver da postavimo opciju kompajliranja C-code u kosimulacionom bloku Compile and update bitstream. Kada se koristi razvojni sistem koji hardversku kosimulaciju realizuje putem Ethernet veze, JTAG port na FPGA je u tom slučaju slobodan i možemo ga koristiti za proces debagiranja programa unetog u Micro Blaze Generisanje softverskih drajvera U oba režima rada, šablon softverskog drajvera se automatski kreira kada se generiše meorijsko preslikavanje Šablon drajvera se jedino koristi u toku kompajliranja softverske biblioteke od strane EDK. 58

59 Nakon što se izvrši kompajliranje softverske biblioteke drajveri su dostupni za korišćenje a takodje može da se pristupi i softverskoj dokumentaciji. Kada se EDK Processor blok smesti u EDK pcore način na koji se generiše softverski drajver zavisi od instanciranog imena pcore-a. Na primer, pcore kreiran od strane System Generator-a može da se nazove sysgen_fft_sm. Ovo je ime periferije. Pošto je moguće da se EDK procesoru doda više od jedne periferije bilo koja instancirana periferija mora da ima jedinstveno ime. EDK automatski dodeljuje numerički postfix imenu periferije. Dakle kada se prvi put doda ime periferije ono će da bude nazvano od strane EDK kao sysgen_fft_sm_0, što predstavlja instancirano ime periferije. Alat pruža mogućnost izmene instanciranog imena periferije. Za više informacija pogledati dokument EDK XPS. Kada se EDK Processor blok postavi u HDL Netlisting režim rada i EDK Project se importuje u System Generator model, System Generator automatski smešta zasebne periferije u EDK projekat. Periferije obezbedjuju veze izmedju MicroBlaze i System Generator modela. Samo jedna instanca ovih periferija je dozvoljena; EDK Project može samo jednom da se poveže sa EDK Processor blokom Pisanje Softvera za EDK Procesore Softverski drajveri i dokumentacija za periferije se generišu nakon što se sve softverske biblioteke kompajliraju u EDK. Nakon kompajliranja, softverskoj dokumentaciji može da se pristupa iz EDK-a. Na prethodnoj slici prikazan je trenutni izgled ekrana alata EDK XPS alata tokom pristupa softverskoj dokumentaciji. Locirate periferiju System Generator-a iz System Assembly i desnim tasterom kliknite da bi se otvorio padajući meni. Selektujete View API Documentation kako biste omogućili pristup dokumentaciji. Ako ova opcija nije dostupna, neophodno je da se drajver kompajlira. Ovo se postiže izborom opcije iz menija Software > Generate Libraries and BPSs. Dokumentacija sadrži informacije o header datotekama, o načinu pozivanja drajvera iz C kôda, memorijsku mapu i primer poziva drajvera Generisani softverski drajveri sadrže četiri osnovne funkcije za pristupanje deljivoj memoriji. U narednom listingu <inst> se odnosi na ime instance periferije int <inst>_read (unsigned int memname, unsigned int addr, unsigned int* val); int <inst>_arrayread (unsigned int memname, unsigned int startaddr, unsigned int transferlength, unsigned int** valbuf); int <inst>_write (unsigned int memname, unsigned int addr, 59

60 unsigned int val); int <inst>_arraywrite (unsigned int memname, unsigned int startaddr, unsigned int transferlength, const unsigned int* valbuf); Asinhrona podrška za EDK procesor Asinhrona podrška za procesore omogućava da se procesor i haredverski akcelerator (periferija) taktuju različitim taktnim signalima. Ovo obezbedjuje da hardware akcelerator radi na taktnim brzinama koje su najveće moguće, ili na taktnim brzinama koje su neophodne za njegovo korektno funkcionisanje, na primer, kada se on koristi kao interfejs ka spoljašnjim periferijama. Ova karakterisitika je dostupna kada se kad se u kartici za implementaciju bloka EDK Processor potvrdi izbor opcije Dual Clock Sledeća slika pokazuje način razvodjenja dualnog takta.. U osnovi, nemenski projektovan hardver u System Generator-u pobudjuje se sa clk taktom, a procesorski podsistem sa plb_clk taktom. Ova dva domena se spreži pomoći deljive memorije koja se pobuđuje sa oba taktna signala. Deljivi registri nisu podržani u ovoj fazi projektovanja. Ako se XPS projekat ugrađuje u SG, tada PLB magistrala na procesoru mora da se pobudjuje sa istim taktnim signalom kao što je plb_clk signal. Kada je opcija Dual Clock izabrana i dizajn je preveden u netlistu za hardversku kosimulaciju, koristi se neznatno drugačija topologija razvodjenja takta. Ovo je prikazano na narednoj slici. Izvor takta sa ploče je razdvojen na dve grane. Jedna grana se vodi na hardverski kosimulacioni modul pre nego što se poveže na na clk takt (opisano na prethodnoj slici). Signal sa druge grane se pojačava baferom BUFG i vezuje na taktni signal plb_clk. Ovakav način razvođenja taktnog signala omogućava da namenska logika projektovana u SG može da radi u režimu korak po korak uporedo s procesorom koji radi u slobodnom režimu. Ovo omogućava da taktnovane periferije (kao što su RS232 UARTS ) prilikom hardverske kosimulacije mogu da rade u režimu pojedinačnih koraka 60

61 U toku hardverske kosimulacije, procesorski podsistem se pobudjuje direktno taktnim signalom razvojnog sistema. U toku hardverske kosimulacije korisniku je omogućeno da izabere različite odnose taktnih frekvencija koje se baziraju na ulaznoj frekevenciji ploče. Napomenimo da se takt za hardversku kosimulaciju generiše u modulu hardware co-simulation i da je na ovaj način dostupan procesorskom podsistemu. Na primer, ako je taktna frekvencija razvojnog sistema 125 MHz, a frekvencija za hardversku kosimulaciju je postavljena na 33 MHz, jedino će deo namenski projektovane logike biti ograničen na 33 MHz dok će MicroBlaze da radi na 125 MHz. Ako se nakon implementacije ustanovi da MicroBlaze ne može da radi na ovoj brzini neophodno je da korisnik instancira taktne generatore periferija u svom XPS projektu i na taj način smanji frekvenciju takta. 5.3 EDK alat u System Generator-u Importovanje EDK Processor-a Procesor kreiran korišćenjem alata Xilinx Platform Studio (XPS) koji se nalazi u Xilinx EDK delu alata može da se importuje u System Generator model korišćenjem EDK Import Wizard-a. Postoje dva načina za aktiviranje alata za importovanje (EDK Import Wizard) u EDK Processor blok: (1) pritiskom na Import... dugme, ili (2) izborom opcije HDL Netlising kada je EDK project polje prazno. 61

62 5.3.2 EDK Import Wizard Kada se alat za importovanje startuje, on je spreman da prihvati EDK projektni fajl (xmp file). Klikom na dugme Import... startuje se proces importovanja. Kada se EDK projekat importuje u System Generator, EDK project se uvećava sa parom FSL-a ili PLB46 interfejs zavisno od opcija odabranih u EDK Processor bloku. Pcore (xlsg_iface za FSL i xlsg_plbiface za PLB) se takodje dodaje da bi se obezbedili softverske drajvere za interfejs. MHS i MSS fajlovi u EDK projektu će biti promenjeni. Prateći ovo, biće generisani HDL fajlovi koji opisuju procesor i način na koji se ugradjuje u System Generator projekat. Napomena: MHS ekstenzija fajla dolazi od Microprocessor Hardware Specification MHS fajl definiše komponentu hardvera i predstavlja ulazni fajl u Platform Generator (Platgen) alat. Definiše konfiguraciju sistema sa ugradjenim procesorom i uključuje sledeće: Arhitekturu magistrale Periferije Procesor Sistemske veze Adresni prostor MSS MSS ekstenzija fajla dolazi od Microprocessor Software Specification MSS fajl predstavlja ulazni fajl u Library Generator (Libgen) alat. MSS fajl sadrži direktive za OS, biblioteke i drajvere Učinjene promene na hardware-u procesora nakon importovanja Nakon importovanja EDK projekta, dalje promene u hardveru unutar EDK-a neće da se reflektuju unutar System Generator-a. Drugim rečima, sastavljen hardver procesora je sada fiksan. Ukoliko je neophodno da se učine izmene u hardveru procesora, EDK projekat mora da se ponovo importuje korišćenjem EDK Import Wizard-a. Preporučljivo je da se uvek ponovo importuje EDK projekat nakon svake promene. EDK Processor blok je u stanju da detektuje PLB i FSL interfejse i odgovarajuće pcores-ove koji su automatski dodati od strane System Generator-a u toku prethodnog importovanja, tako da neće biti ponovo uključeni i nema bojazni zbog redudantnosti Ograničenja Tekuća verzija alata za importovanje može da importuje samo jedan tip procesora po projektu. Samo je MicroBlaze procesor podržan. Periferije koje se dodaju procesoru ne smeju da budu u konfliktu sa resursima korišćenjim od strane drugih System Generator servisa. Na primer, ako se ako se za hardversku kosimulaciju koristi LAN, EDK projekt ne može za svoje potrebe da koristi Ethernet MAC. 62

63 5.4 Projektovanje sa Embedded procesorima i mikrokontrolerima Aplikacija projektovana sa mikrokontrolerom PicoBlaze Blok PicoBlaze iz System Generator-a implementira 8-bitni mikrokontroler. Mikrokontroler se u potpunosti ugrađuje u FPGA komponentu i ne zahteva spoljašnju podršku Bilo kakva dodatna logika može da se veže na mikrokontroler unutar FPGA obezbedjujući maksimalnu fleksibilnost Pregled mikrokontrolera PicoBlaze U sledećem primeru koristi se mikrokontroler PicoBlaze 3 koji je optimizovan za projekte gde gde nije neophodan procesor visokih performansi. Kao programska memorija koristi se memorijski blok kapaciteta 1024 reči (jedna programska instrukcija se smešta u jednu reč). Opšte karakteristike predvidljive performanse, dva taktna ciklusa po instrukciji MIPS (zavisi od tipa FPGA komponente) brzi odgovor na prekid zauzeće FPGA resursa: 96 slajsova, 0.5 do 1 blok RAM 16 8-bitnih registara opšte namene 64-bajta unutrašnje memorije za podatke (RAM) hardverski magacin (stek) dubine 31 lokacije 256 ulazni i 256 izlazni port 63

64 5.4.3 PicoBlaze arhitektura PicoBlaze je mikrokontroler koji se programira isključivo u asemblerskom jeziku. Maksimalna veličina programa iznosi 1024 instrukcije. Zahtevi za većim memorijskim prostorom se tipično rešavaju korišćenjem više mikrokontrolera 16 registara opšte namene Postoje 16 8-bitnih registara opšte označenih sa s0 do sf. ALU Aritmetičko-logička jedinica obezbedjuje operacije kao što su add, sub, load i or, xor, shift, rotate, compare, i test. Prvi operand za svaku instrukciju je registar koji je ujedno i odredišni tj. u njemu se smešta rezultat. U operacijama koje koriste dva operanda, kao drugi operand može da se navede registar ili 8-bitna konstantna vrednost. Markeri i kontrola programa Rezultat ALU operacije odredjuje status markera zero (nula) i carry (prenosa). Marker zero se postavlja na jedinicu uvek kada je rezultat izvršenja neke instrukcije jednak nuli. Marker carry se postavlja na jedinicu kada prilikom izvršenja neke aritmetičke operacije dođe do pojave prekoračenja dozvoljenog opsega rezultata. Status markera se može ispitivati u naredbama za programsko grananje i poziv potprograma, kao što su jump i call. Ulaz/izlaz Postoje 256 ulaznih portova i 256 izlaznih portova. 8-bitna vrednost prisutna na prortu port_id ukazuje na adresu porta kome se pristupa. U programu, adresa porta može da se navede kao apsolutna ili kao indirektna adresa (adresira registar koji sadrži adresu pristupa). U toku operacije input (koja služi za očitavanje trenutne vrednosti ulaznog porta) vrednost prisutna na ulaznom portu in_port se prenosi u bilo koji od 16-bitnih registara opšte namene. U toku operacije output, vrednost iz registra opšte namene se penosi na izlazni port out-port. 64

65 Prekidi Mikrokontroler PicoBlaze obezbedjuje samo jedan ulazni port za signale prekida, brk. Kada je prekid dozvoljen, postavljanje signala brk na 1 programski brojač se automatski postavlja 0x3FF, što predstavlja adresu lokacije u programskoj memoriji gde se nalazi instrukcija skoka (jump) na adresu gde je smeštena rutina za obradu prekida. U tom trenutku (tačnije, dva taktna ciklusa nakon što se dozvoli brk) generiše se impuls na izlaznom portu ack (potvrda prekida) i dalji prekidi se onemoguće. Instrukcija return iz rutine za obradu prekida obezbedjuje da se nakon završetka prekidne rutine vrate status upravljačkim markerima, a prekidi se ponovo dozvole 65

66 5.5 Primer korišćenja PicoBlaze mikrokontrolera u System Generator-u U ovom primeru mikrokontroler PicoBlaze je iskorišćen kreiranje modula za digitalnu sintezu frekvencije koji, pod kontrolom programa, alternativno menja izlaznu frekvenciju u toku prekida Simulink model mikrokontrolera PicoBlaze, kao i odgovarajući asemblerski kod nalaze se u direktorijumu System Generator-a samo je neophodno prilagoditi ga definisanoj aplikaciji. U MATLAB prozoru u polje Current Directory navedemo sledeću putanju <sysgen_tree>/example/picoblaze. Sadržaj direktorijuma je sledeći: Pico_dds.mdl predstavlja nedovršeni Simulink model dat na sledećoj slici Mux Out data sel 0 Not needed interpre Reinterpret 1 d z -1 q en Register d0z -1 d1 cast Convert data we sin cos Out sin BRK1 In BRKIN1 gnd 0 z -1 Delay DDS Out cosine results System Generator z -1 Delay 1 Single -Step Single -Step Simulation Pico_code.psm predstvalja nedovršen asemblerski kod za mikrokontroler PicoBlaze Otvorimo Pico_dds.mdl Modifikacija dizajna a. Nadjemo PicoBlaze blok u XilinxBlockset Library pod Index ili Control Logic i dodamo ga modelu gde je nagovešten. Podrazumevana podešavanja bloka ne daju isti broj portova kao što se očekuje od modela u ovoj aplikaciji. Ovo se može korigovati na sledeći način. Najpre je neophodno da povećamo veličinu bloka kako bi ste ga prilagodili prostoru koji mu je dodeljen u dizajnu. b. Kliknemo dva puta na blok i postavimo Version na PicoBlaze3. Isključimo opciju Display internal state. Povežimo portove na postojeće linije u modelu. 66

67 c. Pronadjimo PicoBlaze Instruction Display blok u Index ili Tools Library i dodajmo ga modelu na mesto koje je predvidjeno za taj blok. Korektno povezivanje podrazumeva da je sve izvedeno kao na narednoj slici d. Kliknemo dva puta na PicoBlaze instruction Display blok i postavimo Version na PicoBlaze3. Potvrdimo izbor opcije Disable Display. Na ovaj način zabranjujemo prikazivanje instrukcije koja se tekuće izvršava i vrednost programskog brojača u svakom mašinskom ciklus. e. Pronadjimo ROM blok u Memory Library i dodajmo ga modelu na mesto koje je predvidjeno za taj blok. Preokrenimo blok tako što ćemo klikniti desnim tasterom miša preko bloka i izabrati Format > Flip Block. Povežimo portove na postojeće linije nedovršenog Simulink modela. f. Dvostrukim klikom na blok Single-Step Simulation promenimo režim rada na kontinualni Konfigurisanje programske memorije. Dva puta kliknemo preko bloka ROM a kako bismo uradili sledeće korake: 67

68 Na kartici Basic: a. Depth: ROM blok se koristi za smeštanje PicoBlaze instrukcija. Dubina ROM-a (tj. broj reči) mora da bude postavljena na Ovo je neophodno zato što se u ovoj aplikaciji koristi prekid prva instrukcija prekidne rutine se nalazi na adresi 0x3FF = b. Kako će detaljnije biti opisano u koraku 5, asembiliranjem programa generiše se inicijalizacioni fajl za memoriju. Ime ovog fajla je fill_pico_code_program_store.m. Otuda u polju za tekst ROM Initial Value Vector treba da bude upisano fill_pico_code_program_store. c. U cilju poboljšanja performansi dizajna, Latency bi trebalo da se postavi na 1. Pređimo na kraticu Output i unesimo sledeće: a. Za Word Type treba izabrati Unsigned, za Number of Bits uneti vrednost 18, a za Binary Point vrednost 0. Izmenimo PicoBlaze asemblerski program. 68

69 a. Otvorimo pico_code.psm b. Dodajmo instrukcije kako je opisano u pico_code.psm fajlu. Za detaljnije informacije o skupu instrukcija mikrokontrolera PicoBlaze pogledati Xilinx Application Note XAPP627 na c. Snimimo fajl Asembliramo program kako bismo generisali memorijski inicijalizacioni fajl U komandnom prozoru MATLAB-a upišimo: >> xlpb_as p pico_code.psm xlpb_as je kompajler za Xilinx PicoBlaze Assembler. Simulacija Simulink model Simulacija se pokreće klikom na dugme Start ikonu. Izlaz bi trebalo da izgleda kao na sledećoj slici: Primetimo da se frekvencija izlaznog signala sinusnog talasnog oblika povećava proporcionalno inkrementu faze. Ispravljanje grešaka u programu - Debug Tools Ako program ne radi korektno, postoje nekoliko alata koji mogu da se iskoriste za traženje i ispravljanje grešaka. Poništavanjem izbora opcije Disable Display u PicoBlaze Instruction Display bloku blok se aktivira, i počinju da prikazuju instrukciju koja se izvršava i vrednost programskog brojača u 69

70 svakom mašinskom ciklus. Vrednosti registara i kontrolnih markera mogu da se vide izborom opcije Display Internal State u bloku PicoBlaze Microcontreller. Promenu režima rada na simulacije na korakpo-korak ostvarujemo u okviru Single-Step Simulation bloka koga aktiviramo dvostrukim klikom preko bloka. 5.6 Projektovanje i eksportovanje MicroBlaze procesorskih periferija Alat Xilinx Platform Studio (XPS) omogućava razvoj namenskih PicoBlaze i Power PC procesorskih sistema. Hardverske periferije procesorskih sistema nazivaju se pcore, i sadrže skup projektnih fajlova organizovanih u skladu sa specifičnim strukturama koje su projektovane kao namenski hardver. Ovi projektni fajlovi opisuju hardversku implementaciju, interfejs periferije i softverske drajvere za XPS. EDK Processor blok zajedno sa EDK Export Tool blokom pruža mogućnost da se namenski projektovana harverska periferija dizajnira u System Generator-u. Celokupan System Generator dizajn se zatim može eksportovati kao XPS core koje se onda uključuje i koristi u XPS projekat. Tutorijal koji ilustruje kreiranje XPS core-a korišćenjem System Generator-a može da se nadje na putanji: <sysgen_tree>\examples\edk\rgb2gray, gde <sysgen_tree> označava instalacioni direktorijum System Generator-a Primer projektovanja i simulacije MicroBlaze procesorskog sistema Cilj ovog odeljka je da pokaže kako se projektuje i simulira System Generator Simulink model koji sadrži blok MicroBlaze procesora. Opisan je sistem koji se sastoji iz DSP koprocesora i mikroprocesora. DSP koprocesor je DSP48 co-processor koji je realizovan korišćenjem System Generator-a. U System Generator simulink model, koršćenjem EDK Processor bloka, može da se importuje MicroBlaze procesor, namenski uradjen u Xilinx Platform Studio (XPS). Zatim može da se poveže DSP48 co-processor sa MicroBlaze procesorom kroz mehanizme automatskog memorijskog mapiranja koji su dostupni putem EDK Processor bloka. U ovom primeru, za simulaciju i verifikaciju dizajna koristi se hardverska kosimulacija. U ovom slučaju se, MicroBlaze procesor implementira na FPGA razvojnom sistemu dok model DSP48 koprocesor ostaje u System Generator dijagramu i softverski se simulira. Tokom kosimulacije, hardverski i softverski delovi modela sistema komuniciraju preko Ethernet LAN-a Ovaj primer koristi Xilinx Virtex-4 ML402 Evaluation Platform. Fajl korišćen u ovom tutorijalu može da se nadje na sledećoj putanji: <sysgen_tree>\examples\edk\dsp48coprocessor gde <sysgen_tree> označava instalacioni direktorijum System Generator-a 70

71 5.6.2 Kreiranje DSP48 koprocesora dout a System Generator dout re %full empty From FIFO << 'instr' >> Processor Subsystem P=C+(A*B) P=P+(A*B) sel d0 d1 From Register << 'a' >> dout From Register 1 << 'b' >> dout From Register 2 << 'c' >> cast b c p i hi lo BitBasher << 'overflow ' >> To Register din en dout din en dout To Register 1 << 'result' >> Assert P=+(A*B) d2 op P=C+(A:B) d3 DSP48 not P=C-(A:B) d4 P=C d5 z -3 (c) Copyright Xilinx, Inc. #-- All rights reserved. Double Click for Copyright Notice This model is not a fully functional model. An EDK Processor block must be added to the Processor Subsystem. Please refer to the System Generator User 's Guide for a step by step tutorial on how to complete this model. The tutorial can be found in the document "Designing and Simulating MicroBlaze Processor Systemrs " Importovanje u XPS Project Add in an EDK Processor here. System Generator 71

72 5.6.4 Konfigurisanje memorijske mape interfejsa Ponovo otvorimo dijalog EDK Processor bloka. Dodajmo sve deljive memorije u model procesorskih memorijskih mapa izborom opcije <all> u padajućem meniju Avelable memories, a onda pritiskom na dugme Add. Dijalog EDK Processor bloka trebalo bi da izgleda kao na sledećoj slici. Klikom na dugme OK napuštamo ovaj dijalog Pisanje softvera Cilj je napisati program za procesor MicroBlase čiji će glavni zadatak biti da čita iz i upisuje u deljivu memoriju. Ponovo otvorimo XPS projekat u Xilinx Platform Studio. Kreirajmo novu softversku aplikaciju pod imenom MyProject. Moramo da obezbedimo da je MyProject softverska aplikacija markirana za unos u BRAM za razliku od drugih, hardverskih aplikacija koje ostaju nemarkirane i koje se 72

73 implementirati namenski hadver u FPGA. Za detaljnije informacije obratite se odeljku Using XPS tj. Kako dodati novu softversku aplikaciju u EDK Project. Kreirajte novi fajl, pod imenom MyProject.c, za izvornog kôda i otvorite ga u XPS editoru. Na prethodnoj slici pokazani su delovi System Assembly View XPS projekta u Xilinx Platform Studio. Periferija sg_plbiface se automatski dodaje XPS projektu nakon njenog uspešnog importovanja u System Generator. Periferija sg_plbiface povezuje PLB pridruženu magistralu kako bi importovala MicroBlaze procesor u System Generator model kroz memorijsko preslikani interfejs i dobila informaciju o tome kako da se generiše odgovarajući softverski drajver uredjaja. Dokumentaciju vezanu za API možemo videti klikom na sg_plbiface u System Assembly View Sledite instrukcije u API dokumentaciji da bu uključili sledeći header fajl i inicijalizovali softverski drajver u MyProject.c. #include "sg_plbiface.h" xc_iface_t *iface; // initialize the software driver xc_create(&iface, &SG_PLBIFACE_ConfigTable[0]); Pre nego što napišemo kod za procesor, prvo treba da razmotrimo kako da upišemo podatke u blok registara u simulink okruženje. Vratimo se za trenutak na model DSP48 koprocesora. Podsetimo se da je ulazni port bloka DSP48 povezan na izlazni port deljive memorije koja ima isto ime. Pretpostavimo da želimo da upišemo vrednost u odgovarajući deljiv registar iz programa na MicroBlaze. Ukoliko pogledamo API drajvere možemo da vidimo da je deljiva memorija nazvana "To Register" memorijski tip sa xc_to_reg_t tipom podataka: typedef struct { xc_w_addr_t din; uint32_t n_bits; uint32_t bin_pt; } xc_to_reg_t; Nakon što se softverski drajver inicijalizuje, promenljiva din sadrži memorijski preslikanu adresu din porta deljive memorije, dok n_bits i bin_pt sadrže brojne vrednosti koje ukazuju na dužinu, tj. broj bitova porta, odnosno poziciju binarne tačke. 73

74 Dakle, u cilju upisivanja vrednosti u deljivi registar, neophodno je da prvo izvršimo njegova podešavanja kroz xc_get_shmem i to na sledeći način: xc_to_reg_t *toreg_a; xc_get_shmem(iface, "a", (void **) &toreg_a); Zatim, koristeći se sledećom funkcijom, izvršimo upis u deljiv registar: // -- Set the a port register to 2 xc_write(iface, toreg_a->din, 2); Sledi kompletan kôd iz fajla MyProject.c: #include "xparameters.h" #include "stdio.h" #include "xutil.h" // header file of System Generator Pcore #include "sg_plbiface.h" int main (void) { uint32_t result, overflow; char c; xc_iface_t *iface; xc_from_reg_t *fromreg_result, *fromreg_overflow; xc_to_reg_t *toreg_a, *toreg_b, *toreg_c, *toreg_instr; // initialize the software driver xc_create(&iface, &SG_PLBIFACE_ConfigTable[0]); print("performing p=2*4\r\n"); xc_get_shmem(iface, "result", (void **) &fromreg_result); xc_get_shmem(iface, "overflow", (void **) &fromreg_overflow); xc_get_shmem(iface, "a", (void **) &toreg_a); xc_get_shmem(iface, "b", (void **) &toreg_b); xc_get_shmem(iface, "c", (void **) &toreg_c); xc_get_shmem(iface, "instr", (void **) &toreg_instr); // -- Set the a port register to 2 xc_write(iface, toreg_a->din, 2); // -- Set the b port register to 4 74

75 xc_write(iface, toreg_b->din, 4); // -- Set the instr register to 2: p=a*b xc_write(iface, toreg_instr->din, 2); print("press a key to read back result\n\r"); c = inbyte(); // -- Read back the result register xc_read(iface, fromreg_result->dout, &result); // -- Read back the overflow register xc_read(iface, fromreg_overflow->dout, &overflow); xil_printf("read back: result=%d, overflow=%d\n\r", result, overflow); print("performing p=c+(a:b)\r\n"); // -- Set the a port register to xc_write(iface, toreg_a->din, ); // -- Set the b port register to xc_write(iface, toreg_b->din, ); // -- Set the cport register to 1 xc_write(iface, toreg_c->din, 1); // -- Set the instr register to 3: p=c+(a:b) xc_write(iface, toreg_instr->din, 3); print("press a key to read back result\n\r"); c = inbyte(); // -- Read back the result register xc_read(iface, fromreg_result->dout, &result); // -- Read back the overflow register xc_read(iface, fromreg_overflow->dout, &overflow); xil_printf("read back: result=%d, overflow=%d\n\r", result, overflow); return 0; } Dalji koraci su, iskopirajmo gornji kod u MyProject.c Da bi kompajlirali softver kliknite na dugme Compile softwar program pod karticom Simulationim u okviru EDK Processor blok dijagrama. Ako nema grešaka u toku kompajliranja, u mogućnosti smo da simuliramo kompletan sistem. 75

76 5.7 Kreiranje bloka za hardversku kosimulaciju Kompletan Simulink model može da se simulira kroz hardversku kosimulaciju. Neophodno je da su deljive memorije dodate u Memory Maps prozor i da je EDK Processor blok konfigurisan za HDL Netlisting što predstavlja preduslov za hardversku kosimulaciju. Najpre otvorimo dijalog System Generator token-a na istom hijerarhijskom nivou kao i EDK Processor blok. Generišemo hardversku kosimulaciju blok iz ovog nivoa Simulink modela tako što u hardveru pokrenemo samo unešeni MicroBlaze dok ostatak dizajna zadržimo u Simulink-u za softver simulaciju. Pod opcijom Compilation menu izaberemo Hardware Co-Simulation > ML402 >Ethernet > Pint-to-point. Zatim, pritisnemo dugme Generate da bi započeli proces kompilacije. Ovo može da traje neko vreme. Nakon završetka hardverski kosimulacioni blok kreiran je tako da sadrži MicroBlaze procesor Kreiranje testbenča Testbenč bi trebalo kreirati na osnovu kosimulacionog bloka koji je kreiran u prethodnom koraku. U tom cilju otvorimo DSP48CoProcessor model i obrišimo Processor Subsystem. Iskopirajmo Processor Subsystem hwcosim blok koji je upravo generisan u DSP48CoProcessor model. Model snimimo kao DSP48CoProcessor_testbench.mdl. 76

77 5.7.2 Ažuriranje Co-Simulation bloka sa kompajliranim softverom Vratimo se u testbench model. Dva puta kliknimo na Processor Subsystem hwcosim blok da bi otvorili dijaloga koji je prikazan na prethodnoj slici. Da bi kompajlirali softver koji se nalazi u XPSProject pod karticom Software i uključili ga u konfiguracioni fajl za hardversku kosimulaciju klinimo na dugme označeno sa Compile and update bitstream. Pošto je izabrana kosimulacija tipa point-to-point Ethernet, neophodno je da konfigurišemo Ethernet interface kao i Configuration Interface bloka Processor Subsystem hwcosim. Selektujete validan Host Interface za vašu Ethernet komunikaciju i postavite konfiguracioni interfejs na Point-to-point Ethernet Startovanje simulacije Pre startovanja simulacije neophodno je da postavitmo parametre terminalske veze na COM port PC-a. Ovo je neophodno da bi omogućili tekstualni ulaz i izlaz kako bi čitali sa i upisivali u MicroBlaze kroz RS232 port. Otvorimo terminalski program. Kroz Windows OS dolazi Hyperterminal aplikacija, koja može da se nadje na sledećoj putanji Start > All Programs > Accessories > Communications > Hyperterminal. Podesimo terminalski program da "osluškuje" COM port na koji je povezan razvojni sistem (RS232). Konfigurišemo terminal na sledeći način: Baud rate = Data = 8 bitova Parity = none Stop = 1 bit Flow control = none Postavimo simulaciono vreme testbenč modela na inf (beskonačno) kako bi obezbedili dovoljno simulacionog vremena za MicroBlaze procesor da počne sa radom i odgovori. 77

78 5.8 Parametri FIR digitalnog filtra Većina softverskih alata za projektovanje digitalnih FIR filtra uzimaju ulazne parametre za frekventni odziv putem grafičkog interfejsa Sledeći parametri treba da specificiraju prihvatljivu toleranciju u odnosu na polazni idealni filter: Tip filtra: Low pass, Bandpass, ili Bandstop Frekvencija uzorkovanja filtra Red filtra Slabljenje u nepropusnom opsegu (Stopband Attenuation) (u dbs) Treperenje talasanje u propusnom opsegu (Passband Ripple) (u dbs) Širina prelaznog propusnog opsega (Transition Bandwidth) (u Hz) Kompromis pri projektovanju filtra Ukoliko se zahtevaju filtri višeg reda, biće neophodna veća moć DSP procesiranja da bi se filter implementirao u realnom vremenu. Dakle poželjno je da imamo nekoliko filtera sa različitim stepenima kao mogućnost izbora. Ukoliko su specifikacije filtra bliže idealnom filtru, verovatno će biti potreban filter višeg reda. Iz svega ovoga proističe da postoji projektantski kompromis izmedju zahtevanih karakteristika filtera i reda filtera, odnosno kompleksnosti realizacije koja je u direktnoj vezi sa redom filtera. 5.9 Projektovanje nisko-propusnog filtra specifikacija 1 U ovom primeru projektujemo filter sa sledećim karakterisitikama gornja granica propusnog opsega na 400 Hz i frekvencija uzorkovanja fs 8000 Hz Koristićemo metod Kaiser-ovog prozora s parametrima koji se mogu videti na slici 78

79 Napomena: Impulsni odziv; zahteva se filter 55-tog reda Frekventni odziv primenom DFT nad impulsnim odzivom datim na prethodnoj slici 79

80 5.10 Projektovanje nisko-propusnog filtra specifikacija 2 U ovom primeru projektujemo filter sa sledećim karakterisitikama gornja granica propusnog opsega na 400 Hz i frekvencija uzorkovanja fs 8000 Hz, ali sa karakterisitikom koja je bliža idealnoj u odnosu na specifikaciju 1 Koristićemo metod Parks-McClellan prozora s parametrima koji se mogu videti na slici Napomena: Impulsni odziv; zahteva se filter 181reda Frekventni odziv primenom DFT nad impulsnim odzivom datim na prethodnoj slici 80

81 6 Projektovanje digitalnog filtra u System Generator u U ovom primeru biće opisan postupak projektovanja digitalnog filtra korišćenjem programa System Generator i alata FDATool, koji omogućava upoznavanje sa koracima realizacije filtera kao i korišćenje specifičnih hardverskih resursa u FPGA komponentama kao što je DSP48. Rad s ovim programom će biti objašnjen na primeru projektovanja NF filtra pomoću FIR Compiler bloka. 1. Pokrenimo Matlab program i čim se aktivira promenimo radni direktorijum na: C:\Xilinx\10.1\DSP_Tools\sysgen\examples\getting_started_training\lab7 2. Otvorimo Simulink dijagram "lab7.mdl" prikazan na slici 3. Dvostruko kliknemo na FDATool ikonu. FDATool je program za grafičko projektovanje filtra. Koristi se za generisanje modela digitalnih filtera kompatabilnih sa MATLAB i Simulink okruženjem. U konkretnom slučaju, u ovom primeru FDATool će biti konfigurisan za generisanje FIR filtra 16-tog reda 81

82 4. Kliknemo na Design Filter kako bismo generisali filtar čije su karakteristike specificirane konkretnim unosom parametara u opcijama koje FDATool nudi. 5. Zatvorimo alat FDATool i simulirajmo dizajn filtra u Simulink-u. Postavimo Simulation time na "inf". Trebalo bi da vidimo, otvaranjem Spectrum Scope bloka, talasni oblik sličan onom prikazanom u FDATool alatu u toku specifikacije filtra. 6. Dvostrukim klikom na Spectrum Scope otvara se dijalog za podešavanje parametara. Napomenimo da i Buffer input i Specify FFT length opcije treba da su izabrane. Ovo je neophodno da bi korektno analizirali gustinu spektralne snage (power spectar density) ulaznog signal. 7. Otvorimo dijalog FDATool Properties ponovo i ponovo konfigurišemo filter, ali tako da sada bude filter propusnik opsega sa sledećim parametrima: - Type = Bandpass - Specify Order = 31 - Units = khz - Sampling frequency = 3 000kHz - Fstop 1 = 540 khz - Fpass 1 = 600 khz - Fpass 2 = 900 khz - Fstop 2 = 960 khz - Attenuation on the both sides of the passband = 54 db - Pass band ripple = 1 82

83 8. Klikemo na Design Filter dugme kako bismo generisali filter sa novim karakteristikama. FDATool alat bi trebalo sada da prikaže talasni oblik kao na sledećoj slici. Napomenimo da je ovo prikaz za filter 32. reda. Sledeći korak je da snimimo koeficijente generisanog filtra kako bi mogli da ih koristimo kao ulazne parametre za hardversku implementaciju. 9. Komandom File Export eksportujemo koeficijente u MATLAB radni prostor koristeći podrazumevano ime promenljive "Num" 83

84 S keficijentima na raspolaganju, u mogućnosti smo da pristupimo kreiranju hardverske verzije ovog filtra 10. Ekvivalnenta hardverska reprezentacija filtra kreira se uz pomoć FIR Compiler bloka iz Xilinx DSP skupa blokova kao što je prikazano na slici. 11. Dvostrukim klikom na FIR Compiler otvara se dijalog. U tekst polje Coefficient vector ovog dijaloga unesite Num - ime promenljive koja sadrži niz keficijenata generisanih programom FDATool 84

85 12. Simuliranjem dizajna i uporedjivanjem rezultata iz oba spectrum scopa do izražaja će doći efekat konačne preciznosti, ali bi rezultati i trebalo da budu vrlo slični. 13. Dvostrukim klikom na blok FIR Compiler otvara se dijalog u kome možemo da podesimo dužinu koeficijenata u bitovima. 14. Napomenimo da FIR Compiler generiše koeficijente s velikim brojem bitova, što je često neprihvatljivo za hardversku realizaciju pa se zbog toga odsecanje bitova obavlja uz pomoć Convert Block-a Koristeći System Generator Token generišemo konfiguracioni fajl Podrazumeva se da FIR Compiler generiše visoko-performansnu obmotanu FIR filter strukturu. Odgovarajućim podešavanjem parametara FIR Compliler-a moguće je umesto FIR-a obmotane generisati FIR savijene strukture koja koristi DSP48 resurse dostupne kao gotove blokove u nekim FPGA komponentama. To se postiže izborom opcije preuzorkovanja u okviru dijaloga FIR Compiler bloka. FIR Compiler je već podešen za generisanje optimizovanog FIR filtra, odnosno filtra sa simetričnim koeficijentima koji u obmotanoj formi koristi samo polovinu množača u odnosu na neoptimizovani filter. To će biti slučaj samo ako obezbedimo preuzorkovanje do reda optimizovanog množača koji je u ovom slučaju Upisati u polje preuzorkovanja (Hardware over-sampling rate) dijaloga FIR Cimpiler-a

86 Ponovo generišite konfiguracioni fajl 17. Naredni korak je uvodjenje Xilinx verzije FDATool alata u Simulink iz Xilinx Blockset/Index biblioteke. Postavimo parametre sa istim vrednostima kao u koraku 8 i onda kliknemo na Design Filter. Problem sa korišćenjem MATLAB verzije FDATool alata je da svaki put kad je Simulink model otvoren koeficijenti filtra moraju ponovo da se eksportuju u MATLAB radni prostor. Xilinx verzija FDATool alata se automatski poziva od strane FIR Compiler-a i ažurira novim koeficijentima eliminišući potrebu da se svaki put ponovo eksportuje u radni prostor. 18. Dvostrukim klikom na FIR Cimpiler blok i promenom polja "Coefficients vector" u "xflda_numerator" (FDATool). Ovo je System Generator funkcija koju će da pozove Xilinx FDATool i da vrati koeficijente filtra koji je projektovan. 19. Zatvorite dijagram, a onda ga ponovo otvorite i startujte simulaciju. Na displeju bi trebao da se pojavi korektan talasni oblik 86

87 7 Primena System Generator-a u DSP procesiranju korišćenjem Spartan 3E Starter Kit-a Uvod System Generator, kao što smo videli u prethodnom poglavlju, pruža podršku hardverske ko-simulacije, što znači da je moguće ugraditi projekat koji radi na FPGA direktno u Simulink simulaciju, i pratiti rezultate rada kroz Spectrum Scope. Ovaj kratki prikaz predstavlja vodič kroz proces podešavanja Spartan 3E Starter Kit-a u cilju omogućavanja hardware-in-loop (sa hardverom u grani pojam koji označava da se ostvaruje hardverska kosimulacija) verifikacije sa JTAG ko-simulacijom korišćenjem USB konfiguracinog porta. Ovaj proces može da se primeni na bilo koji razvojni sistem sa JTAG konekcijom. Za realizaciju projekta neophodno je proučiti sledeće priručnike i uputstva [1] Napomena: Hardware-In-the-Loop je forma simulacije u realnom vremenu sa uključivanjem realne komponenete u petlji Zahtevi u pogledu hardware-a i software-a MATLAB R2007a sa Signal Processing bloksetom Xilinx ISE Design Suite 10.1 (ISE Foundation i System Generator for DSP) Spartan-3E Starter Kit (uključujući napajanje i standardni USB kabl za konfiguraciju) Opis projekta Simulacija digitalnog filtra propusnika opsega sa sledećim karakteristikama: Frekvencija uzorkovanja ( F S ) 1. 5 MHz Fstop1 270 khz Fpass1 300 khz Fpass2 450kHz Fstop2 480 khz Slabljenje sa obe strane propusnog opsega (attenuation) 54dB Pass band ripple 1 (treperenje u propusnom opsegu) U simulaciji filtra koriste se dva izvora signala: Chirp Signal block generiše sinusni talasni oblik čija frekvencija raste linearno sa vremenom Chirp blok koji ima sweep-ove izmedju specificiranih frekvencija od 6kHz do 10 khz bez obzira na trenutnu izlaznu frekvenciju (. Generator slučajnih brojeva čiji je izlaz slučajni signal uniformne raspodele u opsegu od 19. do 19.. Uniformna raspodela predstavlja bolji izbor za pobudu filtera realizovanog u fiksnom zarezu zato što je ograničena. Napomena : 87

88 Generator slučajnih brojeva često se koristi da simulira uniformnu raspodelu. Unoformna raspodela je raspodela kontinualne promenljive u vremenskom domenu čija je verovatnoća X u okviru datog intervala proporcionalna veličini intervala. Koraci u realizaciji projekta Generisanje package-a za podršku ploči Simulacija FIR filtera i generisanje run-time hardverskog modela Povezivanje hardverskog modela u MATLAB projekat i primena verifikacije tipa hardware in the loop korišćenjem USB konfiguracionog porta Korak 1. Generisanje package-a za podršku ploči Package za podršku ploči za Spartan- 3E starter kit jednostavno se generiše korišćenjem alata SBDBuilder. To je grafički orijentisan korisnički alat koji automatski kreira package fajlove za četiri tipa ploča. Detaljnije informacije o SBDBuilder-u možemo dobiti iz MATLAB help menija, a o Spartan-3E starter kit-u korišćenjem korisničkog uputstva. Napomena: Fajlovi za podršku realizacije hardverske kosimulacije na FPGA razvojnim sistemima FPGA platforme koje imaju podršku za JTAG hardversku kosimulaciju neophodno je da se definišu u System Generator u kroz fajlove za podršku kako bi se realizovala pomenuta kosimulacija. Pomenuti fajlove pružaju System Generator- u korisne informacije o FPGA platformi kao što su adekvatna podešavanja komponente i dodatne informacije u vezi sa JTAG i Boundary Scan interfejsom podržanim od strane razvojnog sistema. Skup fajlova se sastoji od sledećih MATLAB funkcija: 1. xltarget.m Ukazuje System Generator u koja je FPGA platforma odabrana za konačnu realizaciju 2. yourboard_target.m Konfiguriše dijalog System Generator bloka sa informacijama o FPGA platformi, uključujući infromacije o komponenti, frekvenciji sistemskog takta i lokaciji pina sistemskog takta. 3. yourboard_postgeneration.m Ukazuje System Generator-u da nakon generisanja HDL netliste pokrene skript sa ciljem generisanja FPGA konfiguracionog fajla koji odgovara odabranoj platformi 4. yourboard.ucf User Constraints File (UCF) fajl korisničkih ograničenja za FPGA platformu. Specificira lokaciju pina za taktovanje i sistemsku frekevenciju 1. Pokrenuti MATLAB i pronaći direktorijum /design/user 2. Otvoriti projetni fajl band_pass.mdl 3. Dvosruko kliknuti na System Generator token i izabrati Hardware Co-Simulation New Compilation Target u okviru Compilation field 88

89 Slika 1. Aktiviranje SBDbuilder-a u cilju kreiranja New Hardware Compilation Target Napomena: U startu dostupna lista ploča je ML402, MicroBlaze Multimedia i XtremeDSP 4. Uneti informaciju o ciljnoj ploči i taktne karakteristike na sledeći način: Ime ploče: s3e_starter Frekvencija (MHz): 50 (ovo je sistemska frekvencija na ploči) Lokacija pina: c9 (ovo je lokacija pina sistemskog takta) 5. Povezati USB kabl na ploču i uključiti napajanje 6. Kliknuti na Detect u okviru polja JTAG Option, koji bi trebalo da pročita sledeće: Boundary Scan Position: 1 (xc3s500e je prvi uredjaj u JTAG lancu, praćen Platform Flash-om i CoolRunner TM -II uredjajem) IR Lenght: Klikom na Detect dugme (Trebalo bi da vidite 6.8.8) Napomena: Možete da verifikujete poziciju FPGA komponente u JTAG lancu korišćenjem impact korisničog alata za programiranje koji je dostupan kroz ISE Foundation software. impact alat može da se aktivira kao samostalni program putem start menija. 7. U polju Targetable Devices dodati xc3s500e-4fg320 89

90 Slika 2. Specifikacija SBD Builder opcija za Spartan-3E ploču 8. Kliknuti na Save Files dugme i snimiti fajlove u instalacioni direktorijum System Generator: X:\MATLAB701\toolbox\xilinx\sysgen\plugins\compilation\Hardware Co-Simulation\s3e_starter Instalacija fajlova package podrške za ploču trebalo bi da bude kao na sledećoj slici 9. Izaći iz SBDBuilder-a Slika 3. Instalacija package podrške za ploču 90

91 Korak 2. Simulacija FIR filtera i generisanje run-time hardware-skog modela U ovom koraku se realizuje simulacija FIR filtra propusnika opsega u okviru Simulink a sa ciljem verifikacije rada i generisanje run-time hardware-skog modela neophodnog za hardversku kosimulaciju, odnosno vezu izmedju Simulink a i FPGA komponente na razvojnom sistemu. Slika 4. Projektovanje filtra propusnika opsega 1. Simulacija band_pass.mdl projekta. Trebalo bi da se vidi sledeći rezultat 2. Dvostrukim klikom na System Generator token proveravamo da li su sledeće opcije izabrane: Compilation: HDL Co-Simulation s3e_starter Target Directory: /hwcosim 91

92 Synthesis Tool: XST Hardware Description Language: VHDL Slika 5. Prozor System Generator Token-a sa definisanim parametrima Napomena: Možemo da izaberemo ili VHDL ili Verilog Klikom na dugme Generate u okviru System Generator Token-a generišemo hardverski modul (vidi sliku ispod) Slika 6. Run-Time model generisanog konfiguracionog fajla 92

93 Napomena: System Generator će generisati HDL kod i automatski uključiti ISE Foundation softver koji će generisati konfiguracioni fajl Ovo će da traje nekoliko minuta. Run-time blok, na prethodnoj slici, predstavlja hardverski model projekta System Generator-a. Korak 3. Povezivanje HW modela i primena JTAG Co-Sim U ovom koraku objašnjeno je kako se vrši povezivanje hardware run-time modela u projekat i kako se realizuje hardware-in-the loop verifikacije 1. Dodati run-time blok i povezati ga u skladu sa sledećom slikom, ništa više od jednostavnog kopiranja Spectrum scop-a i mux-a Slika 7. Primena JTAG Co-Sim 2. Kliknuti dva puta na HW co-simulation blok i izabrati Xilinx Platform USB kao fizičku vezu sa razvojnim sistemom putem koga vršimo transfer konfiguracionog fajla Slika 8. Izbor kabla za transfer konfiguracionog fajla 93

94 3. Kliknuti na Start Simulation dugme kako bi primenili hardware-in-the-loop verifikaciju System Generator će konfigurisati FPGA i onda aktivirati proces. Kao rezultat trebalo bi da se vidi sledeće: Za Random Source izvor signala, prikazan i na jednom i na drugom grafiku plavom bojom, projektovani digitalni filter propusnik opsega, prikazano crvenom bojom, daje rezultate u skladu sa definisanim karakteristikama i u okviru softverske i u hardverskoj simulaciji. Specifikacija karakteristika je sledeća: Frekvencija uzorkovanja ( F S ) 15. MHz Fstop1 270 khz Fpass1 300kHz Fpass2 450 khz Fstop2 480 khz Slabljenje sa obe strane propusnog opsega (attenuation) 54dB Pass band ripple 1 (treperenje u propusnom opsegu) Dakle, možemo da konstatujemo da je postignut prihvatljiv rezultat. Software Simulation Hardware simulation 94

Abstract Cover letter. Igor Pašti

Abstract Cover letter. Igor Pašti Abstract Cover letter Igor Pašti Istraživanje Identifikacija tematike/pretraga literature Postavka eksperimenta Izrada eksperimenta Analiza i diskusija rezultata Priprema publikacije Proces publikovanja

More information

Sekvencijalna logika

Sekvencijalna logika VTŠ: : Osnovi računarske tehnike Sekvencijalna logika mr. Veličkovi ković Zoran Mart, 2010. Sekvencijalna logička funkcija Logičke funkcije se mogu kategorizirati kao kombinacione ili kao sekvencijalne.

More information

Interaktivni Generator Vizuelnih Simulatora Digitalnih Sistema (IGoVSoDS)

Interaktivni Generator Vizuelnih Simulatora Digitalnih Sistema (IGoVSoDS) Univerzitet u Beogradu Elektrotehnički fakultet dr Nenad M. Grbanović Interaktivni Generator Vizuelnih Simulatora Digitalnih Sistema (IGoVSoDS) Priručnik za korišćenje Prvi dodatak Beograd, oktobar 2011.

More information

GENERATOR PSEUDOSLUČAJNE SEKVENCE BAZIRAN NA MIKROKONTROLERU

GENERATOR PSEUDOSLUČAJNE SEKVENCE BAZIRAN NA MIKROKONTROLERU GENERATOR PSEUDOSLUČAJNE SEKVENCE BAZIRAN NA MIKROKONTROLERU M. Nedeljković 1, M.Stojčev 2 Rezime: Generatori pseudoslučajnih sekvenci se koriste za testiranje složenih integrisanih kola i sistema u elektronici.

More information

UVOD U MIKRORAČUNARSKU ELEKTRONIKU (VHDL)

UVOD U MIKRORAČUNARSKU ELEKTRONIKU (VHDL) Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za energetiku, elektroniku i telekomunikacije Katedra za elektroniku Beleške sa predavanja iz predmeta: UVOD U MIKRORAČUNARSKU ELEKTRONIKU (VHDL)

More information

Osnovna pravila. Davanje i prihvatanje kritike. Sadržaj. Šta je to kritika?

Osnovna pravila. Davanje i prihvatanje kritike. Sadržaj. Šta je to kritika? Davanje i prihvatanje kritike Praktikum iz poslovne komunikacije Marko Mišić marko.misic@etf.bg.ac.rs Osnovna pravila o Tačnost rasporedje fleksibilan, ali trebalo bi svi da poštujemo ono što se jednom

More information

Digitalna obrada zvuka korištenjem Audacity aplikativnog programa

Digitalna obrada zvuka korištenjem Audacity aplikativnog programa B52423: Multimediji Tehnološki fakultet Digitalna obrada zvuka korištenjem Audacity aplikativnog programa Školska 2016/17 1 Uvod Signal je fizički nosilac informacije, npr. vrijednost vazdušnog pritiska

More information

Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System

Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System R. NARESH M. Tech Scholar, Dept. of ECE R. SHIVAJI Assistant Professor, Dept. of ECE PRAKASH J. PATIL Head of Dept.ECE,

More information

GUI interfejs kao podrška integraciji ZigBee mreže

GUI interfejs kao podrška integraciji ZigBee mreže INFOTEH-JAHORINA Vol. 11, March 2012. GUI interfejs kao podrška integraciji ZigBee mreže Olivera Janković Student postdiplomskog magistarskog studija Fakultet za informacione tehnologije, Slobomir P Univerzitet

More information

LogiCORE IP Video Timing Controller v3.0

LogiCORE IP Video Timing Controller v3.0 LogiCORE IP Video Timing Controller v3.0 Product Guide Table of Contents Chapter 1: Overview Standards Compliance....................................................... 6 Feature Summary............................................................

More information

PROGRAMSKA PODRŠKA U TELEVIZIJI I OBRADI SLIKE. DVB signalne informacije

PROGRAMSKA PODRŠKA U TELEVIZIJI I OBRADI SLIKE. DVB signalne informacije PROGRAMSKA PODRŠKA U TELEVIZIJI I OBRADI SLIKE DVB signalne informacije Hijerarhija MPEG-2 TS Programska Podrška u Televiziji i Obradi Slike E1 2015/2016 2/21 Sinhronizacija ES Postoje dva tipa vremenskih

More information

Časlav Božić ELEKTROTEHNIČ KI FAKULTET BEOGRAD

Časlav Božić ELEKTROTEHNIČ KI FAKULTET BEOGRAD Design and Implementation of HW-SW System for High Precision Force Measurement and Applications in Microrobotics / Dizajn i realizacija softversko-hardverskog sistema za merenje sile visoke preciznosti

More information

Serial FIR Filter. A Brief Study in DSP. ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 GEORGE MASON UNIVERSITY.

Serial FIR Filter. A Brief Study in DSP. ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 GEORGE MASON UNIVERSITY. GEORGE MASON UNIVERSITY Serial FIR Filter A Brief Study in DSP ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 Instructions: Zip all your deliverables into an archive .zip and submit it

More information

XXIV Simpozijum o novim tehnologijama u poštanskom i telekomunikacionom saobraćaju PosTel 2006, Beograd, 12. i 13. decembar 2006.

XXIV Simpozijum o novim tehnologijama u poštanskom i telekomunikacionom saobraćaju PosTel 2006, Beograd, 12. i 13. decembar 2006. XXIV Simpozijum o novim tehnologijama u poštanskom i telekomunikacionom saobraćaju PosTel 2006, Beograd, 12. i 13. decembar 2006. DVB MULTIMEDIJA Irini Reljin (1,2), Branimir Reljin (2) (1) Viša škola

More information

Digital Image Transmission Simulation Using the DVB Forward Error Correction Codes

Digital Image Transmission Simulation Using the DVB Forward Error Correction Codes ISSN 0005 1144 ATKAAF 45(1 2), 41 46 (2004) Tomá{ Kratochvíl Digital Image Transmission Simulation Using the DVB Forward Error Correction Codes UDK 621.397.13:004.932 IFAC IA 5.8.4 Original scientific

More information

8. Mrežne komponente

8. Mrežne komponente 8. Mrežne komponente Gradivni blokovi savremenih računarskih mreža su različiti tipovi elektronskih uredjaja čiji je osnovni zadataka da primljenu informaciju proslede na korektnu destinaciju. U zavisnosti

More information

GV3P401 TeSys GV3 termo magnetski-prekidač-30 40A- EverLink BTR/izravni konektori

GV3P401 TeSys GV3 termo magnetski-prekidač-30 40A- EverLink BTR/izravni konektori Podatkovni list proizvoda Karakteristike GV3P401 TeSys GV3 termo magnetski-prekidač-30 40A- EverLink BTR/izravni konektori Glavno Range Product name Device short name Product or component type Device application

More information

MEĐUNARODNI KONGRES MARKETING PROGRAM

MEĐUNARODNI KONGRES MARKETING PROGRAM MEĐUNARODNI KONGRES www.ugoscgrs.rs MARKETING PROGRAM IZLAGAČ 6m2 štand X 2 800 Stranice alu. konstrukcija i bele panel ispune, visina 250cm, širina panel ispune 100cm Panel iznad pulta sa logo printom

More information

FPGA Design with VHDL

FPGA Design with VHDL FPGA Design with VHDL Justus-Liebig-Universität Gießen, II. Physikalisches Institut Ming Liu Dr. Sören Lange Prof. Dr. Wolfgang Kühn ming.liu@physik.uni-giessen.de Lecture Digital design basics Basic logic

More information

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS IMPLEMENTATION OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS 1 G. Sowmya Bala 2 A. Rama Krishna 1 PG student, Dept. of ECM. K.L.University, Vaddeswaram, A.P, India, 2 Assistant Professor,

More information

osnovna razina ISPIT ČITANJA I PISANJA (Reading and Writing Paper)

osnovna razina ISPIT ČITANJA I PISANJA (Reading and Writing Paper) osnovna razina ISPIT ČITANJA I PISANJA (Reading and Writing Paper) ENG20.HR.R.K1.16 6212 12 1.indd 1 1.7.2014 9:10:15 Prazna stranica 99 2.indd 2 1.7.2014 9:10:15 OPĆE UPUTE Pozorno pročitajte sve upute

More information

SAVREMENE TEHNOLOGIJE ZAŠTITE PODATAKA KOD DIGITALNOG PRAVA

SAVREMENE TEHNOLOGIJE ZAŠTITE PODATAKA KOD DIGITALNOG PRAVA XXIII Simpozijum o novim tehnologijama u poštanskom i telekomunikacionom saobraćaju PosTel 2005, Beograd, 13. i 14. decembar 2005. SAVREMENE TEHNOLOGIJE ZAŠTITE PODATAKA KOD DIGITALNOG PRAVA Zoran Bojković,

More information

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller XAPP22 (v.) January, 2 R Application Note: Virtex Series, Virtex-II Series and Spartan-II family LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller Summary Linear Feedback

More information

L12: Reconfigurable Logic Architectures

L12: Reconfigurable Logic Architectures L12: Reconfigurable Logic Architectures Acknowledgements: Materials in this lecture are courtesy of the following sources and are used with permission. Frank Honore Prof. Randy Katz (Unified Microelectronics

More information

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board Introduction This lab will be an introduction on how to use ChipScope for the verification of the designs done on

More information

Tehnika konverzije. Upoznavanje sa osnovama CD player-a. Seminarski rad. Predmet: Tema: Elektronski Fakultet u Nišu Katedra za elektroniku

Tehnika konverzije. Upoznavanje sa osnovama CD player-a. Seminarski rad. Predmet: Tema: Elektronski Fakultet u Nišu Katedra za elektroniku Elektronski Fakultet u Nišu Katedra za elektroniku Seminarski rad Predmet: Tehnika konverzije Tema: Upoznavanje sa osnovama CD player-a Mentor: Prof. Branislav Petrović Student: Jelena Zdravković Br. indeksa:

More information

MediaStation HD DVR Network Multimedia Recorder / Wireless Network Multimedia Recorder. Korisničko uputstvo Srpski

MediaStation HD DVR Network Multimedia Recorder / Wireless Network Multimedia Recorder. Korisničko uputstvo Srpski MediaStation HD DVR Network Multimedia Recorder / Wireless Network Multimedia Recorder Korisničko uputstvo Srpski 1 Sadržaj Uvod 4 Funkcije sistema MediaStation 4 Sadržaj pakovanja 4 Mere predostrožnosti

More information

Hardware Software Co-Simulation and Real-Time Video Processing For Edge Detection Using Matlab Simulink Model Blockset

Hardware Software Co-Simulation and Real-Time Video Processing For Edge Detection Using Matlab Simulink Model Blockset Hardware Software Co-Simulation and Real-Time Video Processing For Edge Detection Using Matlab Simulink Model Blockset Purnawarman Musa and Nur Farida Irmawati Lecture Gunadarma University, Jl. Margonda

More information

Design and Implementation of Partial Reconfigurable Fir Filter Using Distributed Arithmetic Architecture

Design and Implementation of Partial Reconfigurable Fir Filter Using Distributed Arithmetic Architecture Design and Implementation of Partial Reconfigurable Fir Filter Using Distributed Arithmetic Architecture Vinaykumar Bagali 1, Deepika S Karishankari 2 1 Asst Prof, Electrical and Electronics Dept, BLDEA

More information

ЗАВРШНИ (BACHELOR) РАД

ЗАВРШНИ (BACHELOR) РАД УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА НОВИ САД Департман за рачунарство и аутоматику Одсек за рачунарску технику и рачунарске комуникације

More information

Why FPGAs? FPGA Overview. Why FPGAs?

Why FPGAs? FPGA Overview. Why FPGAs? Transistor-level Logic Circuits Positive Level-sensitive EECS150 - Digital Design Lecture 3 - Field Programmable Gate Arrays (FPGAs) January 28, 2003 John Wawrzynek Transistor Level clk clk clk Positive

More information

L11/12: Reconfigurable Logic Architectures

L11/12: Reconfigurable Logic Architectures L11/12: Reconfigurable Logic Architectures Acknowledgements: Materials in this lecture are courtesy of the following people and used with permission. - Randy H. Katz (University of California, Berkeley,

More information

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract Sundance Multiprocessor Technology Limited EVP6472 Intech Demo Unit / Module Description: Capture Demo For Intech Unit / Module Number: EVP6472-SMT949 Document Issue Number 1.1 Issue Data: 27th April 2012

More information

DIPLOMSKI - MASTER RAD

DIPLOMSKI - MASTER RAD UNIVERZITET U NOVOM SADU FAKULTET TEHNIČKIH NAUKA NOVI SAD Računarstvo i automatika Računarska tehnika i računarske komunikacije DIPLOMSKI - MASTER RAD Tema rada: Jedno rešenje programske podrške za snimanje

More information

Tema 5:Projektovanje arhitekture softverskih sistema

Tema 5:Projektovanje arhitekture softverskih sistema Tema 5:Projektovanje arhitekture softverskih sistema dr Vladislav Miškovic Fakultet za računarstvo i informatiku PROJEKTOVANJE INFORMACIONIH SISTEMA 2017/2018 1 Sadržaj predavanja 1. Uvod 2. Arhitektura

More information

KVALIFIKACIJA DOBAVLJAČA/KUPACA. Snežana Tvrdorijeka Direktor sektora kvaliteta,

KVALIFIKACIJA DOBAVLJAČA/KUPACA. Snežana Tvrdorijeka Direktor sektora kvaliteta, KVALIFIKACIJA DOBAVLJAČA/KUPACA Snežana Tvrdorijeka Direktor sektora kvaliteta, 30. 11.2017. SADRŢAJ Zahtevi regulative Tipovi dobavljača Standardi po kojima se vrši provera dobavljača Tok kvalifikacije

More information

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0 LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0 DS849 June 22, 2011 Introduction The LogiCORE IP Spartan -6 FPGA Triple-Rate SDI interface solution provides receiver and transmitter interfaces for the

More information

EXOSTIV TM. Frédéric Leens, CEO

EXOSTIV TM. Frédéric Leens, CEO EXOSTIV TM Frédéric Leens, CEO A simple case: a video processing platform Headers & controls per frame : 1.024 bits 2.048 pixels 1.024 lines Pixels per frame: 2 21 Pixel encoding : 36 bit Frame rate: 24

More information

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 9 Field Programmable Gate Arrays (FPGAs)

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 9 Field Programmable Gate Arrays (FPGAs) EE 459/5 HDL Based Digital Design with Programmable Logic Lecture 9 Field Programmable Gate Arrays (FPGAs) Read before class: Chapter 3 from textbook Overview FPGA Devices ASIC vs. FPGA FPGA architecture

More information

AC : DIGITAL DESIGN MEETS DSP

AC : DIGITAL DESIGN MEETS DSP AC 2011-754: DIGITAL DESIGN MEETS DSP Christopher S Greene, University of Saint Thomas Christopher Greene received his Ph.D. in Electrical Engineering from the Massachusetts Institute of Technology (MIT)

More information

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA 1 ARJUNA RAO UDATHA, 2 B.SUDHAKARA RAO, 3 SUDHAKAR.B. 1 Dept of ECE, PG Scholar, 2 Dept of ECE, Associate Professor, 3 Electronics,

More information

ECE 545 Lecture 1. FPGA Devices & FPGA Tools

ECE 545 Lecture 1. FPGA Devices & FPGA Tools ECE 545 Lecture FPGA Devices & FPGA Tools George Mason University Required Reading Xilinx, Inc. Spartan-3E FPGA Family Module : Introduction Features Architectural Overview Package Marking Module 2: Configurable

More information

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract Sundance Multiprocessor Technology Limited EVP6472 Intech Demo Unit / Module Description: Capture Demo For Intech Unit / Module Number: EVP6472-SMT909 Document Issue Number 1.1 Issue Data: 25th Augest

More information

FPGA Implementation of DA Algritm for Fir Filter

FPGA Implementation of DA Algritm for Fir Filter International Journal of Computational Engineering Research Vol, 03 Issue, 8 FPGA Implementation of DA Algritm for Fir Filter 1, Solmanraju Putta, 2, J Kishore, 3, P. Suresh 1, M.Tech student,assoc. Prof.,Professor

More information

Modeling and Implementing Software-Defined Radio Communication Systems on FPGAs Puneet Kumar Senior Team Lead - SPC

Modeling and Implementing Software-Defined Radio Communication Systems on FPGAs Puneet Kumar Senior Team Lead - SPC Modeling and Implementing Software-Defined Radio Communication Systems on FPGAs Puneet Kumar Senior Team Lead - SPC 2012 The MathWorks, Inc. 1 Agenda Integrated Model-Based Design to Implement SDR on FPGA

More information

Medicinski časopisi u otvorenom pristupu: iskorak ili privilegij?

Medicinski časopisi u otvorenom pristupu: iskorak ili privilegij? Medicinski časopisi u otvorenom pristupu: iskorak ili privilegij? Mario Habek Referentni centar za demijelinizacijske bolesti Klinika za neurologiju KBC Zagreb Medicinski fakultet u Zagrebu The future

More information

FPGA Development for Radar, Radio-Astronomy and Communications

FPGA Development for Radar, Radio-Astronomy and Communications John-Philip Taylor Room 7.03, Department of Electrical Engineering, Menzies Building, University of Cape Town Cape Town, South Africa 7701 Tel: +27 82 354 6741 email: tyljoh010@myuct.ac.za Internet: http://www.uct.ac.za

More information

PARAMETERS INFLUENCING NOISE ESTIMATION UDC Miroslava A. Milošević, Aleksandra M. Mitić, Milan S. Milošević

PARAMETERS INFLUENCING NOISE ESTIMATION UDC Miroslava A. Milošević, Aleksandra M. Mitić, Milan S. Milošević FACTA UNIVERSITATIS Series: Working and Living Environmental Protection Vol. 2, N o 4, 2004, pp. 277-284 PARAMETERS INFLUENCING NOISE ESTIMATION UDC 612.014.45 Miroslava A. Milošević, Aleksandra M. Mitić,

More information

Blu-ray Disc / DVD plejer

Blu-ray Disc / DVD plejer 4-476-203-41(1) (SR) Blu-ray Disc / DVD plejer Uputstvo za upotrebu Hvala vam na kupovini. Pre korišćenja plejera, pažljivo pročitajte ovo uputstvo. Početni koraci Reprodukcija Internet Podešavanja Dodatne

More information

Evolution. Emotion. Passion. THT520 Digital Terrestrial. Receiver

Evolution. Emotion. Passion. THT520 Digital Terrestrial. Receiver THT520 Digital Terrestrial HD Receiver User manual Manuel d Utilisateur Manuale Utente Ръководство за потребителя Používateľská príručka Uputstvo za upotrebu Руководство пользователя Посібник користувача

More information

INTERMEDIATE FABRICS: LOW-OVERHEAD COARSE-GRAINED VIRTUAL RECONFIGURABLE FABRICS TO ENABLE FAST PLACE AND ROUTE

INTERMEDIATE FABRICS: LOW-OVERHEAD COARSE-GRAINED VIRTUAL RECONFIGURABLE FABRICS TO ENABLE FAST PLACE AND ROUTE INTERMEDIATE FABRICS: LOW-OVERHEAD COARSE-GRAINED VIRTUAL RECONFIGURABLE FABRICS TO ENABLE FAST PLACE AND ROUTE By AARON LANDY A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN

More information

LogiCORE IP CIC Compiler v2.0

LogiCORE IP CIC Compiler v2.0 DS613 March 1, 2011 Introduction The Xilinx LogiCORE IP CIC Compiler core provides the ability to design and implement Cascaded Integrator-Comb (CIC) filters. Features Drop-in module for Virtex -7 and

More information

41 ГОДИНА ГРАЂЕВИНСКОГ ФАКУЛТЕТА СУБОТИЦА

41 ГОДИНА ГРАЂЕВИНСКОГ ФАКУЛТЕТА СУБОТИЦА THE DIALOGUE OF BUILT HERITAGE WITH ITSELF AN ONGOING PROCESS Nadja Kurtović Folić 1 Nataša Živaljević Luxor 2 УДК: 725/728 DOI:10.14415/konferencijaGFS 2015.081 Summary: Proces integracije starog i novog

More information

Digital Systems Design

Digital Systems Design ECOM 4311 Digital Systems Design Eng. Monther Abusultan Computer Engineering Dept. Islamic University of Gaza Page 1 ECOM4311 Digital Systems Design Module #2 Agenda 1. History of Digital Design Approach

More information

The 14 th International Animated Film Festival NAFF 2019

The 14 th International Animated Film Festival NAFF 2019 PRAVILNIK RULES I: GENERAL ASSUMPTIONS NAFF is individual legal subject that works on propagande of animated film among young people in BiH and other countries. Its main goal is positive influence on developement

More information

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida Reconfigurable Architectures Greg Stitt ECE Department University of Florida How can hardware be reconfigurable? Problem: Can t change fabricated chip ASICs are fixed Solution: Create components that can

More information

Register your product and get support at Priručnik

Register your product and get support at  Priručnik Register your product and get support at www.philips.com/welcome Priručnik Sadržaj 6.9 Čišćenje 30 7 TV kanali 31 7.1 7.2 Gledanje TV kanala 31 Instaliranje kanala 36 8 Satelitski kanali 40 8.1 8.2 8.3

More information

BOOK REVIEW. LUCA MALATESTI University of Rijeka. Received: 18/02/2019 Accepted: 21/02/2019

BOOK REVIEW. LUCA MALATESTI University of Rijeka. Received: 18/02/2019 Accepted: 21/02/2019 EuJAP Vol. 14 No. 2 2018 UDK: 130.1 (049.3) BOOK REVIEW Davor Pećnjak, Tomislav Janović PREMA DUALIZMU. OGLEDI IZ FILOZOFIJE UMA (Towards Dualism: Essays from Philosophy of Mind) Ibis grafika: Zagreb,

More information

Improving of business decision making with video conference applying

Improving of business decision making with video conference applying Socioeconomica The Scientific Journal for Theory and Practice of Socio-economic Development 2015, 4(7): 233-242 Stručni članak Professional Paper UDC: 658.11:005.21:1e(497.15) DOI : dx.doi.org/10.12803/sjseco.4712415

More information

Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design. Laboratory 3: Finite State Machine (FSM)

Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design. Laboratory 3: Finite State Machine (FSM) Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design Laboratory 3: Finite State Machine (FSM) Mapping CO, PO, Domain, KI : CO2,PO3,P5,CTPS5 CO2: Construct logic circuit using

More information

OBJEKTIVNA PROCENA KVALITETA VIDEO SEKVENCI SA MALIM BITSKIM BRZINAMA

OBJEKTIVNA PROCENA KVALITETA VIDEO SEKVENCI SA MALIM BITSKIM BRZINAMA XXXIII Simpozijum o novim tehnologijama u poštanskom i telekomunikacionom saobraćaju PosTel 2015, Beograd, 1. i 2. decembar 2015. OBJEKTIVNA PROCENA KVALITETA VIDEO SEKVENCI SA MALIM BITSKIM BRZINAMA Boban

More information

+++,-./0/-1,

+++,-./0/-1, 768/196:;=29;?@>;869;1=--3:9;?9 +++,-./0/-1,2345+602346 &''';16:/61;A4?:9;%BC;DE!"#$%&''(!"#$%&)'(!&#$%&''(!&#$%&)'( **#$%&''( **#$%&)'( Sadržaj 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 2 2.1

More information

A Practical Look at SEU, Effects and Mitigation

A Practical Look at SEU, Effects and Mitigation A Practical Look at SEU, Effects and Mitigation Ken Chapman FPGA Network: Safety, Certification & Security University of Hertfordshire 19 th May 2016 Premium Bonds Each Bond is 1 Each stays in the system

More information

KONFERENCIJA SPAJAMO TEHNOLOGIJU I ZNANJE

KONFERENCIJA SPAJAMO TEHNOLOGIJU I ZNANJE KONFERENCIJA 2017. SPAJAMO TEHNOLOGIJU I ZNANJE SPONZORI I POKROVITELJI Sponzori Pokrovitelji Software arhitektura za developere Bernardin Katić Tko sam ja? Programer od vremena Spectruma Voditelj razvojnog

More information

Priručnik 43PUS PUS PUS PUS PUS6162

Priručnik 43PUS PUS PUS PUS PUS6162 Register your product and get support at 6162 series www.philips.com/welcome Priručnik 43PUS6162 49PUS6162 50PUS6162 55PUS6162 65PUS6162 Sadržaj 1 Pronađite podršku 3 13 Smart TV 45 1.1 Identifikovanje

More information

PROGRAMSKA PODRŠKA U TELEVIZIJI I OBRADI SLIKE 1. Osnove digitalne televizije i pregled standarda

PROGRAMSKA PODRŠKA U TELEVIZIJI I OBRADI SLIKE 1. Osnove digitalne televizije i pregled standarda PROGRAMSKA PODRŠKA U TELEVIZIJI I OBRADI SLIKE 1 Osnove digitalne televizije i pregled standarda Digitalna televizija Trend digitalizacije nije zaobišao ni televizijsku industriju; binarna prezentacija

More information

EEM Digital Systems II

EEM Digital Systems II ANADOLU UNIVERSITY DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING EEM 334 - Digital Systems II LAB 3 FPGA HARDWARE IMPLEMENTATION Purpose In the first experiment, four bit adder design was prepared

More information

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress Nor Zaidi Haron Ayer Keroh +606-5552086 zaidi@utem.edu.my Masrullizam Mat Ibrahim Ayer Keroh +606-5552081 masrullizam@utem.edu.my

More information

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique Dr. Dhafir A. Alneema (1) Yahya Taher Qassim (2) Lecturer Assistant Lecturer Computer Engineering Dept.

More information

DIGITALNO DOBA I TRADICIONALNA TELEVIZIJA U SRBIJI

DIGITALNO DOBA I TRADICIONALNA TELEVIZIJA U SRBIJI ISSN 0354-9852 Pregledni rad Overview paper UDK 654.197:621.397.2(497.11) DOI 10.7251/AKT1635003B COBISS.RS-ID 6276888 DIGITALNO DOBA I TRADICIONALNA TELEVIZIJA U SRBIJI Sazetak DIGITALIZATION AND TRADITIONAL

More information

Design & Simulation of 128x Interpolator Filter

Design & Simulation of 128x Interpolator Filter Design & Simulation of 128x Interpolator Filter Rahul Sinha 1, Sonika 2 1 Dept. of Electronics & Telecommunication, CSIT, DURG, CG, INDIA rsinha.vlsieng@gmail.com 2 Dept. of Information Technology, CSIT,

More information

FPGA Design. Part I - Hardware Components. Thomas Lenzi

FPGA Design. Part I - Hardware Components. Thomas Lenzi FPGA Design Part I - Hardware Components Thomas Lenzi Approach We believe that having knowledge of the hardware components that compose an FPGA allow for better firmware design. Being able to visualise

More information

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General...

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General... EECS150 - Digital Design Lecture 18 - Circuit Timing (2) March 17, 2010 John Wawrzynek Spring 2010 EECS150 - Lec18-timing(2) Page 1 In General... For correct operation: T τ clk Q + τ CL + τ setup for all

More information

Dynamically Reconfigurable FIR Filter Architectures with Fast Reconfiguration

Dynamically Reconfigurable FIR Filter Architectures with Fast Reconfiguration Dynamically Reconfigurable FIR Filter Architectures with Fast Reconfiguration Martin Kumm, Konrad Möller and Peter Zipf University of Kassel, Germany FIR FILTER Fundamental component in digital signal

More information

DS099-E08 (v2.5) December 14, 2006

DS099-E08 (v2.5) December 14, 2006 DS099-E08 (v2.5) December 14, 2006 XC3S4000 and XC3S4000L FPGA Errata and Deviations from Spartan-3/3L Data Sheet Errata Notice These errata apply ONLY to Spartan-3 XC3S4000 and XC3S4000L FPGAs, including

More information

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran 1 CAD for VLSI Design - I Lecture 38 V. Kamakoti and Shankar Balachandran 2 Overview Commercial FPGAs Architecture LookUp Table based Architectures Routing Architectures FPGA CAD flow revisited 3 Xilinx

More information

Efficient Implementations of Multi-pumped Multi-port Register Files in FPGAs

Efficient Implementations of Multi-pumped Multi-port Register Files in FPGAs Efficient Implementations of Multi-pumped Multi-port Register Files in FPGAs Hasan Erdem Yantır, Salih Bayar, Arda Yurdakul Computer Engineering, Boğaziçi University P.K. 2 TR-34342 Bebek, Istanbul, TURKEY

More information

Radar Signal Processing Final Report Spring Semester 2017

Radar Signal Processing Final Report Spring Semester 2017 Radar Signal Processing Final Report Spring Semester 2017 Full report report by Brian Larson Other team members, Grad Students: Mohit Kumar, Shashank Joshil Department of Electrical and Computer Engineering

More information

ESE534: Computer Organization. Today. Image Processing. Retiming Demand. Preclass 2. Preclass 2. Retiming Demand. Day 21: April 14, 2014 Retiming

ESE534: Computer Organization. Today. Image Processing. Retiming Demand. Preclass 2. Preclass 2. Retiming Demand. Day 21: April 14, 2014 Retiming ESE534: Computer Organization Today Retiming Demand Folded Computation Day 21: April 14, 2014 Retiming Logical Pipelining Physical Pipelining Retiming Supply Technology Structures Hierarchy 1 2 Image Processing

More information

Day 21: Retiming Requirements. ESE534: Computer Organization. Relative Sizes. Today. State. State Size

Day 21: Retiming Requirements. ESE534: Computer Organization. Relative Sizes. Today. State. State Size ESE534: Computer Organization Day 22: November 16, 2016 Retiming 1 Day 21: Retiming Requirements Retiming requirement depends on parallelism and performance Even with a given amount of parallelism Will

More information

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

FPGA Laboratory Assignment 4. Due Date: 06/11/2012 FPGA Laboratory Assignment 4 Due Date: 06/11/2012 Aim The purpose of this lab is to help you understanding the fundamentals of designing and testing memory-based processing systems. In this lab, you will

More information

Praktična primena Mobile Live Streaming-a putem Webstreamur aplikacije korišćenjem iphone-a u informativnim emisijama RTS-a

Praktična primena Mobile Live Streaming-a putem Webstreamur aplikacije korišćenjem iphone-a u informativnim emisijama RTS-a INFOTEH-JAHORINA Vol. 15, March 2016. Praktična primena Mobile Live Streaming-a putem Webstreamur aplikacije korišćenjem iphone-a u informativnim emisijama RTS-a Dejan Jovanović / Žika Miljković TV Tehnika-TV

More information

UPRAVLJANJE KVALITETOM SERVISA U DIGITALNOJ TELEVIZIJI

UPRAVLJANJE KVALITETOM SERVISA U DIGITALNOJ TELEVIZIJI UPRAVLJANJE KVALITETOM SERVISA U DIGITALNOJ TELEVIZIJI Dragorad Milovanović 1, Zoran Bojković 2, Miomir Mihailović 3, Petar Pavasović 4 1 Elektrotehnički fakultet, Beograd 2 Saobraćajni fakultet, Beograd

More information

ENGLESKA KNJIŽEVNOST SPECIJALNI KURS Program: ŠEKSPIR

ENGLESKA KNJIŽEVNOST SPECIJALNI KURS Program: ŠEKSPIR Predmet: ENGLESKA KNJIŽEVNOST SPECIJALNI KURS Program: ŠEKSPIR VII i VIII semestar Broj časova: 4 (2+2) Predavanja: Vežbanja: dr Vladislava Gordić-Petković, vanredni profesor (2 časa nedeljno) Filozofski

More information

RANI BOOKING TURSKA LJETO 2018

RANI BOOKING TURSKA LJETO 2018 PUTNIČKA AGENCIJA FIBULA AIR TRAVEL AGENCY D.O.O. UL. FERHADIJA 24; 71000 SARAJEVO; BIH TEL:033/232523; 033/570700; E-MAIL: INFO@FIBULA.BA; FIBULA@BIH.NET.BA; WEB: WWW.FIBULA.BA SUDSKI REGISTAR: UF/I-1769/02,

More information

ESE (ESE534): Computer Organization. Last Time. Today. Last Time. Align Data / Balance Paths. Retiming in the Large

ESE (ESE534): Computer Organization. Last Time. Today. Last Time. Align Data / Balance Paths. Retiming in the Large ESE680-002 (ESE534): Computer Organization Day 20: March 28, 2007 Retiming 2: Structures and Balance Last Time Saw how to formulate and automate retiming: start with network calculate minimum achievable

More information

A) Instructions for preparing original articles Krajnji rok za prihvaćanje radova i sažetaka je godine.

A) Instructions for preparing original articles Krajnji rok za prihvaćanje radova i sažetaka je godine. A) Instructions for preparing original articles Krajnji rok za prihvaćanje radova i sažetaka je 15.05.2018. godine. Signa Vitae Journal publishes papers covering adult, pediatric and neonatal intensive

More information

This study focuses on the narrative picturebook, establishes its theoretical model,

This study focuses on the narrative picturebook, establishes its theoretical model, 11. One Story and Two Narrators: The Picturebook as a Narrative SUMMARY This study focuses on the narrative picturebook, establishes its theoretical model, and analyses its semantic structure and its narrative

More information

LogiCORE IP Video Scaler v5.0

LogiCORE IP Video Scaler v5.0 LogiCORE IP Video Scaler v. Product Guide PG October, Table of Contents Chapter : Overview Standards Compliance....................................................... Feature Summary............................................................

More information

Priručnik 43PUS PUS PUS6101

Priručnik 43PUS PUS PUS6101 Register your product and get support at 6101 series www.philips.com/welcome Priručnik 43PUS6101 49PUS6101 55PUS6101 Sadržaj 1 Obilazak televizora 10 Glavni meni 1.1 Smart TV 4 1.2 App gallery (Galerija

More information

ΗΜΥ 408 ΨΗΦΙΑΚΟΣ ΣΧΕΔΙΑΣΜΟΣ ΜΕ FPGAs Χειμερινό Εξάμηνο IP Cores & Video. ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Αναπληρωτής Καθηγητής, ΗΜΜΥ

ΗΜΥ 408 ΨΗΦΙΑΚΟΣ ΣΧΕΔΙΑΣΜΟΣ ΜΕ FPGAs Χειμερινό Εξάμηνο IP Cores & Video. ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Αναπληρωτής Καθηγητής, ΗΜΜΥ ΗΜΥ 408 ΨΗΦΙΑΚΟΣ ΣΧΕΔΙΑΣΜΟΣ ΜΕ FPGAs Χειμερινό Εξάμηνο 2018 IP Cores & Video ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Αναπληρωτής Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy) ΗΜΥ408 Δ09 FPGA IP Cores & Video.1 Θεοχαρίδης, ΗΜΥ, 2018

More information

osnovna razina READING AND WRITING PAPER

osnovna razina READING AND WRITING PAPER Nacionalni centar za vanjsko vrednovanje obrazovanja osnovna razina READING AND WRITING PAPER 12 Reading and writing paper Prazna stranica 99 UPUTE Pozorno slijedite sve upute. Ne okrećite stranicu i ne

More information

LogiCORE IP AXI Video Direct Memory Access v5.01.a

LogiCORE IP AXI Video Direct Memory Access v5.01.a LogiCORE IP AXI Video Direct Memory Access v5.01.a Product Guide Table of Contents Chapter 1: Overview Feature Summary.................................................................. 9 Applications.....................................................................

More information

Implementation and Analysis of Area Efficient Architectures for CSLA by using CLA

Implementation and Analysis of Area Efficient Architectures for CSLA by using CLA Volume-6, Issue-3, May-June 2016 International Journal of Engineering and Management Research Page Number: 753-757 Implementation and Analysis of Area Efficient Architectures for CSLA by using CLA Anshu

More information

viša razina ISPIT SLUŠANJA (Listening Paper)

viša razina ISPIT SLUŠANJA (Listening Paper) viša razina ISPIT SLUŠANJA (Listening Paper) ENG11.HR.R.K3.12 0039 12 1.indd 1 5.11.2012 10:44:03 Prazna stranica 99 2.indd 2 5.11.2012 10:44:03 UPUTE Pozorno slijedite sve upute. Ne okrećite stranicu

More information

1. Pretvarač frekvencije ACS800

1. Pretvarač frekvencije ACS800 1. Pretvarač frekvencije ACS800 1.1 Uvod Pretvarač frekvencije služi za promjenu brzine asinkronog motora prema zahtjevima tehnološkog procesa. Sastoji se od: mrežni dio (sklopnici, osigurači) ispravljač

More information

ECE532 A/V Touch Miaad S. Aliroteh, Joe Garvey, Ben Hare 4/9/2012

ECE532 A/V Touch Miaad S. Aliroteh, Joe Garvey, Ben Hare 4/9/2012 ECE532 A/V Touch Miaad S. Aliroteh, Joe Garvey, Ben Hare 4/9/2012 Table of Contents 1 OVERVIEW... 4 1.1 Motivation... 4 1.2 Goals... 4 1.3 Block Diagram... 5 1.4 Brief Description of IP... 5 2 OUTCOME...

More information

osnovna razina READING AND WRITING PAPER

osnovna razina READING AND WRITING PAPER Nacionalni centar za vanjsko vrednovanje obrazovanja Engleski jezik osnovna razina READING AND WRITING PAPER 12 Reading and writing paper Prazna stranica 99 UPUTE Pozorno slijedite sve upute. Ne okrećite

More information

RAZVOJ JEDNOSTAVNOG ALATA ZA ANALIZU ZVUKA NA MOBILNOJ ANDROID PLATFORMI DEVELOPMENT OF A SIMPLE TOOL FOR AUDIO ANALYSIS ON MOBILE ANDROID PLATFORM

RAZVOJ JEDNOSTAVNOG ALATA ZA ANALIZU ZVUKA NA MOBILNOJ ANDROID PLATFORMI DEVELOPMENT OF A SIMPLE TOOL FOR AUDIO ANALYSIS ON MOBILE ANDROID PLATFORM ISSN 1864-6168 UDK 62 RAZVOJ JEDNOSTAVNOG ALATA ZA ANALIZU ZVUKA NA MOBILNOJ ANDROID PLATFORMI DEVELOPMENT OF A SIMPLE TOOL FOR AUDIO ANALYSIS ON MOBILE ANDROID PLATFORM Dražen Hižak, Matija Mikac Stručni

More information

March 13, :36 vra80334_appe Sheet number 1 Page number 893 black. appendix. Commercial Devices

March 13, :36 vra80334_appe Sheet number 1 Page number 893 black. appendix. Commercial Devices March 13, 2007 14:36 vra80334_appe Sheet number 1 Page number 893 black appendix E Commercial Devices In Chapter 3 we described the three main types of programmable logic devices (PLDs): simple PLDs, complex

More information