Mit jelent az hogy be gyazott rendszer
This presentation is the property of its rightful owner.
Sponsored Links
1 / 105

Mit jelent az, hogy “ Beágyazott Rendszer ?” PowerPoint PPT Presentation


  • 121 Views
  • Uploaded on
  • Presentation posted in: General

Mit jelent az, hogy “ Beágyazott Rendszer ?”. “ Egy specializált számítógép rendszer, ami egy nagyobb rendszer vagy berendezés része .” Webopedia

Download Presentation

Mit jelent az, hogy “ Beágyazott Rendszer ?”

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Mit jelent az hogy be gyazott rendszer

Mit jelent az, hogy “Beágyazott Rendszer?”

“Egy specializált számítógép rendszer, ami egy nagyobb rendszer vagy berendezés része.”

Webopedia

“…egy beágyazott rendszer előre definiált feladatokat teljesít, általában speciális követelményeknek megfelelve. Mivel a rendszer egy speciális feladatra készült, ezért a tervezőmérnökök optimalizálták, csökkentve a méretét és a költségeket.”

Wikipedia


P ld k be gyazott rendszerekre

Példák beágyazott rendszerekre


Az ipar legfontosabb tervez si kih v sai napjainkban

Az ipar legfontosabb tervezési kihívásai napjainkban

  • A HW mérnök problémája: A komplex megoldások kihívása

    • Ethernet, USB, video, audio, (iPod, cell phone)

  • A SW mérnök problémája: A szoftver méret exponenciális növekedése

    • Megközelítőleg a teljes fejlesztési költségek 50% a szoftverrel kapcsolatos

    • A legtöbb beágyazott rendszer fejlesztése a szoftver problémák miatt késik

  • A terméktervezési ciklus problémája: Az egyre bonyolultabb rendszerek kihívása.


A tervez si ciklus

A tervezési ciklus

Terv

Test

Rendszer

Specifikáció

Alkalmazási

teszt

Kalibrálásés

FunkcionálisTeszt

Tervezésés

Szimuláció

Prototípus

Rendszer

Teszt (HIL)

Kódgenerálás


Komplex vez rl si alkalmaz sok

Ipari vezérlések

Mozgás vezérlés

Komplex vezérlési alkalmazások

Repülés vezérlés

Precíziós gépi vezérlések

Motor vezérlés


Hogyan cs kkenthetj k a be gyazott rendszerek tervez se sor n a komplexit st

Kulcsrakész rendszerek

Moduláris redsz.

COTS kártyák

ODM kártyák

Egyedi

kártyák

Standard

Silicon

ASIC

ASSP

Hogyan csökkenthetjük a beágyazott rendszerek tervezése során a komplexitást?

Bevezetés költsége

Gyártási volumen


Hagyom nyos be gyazott rendszerek fejleszt si ideje

Hagyományos beágyazott rendszerek fejlesztési ideje

Hardver tervezés: 2 hét

Logikai és áramköri tervezés: 2 hét

Hardver verifikáció: 2 hét

Szoftver tervezés/kódolás: 2 hét

Szoftver integráció: 2 hét

Rendszer teszt/ellenőrzés: 2 hét

ÖSSZESEN: 12 hét, $50,000 - $150,000


Modul ris s k szen kaphat elemekb l p thet be gyazott rendszerek

Moduláris és készen kapható elemekből építhető beágyazott rendszerek

Hardver tervezés: 0hét

Logikai és áramköri tervezés: 0hét

Hardver verifikáció: 0hét

Szoftver tervezés/kódolás: 1hét

Szoftver integráció: 1hét

Rendszer teszt/ellenőrzés: 1hét

ÖSSZESEN: 3hét, $17,000 + PC költség


Ltal nos hw rendszerarchitekt r k

Általános HW rendszerarchitektúrák

Analog

I/O

Analog

I/O

Sensor

I/O

Sensor

I/O

Processor

FPGA

Processor

Bus

I/O

USB,

Ethernet

Bus

I/O

USB,

Ethernet

Digital

I/O

Digital

I/O

Processor

Analog

I/O

Sensor

I/O

Bus

I/O

USB,

Ethernet

Digital

I/O


Ltal nos be gyazott kommunik ci s m dszerek

Általános beágyazott kommunikációs módszerek

SPI

I2C

Serial


2 el ad s

2. Előadás:

Téma:

A. Általános FPGA programozási technikák


Tartalom

Tartalom

  • FPGA műveleti paletta

  • Egyszerű FPGA VI

  • Párhuzamosság és megosztott erőforrások

  • Egészaritmetikai kérdések


Fpga m veleti paletta

FPGA műveleti paletta

  • FPGA specifikus funkciók

    • Programozási technikák

    • Eszköz I/O

    • Aritmetikai és logikai elemek

    • Tömbök és klaszterek

    • Időzítések

    • Matematikai és vezérlési funkciók

    • Szinkronizálás és FIFO elemek

    • Táblázatok


Egyszer fpga vi

Egyszerű FPGA VI

  • F=(A+B)CD


Mit jelent az hogy be gyazott rendszer

LabVIEW technológia leképezése FPGA-ra

A megadott logika leképezése FPGA: F =(A+B)CD

F

AB

CD


A ford t si folyamat s a szerver

A fordítási folyamat és a szerver

  • A LV diagramok konvertálása átmeneti leíró fájlokra

  • A leíró fájlok elküldése a fordító szerverre

    • Lefordítja az adat fájlokat az FPGA-ra

    • Visszaadja az FPGA konfigurációs fájlt a LabVIEW-nak

    • A bitfolyamot egy VI tárolja

  • A LabVIEW környezet egy kliens

    • Tetszőlegesen kapcsolódhat a szerverhez és leválhat róla a fordítás után

Compile

Server


Let lt s

Letöltés

Windows OS

  • A RUN parancs kiadása után a fordítás végén automatikusan történik

LabVIEW FPGA Module

Target FPGA

FPGA VI

Download

Bit File Embedded

FPGA VI

( a bitfájl maga)


Interakt v m d

Interaktív mód

  • Az FPGA-n futó VI egy Előlapi panelen keresztül érhető el

  • Nincs debug lehetőség

    • A VI az FPGA-n fut

Windows OS

LabVIEW FPGA Module

FPGA VI

(Front Panel)

Target FPGA

FPGA VI

(működő)

Kommunikáció


Host pc interakt v m d

Host PC interaktív mód

  • A Host PC VI Előlapja biztosítja FPGA VI kommunikációt

  • Megenged egyéb feldolgozást is a Host VI-ban

Windows OS

VI

(Front Panel)

Target FPGA

FPGA VI

(működő)

Kommunikáció


Windows target m d

Windows Target mód

Windows OS

  • Az FPGA VI a Windows rendszeren fut

  • Szoftver emuláció

    • Nincs hardver időzítés

  • Debuggolás lehetséges

    • A logika ellenőrzése fordítás előtt

LabVIEW FPGA Module

(targeted to Windows)

FPGA VI


Megosztott er forr sok

Task 1

Task 1

Task 2

Task 2

Megosztott erőforrások

Mielőtt egy taszk használhatna egy megosztott erőforrást, meg kell várnia, míg az eszköz felszabadul.

Megosztott erőforrás

Fut

Vár

A Task 2 akkor indulhat, ha a Task 1 befejezte az erőforrás használatát

Megosztott erőforrás

Vár

Fut


Megosztott er forr sok1

Megosztott erőforrások

  • Megosztott erőforrások:

    • Digitális kimenetek

    • Memória/FIFOs

    • Nem újra-beépülő VI-ok

    • Lokális változók


P lda megosztott er forr sokra

Példa megosztott erőforrásokra


Vi ok megoszt sa nem jra be p l vi ok

VI-ok megosztása (nem újra-beépülő VI-ok)

  • Nem újra-beépülő (Alapértelmezett)

    • A VI megosztott

    • Egyetlen példányban épül be az FPGA eszközbe

  • Újra-beépülő VI

    • A diagram minden példánya külön logikai elemekre képződik le az FPGA-ban (több helyet igényel)

  • Beállítható az erőforrás tulajdonságokban az opciók között


Eg sz aritmetika

Egész aritmetika

  • Nincs lebegőpontos művelet

  • Sem szimpla, sem dupla pontosságban


Eg sz aritmetika1

Egész aritmetika

  • Adatok skálázása

    • A lebegőpontos szorzást/osztást helyettesítsük skálázással

    • Leginkább 16 bites egészeknél használható, a számításoknál 32 bites szélességet használva

  • Műveletek

    • Szorzás egész értékű skálázó értékkel

    • Skálázás 2 hatványaival

    • Együttesen megoldható a szorzás törttel művelet


Eg sz aritmetika2

Egész aritmetika

  • Változó értékű skálázáshoz a skálázó faktor kiszámítható és beállítható a Host VI-ban

Például:Skálázó faktor: 11500Léptetés: -14 bit jobbraA művelet eredménye: 11500 / 16384 = 0.7019


Eg sz aritmetika3

Egész aritmetika

  • A matematikai műveletek során előforduló túlcsordulások kezelésére és elkerülésére használjunk szaturációs műveleteket

  • Túlcsordulás esetén két lehetőség van

    -Szaturáció

    -Átfordulás


3 el ad s

3. Előadás:

Téma:

  • FPGA I/O konfigurálása

  • FPGA I/O paletta

  • I/O típusok


Az fpga i o konfigur l sa

Az FPGA I/O konfigurálása


Az fpga i o haszn lata

Az FPGA I/O kétféleképpen használható:

Áthúzhatjuk a LabVIEW Project-ből

Tegyünk egy üres I/O komponenst a blokk diagramba és konfiguráljuk

Az FPGA I/O használata


I o t pusok

I/O típusok

  • Digitális vonalak – Boole változók írhatók/olvashatók a vonalakról

  • ADC és DAC – Magas szintű VI-ok, értékek írására és olvasására; NI R-Series hardver

  • Előre kiosztott IO lábak az FPGA-n (pl. Xilinx Spartan 3E kártyán)

    • Használjuk a példa projekteket mintaként


Sz ml l k sz t se digital i o vonalakkal

Számláló készítése Digital I/O vonalakkal

  • A minimális használható pulzusszélességet a ciklus periódusideje szabja meg


Bin ris konverzi az analog i o vonalakkal

Bináris konverzió az Analog I/O vonalakkal

  • Az Analóg I/O használatakor a bináris értéket a nominális értékre jkell konvertálni a host VI-ban

  • A bináris konverziós tényező az aktuális kártyától függ

    • Spartan 3E; 14-bit ADC

    • NI Hardware; modulonként változó


3a el ad s

3A Előadás:

Téma:

  • Digitális I/O protokollok az FPGA I/O vonalakkal


Ltal nos digit lis kommunik ci s m dszerek

Általános digitális kommunikációs módszerek

  • Komponens/IC kommunikáció

    • Elektromos tervezés: SPI, I2C, JTAG, PS/2, …

  • Rendszer kommunikáció

    • Repülés: MIL-STD-1553, ARINC-429, …

    • Autóipar: CAN, MOST, KWP, 1939, …

  • Távközlés

    • Űrkutatás: PCM/Telemetria

  • Fogyasztói elektronika

    • Digitális audió: S/PDIF, I2S

  • Egyedi

    • Eszköz specifikus megvalósítás


I2c kommunik ci

I2C kommunikáció


Spi kommunik ci

SPI kommunikáció

Pont-pont Master - Slave SPI kapcsolat

Egy Master, több Slave SPI busz kapcsolat


Pwm mommunik ci

PWM mommunikáció

  • A PWM használható egyszerűbb szervo vezérléseknél

Pulzus szélesség SzögMegjegyzés

0.6ms -45 fok minimum pulzus szélesség

1.5ms0 fokközépállás

2.4 msc -45 fok maximum pulzus szélesség


A labview fpga haszn lata digit lis protokollok gener l s ra

A LabVIEW FPGA használata digitális protokollok generálására

Látogassunk el www.ni.comoldalra, ahol a LabVIEW FPGA-hoz különböző példamegoldások találhatók a PWM, I2C, SPI, és más protokollokhoz


4 el ad s

4. előadás:

Témák:

  • Időzítési funkciók

  • Ciklusvégrahajtás különböző időzítési funkciókkal

  • Párhuzamos ciklusvégrehajtás

  • Ciklusok szinkronizálása

  • Adatmegosztás


Id z t si vez rl f ggv nyek

Időzítési vezérlő függvények


Id z t f ggv nyek konfigur l sa

Időzítő függvények konfigurálása

  • Számolási egységek

    • Ütemek

    • μsec

    • msec

  • Belső számlálók mérete

    • 32 Bit

    • 16 Bit

    • 8 Bit


Ciklusid z t s

Ciklusidőzítés

  • A szokásosan használt ciklus szerkezetben a ciklus időzítő az első hurok végrehajtás előtt inicializálja a hurok időzítését

  • Ha a kód végrehajtása egy esetben meghaladja a beállított időzítést, akkor a hurok időzítő ezt tolerálja és ettől függetlenül a továbbiakban is az eredetileg beállított hurok időzítést tartja.


A ciklusid be ll t s s a v rakoz s rtelmez se

A ciklusidő beállítás és a várakozás értelmezése

  • A kódszerkezet teljesen azonos

  • A ciklus időzítő kód csak az első lefutáskor aktív

  • A várakozás a hurokvégrehajtás minden iterációjában aktív


Temsz ml l alkalmaz si p lda v grehajt si id m r se

Ütemszámláló alkalmazási példa:Végrehajtási idő mérése

1. Módszer

2. Módszer


Id z t s haszn lata kiv lasztott rajelciklushoz id z tett ciklusokhoz

Időzítés használata kiválasztott órajelciklushoz időzített ciklusokhoz

  • Több funkció végrehajtása egyetlen órajel alatt

  • A ciklus alapértelmezésben a fordításkor megadott órajel sebesség szerint hajtódik végre

  • Javítja a kódvégrehajtás sebességét és hatékonyságát

  • Minden kódrészletnek egyetlen órajelciklus alatt kell végrehajtódnia

50 MHz Clock = Spartan 3E HW

40 MHz Clock = NI HW

16MHz Clock = Logsys HW


T bbsz r s rajel tartom nyok

Többszörös órajel tartományok

  • A rendszerórajel alapján különböző sebességű órajeltartományok alakíthatók ki

  • Ennek megfelelően a különböző egy órajelciklus időzítésű hurkok működtethetők eltérő órajelekről

  • Támogatott I/O egységek:

    • R sorozatú digitális I/O-k

    • cRIO-9401

  • Használható:

    • Órajelek generálására

    • Lokális sebesség optimalizálás


  • 4 1 gyakorlat

    4.1 gyakorlat

    Téma:

    Időzítés és IO

    Tárgy:

    To create a VI that reads and writes to AI/O and sets a digital line high when threshold value is reached

    Solution:

    Found in Solutions folder


    P rhuzamos ciklus v grehajt s

    Párhuzamos ciklus végrehajtás

    • Előírja a ciklus végrehajtás sorrendjét

      • Az olyan struktúrák, mint FIFO vagy eseményvezérlés képes meghatározni a ciklusok lefolyását és a végrehajtás sorrendjét

      • Ezek a struktúrák tudják szinkronizálni a párhuzamos végrehajtású ciklusokat is

    • Adatmegosztás

      • Az adatok átadhatók a párhuzamos ciklusok között az FPGA-ban

      • Használhatunk FIFO-t, memóriát vagy lokális változókat


    Ciklus v grehajt si sorrend fifo val

    Ciklus végrehajtási sorrend FIFO-val

    FPGA

    • Az FPGA FIFO továbbítja az adatokat a párhuzamos ciklusok között

    • A FIFO határozza meg a végrehajtási sorrendet

      • Az adatgyűjtő beírja az adatokat a FIFO-ba

      • A megjelenítő kiolvassa az adatokat a kijelzéshez a FIFO-ból

    Acquisition

    FPGA FIFO

    FPGA FIFO

    Indicator

    Data Flow


    Fifo k haszn lata adat tad sra

    FIFO-k használata adatátadásra

    FIFO olvasása

    Adatbeolvasás az eszközökről


    5 el ad s

    5. Előadás:

    Téma:

    A. Az FPGA VI és a gazda VI (Host VI) interfész használata


    Host interf sz vi ok

    Host interfész VI-ok

    • A felügyelő VI alkalmazás és az FPGA VI a közötti kommunikációt biztosítja

    • Futtatható a Windows környezetben vagy a valósidejű beágyazott rendszeren

    Host VI

    FPGA VI


    Fpga vi interf sz lehet s gek

    FPGA VI interfész lehetőségek


    Fpga vi hivatkoz s megnyit sa

    FPGA VI hivatkozás megnyitása

    • Szerkesztési időben

      • A kiválasztott FPGA VI (Target VI) vagy a bitfájl alapján határozhatók meg az elérhető vezérlési lehetőségek

      • A kiválasztott VI a megnyitandó FPGA VI hivatkozások egy rejtett (subVI) komponense lesz

      • Válasszuk ki a platformot

    • Futásidőben

      • Letölti a kiválasztott VI-t (bitfájlt) az FPGA-ra, hacsak ez már nem történt meg korábban

      • Visszaad egy referenciát


    V lasszuk ki a fpga target vi

    Válasszuk ki a FPGA Target VI…

    • Válasszuk ki a kívánt VI-t vagy bitfájlt, amit az FPGA-ban szeretnénk végrehajtani

    • Biztosítja a kezelőpanel vezérlő eszközeinek és státusz indikátorainak elérését referenciákon keresztül


    Read write control

    Read/Write Control

    • Az FPGA VI-hoz tartozó adatok küldésére, fogadására szolgál

    • A vezérlő/kijelző elemek írása/olvasása a Read/Write Control-ban megadott felsorolásuk sorrendjében történik

    • Komplex adatstruktúrák, tömbök, klaszterek is használhatók


    Close fpga vi reference

    Close FPGA VI Reference

    • A letöltött FPGA VI-t futó állapotban tudja hagyni

    • Le tudja állítani az FPGA VI futását


    Az fpga vi interf szek haszn lata

    Az FPGA VI interfészek használata


    Esem nyvez rl s

    Eseményvezérlés

    • Futtatás

    • Letöltés (Minden letöltés újrainicializálást okoz)

    • Várakozás megszakítás kérésre ( IRQ )

    • Megszakításkérés nyugtázása IRQ


    T ma a az fpga s a gazda alkalmaz s k z tti adat tvitel szinkroniz l sa

    Téma:A. Az FPGA és a gazda alkalmazás közötti adatátvitel szinkronizálása

    6. Előadás:


    Labview fpga s host kommunik ci

    LabVIEW FPGA és Host kommunikáció

    • Az FPGA VI és a Host VI alapvetően egymáshoz képes aszinkron folyamatok

    • Minden egyes VI a többitől függetlenül fut

    • Az adatátvitel szinkronizálását a megvalósított alkalmazások igényei alapján kell megvalósítani


    Aszinkron s szinkron alkalmaz sok

    Aszinkron és szinkron alkalmazások

    • Aszinkron alkalmazás

      • Az alkalmazás nem igényel kötött szinkronizálást az vezérléshez vagy az adatfeldolgozáshoz

      • Az időzítést az FPGA biztosítja, de ez nincs szinkronizálva a Host alkalmazáshoz

      • A beérkező legfrissebb adat mindig használható – ez általában a vezérlőalkalmazások jellemzője

    • Szinkron alkalmazások

      • Szoros szinkronizáció szükséges az FPGA és a Host alkalmazás között


    Megszak t sok

    Megszakítások

    • Fizikai jelzést (megszakítást) generál az FPGA-tól az Host felé

    • Egyetlen fizikai megszakítás vonal

    • 32 logikai megszakítás

    • Eseményvezérlés a Wait on IRQésAcknowledgeInterruptelemekkel a Host alkalmazásban

    • Az FPGA várakozhat a megszakításkérés nyugtázására

    • A LabVIEW FPGA jelenlegi verzióói már támogatják a többszörös Wait on IRQhasználatát, a korábbi verziók csak egyetlen IRQ várakozást támogattak.


    Megszak t sok1

    Megszakítások

    • FPGA – IRQ beállítása

    • A megszakítás logika beállítása az FPGA blokk diagramban (IRQ Bit)

    • Opcionálisan az FPGA blokk diagramban beállítható várakozás a Host alkalmazástól érkező nyugtázásra, ami törli a kérést


    Megszak t sok2

    Megszakítások

    • Host – Wait on IRQ

    • Specifikálja a várt logikai megszakítás kéréseket

    • Visszaadja az aktuális logikai megszakítás-kérések azonosítóit

    • A szálak inaktívak (sleep) a várakozás ideje alatt

    • Több Wait on IRQ is használható a Host VI-ban

    • Host – Acknowledge IRQ

    • Törli az IRQ Number(s) által megadott logikai megszakításkéréseket

    • A megszakításkéréseket mindig nyugtázni kell, még akkor is, ha az FPGA nem várakozik a nyugtázó jelre


    Rio host szinkroniz ci

    1

    2

    1

    3

    3

    4

    4

    RIO/Host szinkronizáció

    • FPGA VIbiztosítja a felhasználói felületi kezelőszervek és kijelzők be/kiviteli adatforgalmát

    • Host VIvárakozik (sleeps) az IRQ kérés beérkezésére FPGA VI-tól

    • FPGA VIbeállítjaaz IRQ 0 kérést

    • Host VIazonnal felébredamint érzékeli a beérkező IRQ-tazFPGA VI-tól

    • FPGA VIvárakozikaz IRQ nyugtázására Host VI-tól

    • Host VIleolvassa ill. frissíti az előlapi objektumokataz FPGA VI-ban

    • Host VInyugtázza a IRQ 0-t

    • FPGA VIfelébredés befejezi az iterációt

    • 5.A fenti lépések ismétlései

    Host

    FPGA


    Dma adat tviteli m dszerek

    DMA adatátviteli módszerek

    Megjegyzés: Ez a fejezet csak az NI R-Series FPGA HW-re vonatkozik.

    • Blokkoló átvitel

    • Lekérdezés

    • Megszakítás


    Dma blokkol m dszer

    DMA (Blokkoló módszer)

    • A legegyszerűbb megvalósítás

    • Egy adott időkorlát (Timeout) figyelembevételével az előírt számú adatot próbálja beolvasni

    • Ez a módszer processzor intenzív, de nagyon gyors


    Dma lek rdez ses m dszer

    DMA (Lekérdezéses módszer)

    • Ez a módszer először egy DMA-val lekérdezi az elérhető adatok számát, majd egy következő DMA-val beolvassa az adatokat

    • A módszer kevésbé processzor intenzív, de azért gyors


    Dma megszak t sos m dszer

    DMA (Megszakításos módszer)

    • A megszakításos módszer egy IRQ kéréssel jelzi az FPGA-ból ha adott számú minta elérhető a FIFO-ba

    • A Host várakozik az IRQ-ra és fogadva a kérést kiolvassa az adott számú mintát

    • Ez a módszer nem terheli a processzort, de lassabb


    7 el ad s

    7. Előadás:

    Téma:

    • Teljesítmény elemzés

    • A LabVIEW leképezése az FPGA-ra

    • Sebesség optimalizáció

    • Erőforrás optimalizáció


    A vi ok ciklusid elemz se

    A VI-okciklusidő elemzése

    • 1 ütem = 1 órajel ciklus

    • Az órajel ciklus ideje fordítási paraméter (Alapérték a HW rendszertől függNI 40MHz, LOGSYS 16MHz)

    • A 32bitesszámláló az órajel felfutó élére lép

    • A Tick Count függvény visszaadja a számláló értékét


    A vi ok ciklusid elemz se1

    A VI-okciklusidő elemzése

    • Minden iterációhoz időbélyeget rendelünk

    • Kiszámítjuk az időeltérést

    • A méréseket a ciklusvégrehajtással párhuzamosan végezzük*

    • A tesztelő kód később eltávolítható

    *kihasználjuk az FPGA előnyét a párhuzamos végrehajtáshoz


    A vi ok ciklusid elemz se2

    A VI-okciklusidő elemzése

    • Olvassuk le a kezdeti időt

    • Hajtsuk végre a ciklust

    • Olvassuk le a befejezési időt

    • Számoljuk ki az időkülönbséget

    • A mérés párhuzamosan történik*

    • A kód később eltávolítható

    *kihasználjuk az FPGA előnyét a párhuzamos végrehajtáshoz


    A vi ok er forr sig ny elemz se

    A VI-okerőforrásigény elemzése

    • Sebesség

      • Az elméletileg elérhető maximális sebességet (Theoretical maximum)is leolvashatjuk

    • Erőforrásigény

      • IOBs – Input/Output interfészek

      • MULT18X18s - szorzók

      • SLICEs – Konfigurálható logikai elemek, azaz LUT-okés FF-ok

      • BUFGMUXs – az órajel hálózatokat meghajtói


    Ha esetleg t l nagy vagy t l lass

    Ha esetleg túl nagy vagy túl lassú….

    • Módosíthatjuk a kódot a sebesség, az erőforrásigény vagy akár mindkét paraméter javítására

      • Ebben nagy segítséget jelent, ha megértjük, hogyan képezzük le a LabVIEW elemeit az FPGA-ra


    A labview lek pez se az fpga ra

    A LabVIEW leképezése az FPGA-ra

    • Az adatfolyam fenntartásához három komponens szükséges

      • A megfelelő logikai függvényeke

      • Szinkronizáció

      • Engedélyezési lánc


    Az adatfolyam fenntart sa az fpga ban

    Az adatfolyam fenntartása az FPGA-ban

    FFs

    FFs

    FFs


    A sebess g optimaliz l sa

    A sebesség optimalizálása

    • Párhuzamos ciklusok

    • Pipe-line végrehajtás

    • Egy óraütem alatt végrehajtott ciklusok

    • Példák


    P rhuzamos v grehajt s

    Párhuzamos végrehajtás

    • A grafikus programozás jól támogatja, sőt ösztönzi a párhuzamos kódfelépítést

    • A LabVIEW FPGA igazi párhuzamos végrehajtást valósít meg


    P lda p rhuzamos v grehajt sra

    Példa párhuzamos végrehajtásra

    37 Ticks ~ 1uSec

    • A ciklus sebességét a leghosszabb végrehajtási idő korlátozza

    • AO0 végrehajtási ideje 35 ütem, DIO0-épedig 1 ütem (ezek HW specifikus adatok)

    • Válasszuk szét a két funkciótÍgy DIO0 függetlenül futhat AO0-tól

    • Ez megengedi DIO0 mintavételezési sebességének növelését közel 10x-re a független ciklusban

    4 Ticks ~ .1 uSec


    Pipe line v grehajt s

    Pipe-line végrehajtás

    • A ciklustörzsön belül a kód felosztható különböző iterációkba ami lényegesen csökkentheti az egyedi iterációk hosszát

      • Az adatfolyam különböző részeit párhuzamosan kezelhetjük egyetlen iterációban

      • Az adatokat a következő iterációnak shift regiszterrel vagy visszacsatoló pontokkal adhatjuk át


    Pipe line p lda

    Pipe-line példa

    172 órajel ütem (4.3 μs)~ 19%-kalgyorsabb

    212 órajel ütem (5.3 μs)


    Egy ra tem id z t s ciklusok sctl

    Egy óraütem időzítésű ciklusok (SCTL)

    • A ciklus törzs végrehajtható egyetlen órajel ütem alatt

    • Minimalizálja a szinkronizáció és az engedélyezési lánc által igényelt vezérlési többlet hardvert

    • Azonban vannak korlátozások

      • Bizonyos típusú VI-ok és függvények nem használhatók ezekben a ciklusokban

        • Egymásba ágyazott ciklusok

        • Megosztott erőforrások

        • Bármi, ami egy órajlenél több időt igényel a végrehajtáshoz

    • Ciklus időzítés

    • Várakozás


    Sctl p lda

    SCTL példa

    • A kód áthelyezésével az SCTL ciklusba 5 órajel ütem sebességjavulás érhető el

    6 ütem

    512 Slices

    1 ütem

    454 Slices


    A ciklus v grehajt si id jav t sa

    1

    2

    3

    4

    5

    6

    7

    8

    9

    12

    11

    10

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    A ciklus végrehajtási idő javítása

    • Mit tehetünk a lassú a végrehajtás?

    • 12 órajel ütem


    Cs kkents k a leghosszabb adat t hossz t

    1

    2

    3

    4

    5

    6

    9

    7

    8

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    Csökkentsük a leghosszabb adatút hosszát

    • Alakítsuk át a blokkdiagramot

    • 9 órajel ütem


    Alkalmazzunk pipe line megold st

    FFs

    1

    2

    3

    5

    6

    4

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    Alkalmazzunk pipe-line megoldást

    • Figyeljük meg a pipe-line hatását

    • 6 órajel ütem


    Haszn ljuk az sctl t pus egy rajel tem alatt v grehajtott ciklust

    1

    Használjuk az SCTL típusú egy órajelütem alatt végrehajtott ciklust

    • Szükségtelenné teszi a szinkroizációhoz és az engedélyező lánchoz kapcsolódó logikát

    • 1 órajel ütem

    FFs

    FFs

    FFs

    FFs

    FFs


    Er forr s optimaliz ci

    Erőforrás optimalizáció

    • SubVI-ok

    • Felhasználói felület objektumok

    • Adattípusok

    • Függvények, amik sok helyet foglalnak

    • SCTL- Egy órajel ütem alatt végrehajtható ciklusok

    • Példák


    Subvi ok megoszt sa

    SubVI-ok megosztása

    • A nem újra beépülő subVI-ok alapvetően megosztott komponensek

      • Lassabb végrehajtás

      • Kevesebb erőforrás (általában)

    • Újra beépülő subVI-okminden példánya új logikai elemeket generál

      • Gyorsabb végrehajtás

      • Több erőforrás (általában)

    Újra beépülőNem újra beépülő

    Szorzók száma(MULT18X18) 18 a 40-ből 45%3 a 40-ből 7%

    SLICE.ok száma2116 a 5120-ból 41% 2028 a 5120-ból 39%


    Cs kkents k a front panel objektumok sz m t fpo

    Csökkentsük a Front Panel Objektumok számát (FPO)

    • Extra logikét igányel az adatátvitel vezérlése a host és az FPGA között

    • A Front Panel Array-k különösen költségesek

      • Csökkentsük a tömbök méretét

      • Az adatokat inkább tároljuk a felhasználói memóriában


    A front panel array hib s haszn lata adat tvitelre

    A Front Panel Array hibás használata adatátvitelre

    • Ez a diagram egy kezelőlapi tömböt használ az adatátvitelhez a host felé


    Egy jobb adat tviteli m dszer

    Egy jobb adatátviteli módszer

    • Használjunk skaláris adatokat az FPGA memória és a host közötti adatátvitelhez


    Haszn ljuk mindig a legkisebb megfelel adatt pust

    Használjuk mindig a legkisebb megfelelő adattípust


    T m r ts k az adatokat becsomagol ssal

    Tömörítsük az adatokat becsomagolással

    • Egyesítsük a kisebb méretű adatokat egyetlen 32 bites formátumba

      • Csökkenti az előlapi objektumok számát

      • Gyorsabb adatátvitel az FPGA és a Host között

    Split Number


    Er forr sig nyes funkci k

    Erőforrásigényes funkciók

    Hányados / Maradék képzés (Osztás)

    Szorzás helyett skálázzunk 2 hatványaival (a konstans értékű hatványozás költségmentes)

    Tömb funkciók (használjunk konstansokat ahol lehetséges)


    Egyetlen rajelnyi id z t s ciklusok

    Egyetlen órajelnyi időzítésű ciklusok

    • Eltávolítja az engedélyezési lánc által okozott extra logikát

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs

    FFs


    Er forr s optimaliz l s

    Erőforrás optimalizálás

    • Ez a VI túl nagy lesz a szintézis után. Miért?


    Er forr s optimaliz l s1

    Erőforrás optimalizálás

    • Ez a VI az 1M kapus FPGA 21%-át elfoglalja. Lehetne kevesebb is?


    Er forr s optimaliz l s2

    Erőforrás optimalizálás

    • Ez már csak 9%-a az FPGA elérhető erőforrásainak. Lehetne még jobb?


    Er forr s optimaliz l s3

    Erőforrás optimalizálás

    • Ez már csak az FPGA 8%-a.


  • Login