Title: Mit jelent az, hogy
1Mit 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
2Példák beágyazott rendszerekre
3Az 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.
4A 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
5Komplex 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)
7Hogyan csökkenthetjük a beágyazott rendszerek
tervezése során a komplexitást?
Bevezetés költsége
Gyártási volumen
8Hagyomá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
9Modulá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
122. Eloadás
- Téma
- A. Általános FPGA programozási technikák
13Tartalom
- FPGA muveleti paletta
- Egyszeru FPGA VI
- Párhuzamosság és megosztott eroforrások
- Egészaritmetikai kérdések
14FPGA 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
15Egyszeru FPGA VI
16LabVIEW technológia leképezése FPGA-ra
A megadott logika leképezése FPGA F (AB)CD
F
AB CD
17A 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
18Letö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)
19Interaktí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ó
20Host 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ó
21Windows 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
22Megosztott 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
23Megosztott eroforrások
- Megosztott eroforrások
- Digitális kimenetek
- Memória/FIFOs
- Nem újra-beépülo VI-ok
- Lokális változók
24Példa megosztott eroforrásokra
25VI-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
26Egész aritmetika
- Nincs lebegopontos muvelet
- Sem szimpla, sem dupla pontosságban
27Egé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
28Egé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
29Egé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
303. Eloadás
- Téma
- FPGA I/O konfigurálása
- FPGA I/O paletta
- I/O típusok
31Az FPGA I/O konfigurálása
32Az 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
33I/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
34Számláló készítése Digital I/O vonalakkal
- A minimális használható pulzusszélességet a
ciklus periódusideje szabja meg
35Biná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ó
363A 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
38I2C kommunikáció
39SPI kommunikáció
Pont-pont Master - Slave SPI kapcsolat
Egy Master, több Slave SPI busz kapcsolat
40PWM 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
41A 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
424. 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
43Idozítési vezérlo függvények
44Idozí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
45Ciklusidozí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.
46A 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
48Idozí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
49Tö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
504.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
51Pá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
52Ciklus 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
53FIFO-k használata adatátadásra
FIFO olvasása
Adatbeolvasás az eszközökrol
545. Eloadás
- Téma
- A. Az FPGA VI és a gazda VI (Host VI) interfész
használata
55Host 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
56FPGA VI interfész lehetoségek
57FPGA 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
-
58Vá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
59Read/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
60Close FPGA VI Reference
- A letöltött FPGA VI-t futó állapotban tudja
hagyni - Le tudja állítani az FPGA VI futását
61Az FPGA VI interfészek használata
62Esemé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
63TémaA. Az FPGA és a gazda alkalmazás közötti
adatátvitel szinkronizálása
6. Eloadás
64LabVIEW 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
65Aszinkron é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
66Megszakí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.
67Megszakí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
68Megszakí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
69RIO/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
70DMA 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
71DMA (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
72DMA (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
73DMA (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
747. 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ó
75A 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
76A 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
77A 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
78A 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
79Ha 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
80A 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
81Az adatfolyam fenntartása az FPGA-ban
FFs
FFs
FFs
82A sebesség optimalizálása
- Párhuzamos ciklusok
- Pipe-line végrehajtás
- Egy óraütem alatt végrehajtott ciklusok
- Példák
83Pá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
84Pé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
85Pipe-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
86Pipe-line példa
172 órajel ütem (4.3 µs) 19-kal gyorsabb
212 órajel ütem (5.3 µs)
87Egy ó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
88SCTL 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
89A ciklus végrehajtási ido javítása
- Mit tehetünk a lassú a végrehajtás?
- 12 órajel ütem
90Csökkentsük a leghosszabb adatút hosszát
- Alakítsuk át a blokkdiagramot
- 9 órajel ütem
91Alkalmazzunk pipe-line megoldást
- Figyeljük meg a pipe-line hatását
- 6 órajel ütem
92Haszná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
93Eroforrá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
94SubVI-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
95Csö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
96A 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é
97Egy jobb adatátviteli módszer
- Használjunk skaláris adatokat az FPGA memória és
a host közötti adatátvitelhez
98Használjuk mindig a legkisebb megfelelo adattípust
99Tö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
100Eroforrá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)
101Egyetlen ó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
102Eroforrás optimalizálás
- Ez a VI túl nagy lesz a szintézis után. Miért?
103Eroforrás optimalizálás
- Ez a VI az 1M kapus FPGA 21-át elfoglalja.
Lehetne kevesebb is?
104Eroforrás optimalizálás
- Ez már csak 9-a az FPGA elérheto eroforrásainak.
Lehetne még jobb?
105Eroforrás optimalizálás