Olvastam ezt a bejegyzést , és nem válaszol teljes egészében a kérdésemre:

Úgy gondolom, hogy a mikrokontroller minden olyan dolog, aminek van némi memóriája, regisztere, és képes feldolgozni egy sor utasítást, például a LOAD, STORE és ADD. Logikai kapukat és ilyeneket tartalmaz a szerepének ellátásához, de fő feladata, hogy univerzális bitprocesszor legyen. A mikrovezérlőre, mint összekapcsolt ASIC-rendszerek rendszerére gondolok, amelyek lehetővé teszik az utasítások tárolását és feldolgozását.

Az ASIC-eszközről úgy gondolok, mint egy áramkörről, amelyet kifejezetten logikai és elektromos alkatrészek felhasználásával állítottak elő a teljesítéshez. egyetlen feladat, nem szem előtt tartva más feladatot, és nincs külön hardver sem.

Az FPGA eszközről azt gondolom, hogy ASIC eszköz (alacsony szintű eszköz) + egy csomó fel nem használt dolog, ami megmaradt, megszokott valósítson meg egy adott igazságtáblát.

A neve ellenére az FGPA nagyon “alkalmazás-specifikusnak” érzi magát, mivel új és más feladat elvégzéséhez át kell kötni. Ez összetévesztéshez vezet az ASIC-kel. Bár FPGA újbóli bekötése esetén az összes szükséges hardvernek jelen kell lennie. Ezenkívül az FPGA-k programozhatóak, de nem erre való a mikrokontroller?

A fenti bejegyzésben említem a HDL-t is, amelyet ismerek. Nem használható-e HDL az ASIC-hez és az FPGA-hoz, valamint a proxy segítségével egy teljes mikrovezérlő tervezéséhez?

Megjegyzések

  • It ‘ nem nagyon világos, mi a kérdésed. Olvastál már kapcsolódó kérdéseket az FPGA vs ASIC témában? A HDL-t valóban használják az ASIC-ek és az FPGA-implementációk tervezéséhez, és megtervezhet egy mikrovezérlőt a HDL-ben. >
  • Az Altera egy ingyenes div könyvet kínál, amelynek neve: FPGAs for Dummies , amely jól megmagyarázza az FPGA, ASIC és mikrokontrollerek közötti különbséget.
  • @kkrambo ‘ engem dummynak hívsz? 🙂 Sajnálom, nem tudtam ellenállni ‘ megnézem.
  • Hozzáadtam a ‘ hasonlóság ‘ szót a kérdés címéhez, mert úgy tűnik, hogy vannak apró technikai szakzsargon részletek, amelyek megzavarhatják a három különböző eszköz kapcsolatát: például az egyik eszköz tartalmazhatja a másik két eszköz egyikét, vagy sok hasonló komponenst tartalmazhat, de fontos szempontokban különböznek egymástól. Ezt néhány létező válasz már érintette. Köszönöm.

Válasz

ASIC vs FPGA

A terepi programozható kaputömböt az alkalmazásspecifikus integrált áramkörök prototípus-készítésének tekinthetjük: az ASIC-eket nagyon drága előállítani, és ha ott elkészültek nincs visszaút (mivel a legdrágább fix költség a maszkok [valamiféle gyártási “sablon”] és fejlesztésük.) Az FPGA-kat sokszor át lehet programozni, de azért, mert a cél eléréséhez egy általános kaputömb csatlakozik , nincs optimalizálva, mint az ASIC-ek. Az FPGA-k natívan dinamikus eszközök, mivel ha kikapcsolja, akkor nemcsak az aktuális állapotot, hanem a konfigurációját is elveszíti. Most már léteznek olyan táblák, amelyek egy FLASH chipet és / vagy mikrokontrollert adnak a indításkor töltse be a konfigurációt, így ez kevésbé fontos argumentum: Az ASIC-k és az FPGA-k is konfigurálhatók a Hardverleíró nyelvekkel, és néha az a végtermékhez használják. De általában az ASIC-ek akkor indulnak be, amikor a tervezés fix.

FPGA vs mikrokontroller

Ami a mikrovezérlő és a vezérlő közötti különbséget illeti FPGA, akkor a mikrovezérlőt ASIC-nek tekintheti, amely alapvetően FLASH / ROM-ban dolgozza fel egymás után a kódot. Akkor is készíthet mikrovezérlőket FPGA-val, ha ez nincs optimalizálva, de nem ellenkezőleg. Az FPGA-k ugyanúgy vannak bekötve, mint az elektronikus áramkörök, így valóban párhuzamos áramkörökkel rendelkezhet, nem úgy, mint egy mikrovezérlőben, ahol a processzor egy kódrészről a másikra ugrik Az FPGA-kat párhuzamos feladatokra tervezték, ezért nem olyan egyszerű szekvenciális kódot írni, mint egy mikrovezérlőben.

Például, ha “C legyen A XOR B” álkódot írsz egy FPGA-ra, amely a következő fordítással “XOR-kaput épít a lego-téglákkal (keresőtáblák és reteszek)”, és csatlakoztassa az A / B-t bemenetként és a C-t kimenetként “, amely minden óraciklusban frissül, függetlenül attól, hogy a C-t használják-e vagy sem. Míg egy olyan mikrovezérlőn, amelyet “olvasási utasításra” fordítanak, a változók XOR-ja a RAM A és B címén található, és eredményt a C címre kell tárolni. Aritmetikai logikai egység regisztereket töltsön be, majd kérje meg az ALU-t XOR végrehajtására, majd másolja a kimeneti regisztert a RAM C címére “. A felhasználói oldalon azonban mindkét utasítás 1 kódsor volt.Ha ezt tennénk, AKKOR mást, a HDL-ben meg kellene határoznunk a folyamatnak nevezett folyamatot, hogy mesterségesen végezzünk szekvenciákat – külön a párhuzamos kódtól. Míg a mikrovezérlőben nincs mit tenni. Másrészt ahhoz, hogy a mikrovezérlőből kikerüljön a “párhuzamosság” (igazán be- és kikapcsolás), szálakkal kell cselekedni, ami nem triviális. Különböző munkavégzési módok, különböző célok.

Összefoglalva:

ASIC vs FPGA: fix, kevés terméknél drágább (nagy mennyiség esetén olcsóbb, de optimalizáltabb).

ASIC vs mikrovezérlő: minden bizonnyal olyan, mint összehasonlítani egy eszközt egy kalapáccsal.

FPGA vs mikrokontroller: nincs optimalizálva a szekvenciális kódfeldolgozáshoz, de nagyon párhuzamos feladatokat is képes nagyon egyszerűen elvégezni. Általában az FPGA-k HDL-ben vannak programozva, a mikrovezérlők a C / Assembly-ben.

Ha a párhuzamos feladatok sebessége problémát jelent, vegyen egy FPGA-t, fejlessze a tervét, és végül tegye ASIC-vé, ha Hosszú távon olcsóbb (tömeggyártás). Ha a szekvenciális feladatok rendben vannak, vegyen egy mikrovezérlőt. Gondolom, ebből még egy alkalmazásspecifikusabb IC-t tehetne meg, ha hosszú távon olcsóbb is . A legjobb megoldás valószínűleg egy kicsit mindkettőből származik.

Milyen gyors keresést eredményezett ez az írás: írja be a képet leírás itt írja ide a kép leírását

FPGA vs mikrokontrollerek, ezen a fórumon

Válasz

Az FPGA-kat újraprogramozással “újra bekötni” lehet. Az FPGA bekapcsoláskor betölti konfigurációját a konfigurálható logikai cellákba . Ez azt jelenti, hogy a hardver megváltoztatása nélkül újraprogramozható.

Az ASIC-eket csak a szilíciumöntöde fotolitográfiai maszkjainak módosításával lehet újra bekötni.

A mikrovezérlő egy Az ASIC típusa , amely futtat egy programot, és ennek eredményeként általános dolgokra képes. Ha azonban módosítani akarja az utasításkészletet, vagy valami hasonlót szeretne végrehajtani, akkor módosítania kell a tényleges szilícium-IC elrendezést.


Az FPGA és az MCU közötti különbség homályosabb. Alapvetően az, hogy mi az FPGA, hardver szinten sok kicsi SRAM-sejt, amelyek mind a multiplexerek sűrű mátrixához vannak kapcsolva. Alapvetően az FPGA egy halom diszkrét logika, amelyet elektronikusan “újra beköthetünk” ** egyszerűen a multiplexerek és az SRAM cellák újraprogramozásával.

Mint ilyen, megadhatja valójában egy MCU-t valósít meg egy FPGA-n belül , mivel az MCU csak a logikai cellák bizonyos konfigurációja. Valójában az FPGA-kat nagyon gyakran használják az MCU-k tervezési folyamatában.

A mikrovezérlő egy bizonyos logikai konfiguráció megvalósítása. Ennek oka az, hogy az MCU közvetlen beépítésével a szilíciumba jelentősen optimalizálható a szilícium szerszám teljes helyigénye, és bizonyos teljesítményoptimalizálások elvégezhetők, amelyeket az FPGA szükséges “általános jellege” tilt. Ez lehetővé teszi az MCU gyártási költségeinek drasztikus csökkentését, és ennek eredményeként a közös MCU sokkal olcsóbb, mint egy FPGA, amely képes az egyenértékű logikát tartalmazni.


FPGA-k hasznosak bizonyos alkalmazásokban, mert olyan módon tudják megvalósítani a logikai struktúrákat, hogy az MCU-k nem. Például, ha X1 + Y1, X2 + Y2, X3 + Y3 és X4 + Y4 hozzáadására van szükség, Az MCU-nak minden műveletet sorrendben * kell végrehajtania. Az FPGA-nak egyszerre 4 külön ALU lehet , tehát ugyanazt a műveletet képes elvégezni negyed idő alatt (feltételezve, hogy a két eszköz azonos ütemben van ütemezve).

Itt az FPGA-k ( vagy ugyanarra a feladatra tervezett ASIC-ek) valóban ragyoghatnak, abban a tényben, hogy sok-sok dolgot egyidejűleg megtehetsz, amit egyetlen folyamat csak egymás után képes végrehajtani.

* (megjegyzés: itt figyelmen kívül hagyok néhány dolgot, például a SIMD-t)

Megjegyzések

  • Nem ‘ nem gondolja, hogy az FPGA / ASIC megkülönböztetés homályos; egy FPGA-ban azok az áramkörök, amelyeknek ” vezetéke ” megváltoztatható, egyszerre és egymástól függetlenül működnek. Az MCU-nak nagy mennyiségű áramköre van, amelyek huzalozása nem változtatható meg, és amelyek viselkedését egy programozható memóriatömbből darabonként hozzáférhető információk vezérlik. Az idő bármelyik pillanatában a CPU általában csak egy műveletet képes végrehajtani néhány ezer és néhány milliárd választási lehetőség között, de az MCU-t úgy alakítják ki, hogy az ilyen műveleteket egymás után össze lehessen tenni. hasznos munka.
  • Köszönöm. NAGYON közel a válasz válásához … bár 10 hónappal később. +1 az ammendák elkészítéséhez.

Válasz

Ez egy jó kérdés,

Alapvetően egy mikrovezérlő és egy Az ASIC hardverrel rendelkezik (gyakran szilíciumnak nevezik), amely kőbe van vésve és nem változtatható meg. Az FPGA konfigurálható sokféle hardver képviseletére (ez magában foglalhatja a mikrovezérlőket is).

Gondolhatja, hogy a mikrovezérlő sokféle dolog elvégzésére készíthető, de mindezt különféle programok futtatásával – technikailag szoftveresen – végzik de néha firmware-ként emlegetik – maga a hardver lényegében nem változik, ugyanazokat a műveleteket hajtja végre, hanem más sorrendben, különböző bemenetekkel.

Az FPGA-kat általában az ASIC-hez elkötelezett tervek előállítására használják. Az a különbség köztük, hogy ha egy FPGA belső működését szeretné frissíteni, vagy funkcionális blokkokat szeretne hozzáadni / eltávolítani, akkor csak annyit kell tennie, hogy frissíti annak firmware-jét, ez nem tehető meg az ASIC-eknél, királyok elkötelezettek a szilícium mellett, ez nem konfigurálható újra.

Tehát röviden: mikroprocesszorral ugyanazt a hardvert használja különböző programok futtatásához, egy FPGA-val pedig a hardvert újrakonfigurálja különböző funkciók végrehajtására, az ASIC pedig olyan, mint egy mikrovezérlő, mivel a hardvert nem lehet megváltozott, de általában egyetlen funkció rendkívül hatékony végrehajtására lettek tervezve.

Mind az ASIC-k, mind az FPGA-k tartalmazhatnak mikrovezérlőket, és ha igen, akkor írhat nekik programokat, mint egy önálló mikrovezérlő, például ez az Altera NIOS II beágyazott processzora.

Ha ez továbbra is zavaró, tudassa velem, mi a helyzet nem világos, és mindent megteszek a válaszom tisztázása érdekében.

Cigány

Válasz

Nos, FPGA-t nem programoznak elektromos jelek, ha úgy viselkednek, mint egy adott kapuk gyűjteménye, egyes FPGA-k tartalmaznak vakut memória a konfiguráció tárolásához, néhányat nem, és minden áramellátás visszaállítása után át kell programozni. konfigurálva.

Az FPGA hibákat firmware frissítéssel lehet kijavítani, az ASIC hibákat nem lehet gazdaságosan kijavítani.

Válasz

A neve ellenére az FGPA nagyon” alkalmazásspecifikusnak “érzi magát, mivel új és más feladat elvégzéséhez újra bekötni kell.

Ez ellentétes azzal, amit az alkalmazásspecifikus jelent. Az FPGA-t egynél több alkalmazáshoz használhatja úgy, hogy újracsatlakoztatja. Az ASIC-et nem lehet megváltoztatni, ezért csak egy feladatra alkalmazható (ez a feladat mikrokontrollert valósíthat meg).

Bár, az FPGA újbóli bekötésével minden szükséges hardvernek jelen kell lennie.

Nem biztos, hogy ez mit jelent. Általában van egy szoftveres felület az FPGA újraprogramozásához. Ez egy ASIC, amely millió [pénzegység] hardvert igényel.

FPGA ” programozhatóak, de nem ez az, amire a mikrovezérlő szolgál?

A mikrovezérlő lehetővé teszi szekvenciális szoftverek rögzítését egy fix hardverhez. Csakúgy, mint egy normál számítógép, de nagyon kicsi és korlátozott az erőforrása. Az FPGA lehetővé teszi bármilyen hardver programozását HDL használatával.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük