noobláma kérdés, de ez mire jó, mit számoltatnak vele?
hozzászólások
Alapvetően ez egy univerzális cucc, tehát sok mindenre jó (lehet).
Általában mégis speciális okokból használnak ilyet.
Előnye, hogy a benne futtatott "program" sokszor gyorsabb, mint egy CPU-n futó szoftver, illetve kisebb az energiaigénye.
Hasznos lehet pl. az alábbi esetekben:
- valamiféle új technológiai elgondolás ( pl. xyz video encoder ) kipróbálására
- olyan helyre ahol számítani lehet arra, hogy idővel megváltozik, bővül a feladata
- biztonság technikai okból ( mivel egyedi belső felépítést tesz lehetővé )
- ahol "gyorsan" kell összedobni a célhardvert egy adott feladatra
[ Szerkesztve ]
Benne akkor fut program, ha belefordítasz valamilyen szoft cpu / mcu magot, amin tud futni programkód. Vagy esetleg ha fizikailag bele van építve egy vagy több társprocesszor / mikrovezérlő, de akkor az nem tisztán fpga.
Amit simán vhdl / verilog nyelven leírsz egy fpga-ba, abból fizikailag hardver jön létre, ráadásul rettentően gyorsan fog működni és könnyen átalakítható.
Úgy egyébként egy fpga nagy mértékű párhuzamos feldolgozásnál mutatja meg igazán, hogy mit tud. Nem is véletlen, hogy az aktuális csúcsszériát a hadsereg fejlesztéseiben használják fel.
[ Szerkesztve ]
Tévedés. Ez egy programozható hardver, amit az általad is említett vhdl / verilog nyelven programozol. Egyébként nem véletlenül tettem idézőjelek közé a "programot", mert eltér a szokásos CPU-s programozástól. De ez akkor is egy program, ami memóriából töltődik be az eszköz indulásakor, minden egyes indításnál.
[ Szerkesztve ]
Ez tulajdonképpen egy chipgyártási módszer, nagyjából úgy viszonyul a "rendes" chipekhez, mint az újraírható CD a gyárilag nyomotthoz
Egyrészt remek tervezéshez: ha nem tetszik, ami rajta van (mert hibát találtál a tervben vagy új feature jött), akkor simán felülírod az új verzióval.
Másrészt meg ha csak pár darab kell egy chipből, mert valami spéci cucc, akkor azt így lehet gazdaságosan előállítani, mert bár egy FPGA sokkal drágább, mint legyártani az egymilliomodik ugyanolyan chipet, de sokkal olcsóbb, mint amibe a legelső chip legyártásanak az előkészítése kerül.
Nem tévedés. A bitstream amit magára húz, az konfigurálja a kapu mátrixot, így jön létre a hardver, logikai kapuk szintjén.
Az eszköz neve: FPGA, nézd meg mit jelent és rájössz...
Programozom is őket... Esetleg írd le, mivel nem értesz egyet abból amit írtam.
Azért az FPGA-ban a P az úgy jelenti azt, hogy "programmable", mint az NDK automata mosógépek esetében Az, amit beletöltesz, csak egy leíróállomány, nem egy konkrét program. (A Verilog meg a VHDL valószínűleg Turing-teljes, de azokat egy PC-s fordító dolgozza fel és annak a kimenete már nem az.)
Azt hiszed egyedül programozol FPGA-t?
dabadab: És a program betöltése utáni fázist minek hívod? Semminek? Tehát az FPGA a programmot "semmizi".
[ Szerkesztve ]
JColee
(őstag)
Pontosan ezért szerencsétlen megnevezés a "programozás". Jobb lenne konfigurálásnak hívni.
Ha a konfigurációs fájlt feltöltötted, akkor az fpga konfigurálva van. Minek kéne hívni? Processzort minek hívod, mielőtt elkezdi futtatni a programot?
[ Szerkesztve ]
Teljesen mindegy, hogy leírófájlnak, programnak vagy konfigurációs adatoknak hívod azt a kreálmányt amit létrehozol, az eszköz ezt fogja végrehajtani, futtatni, ennek megfelelően fog működni és ez nem fixen, hardverből bevasalt dolog.
A processzort kikapcsolva is bekapcsolva is processzornak hívnom.
Egyébként lehet nézni arról az oldalról is a dolgot, hogy az FPGA-ban van olyan hardver rész is amit nem tudsz konfigurálni, ez felelős a program betöltéséért.
Szerintem azzal van gondotok, hogy az eszköz a program betöltése után egyfajta "statikus" állapotba kerül, de ezt is hívni kell valaminek. Én erre azt mondom, hogy futtatja a programot. Ti minek hívjátok?
[ Szerkesztve ]
Nem jó amit írsz. Itt a pipás választ olvasd el, nagyon jól összefoglalja: [link]
Konyhanyelven összefoglalva, amit leírsz HDL nyelven, azt a PC egy elég bonyolult folyamat végén bitstreamre fordítja, az meg leírja a kapcsolatot az fpga belső logikai alapegységei között (többek közt).
Azok a logikai elemek meg a programozást (helyesebben bitstream letöltést) követően órajel szinkronban kezdenek működni a megadott konfigurációban, feltételezem ezért mondod annyira a program futtatást, de az akkor se túl szerencsés kifejezés ide.
[ Szerkesztve ]
JColee
(őstag)
"ennek megfelelően fog működni és ez nem fixen, hardverből bevasalt dolog"
Igen, ezért mondhatjuk, hogy konfiguráltuk az fpga-t. Miután rátöltötted a fájlt, nem "futtat" semmit. Az én szótáramban a program=utasítás sorozat, amit egymás után végrehajtunk. Ez nem teljesül FPGA esetén (kívéve az említett soft-core procikat, ami eléggé meta ).
Reggie0
(félisten)
Tehat akkor egy 8 bites osszeado vagy egy nand kapu mar program?
Dr. Akula
(nagyúr)
Némi zavart érzek az Erőben. A programozás egy előre letárolt eljárás rögzítését jelenti. Ennek nem feltétele még a számítógép se. Tulajdonképp a kádban a dugó behelyezése a lefolyóba, majd vízzel feltöltése is programozás. Mert ha kihúzod a dugót, az eljárás (víz elfolyik a csatornába) megtörténik. Mielőtt valaki felháborodik hogy dehát nem ezt tanulta a suliban, először gondoljon a gép fogalmára. Mi a legegyszerűbb gép? A sima faék. Hát az se rokona a Terminatornak. Szóval kár fightolni, az FPGA konfigurálása bőven belefér a programozás fogalmába.
Reggie0
(félisten)
Amugy jo ez a nagy fpga, csak egy kinszenvedes lehuteni azt a 750...1000W-ot amit ki lehetne sajtolni belole.
Elolvastam, a fizikai működést taglalja, de arra nem ad választ, hogy a program futtatás megfelelő kifejezés vagy sem.
A "program futtatásnak" semmi köze az órajel szinkronhoz.
A program futtatás onnan jön, hogy a hardver egy bizonyos eljárást végez a programmal. Ezt az eljárást futtatásnak vagy végrehajtásnak szokták nevezni. Vagy minek kellene hívni?