A hardver tervezése 2004 Xilinx, Inc. All Rights Reserved
Célok A modul befejezésével elsajátított ismeretek: A mester, szolga, buszhozzáférés kiosztó funkciók jelentése A MicroBlaze és PowerPC processzorok buszainak felépítése A MicroBlaze 6 különbözı rendszerkonfigurációja A Virtex-II Pro eszközök JTAG interfésze Hardware Design - 3-3 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz funkciók : Mester, szolga, buszhozzáférés kiosztó Power PC : PLB, OPB, DCR, DSOCM, ISOCM MicroBlaze: IOPB, DOPB, ILMB, DLMB, XCL, FSL A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-4 2004 Xilinx, Inc. All Rights Reserved
Busz 1x1 A busz egy többvezetékes adatút, ami egymással szoros kapcsolatban lévı részekbıl áll Címbusz, adatbusz, vezérlı busz A processzor és a perifériák a buszon keresztül kommunikálnak A periféria egységeket szerepük szerint osztályozhatjuk, mint Mester, szolga, buszhasználat kiosztó (Arbiter) vagy együttes mester/szolga( Pl. busz kapcsolat híd) Arbiter Master Arbiter Master Master/ Slave Slave Slave Slave Hardware Design - 3-5 2004 Xilinx, Inc. All Rights Reserved
Busz 1x1 A busz mester egységek képesek busz átviteleket kezdeményezni A busz szolga perifériák csak válaszolnak a kérésekre A busz hozzáférés kiosztás 3 lépésbıl áll: A következı busz mester funkciót kérı eszköz beállítja a busz kérés vonalat A busz hozzáférés vezérlı (arbiter) folyamatosan figyeli a kéréseket, ennek megfelelıen a mesterek prioritási sémája és az aktuális kérések alapján kiadja az egyedi hozzáférés engedélyezı jelet a megfelelı mesternek. Az aktív kérést kiadó mesterek mintavételezik saját engedélyezı jeleiket, amíg az aktívvá válik. Ezután akkor kezdeményezhetik az adatátvitelt a mester és a szolga között, amikor a jelenlegi buszmester lemond a busz használatáról. Buszhasználat kiosztó mechanizmusok Rögzített prioritás, körben forgó, kevert Hardware Design - 3-6 2004 Xilinx, Inc. All Rights Reserved
PowerPC alapú beágyazott rendszerek RocketIO Dedicated Hard IP Flexible Soft IP ISOCM BRAM PowerPC 405 Core DSOCM BRAM IBM CoreConnect on-chip bus standard PLB, OPB, and DCR DCR Bus Instruction Data Arbiter OPB PLB On-Chip Peripheral Bus Bus Bridge Processor Local Bus Arbiter On-Chip Peripheral UART GPIO GB E-Net e.g. Memory Controller Hi-Speed Peripheral A teljes rendszer kialakítása a szükséges teljesítmény és költség paraméterek alapján ZBT SSRAM DDR SDRAM SDRAM Külsö memóriák Hardware Design - 3-7 2004 Xilinx, Inc. All Rights Reserved
PowerPC busz rendszer DSOCM busz 32 bit adat 32 bit cím BRAM PLB busz 64 bit adat 32 bit cím DDR OPB busz 32 bit adat 32 bit cím IIC SDRAM UART DSOCM DSPLB ISPLB INTC BRAM OPB2PLB GPIO Ethernet ISOCM busz 64 bit adat 32 bit cím PPC405 ISOCM BRAM DCR PLB ARB DCR busz 32 bit adat 10 bit cím PLB2OPB OPB ARB LCD BRAM INTC Hardware Design - 3-8 2004 Xilinx, Inc. All Rights Reserved
MicroBlaze alapú beágyazott rendszerek BRAM LocalLink FIFO Channels 0,1.32 Custom Functions Local Memory Bus MicroBlaze 32-Bit RISC Core Custom Functions UART I-Cache BRAM D-Cache BRAM OPB 10/100 E-Net Configurable Sizes Possible in Virtex-II Pro Flexible Soft IP Arbiter On-Chip Peripheral Bus Bus Bridge On-Chip Peripheral Hi-Speed Peripheral Dedicated Hard IP Instruction Data PLB PowerPC 405 Core Processor Local Bus Arbiter e.g. Memory Controller GB E-Net Külsö memória FLASH/SRAM Hardware Design - 3-9 2004 Xilinx, Inc. All Rights Reserved
MicroBlaze busz rendszer BRAM Cache kapcsolat ILMB busz DLMB Ext Mem IXCL ILMB IOPB Ext Mem MicroBlaze DXCL DOPB IOPB busz IIC UART GPIO Ethernet DLMB busz Cache kapcsolat LCD Ext Mem DOPB busz BRAM INTC Minden buszon 32 bites adat és cím OPB ARB Hardware Design - 3-10 2004 Xilinx, Inc. All Rights Reserved
CoreConnect busz architektúra Az IBM CoreConnect szabvány három buszt biztosít az egységek, könyvtári makrók és felhasználói logika összekapcsolására: Gyors processzor busz Processor Local Bus (PLB) Áramkörön belüli periféria busz On-chip Peripheral Bus (OPB) Eszközvezérlı busz Device Control Register (DCR) busz Az IBM ingyen, költségmentesen kínálja a CoreConnect architektúra felhasználói licencét. A licenc felhasználók megkapják a PLB arbiter, az OPB arbiter, és a PLB/OPB híd terveket, a busz modellezı eszközökkel és a PLB/OPB DCR busz funkcionális fordítókkal együtt Ezek az eszközök csak akkor szükségesek, ha a felhasználó saját CoreConnect perifériát készít vagy használni kívánja a busz funkcionális modelleket (BFM) Hardware Design - 3-11 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-12 2004 Xilinx, Inc. All Rights Reserved
PLB busz Nagy sávszélességő kapcsoló infrastruktúra a mester és szolga eszközök között Teljesen órajel szinkron, egyetlen órajellel Centralizált busz hozzáférés kiosztás PLB arbiter 64 bites adatbusz Döntıen a nagyteljesítményő, kis késleltetéső, rugalmas megoldásokat támogatja: Szétválasztott cím és olvasási ill. írási adatbusz, megosztott átviteli ciklus képességgel Konkurens olvasás és írás ciklusok, két átvitel per órajel maximális busz kihasználtsággal Cím futószalag használat, ami csökkenti egyes buszátvitelek késleltetésének hatását, pl. új írási ciklus végrehajtásával az aktuális írást átfedıen, vagy akár három új olvasási kérés végrehajtásával az aktuális olvasást átfedıen. Busz kérés-engedélyezés protokoll végrehajtása az aktuális átvitel ideje alatt Hardware Design - 3-13 2004 Xilinx, Inc. All Rights Reserved
PLB Busz átviteli séma Hardware Design - 3-14 2004 Xilinx, Inc. All Rights Reserved
Átlapolt átvitelek Hardware Design - 3-15 2004 Xilinx, Inc. All Rights Reserved
PLB írási ciklus Hardware Design - 3-16 2004 Xilinx, Inc. All Rights Reserved
PLB burst olvasás Hardware Design - 3-17 2004 Xilinx, Inc. All Rights Reserved
PLB Kapcsolat / Felépítés 1-tıl 16 db PLB mester, melyek minden jele csatlakozik a PLB arbiterhez A PLB arbiter kapcsolja a mesterek jeleit a megosztott buszra, amihez az összes szolga csatlakozik Az 1-tıl n számú PLB szolga perifériák kimenetei OR logikai szerint kapcsolódnak a PLB arbiter megosztott olvasás irányú adatbuszára A PLB arbiter kezeli a buszhozzáférés kiosztást, az adattovábbítást és a vezérlıjeleket a mesterek és szolgák között Hardware Design - 3-18 2004 Xilinx, Inc. All Rights Reserved
PLB buszhozzáférés vezérlı PLB mester Buszvezérlés kiosztás támogatás 16 mester egységig A PLB mesterek száma konfigurálható tervezési paraméter PLB címbusz futószalagos használata Arbitráció 3 busz órajel ütem alatt 4 szintő dinamikus mester kérés prioritás rendszer PLB szolga Támogatás 16 szolga egységig A PLB szolgák száma konfigurálható tervezési paraméter Nem kell külsı OR kapu hálózat a szolgák adatbemenetén PLB architektúra szabvány szerinti felépítés Hardware Design - 3-19 2004 Xilinx, Inc. All Rights Reserved
Prioritás eldöntési mechanizmus Az arbitrációs ciklus alatt a busz vezérlés döntı logika az M_priority[0:1] jelek állapota alapján meghatározza a jelenlegi busz prioritási szintjét (4 szint) A továbbiakban csak azokat az M_request[n] kéréseket vizsgálja, melyek kérési szintje nagyobb prioritású mint a jelenlegi mester szintje. A prioritási szinteket a rendszer felépítésekor adhatjuk meg. A prioritás a hardver rendszerleíró MHS fájlban módosítható BUS_INTERFACE MOPB = instance_name POSITION = integer Az egész típusú POSITION paraméter egy pozitív szám, az 1 érték jelzi a legnagyobb prioritást Hardware Design - 3-20 2004 Xilinx, Inc. All Rights Reserved
A prioritás ütközés feloldása A Xilinx PLB busz egy fix prioritási sémával oldja fel azokat a helyzeteket, amikor kettı vagy több mester azonos kérési prioritási szinten található. Legmagasabb prioritás Csökkenı prioritás Legalacsonyabb prioritás Master 0 Master 1 Master N-1 Master N Hardware Design - 3-21 2004 Xilinx, Inc. All Rights Reserved
PLB arbiter 3 funkcióra Hardware Design - 3-22 2004 Xilinx, Inc. All Rights Reserved
PLB buszhíd A PLB - OPB busz híd átalakítja a PLB átviteli ciklusokat OPB átviteli ciklusokká Ez a híd egység a PLB oldalon szolga, az OPB oldalon mester funkcióként jelenik meg A híd tartalmaz egy DCR szolga interfészt is a busz hibákat jelzı státuszregiszter hozzáférés biztosítására A híd szükséges mindazokban a rendszerekben, ahol a PLB mester egység, mint pl. a CPU, az OPB perifériákhoz kíván hozzáférni. Hardware Design - 3-23 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-24 2004 Xilinx, Inc. All Rights Reserved
OPB busz Az OPB busz leválasztja az alacsonyabb sávszélesség igényő eszközöket a PLB buszról Az OPB busz protokoll egyszerőbb, mint a PLB protokoll Nincs megosztott átvitel, vagy cím futószalag képesség Központi busz prioritás kezelés OPB arbiter Kapcsolódási infrastruktúra a mester és szolga periféria egységek között Az OPB busz tervezési célja a PLB busz terhelıkapacitásának csökkentésével a rendszer teljesítmény szők keresztmetszetének csökkentése Egyetlen órajeles teljesen szinkron mőködés Megosztott 32 bites címbusz és megosztott 32 bites adatbusz Egyetlen órajel ciklusos átvitelek támogatása a mesterek és szolgák között. Többszörös busz mester struktúra támogatása, a busz vezérlés kiosztó logikával A busz híd egység lehet mester a PLB oldalon vagy az OPB oldalon Hardware Design - 3-25 2004 Xilinx, Inc. All Rights Reserved
OPB jellemzık Kisebb komplexitás, mint PLB, de Osztott címzés átlapolt adathozzáférés itt is 32 bit cím, 32 vagy 64 bit adat Saját masterek (max 16), tetszıleges számú slave Burst módban inkrementális cím generálás Dinamikus adatméret választás 8-.-64 bitig Egyciklusú átviteli lehetıség 16 ciklus max. késleltetés (time out) Slave retry jelzés esetleges deadlock helyzetek kerülésére Master A dolgozik Slave B-vel, amikor a nagyobb prioritású Master C is szeretne, ezt SLave B jelezheti retry-al Hardware Design - 3-26 2004 Xilinx, Inc. All Rights Reserved
OPB busz 16 mestert és tetszıleges számú szolga egységet támogat (a komplexitást az elvárt teljesítmény korlátozza) Az OPB arbiter fogadja a mesterek kéréseit és egyiket kijelöli, mint következı mestert Rögzített és dinamikus (LRU) prioritás A buszt AND-OR logika valósítja meg. Az inaktív eszközök nulla értéket tesznek a buszra Az írás és olvasás buszok szétválaszthatók az OPB_DBus adatbusz jelek terhelésének csökkentésére Hardware Design - 3-27 2004 Xilinx, Inc. All Rights Reserved
OPB busz olvasás Hardware Design - 3-28 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-29 2004 Xilinx, Inc. All Rights Reserved
DCR busz Eszköz vezérlı regiszter busz IBM CoreConnect szabvány A vezérlı regiszter kommunikációra használatos 10 bit címzés (max.1024 regiszter) 32 bit széles adatok minden átvitel szó mérető Csak egyedi írásokat, olvasásokat támogat, nincs többszörös hozzáférés Adatbusz láncolt vagy OR kapus megoldással Egyszerő nyugtázás a ciklus végén CPU rendelkezik néhány speciális, privilegizált utasítással a DCR buszon végrehajtandó regiszter hozzáférésekre A normál DCR hozzáférések ezért speciális CPU gépi szintő kódot igényelnek Rögzített 1024 szavas I/O tartomány A hozzáféréshez a CPU privilegizált üzemmódja szükséges Nem könnyő használni speciális C függvények vagy direkt gépi utasítások nélkül Hardware Design - 3-30 2004 Xilinx, Inc. All Rights Reserved
DCR busz PPC405 DCR eszközök C405DCRABUS dcr_abus C405DCRDBUSOUT dcr_wrdata DCRC405DBUSIN dcr_rddata C405DCRREAD dcr_read C405DCRWRITE dcr_write dcr_clk DCRC405ACK dcr_ack Hardware Design - 3-31 2004 Xilinx, Inc. All Rights Reserved
Memóriába ágyazott DCR A DCR híd modul lehetıvé teszi a DCR címtartomány megjelenítését tetszıleges memóriatartományban. OPB DCR híd Biztosítja a DCR eszközök megjelenítését egy 4 kb mérető folytonos cím tartományban Csak szavasan érhetı el, egyedi hozzáférésekkel. Könnyebb használni, de a hozzáférések PLB vagy OPB buszciklust igényelnek Hardware Design - 3-32 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-33 2004 Xilinx, Inc. All Rights Reserved
PowerPC OCM buszok RocketIO Dedicated Hard IP Flexible Soft IP ISOCM BRAM PowerPC 405 Core DSOCM BRAM IBM CoreConnect on-chip bus standard PLB, OPB, and DCR DCR Bus Instruction Data Arbiter OPB PLB On-Chip Peripheral Bus Bus Bridge Processor Local Bus Arbiter On-Chip Peripheral UART GPIO GB E-Net e.g. Memory Controller Hi-Speed Peripheral A teljes rendszer kialakítása a szükséges teljesítmény és költség paraméterek alapján ZBT SSRAM DDR SDRAM SDRAM Külsö memóriák Hardware Design - 3-34 2004 Xilinx, Inc. All Rights Reserved
PowerPC OCM busz kialakítása Hardware Design - 3-35 2004 Xilinx, Inc. All Rights Reserved
OCM busz 405 OCM I/Fs A PowerPC 405 processzor független gyors interfészekkel rendelkezik az áramkörön belüli memóriaegységek felé PPC405 kiadja a címet a PLB buszra is és az OCM buszra is Tehát a ugyanaz a cím nem lehet érvényes mindkét (PLB, OCM) buszon Az OCM címtartományban nem lehet használni a gyorsító tárolót (cache), tehát a gyorsító kizárólag a PLB hozzáférések gyorsítására szolgál A processzor blokk tartalmazza az OCM vezérlıket A processzor dedikált vezérlıket tartalmaz az OCM I/F és az FPGA BRAM kapcsolatok megvalósítására Független vezérlık vannak az I utasításoldal és D adatoldal számára, a nagy sebességő elérés biztosítására. Minden jel és busz nagy indián formátumú (big endian), azaz a MSB bit indexe 0. Hardware Design - 3-36 2004 Xilinx, Inc. All Rights Reserved
OCM busz Tulajdonságok Független 16 MB logikai címtartomány a DSOCM és ISOCM interfészenként A 16 MB-ot le is kell foglalni, függetlenül az aktuális memóriamérettıl Az ISOCM 64 bites, a DSOCM 32 bites A BRAM programozástól függıen akár 128 KB / 64 KB (ISOCM / DSOCM) Programozható processzor / BRAM órajel arány DSBRAM mőveletek: BRAM inicializálás (Data2MEM), CPU, és FPGA dualport BRAM esetén ISBRAM mőveletek: BRAM inicializálás (Data2MEM) és DCR CPU DCR regiszterelérés Hardware Design - 3-37 2004 Xilinx, Inc. All Rights Reserved
OCM busz Elınyök Nincs átírás a PowerPC gyorsító (cache) memóriába, nincs adatszennyezés, nincs szemét Gyors, állandó értékő késleltetés A D oldalon, a dual-port BRAM konfiguráció megenged kétirányú adatkapcsolatot a processzorral Példa alkalmazás I-oldal: Megszakítás kiszolgáló rutinok, indulási kód tárolása D-oldal: Átmeneti adattár, kétirányú adatátvitel Hardware Design - 3-38 2004 Xilinx, Inc. All Rights Reserved
Busz idızítések PLB CLK OPB CLK DCR CLK OCM CLK * Átvitel szinkronozó órajele Processzor óra PLB óra Processzor óra Processzor óra Órajel arány 1:1 to 16:1 1:1 to 4:1 1:1 to 8:1 1:1 to 4:1 Példa Processzor óra 300 MHz, PLB óra 100 MHz PLB óra 100 MHz, OPB óra 50 MHz Processzor óra 300 MHz, DCR óra 100 MHz Processzor óra 300 MHz, OCM óra 150 MHz Idızítési elıírásokkal lehet beállítani, melyik arányt használjuk *Minden OCM vezérlıhöz két független órajel generátor tartozik: BRAMDSOCMCLK BRAMISOCMCLK Hardware Design - 3-39 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-40 2004 Xilinx, Inc. All Rights Reserved
MicroBlaze alapú beágyazott rendszerek BRAM LocalLink FIFO Channels 0,1.32 Custom Functions Local Memory Bus MicroBlaze 32-Bit RISC Core Custom Functions UART I-Cache BRAM D-Cache BRAM OPB 10/100 E-Net Configurable Sizes Possible in Virtex-II Pro Flexible Soft IP Arbiter On-Chip Peripheral Bus Bus Bridge On-Chip Peripheral Hi-Speed Peripheral Dedicated Hard IP Instruction Data PLB PowerPC 405 Core Processor Local Bus Arbiter e.g. Memory Controller GB E-Net Külsö memória FLASH/SRAM Hardware Design - 3-41 2004 Xilinx, Inc. All Rights Reserved
LMB busz Az LMB egy ciklusú hozzáférést biztosít a dual-portos blokk RAM modulokhoz Az LMB egy egyszerő szinkron protokoll a blokk RAM-ok hatékony használatához Az LMB a Virtex-II eszközökben maximum 125 MHz garantált teljesítményt biztosít a lokális memória alrendszerben DLMB: Adat interfész, lokális memória busz (csak BRAM) ILMB: Utasítás interfész, lokális memória busz (csak BRAM) Hardware Design - 3-42 2004 Xilinx, Inc. All Rights Reserved
LMB busz idızítése Általános szabály az LMB busz órajel elıállítására A MicroBlaze processzort, az LMB buszt és az OPB buszt közös órajelrıl kell mőködtetni! Használjunk idızítési elıírásokat az órajel sebesség elıírására Hardware Design - 3-43 2004 Xilinx, Inc. All Rights Reserved
Buszok összefoglalása Hardware Design - 3-44 2004 Xilinx, Inc. All Rights Reserved
Buszok összefoglalása Hardware Design - 3-45 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB FSL A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-46 2004 Xilinx, Inc. All Rights Reserved
Az adatfolyamok kezelés szoftver problémák Tegyük fel, hogy a feladat egy HW / SW jellegő adatfeldolgozás a következı jellemzıkkel: Az adatok csomagokban vagy adatfolyamként érkeznek Determinisztikus késleltetés van a HW és SW között Lehetséges megoldási módozatok Dedikált periféria egység pl. az OPB buszon Sok felesleges órajel ciklus a adatátvitel során Címdekódolás idı Arbitráció, HW / SW együttmőködés elosztása Speciális utasítás beépítése a periféria kezeléséhez A processzort feltartja A komplex logika késleltetése általában csökkenti a CPU sebességét A speciális utasítás használta sokszor közvetlen assembly szintő programozást igényel FSL Fast Simplex Link Gyors egyirányú kapcsolat Hardware Design - 3-47 2004 Xilinx, Inc. All Rights Reserved
MicroBlaze FSL kapcsolatok BRAM Local Memory Fast Simplex Link 0,1.7 Custom Functions Bus MicroBlaze 32-Bit RISC Core Custom Functions UART I-Cache BRAM D-Cache BRAM 10/100 E-Net Flexible Soft IP Configurable Sizes Possible in Virtex -II Pro Arbiter OPB On-Chip Peripheral Bus Bus Bridge Hi-Speed Peripheral Memory Controller Dedicated Hard IP Instruction Data PLB PowerPC 405 Core Processor Local Bus Arbiter e.g. Memory Controller GB E-Net FSL csatornák Külsı memória FLASH/SRAM Hardware Design - 3-48 2004 Xilinx, Inc. All Rights Reserved
Valódi alternatíva: FSL - Egyirányú kapcsolat Egyirányú FIFO alapú pont-pont kapcsolatok Dedikált (nem megosztott) és garantált 100 % hozzáféréső csatorna Dedikált MicroBlaze C és assembler utasítások a könnyő használathoz Nagy sebesség, a processzor oldalról 2 órajel hozzáférési idı, 600MHz lehetséges mőködési sebesség a hardver periféria oldalán A Xilinx Platform Studio (XPS) szabvány interfész könyvtárából elérhetı FSL_M_Clk FSL_S_Clk FSL_M_Data [0:31] FSL_M_Control FIFO FSL_M_Write FSL_M_Full FSL_S_Data [0:31] FSL_S_Control FSL_S_Read FSL_S_Exists 32-bit data FIFO Depth Hardware Design - 3-49 2004 Xilinx, Inc. All Rights Reserved
Az FSL elınyei Egyszerő, gyors, könnyő használni FSL és speciális utasítás összehasonlítása A speciális logika használata nincs hatással az utasításdekódoló egységre Az órajel sebességet az új hardver követelményei nem lassítják le Az FSL gyorsabb, mint a busz interfész Szükségtelenné teszi a busz jelzésátviteleket Nem kell hozzáférés kérés Nem kell címdekódolás Nem kell nyugtázás, visszajelzés A hardver oldal órajele teljesen aszinkron lehet a CPU órajelhez képest Minimális a szükséges FPGA erıforrásigény A processzort nem kell megállítani a külsı egység szinkronizálásakor A C fordítót nem kell módosítani, egységes kezelés egyedi hardverekhez A beépített vezérlıbitek jelentısen egyszerősítik a megszakítás logikát Hardware Design - 3-50 2004 Xilinx, Inc. All Rights Reserved
Az FSL fıbb tulajdonságai Az FSL architektúra a felhasználói igény alapján automatikusan generálható. Az erıforrásigény 21 és 451 szelet (1LUT4 + 1DFF) között mozog Az FSL egység lehet mester vagy szolga Rendelkezik egy független vezérlıbit csatornával A MicroBlaze 8 párhuzamos FSL csatorna beépítését engedi meg Egyszerő C hívási mechanizmus a MicroBlaze-hez Elıre definiált beépített fordító függvények Opcionálisan assembler utasítások is használhatók Hardware Design - 3-51 2004 Xilinx, Inc. All Rights Reserved
Az FSL fıbb tulajdonságai Konfigurálható adatbusz szélességek 8, 16, 32 bit Konfigurálható FIFO mélység 1-tıl 8193-ig (kis méretnél SRL16, nagyobbnál blokk RAM használatával) A MicroBlaze-hez képest szinkron vagy aszinkron órajelezés lehetısége Választható opcióként kiegészítı vezérlıbit használata Blokkoló és nem blokkoló szoftver utasítások az adat és vezérlési mód kialakítására (get és put) Egyszerő szoftver interfész elıre definiált C utasításokkal. Automatikusan generált C nyelvő meghajtó modulok Hardware Design - 3-52 2004 Xilinx, Inc. All Rights Reserved
Ellenırzı kérdések Mi az elınye a memóriába ágyazott DCR megvalósításnak? Mi a hátránya a memóriába ágyazott DCR megvalósításnak? Milyen buszokat foglal magába a CoreConnect szabvány? Mi a maximális teljesítmény az LMB buszon a Virtex -II eszközökön? Hardware Design - 3-53 2004 Xilinx, Inc. All Rights Reserved
Válaszok Mi az elınye a memóriába ágyazott DCR megvalósításnak? Nem igényli beillesztett gépi utasítások használatát a DCR regiszterek hozzáféréséhez Mi a hátránya a memóriába ágyazott DCR megvalósításnak? PLB vagy OPB átviteli ciklusokat használ DCR regiszter hozzáféréshez Milyen buszokat foglal magába a CoreConnect szabvány? PLB, OPB és DCR Mi a maximális teljesítmény az LMB buszon a Virtex -II eszközökön? 125 MHz Hardware Design - 3-54 2004 Xilinx, Inc. All Rights Reserved
Ellenırzı kérdések Mi az FSL? Mennyi FSL csatorna használható egy MicroBlaze processzoron? Milyen módon javítja az FSL csatorna használata a rendszer teljesítményt? Hardware Design - 3-55 2004 Xilinx, Inc. All Rights Reserved
Válaszok Mi az FSL? Az FSL egy dedikált egyirányú FIFO típusú átviteli csatorna Mennyi FSL csatorna használható egy MicroBlaze processzoron? Maximum 8, tetszıleges bemeneti és kimeneti irány megosztásban Milyen módon javítja az FSL csatorna használata a rendszer teljesítményt? Mivel ez egy dedikált pont-pont kapcsolat, az átvitelt nem terheli hozzáférés kérés, címzés stb. Garantált két órajel ciklus adatátviteli késleltetés is elérhetı. Hardware Design - 3-56 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB FSL Processzor használati esetek beágyazott rendszerekben A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-57 2004 Xilinx, Inc. All Rights Reserved
Processzor használati esetek 1 2 3 Egyszerő vezérlés Mikrovezérlı Beágyazott rendszer Minimális költség, Nincsenek perifériák Nincs RTOS, futtató Nincs buszstruktúra, csak GPIO, Pl. VGA & LCD vezérlés Kicsi/Nagyobb teljesítményigény Range of Use Models Közepes költség Néhány periféria Esetleg RTOS, futtató Buszstruktúra Vezérlési és ipari alkalmazások Közepes teljesítményigény Magas fokú integrálság Teljes perifériakészlet Teljes RTOS Hierarchikus buszrendszer Komplex hálózati és rádiós alkalmazások Nagy teljesítményigény Hardware Design - 3-58 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB FSL Processzor használati esetek beágyazott rendszerekben A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-59 2004 Xilinx, Inc. All Rights Reserved
A MicroBlaze processzor Beágyazott lágy RISC processzor 32 bit adat 32 bit utasítás szó (három operandus és két címzési mód) 32 általános célú regiszter (32 bit szélesek) 3 fokozató futószalag (egyszerre egy utasítást indít) MicroBlaze v5.0 5 fokozatú feldolgozólánc MSB a nagyobb címen (Big-endian formátum) Buszok Tisztán Harvard architektúra, külön utasítás és adatbuszok Független OPB (CoreConnect szabvány) utasítás és adatbuszok Független LMB utasítás és adat buszok a lokális (gyors) BRAM memória interfészhez 8 független FSL csatorna: Dedikált pont-pont kapcsolat adatfolyam átvitelekhez Két független XCL cache adatátviteli csatorna az utasítás és adat gyorsító tárakhoz, 4 szavas hozzáférésekkel és a kritikus kérés elsıbbségi kiszolgálásának képességével Hardware Design - 3-60 2004 Xilinx, Inc. All Rights Reserved
A MicroBlaze processzor ALU Hardver szorzó vagy DSP48 modul használata az újabb eszközökben Párhuzamos Barrel shifter (egyciklusos, tetszıleges mérető eltolás) Lebegıpontos egység IEEE 754 szimplapontosságú lebegıpontos szabványnak megfelelı Mőveletek: összeadás, kivonás, szorzás, osztás és összehasonlítás Program számláló Utasítás dekóder 32 bites regiszterek Utasítás cache Közvetlen leképezés, Konfigurálható hozzáférés az OPB buszon vagy az XCL csatornákon keresztül Konfigurálható méret 2 KB, 4 KB, 8 KB, 16 KB, 32 KB, 64 KB 3x - 6x gyorsítás a 60 ns (16 MHz) sebességő külsı memóriából futó programvégrehajtáshoz képest Hardware Design - 3-61 2004 Xilinx, Inc. All Rights Reserved
A MicroBlaze teljesítménye Minden utasítás végrehajtás egy órajel ciklus, kivéve Memóriamőveletek (Load / Store) (2 órajel ciklus) Szorzás (2 órajel ciklus) Programelágazás (3 órajel ciklus, de lehet 1 órajel ciklus is) Mőködési frekvencia adatok 180 MHz a Virtex-4 LX (-12) eszközökön 150 MHz a Virtex-II Pro (-7) eszközökön 100 MHz a Spartan-3 (-5) eszközökön Dhrystone-MIPs (2.1 szabvány szerinti)érétkek LMB BRAM használatakor 166 MHz a Virtex-4 LX (-12) eszközökön 138 MHz a Virtex-II Pro (-7) eszközökön 92 MHz a Spartan-3 (-5) eszközökön Maximális teljesítmény 0.92 DMIPS / MHz Közelítıleg 1269 LUT a Virtex-4-ben, 1225 LUT a Virtex-II-ben és 1318 LUT a Spartan 3-ban Hardware Design - 3-62 2004 Xilinx, Inc. All Rights Reserved
A MicroBlaze memória térképe Memória és perifériák 0xFFFF_FFFF Peripherals A MicroBlaze processzor 32 bites címzést használ Speciális címek OPB Memory A MicroBlaze processzor felhasználó által írható (RAM) memóriát kíván a 0x00000000-0x0000004F címeken Minden vektor két címet foglal el, két utasításból áll. Az elsı egy IMM cím specifikáció, a második egy BRAI utasítás, amely így a teljes 4GB memória tartományt elérheti 0x0000_004F 0x0000_0028 0x0000_0020 0x0000_0018 0x0000_0010 0x0000_0008 0x0000_0000 LMB Memory Reserved Hardware Exception Break Interrupt Address Exception Address Reset Address Hardware Design - 3-63 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-64 2004 Xilinx, Inc. All Rights Reserved
Busz konfigurációs lehetıségek Hardware Design - 3-65 2004 Xilinx, Inc. All Rights Reserved
1. konfiguráció Nagy külsı utasítás memória Gyors belsı utasítás memória (BRAM) Nagy külsı adat memória Gyors belsı adatmemória (BRAM) Hardware Design - 3-66 2004 Xilinx, Inc. All Rights Reserved
2. konfiguráció Nagy külsı utasítás memória Nagy külsı adat memória Gyors belsı adat memória (BRAM) Hardware Design - 3-67 2004 Xilinx, Inc. All Rights Reserved
3. konfiguráció Gyors belsı utasítás memória (BRAM) Nagy külsı adatmemória Gyors belsı adatmemória (BRAM) Hardware Design - 3-68 2004 Xilinx, Inc. All Rights Reserved
4. konfiguráció Nagy külsı utasítás memória Gyors belsı utasítás memória (BRAM) Nagy külsı adat memória Hardware Design - 3-69 2004 Xilinx, Inc. All Rights Reserved
5. konfiguráció Nagy külsı utasítás memória Nagy külsı adat memória Hardware Design - 3-70 2004 Xilinx, Inc. All Rights Reserved
6. konfiguráció Gyors belsı utasítás memória (BRAM) Nagy külsı adat memória Hardware Design - 3-71 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-72 2004 Xilinx, Inc. All Rights Reserved
A PowerPC processzor Megjegyzés: Az OCM busz a valóságban nincs kapcsolatban a cache vezérlıvel Hardware Design - 3-73 2004 Xilinx, Inc. All Rights Reserved
A PowerPC processzor A PowerPC megvalósítás egy 32 bites beágyazott környezet architektúra Beágyazott rendszer alkalmazások támogatása Rugalmas memória menedzsment Szorzás és összegzés utasítás a számításigényes alkalmazásokhoz Javított hibakeresési képességek 64 bites idıalap Programozható (PIT), és fix (FIT) intervallum idızítık, és watchdog idızítık Teljesítménynövelı tulajdonságok Statikus elágazás jóslás 5 fokozatú futószalag Hardver szorzás/osztás a gyors egész aritmetikához Javított karakterlánc és többszörös szó kezelés Minimalizált megszakítás késleltetés Hardware Design - 3-74 2004 Xilinx, Inc. All Rights Reserved
PowerPC 0xFFFF_FFFC Reset Address Memória és perifériák A PPC405 32 bites címzést használ PLB/OPB Memory 0xFFFF_0000 Speciális címek Minden PowerPC rendszerben a RESET vektor címe 0xFFFFFFFC, tehát itt kell lennie az indító szektornak PLB/OPB Memory A minimális programmemória a 0xFFFF0000 to 0xFFFFFFFF címek közötti folytonos címtartományt tölti ki. Ha van megszakítás kezelı, akkor a megszakításvektornak egy 64k blokkhatáron kell lennie 0x0000_0000 Peripherals Hardware Design - 3-75 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-76 2004 Xilinx, Inc. All Rights Reserved
Reset interfész Név RSTC405RESETCORE RSTC405RESETCHIP RSTC405RESETSYS C405RSTCORERESETREQ C405RSTCHIPRESETREQ Utasítás Bemenet Adat és utasítás cache RESET Bemenet Teljes CPU mag és a belsı periféria RESET Bemenet Teljes rendszer, CPU mag, FPGA és külsı komponens RESET Kimenet Utasítás és adat cache RESET jelzése Kimenet CPU és a belsı periféria RESET jelzése C405RSTSYSRESETREQ Kimenet Teljes rendszer RESET jelzése Hardware Design - 3-77 2004 Xilinx, Inc. All Rights Reserved
PROC_SYS_RESET Az aszinkron külsı RESET bemenetet az órajel szinkronizálja Az aszinkron külsı segéd RESET bemenetet is az órajel szinkronizálja Minkét külsı RESET bemenet polaritása választható (aktív magas, aktív alacsony) Beállítható az elfogadott RESET impulzus minimális szélessége Beállítható a terhelés elosztás Az FPGA digitális órajel menedzser modul DCM zárt állapotjelzıje is bemenet Bekapcsolási RESET elıállítása Az indulásnál a jelek sorrendben aktivizálódnak: 1. fázis A busz rendszer elemei aktívvá válnak Például a PLB és OPB hozzáférés vezérlık, és busz kapcsolat hidak 2. fázis A perifériák 16 órajellel késıbb válnak aktívvá Például UART, SPI, és IIC 3. fázis A CPU 16 órajellel a perifériák után válik aktívvá Hardware Design - 3-78 2004 Xilinx, Inc. All Rights Reserved
PROC_SYS_RESET Tulajdonságok Tulajdonság Leírás Alapérték C_EXT_RST_WIDTH A külsı RESET pulzus minimális detektálási szélességét határozza meg 4 C_AUX_RST_WIDTH A külsı segéd RESET pulzus minimális detektálási szélességét határozza meg 4 C_EXT_RESET_HIGH A külsı RESET aktív szintjét határozza meg. Ha 1, akkor a külsı RESET magas értéke fogja indítani a RESET folyamatot az órajel felfutó élére 1 C_AUX_RESET_HIGH C_NUM_BUS_RST C_NUM_PERP_RST A külsı segéd RESET aktív szintjét határozza meg. Ha 0, akkor a külsı segéd RESET alacsony értéke fogja indítani a RESET folyamatot az órajel felfutó élére További Bus_Struct_Reset jelet generál. Ez javíthatja a jel terhelését és huzalozhatóságát. Általánosan, minden busznak legyen saját Bus_Struct_Reset jele További periféria RESET jeleket generál. Ez javíthatja a jel terhelését és huzalozhatóságát. Általánosan, legyen minden perifériának saját periféria RESET jele. 1 1 1 Hardware Design - 3-79 2004 Xilinx, Inc. All Rights Reserved
PROC_SYS_RESET példa Ha C_EXT_RST_WIDTH = 5 és C_EXT_RESET_HIGH = 0, akkor a külsı Ext_Reset_In jelnek legalább 5 órajellell korábban aktívvá kell válnia és folyamatosan aktívnak kell maradnia, hogy a RESET folyamat érvényre jusson. 1 2 3 4 5 6 Hardware Design - 3-80 2004 Xilinx, Inc. All Rights Reserved
Tartalom Busz 1x1: Mester, szolga, buszhozzáférés kiosztó PLB OPB DCR OCM LMB A MicroBlaze processzor programozói modellje MicroBlaze konfigurációk A PowerPC processzor programozói modellje A PowerPC reset áramköre A Virtex-II Pro JTAG konfigurációja Hardware Design - 3-81 2004 Xilinx, Inc. All Rights Reserved
JTAG TAP opciók Tervezési idıben eldönthetı, hogy az FPGA felkonfigurálása után a PowerPC processzor/processzorok JTAG TAP interfésze a az FPGA JTAG TAP interfészével közös láncba kapcsolódjon vagy maradjon független lánc Ezt a megfelelı processzor JTAGPPC blokkjának kihagyásával, vagy beillesztésével tehetjük meg. Hardware Design - 3-82 2004 Xilinx, Inc. All Rights Reserved
JTAG TAP opciók Minta MHS fájl a kombinált JTAG lánc esetére Bekapcsolja a PowerPC JTAG TAP vezérlıjét az FPGA dedikált JTAG láncába a felkonfigurálás után Hardware Design - 3-83 2004 Xilinx, Inc. All Rights Reserved
Virtex-II Pro Megosztott JTAG lánc Felhasználó által definiált JTAG lábak Közvetlen, leválasztott kapcsolat a PPC405 JTAG TAP interfészhez A JTAGPPC blokk nincs használva az FPGA tervében Az FPGA felhasználó által definiált lábai CPU JTAG DEBUG PORT TDO PPC TDI 405 A leválasztott lánc támogatja a beágyazott rendszer fejlesztési és hibakeresési eszközeit FPGA JTAG CONFIG PORT Fix/dedikált JTAG lábak az FPGA áramkörön Hardware Design - 3-84 2004 Xilinx, Inc. All Rights Reserved
Virtex-II Pro Egyesített JTAG lánc A JTAGPPC blokk használata Integrálja a PPC405 processzort az FPGA JTAG láncával a dedikált JTAG lábakon keresztül Az egyesített lánc támogatja a fejlesztı és hibakeresı eszközöket Az FPGA felhasználó által definiált lábai CPU JTAG DEBUG PORT TDO TDI JTAG PPC PPC 405 ChipScope Pro (PC4) impact (PC4) GDB (PC4) SingleStep XE (visionprobeii ) FPGA JTAG CONFIG PORT Fix/dedikált JTAG lábak az FPGA áramkörön Hardware Design - 3-85 2004 Xilinx, Inc. All Rights Reserved
Virtex-II Pro Egyesített JTAG lánc Ha a JTAG PPC vezérlı használatával kapcsoljuk a PowerPC 405 CPU-t az egyesített JTAG láncba az FPGA-val, akkor minden PowerPC 405 magot összekapcsolunk egy Virtex-II Pro multi - CPU konfigurációba Hardware Design - 3-86 2004 Xilinx, Inc. All Rights Reserved
FPGA JTAG lánc összefoglalás PowerPC 405 integrált hardver CPU-k TCK, TMS, TDI, és TDO lábai konfigurálható kapcsolatok A Virtex-II Pro JTAG TAP IR utasításregisztere 6 bites, ehhez adódik hozzá a CPU-k 4 4 - bites utasításregisztere Összesen 10 egy CPU esetén pl. 2VP4/7 Összesen 14 két CPU esetén pl. 2VP20/30/40/50/70/100 Összesen 22 négy CPU pl. 2VP125 A JTAG TAP utasításregiszter szélességet azonos értéken kell tartani az FPGA felkonfigurálása elıtt és után Egy EXTRA regiszter kompenzálja a hiányzó CPU IR regiszter biteket a konfiguráció elıtt és után, ha a CPU JTAG lábakat általános I/O lábakra kötjük (amikor a JTAGPPC blokkot nem használjuk) Hardware Design - 3-87 2004 Xilinx, Inc. All Rights Reserved
JTAG lánc kapcsolatok Az FPGA konfigurációja elıtt Hardware Design - 3-88 2004 Xilinx, Inc. All Rights Reserved
JTAG lánc kapcsolatok Konfiguráció után / Szétválasztott JTAG lánc CPU TDI CPU TDO Hardware Design - 3-89 2004 Xilinx, Inc. All Rights Reserved
JTAG lánc kapcsolatok Konfiguráció után / Egyesített JTAG lánc Hardware Design - 3-90 2004 Xilinx, Inc. All Rights Reserved
JTAG konfiguráció Indítás az egyesített JTAG láncról Az egyesített JTAG lánc lehetıvé teszi a felkonfigurált FPGA CPU és külsı memóriák azonos idıben történı indítását A JTAG interfészen keresztül a rendszer konfigurációs lépései a következık lehetnek: Az FPGA felkonfigurálása Várakozás, amíg az FPGA kilép a konfigurációs módból A CPU, CPU cache memóriák, az OCM, és a CPU által elérhetı külsı memóriák konfigurálása A CPU PC regiszter beállítása a programkód kezdıcímére Programkód végrehajtása A JTAG parancsok, mint SVF utasítások lehetnek a konfigurációs memóriában Hardware Design - 3-91 2004 Xilinx, Inc. All Rights Reserved
Ellenırzı kérdések Milyen kapcsolatot kell kiépíteni a IBM PowerPC processzoron futó szoftver fejlesztéséhez/hibakereséséhez? Hol találhatók a MicroBlaze processzor következı vektorai? Reset Interrupt Exception Ha van LMB memória a rendszerben, akkor hol van a programkód kezdıcíme? Hol található a PowerPC processzor Reset vektora? Hardware Design - 3-92 2004 Xilinx, Inc. All Rights Reserved
Válaszok Milyen kapcsolatot kell kiépíteni a IBM PowerPC processzoron futó szoftver fejlesztéséhez/hibakereséséhez? A PowerPC JTAG kapcsolatot, vagy független lábakon, vagy a JTAGPPC blokkon keresztül Hol találhatók a MicroBlaze processzor következı vektorai? Reset 0x00000000 Interrupt 0x00000010 Exception 0x00000008 Ha van LMB memória a rendszerben, akkor hol van a programkód kezdıcíme? 0x00000050 Hol található a PowerPC processzor Reset vektora? 0xFFFFFFFC Hardware Design - 3-93 2004 Xilinx, Inc. All Rights Reserved
További információk Eszközök dokumentációja Processor IP Reference Guide Processzorok dokumentációja PowerPC Processor Reference Guide PowerPC 405 Processor Block Reference Guide MicroBlaze Processor Reference Guide Hasznos WEB oldalak EDK Home Page: support.xilinx.com/edk Hardware Design - 3-94 2004 Xilinx, Inc. All Rights Reserved