Kérkel segíts, hogy ne maradjon hibás információ az oldalon!
Ha szerinted valami nem fedi a valóságot, kérlek írd meg, hogy javítani tudjam. Ha kérdésed van, fordulj hozzám bizalommal!

2009. április 18., szombat

LabView Realtime FPGA

Már jó néhány hónap eltelt, mióta az NI real time moduljával dolgozom. Az elején rengeteg fejtörést okoztak az FPGA "kód" fordítása után visszakapott sekélyes és ködös hibaüzenetek, sok órá detailed log olvasgatás, amit csak hébe-hóba lehetett összeegyeztetni a rajzolt programkóddal. Egy szó, mint száz, sok probléma volt a kezdésnél, amire a (egyébként rendkívül készséges és segítőkész) support sem tudott válaszokat adni.
Az egyik legnagyobb ilyen probléma az, amikor a lefordított kód elvi maximális futási sebessége alacsonyabb, mint az órajel. Idegtépő volt, hogy felőlem akár tized akkora órajellel is futhatott volna, de nem tudtam megmondani a fordítónak, hogy ne erőlködjön a 40MHzen. Erre a megoldás a Timed Loopok alkalmazása volt, amiknek meg lehet adni, hogy mely órajelről működjenek. Persze, az élet nem fenékig tejfel, hiszen ezekbe a ciklusokba csak az 1 órajel alatt futtatható blokkok kerülhetnek be.
Emelett kiemelném, hogy tényleg komolyan gondolja az NI, hogy nem használjunk tömböket, ha elkerülhető. Az FPGA felépítéséből adódóan egy kapukból felépített flip-floppos leképzése van a tömböknek, ami tetemes helyet igényel majd a chipen és kivárhatatlan fordítási időket eredményez.
További tippek-trükkök:
Azt mondja a support, hogy a konverziókat a különböző számábrázolások között lehetőség szerint mindig oldjuk meg magunk és ne hagyatkozzunk az automata konverziót jelentő piros pöttyre.
Az FXP-ket gyorsan konvertálhatjuk úgy, hogy a To Boolean Array vi-vel át, majd az Boolean Array to Int vivel vissza alakítjuk.

Nincsenek megjegyzések: