Mit jelent az, hogy - PowerPoint PPT Presentation

About This Presentation
Title:

Mit jelent az, hogy

Description:

* This diagram shows a FPGA FIFO passing data between the Acquisition loop and the Read loop. ... These are the blocking method, polling method, ... – PowerPoint PPT presentation

Number of Views:288
Avg rating:3.0/5.0
Slides: 106
Provided by: Jenif6
Category:
Tags: fpga | blocking | diagram | hogy | jelent | mit

less

Transcript and Presenter's Notes

Title: Mit jelent az, hogy


1
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 elore 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
    tervezomérnökök optimalizálták, csökkentve a
    méretét és a költségeket.
  • Wikipedia

2
Példák beágyazott rendszerekre
3
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ítoleg 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.

4
A tervezési ciklus
Terv
Test
Rendszer Specifikáció
Alkalmazási teszt
Kalibrálás és Funkcionális Teszt
Tervezés és Szimuláció
Prototípus
Rendszer Teszt (HIL)
Kódgenerálás
5
Komplex vezérlési alkalmazások
Repülés vezérlés
Precíziós gépi vezérlések
Motor vezérlés
6
(No Transcript)
7
Hogyan csökkenthetjük a beágyazott rendszerek
tervezése során a komplexitást?
Bevezetés költsége
Gyártási volumen
8
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/ellenorzés 2
hét ÖSSZESEN 12 hét, 50,000 - 150,000
9
Moduláris és készen kapható elemekbol építheto
beágyazott rendszerek
Hardver tervezés 0 hét Logikai és áramköri
tervezés 0 hét Hardver verifikáció 0
hét Szoftver tervezés/kódolás 1 hét Szoftver
integráció 1 hét Rendszer teszt/ellenorzés 1
hét ÖSSZESEN 3 hét, 17,000 PC költség
10
Általános HW rendszerarchitektúrák
11
Általános beágyazott kommunikációs módszerek
12
2. Eloadás
  • Téma
  • A. Általános FPGA programozási technikák

13
Tartalom
  • FPGA muveleti paletta
  • Egyszeru FPGA VI
  • Párhuzamosság és megosztott eroforrások
  • Egészaritmetikai kérdések

14
FPGA muveleti paletta
  • FPGA specifikus funkciók
  • Programozási technikák
  • Eszköz I/O
  • Aritmetikai és logikai elemek
  • Tömbök és klaszterek
  • Idozítések
  • Matematikai és vezérlési funkciók
  • Szinkronizálás és FIFO elemek
  • Táblázatok

15
Egyszeru FPGA VI
  • F(AB)CD

16
LabVIEW technológia leképezése FPGA-ra
A megadott logika leképezése FPGA F (AB)CD
F
AB CD
17
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
  • Tetszolegesen kapcsolódhat a szerverhez és
    leválhat róla a fordítás után

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

Windows OS
LabVIEW FPGA Module
Target FPGA
FPGA VI
Download
Bit File Embedded
FPGA VI ( a bitfájl maga)
19
Interaktív mód
  • Az FPGA-n futó VI egy Elolapi panelen keresztül
    érheto el
  • Nincs debug lehetoség
  • A VI az FPGA-n fut

Windows OS
LabVIEW FPGA Module
FPGA VI (Front Panel)
Target FPGA
FPGA VI (muködo)
Kommunikáció
20
Host PC interaktív mód
  • A Host PC VI Elolapja 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 (muködo)
Kommunikáció
21
Windows Target mód
Windows OS
  • Az FPGA VI a Windows rendszeren fut
  • Szoftver emuláció
  • Nincs hardver idozítés
  • Debuggolás lehetséges
  • A logika ellenorzése fordítás elott

LabVIEW FPGA Module (targeted to Windows)
FPGA VI
22
Megosztott eroforrások
Mielott egy taszk használhatna egy megosztott
eroforrást, meg kell várnia, míg az eszköz
felszabadul.
Megosztott eroforrás
Fut
Vár
A Task 2 akkor indulhat, ha a Task 1 befejezte az
eroforrás használatát
Megosztott eroforrás
Vár
Fut
23
Megosztott eroforrások
  • Megosztott eroforrások
  • Digitális kimenetek
  • Memória/FIFOs
  • Nem újra-beépülo VI-ok
  • Lokális változók

24
Példa megosztott eroforrásokra
25
VI-ok megosztása (nem újra-beépülo VI-ok)
  • Nem újra-beépülo (Alapértelmezett)
  • A VI megosztott
  • Egyetlen példányban épül be az FPGA eszközbe
  • Újra-beépülo VI
  • A diagram minden példánya külön logikai elemekre
    képzodik le az FPGA-ban (több helyet igényel)
  • Beállítható az eroforrás tulajdonságokban az
    opciók között

26
Egész aritmetika
  • Nincs lebegopontos muvelet
  • Sem szimpla, sem dupla pontosságban

27
Egész aritmetika
  • Adatok skálázása
  • A lebegopontos 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
  • Muveletek
  • Szorzás egész értéku skálázó értékkel
  • Skálázás 2 hatványaival
  • Együttesen megoldható a szorzás törttel muvelet

28
Egész aritmetika
  • Változó értéku 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 11500 Léptetés -14 bit
jobbra A muvelet eredménye 11500 / 16384
0.7019
29
Egész aritmetika
  • A matematikai muveletek során eloforduló
    túlcsordulások kezelésére és elkerülésére
    használjunk szaturációs muveleteket
  • Túlcsordulás esetén két lehetoség van
  • -Szaturáció
  • -Átfordulás

30
3. Eloadás
  • Téma
  • FPGA I/O konfigurálása
  • FPGA I/O paletta
  • I/O típusok

31
Az FPGA I/O konfigurálása
32
Az FPGA I/O használata
  • Az FPGA I/O kétféleképpen használható
  • Áthúzhatjuk a LabVIEW Project-bol
  • Tegyünk egy üres I/O komponenst a blokk diagramba
    és konfiguráljuk

33
I/O típusok
  • Digitális vonalak Boole változók
    írhatók/olvashatók a vonalakról
  • ADC és DAC Magas szintu VI-ok, értékek írására
    és olvasására NI R-Series hardver
  • Elore kiosztott IO lábak az FPGA-n
    (pl. Xilinx Spartan 3E kártyán)
  • Használjuk a példa projekteket mintaként

34
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

35
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ényezo az aktuális
    kártyától függ
  • Spartan 3E 14-bit ADC
  • NI Hardware modulonként változó

36
3A Eloadás
  • Téma
  • Digitális I/O protokollok az FPGA I/O vonalakkal

37
Á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
  • Urkutatás PCM/Telemetria
  • Fogyasztói elektronika
  •   Digitális audió S/PDIF, I2S
  • Egyedi
  • Eszköz specifikus megvalósítás

38
I2C kommunikáció
39
SPI kommunikáció
Pont-pont Master - Slave SPI kapcsolat
Egy Master, több Slave SPI busz kapcsolat
40
PWM mommunikáció
  • A PWM használható egyszerubb szervo vezérléseknél

Pulzus szélesség Szög Megjegyzés 0.6 ms
-45 fok minimum pulzus szélesség 1.5 ms 0
fok középállás 2.4 msc -45 fok maximum
pulzus szélesség
41
A LabVIEW FPGA használata digitális protokollok
generálására
  • Látogassunk el www.ni.com oldalra, ahol a
    LabVIEW FPGA-hoz különbözo példamegoldások
    találhatók a PWM, I2C, SPI, és más protokollokhoz

42
4. eloadás
  • Témák
  • Idozítési funkciók
  • Ciklusvégrahajtás különbözo idozítési funkciókkal
  • Párhuzamos ciklusvégrehajtás
  • Ciklusok szinkronizálása
  • Adatmegosztás

43
Idozítési vezérlo függvények
44
Idozíto függvények konfigurálása
  • Számolási egységek
  • Ütemek
  • µsec
  • msec
  • Belso számlálók mérete
  • 32 Bit
  • 16 Bit
  • 8 Bit

45
Ciklusidozítés
  • A szokásosan használt ciklus szerkezetben a
    ciklus idozíto az elso hurok végrehajtás elott
    inicializálja a hurok idozítését
  • Ha a kód végrehajtása egy esetben meghaladja a
    beállított idozítést, akkor a hurok idozíto ezt
    tolerálja és ettol függetlenül a továbbiakban is
    az eredetileg beállított hurok idozítést tartja.

46
A ciklusido beállítás és a várakozás értelmezése
  • A kódszerkezet teljesen azonos
  • A ciklus idozíto kód csak az elso lefutáskor
    aktív
  • A várakozás a hurokvégrehajtás minden
    iterációjában aktív

47
Ütemszámláló alkalmazási példaVégrehajtási ido
mérése
1. Módszer
2. Módszer
48
Idozítés használata kiválasztott órajelciklushoz
idozí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
49
Többszörös órajel tartományok
  • A rendszerórajel alapján különbözo sebességu
    órajeltartományok alakíthatók ki
  • Ennek megfeleloen a különbözo egy órajelciklus
    idozítésu hurkok muködtethetok eltéro órajelekrol
  • 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

50
4.1 gyakorlat
  • Téma
  • Idozí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

51
Párhuzamos ciklus végrehajtás
  • Eloí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

52
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 adatgyujto beírja az adatokat a FIFO-ba
  • A megjeleníto kiolvassa az adatokat a kijelzéshez
    a FIFO-ból

Acquisition
FPGA FIFO
FPGA FIFO
Indicator
Data Flow
53
FIFO-k használata adatátadásra
FIFO olvasása
Adatbeolvasás az eszközökrol
54
5. Eloadás
  • Téma
  • A. Az FPGA VI és a gazda VI (Host VI) interfész
    használata

55
Host interfész VI-ok
  • A felügyelo VI alkalmazás és az FPGA VI a közötti
    kommunikációt biztosítja
  • Futtatható a Windows környezetben vagy a
    valósideju beágyazott rendszeren

FPGA VI
Host VI
56
FPGA VI interfész lehetoségek
57
FPGA VI hivatkozás megnyitása
  • Szerkesztési idoben
  • A kiválasztott FPGA VI (Target VI) vagy a bitfájl
    alapján határozhatók meg az elérheto vezérlési
    lehetoségek
  • A kiválasztott VI a megnyitandó FPGA VI
    hivatkozások egy rejtett (subVI) komponense lesz
  • Válasszuk ki a platformot
  • Futásidoben
  • 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

58
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 kezelopanel vezérlo eszközeinek és
    státusz indikátorainak elérését referenciákon
    keresztül

59
Read/Write Control
  • Az FPGA VI-hoz tartozó adatok küldésére,
    fogadására szolgál
  • A vezérlo/kijelzo 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

60
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

61
Az FPGA VI interfészek használata
62
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

63
TémaA. Az FPGA és a gazda alkalmazás közötti
adatátvitel szinkronizálása
6. Eloadás
64
LabVIEW FPGA és Host kommunikáció
  • Az FPGA VI és a Host VI alapvetoen egymáshoz
    képes aszinkron folyamatok
  • Minden egyes VI a többitol 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

65
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 idozítést az FPGA biztosítja, de ez nincs
    szinkronizálva a Host alkalmazáshoz
  • A beérkezo legfrissebb adat mindig használható
    ez általában a vezérloalkalmazások jellemzoje
  • Szinkron alkalmazások
  • Szoros szinkronizáció szükséges az FPGA és a Host
    alkalmazás között

66
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 és Acknowledge
    Interrupt elemekkel 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 IRQ használatát, a korábbi
    verziók csak egyetlen IRQ várakozást támogattak.

67
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 érkezo
    nyugtázásra, ami törli a kérést

68
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

69
RIO/Host szinkronizáció
  • FPGA VI biztosítja a felhasználói felületi
    kezeloszervek és kijelzok be/kiviteli
    adatforgalmát
  • Host VI várakozik (sleeps) az IRQ kérés
    beérkezésére FPGA VI-tól
  • FPGA VI beállítja az IRQ 0 kérést
  • Host VI azonnal felébred amint érzékeli a
    beérkezo IRQ-t azFPGA VI-tól
  • FPGA VI várakozik az IRQ nyugtázására Host VI-tól
  • Host VI leolvassa ill. frissíti az elolapi
    objektumokat az FPGA VI-ban
  • Host VI nyugtázza a IRQ 0-t
  • FPGA VI felébred és befejezi az iterációt
  • 5. A fenti lépések ismétlései

Host
FPGA
70
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

71
DMA (Blokkoló módszer)
  • A legegyszerubb megvalósítás
  • Egy adott idokorlát (Timeout) figyelembevételével
    az eloírt számú adatot próbálja beolvasni
  • Ez a módszer processzor intenzív, de nagyon gyors

72
DMA (Lekérdezéses módszer)
  • Ez a módszer eloször egy DMA-val lekérdezi az
    elérheto adatok számát, majd egy következo
    DMA-val beolvassa az adatokat
  • A módszer kevésbé processzor intenzív, de azért
    gyors

73
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érheto 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

74
7. Eloadás
  • Téma
  • Teljesítmény elemzés
  • A LabVIEW leképezése az FPGA-ra
  • Sebesség optimalizáció
  • Eroforrás optimalizáció

75
A VI-ok ciklusido elemzése
  • 1 ütem 1 órajel ciklus
  • Az órajel ciklus ideje fordítási paraméter
    (Alapérték a HW rendszertol függ NI 40MHz, LOGSYS
    16MHz)
  • A 32 bites számláló az órajel felfutó élére lép
  • A Tick Count függvény visszaadja a számláló
    értékét

76
A VI-ok ciklusido elemzése
  • Minden iterációhoz idobélyeget rendelünk
  • Kiszámítjuk az idoeltérést
  • A méréseket a ciklusvégrehajtással párhuzamosan
    végezzük
  • A tesztelo kód késobb eltávolítható

kihasználjuk az FPGA elonyét a párhuzamos
végrehajtáshoz
77
A VI-ok ciklusido elemzése
  • Olvassuk le a kezdeti idot
  • Hajtsuk végre a ciklust
  • Olvassuk le a befejezési idot
  • Számoljuk ki az idokülönbséget
  • A mérés párhuzamosan történik
  • A kód késobb eltávolítható

kihasználjuk az FPGA elonyét a párhuzamos
végrehajtáshoz
78
A VI-ok eroforrásigény elemzése
  • Sebesség
  • Az elméletileg elérheto maximális sebességet
    (Theoretical maximum) is leolvashatjuk
  • Eroforrá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

79
Ha esetleg túl nagy vagy túl lassú.
  • Módosíthatjuk a kódot a sebesség, az
    eroforrá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

80
A LabVIEW leképezése az FPGA-ra
  • Az adatfolyam fenntartásához három komponens
    szükséges
  • A megfelelo logikai függvényeke
  • Szinkronizáció
  • Engedélyezési lánc

81
Az adatfolyam fenntartása az FPGA-ban
FFs
FFs
FFs
82
A sebesség optimalizálása
  • Párhuzamos ciklusok
  • Pipe-line végrehajtás
  • Egy óraütem alatt végrehajtott ciklusok
  • Példák

83
Párhuzamos végrehajtás
  • A grafikus programozás jól támogatja, sot
    ösztönzi a párhuzamos kódfelépítést
  • A LabVIEW FPGA igazi párhuzamos végrehajtást
    valósít meg

84
Példa párhuzamos végrehajtásra
37 Ticks 1uSec
  • A ciklus sebességét a leghosszabb végrehajtási
    ido 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
85
Pipe-line végrehajtás
  • A ciklustörzsön belül a kód felosztható különbözo
    iterációkba ami lényegesen csökkentheti az egyedi
    iterációk hosszát
  • Az adatfolyam különbözo részeit párhuzamosan
    kezelhetjük egyetlen iterációban
  • Az adatokat a következo iterációnak shift
    regiszterrel vagy visszacsatoló pontokkal
    adhatjuk át

86
Pipe-line példa
172 órajel ütem (4.3 µs) 19-kal gyorsabb
212 órajel ütem (5.3 µs)
87
Egy óraütem idozítésu 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 eroforrások
  • Bármi, ami egy órajlenél több idot igényel a
    végrehajtáshoz
  • Ciklus idozítés
  • Várakozás

88
SCTL példa
  • A kód áthelyezésével az SCTL ciklusba 5 órajel
    ütem sebességjavulás érheto el

6 ütem 512 Slices
1 ütem 454 Slices
89
A ciklus végrehajtási ido javítása
  • Mit tehetünk a lassú a végrehajtás?
  • 12 órajel ütem

90
Csökkentsük a leghosszabb adatút hosszát
  • Alakítsuk át a blokkdiagramot
  • 9 órajel ütem

91
Alkalmazzunk pipe-line megoldást
  • Figyeljük meg a pipe-line hatását
  • 6 órajel ütem

92
Használjuk az SCTL típusú egy órajelütem alatt
végrehajtott ciklust
  • Szükségtelenné teszi a szinkroizációhoz és az
    engedélyezo lánchoz kapcsolódó logikát
  • 1 órajel ütem

FFs
FFs
FFs
FFs
FFs
93
Eroforrá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

94
SubVI-ok megosztása
  • A nem újra beépülo subVI-ok alapvetoen megosztott
    komponensek
  • Lassabb végrehajtás
  • Kevesebb eroforrás (általában)
  • Újra beépülo subVI-ok minden példánya új logikai
    elemeket generál
  • Gyorsabb végrehajtás
  • Több eroforrás (általában)

Újra beépülo Nem újra beépülo Szorzók
száma (MULT18X18) 18 a 40-bol 45 3
a 40-bol 7 SLICE.ok száma
2116 a 5120-ból 41 2028 a 5120-ból 39
95
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

96
A Front Panel Array hibás használata adatátvitelre
  • Ez a diagram egy kezelolapi tömböt használ az
    adatátvitelhez a host felé

97
Egy jobb adatátviteli módszer
  • Használjunk skaláris adatokat az FPGA memória és
    a host közötti adatátvitelhez

98
Használjuk mindig a legkisebb megfelelo adattípust
99
Tömörítsük az adatokat becsomagolással
  • Egyesítsük a kisebb méretu adatokat egyetlen 32
    bites formátumba
  • Csökkenti az elolapi objektumok számát
  • Gyorsabb adatátvitel az FPGA és a Host között

Split Number
100
Eroforrá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éku hatványozás költségmentes)
  • Tömb funkciók (használjunk konstansokat ahol
    lehetséges)

101
Egyetlen órajelnyi idozítésu 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
102
Eroforrás optimalizálás
  • Ez a VI túl nagy lesz a szintézis után. Miért?

103
Eroforrás optimalizálás
  • Ez a VI az 1M kapus FPGA 21-át elfoglalja.
    Lehetne kevesebb is?

104
Eroforrás optimalizálás
  • Ez már csak 9-a az FPGA elérheto eroforrásainak.
    Lehetne még jobb?

105
Eroforrás optimalizálás
  • Ez már csak az FPGA 8-a.
Write a Comment
User Comments (0)
About PowerShow.com