Přečetl jsem tento příspěvek a na mou otázku neodpovídá jako celek:

Mikrokontrolér považuji za cokoli, co má nějakou paměť, registruje se a dokáže zpracovat sadu pokynů, jako je LOAD, STORE a ADD. Obsahuje logická hradla apod., Která plní svoji roli, ale jejím hlavním úkolem je být univerzálním procesorem bitů. Microntroller považuji za systém vzájemně propojených návrhů ASIC s cílem vytvořit schopnost ukládat a zpracovávat pokyny.

Zařízení ASIC považuji za obvod, který byl speciálně konstruován pomocí logických a elektrických komponent k provádění jeden jediný úkol, bez dalšího úkolu ani extra hardware.

Myslím, že zařízení FPGA považuji za zařízení ASIC (zařízení nízké úrovně) + hromadu nepoužitých věcí, zvyklých na implementujte konkrétní tabulku pravdivosti.

Navzdory svému názvu se FGPA cítí velmi „specificky pro konkrétní aplikaci“, protože k provedení nového a jiného úkolu musí být znovu připojeno. To vede k záměně s ASIC. V případě opětovného zapojení FPGA by měl být přítomen veškerý potřebný hardware. Programy FPGA také mají být programovatelné, ale nejde o to, k čemu je určen mikrokontrolér?

Příspěvek výše, na který jsem odkazoval, zmiňuje také HDL, které znám. Nelze HDL použít jak pro ASIC, tak pro FPGA a prostřednictvím proxy k návrhu celého mikrokontroléru?

Komentáře

  • It ‚ není příliš jasné, jaká je vaše otázka. Přečetli jste si související otázky týkající se FPGA vs ASIC? HDL se skutečně skutečně používá k navrhování implementací ASIC a FPGA a můžete navrhnout mikrokontrolér v HDL.
  • Altera nabízí bezplatnou e-knihu s názvem FPGA pro figuríny , která dobře vysvětluje rozdíl mezi FPGA, ASIC a mikrokontroléry.
  • @kkrambo Nazýváš ‚ figurínu? 🙂 Omlouváme se, ale ‚ neodolávám … já zkontroluje to.
  • Do názvu otázky jsem přidal slovo ‚ podobnosti ‚, protože se zdá, že existují drobné technické podrobnosti žargonu, které mohou zaměňovat vztah těchto tří různých zařízení: například jedno zařízení může obsahovat jedno z dalších dvou zařízení, nebo může obsahovat mnoho podobných komponent, ale liší se v některých důležitých aspektech. Toho se již dotkly některé ze stávajících odpovědí. Děkuji.

Odpověď

ASIC vs FPGA

Polní programovatelné hradlové pole lze považovat za fázi prototypování integrovaných obvodů specifických pro aplikaci: Výroba ASIC je velmi nákladná a jakmile se tam vyrobí není cesty zpět (protože nejdražší fixní cenou jsou masky [druh výrobní „šablony“] a jejich vývoj). FPGA jsou mnohokrát přeprogramovatelné, ale kvůli tomu, že k dosažení vašeho cíle je připojena obecná řada bran , není optimalizován jako ASIC. Také FPGA jsou nativně dynamická zařízení v tom, že pokud je vypnete, ztratíte nejen aktuální stav, ale také svou konfiguraci. Nyní existují desky, které přidávají čip FLASH a / nebo mikrokontrolér načtěte konfiguraci při spuštění, takže to bývá méně důležitým argumentem. ASIC i FPGA lze konfigurovat pomocí hardwarových popisných jazyků a někdy jsou FPGA použitý pro konečný produkt. Obecně však ASIC začínají, když je design opraven.

FPGA vs mikrokontrolér

Pokud jde o rozdíl mezi mikrokontrolérem a FPGA, můžete považovat mikrokontrolér za ASIC, který v podstatě zpracovává kód ve FLASH / ROM postupně. Mikrokontroléry můžete vyrábět s FPGA, i když to není optimalizované, ale ne naopak. FPGA jsou zapojeny stejně jako elektronické obvody, takže můžete mít skutečně paralelní obvody, ne jako v mikrokontroléru, kde procesor přeskakuje z části kódu na jiný simulovat dostatečně dobrý paralelismus. Protože jsou však FPGA navrženy pro paralelní úkoly, není tak snadné psát sekvenční kód jako v mikrokontroléru.

Například obvykle, když napíšete v pseudokódu „ať C je A XOR B“, na FPGA, který bude přeložen do „postavte XOR bránu s obsaženými legovými kostkami (vyhledávací tabulky a západky), a připojte A / B jako vstupy a C jako výstup „, který bude aktualizován každý hodinový cyklus bez ohledu na to, zda je C použit nebo ne. Zatímco u mikrokontroléru, který bude přeložen do „instrukce ke čtení – to“ je XOR proměnných na adrese A a adrese B paměti RAM, bude výsledek uložen na adresu C. Načtěte registry aritmetických logických jednotek a poté požádejte ALU o provedení XOR, poté zkopírujte výstupní registr na adresu C paměti RAM. “Na straně uživatele však byly obě instrukce 1 řádek kódu.Pokud bychom to měli udělat, POTOM něco jiného, v HDL bychom museli definovat, co se nazývá Proces, abychom uměli dělat sekvence – odděleně od paralelního kódu. Zatímco v mikrokontroléru není co dělat. Na druhou stranu, abyste z mikrokontroléru dostali „paralelismus“ (naladění a odhlášení), budete muset žonglovat s vlákny, která nejsou triviální. Různé způsoby práce, různé účely.

Souhrn:

ASIC vs FPGA: opraveno, dražší pro malý počet produktů (levnější pro velké objemy), ale optimalizovanější.

ASIC vs mikrokontrolér: určitě jako porovnávání nástroje s kladivem.

FPGA vs mikrokontrolér: není optimalizován pro sekvenční zpracování kódu, ale dokáže velmi snadno provádět skutečně paralelní úkoly. Obecně FPGA jsou programována v HDL, mikrokontroléry v C / Assembly

Kdykoli je problém s rychlostí paralelních úkolů, vezměte FPGA, vytvořte svůj design a nakonec z něj udělejte ASIC, pokud „Je to pro vás z dlouhodobého hlediska levnější (hromadná výroba). Pokud jsou sekvenční úkoly v pořádku, vezměte si mikrokontrolér. . Nejlepším řešením bude pravděpodobně trochu obojí.

Jaké rychlé hledání po napsání mi poskytlo: zadat obrázek popis zde zde zadejte popis obrázku

FPGA vs Microcontrollers, právě na tomto fóru

Odpověď

Programy FPGA lze „přepojit“ přeprogramováním. FPGA při načtení své konfigurace do konfigurovatelných logických buněk v něm . To znamená, že jej lze přeprogramovat beze změn hardwaru.

ASIC lze znovu zapojit pouze úpravou fotolitografických masek ve slévárně křemíku.

Mikrokontrolér je typ ASIC, který spouští program a ve výsledku může dělat obecné věci. Pokud však chcete změnit instrukční sadu nebo udělat něco podobného, musíte upravit skutečné rozložení křemíkových IC.


Rozdíl mezi FPGA a MCU je více nejasný. V podstatě to, co je FPGA, na hardwarové úrovni, je spousta malých buněk SRAM, všechny připojené k husté matici multiplexorů. FPGA je v zásadě celá hromada diskrétní logiky, kterou lze elektronicky „znovu zapojit“ ** jednoduše přeprogramováním multiplexorů a buněk SRAM.

Jako takový můžete ve skutečnosti implementovat MCU v a FPGA, protože MCU je jen určitá konfigurace logických buněk. Ve skutečnosti se FPGA velmi často používají v procesu návrhu MCU.

Mikrokontrolér je implementace určité logické konfigurace. Důvod, proč je máme, je ten, že implementací MCU přímo do křemíku lze značně optimalizovat celkové množství požadovaného prostoru na silikonové matrici a lze provést určité optimalizace výkonu, které požadovaná „obecnost“ FPGA zakazuje. To umožňuje dramaticky snížit výrobní náklady MCU a ve výsledku je běžný MCU mnohem levnější než FPGA, který je schopen obsahovat ekvivalentní logiku.


FPGA jsou užitečné v určitých aplikacích, protože mohou implementovat logické struktury způsobem, který MCU nemůže. Například pokud potřebujete přidat X1 + Y1, X2 + Y2, X3 + Y3 a X4 + Y4, MCU bude muset provést každou operaci po sobě *. FPGA může mít jednoduše 4 samostatné ALU současně , takže může provést stejnou operaci za čtvrtinu času (za předpokladu, že jsou obě zařízení taktována stejnou rychlostí).

Zde se nacházejí FPGA ( nebo ASIC určené pro stejný úkol) mohou skutečně zářit, protože můžete dělat mnoho, mnoho věcí současně , což může jeden proces dělat jen postupně.

* (poznámka: Zde ignoruji některé věci, jako je SIMD)

Komentáře

  • Ne ‚ si nemyslí, že rozlišení FPGA / ASIC je fuzzy; v FPGA obvody, jejichž “ zapojení “ lze změnit, fungují současně a nezávisle. MCU má velké množství obvodů, jejichž zapojení nelze změnit, jejichž chování je řízeno prostřednictvím informací, ke kterým se přistupuje po částech z programovatelného paměťového pole. V jakémkoli časovém okamžiku bude CPU obvykle schopna provést pouze jednu operaci ze seznamu několika tisíc až několika miliard možností, ale MCU bude navrženo tak, aby sloučení těchto operací v pořadí umožnilo provádět užitečná práce.
  • Děkuji. VELMI blízko k tomu stát se odpovědí … i když o 10 měsíců později. +1 k nápravě.

Odpověď

To je dobrá otázka,

V zásadě mikrořadič a ASIC mají hardware (často označovaný jako křemík), který je vytesán do kamene a nelze jej změnit. FPGA lze nakonfigurovat reprezentovat mnoho různých druhů hardwaru (to může zahrnovat mikrokontroléry).

Možná si myslíte, že mikrokontrolér může být vyroben k provádění mnoha různých věcí, ale to vše se provádí spuštěním různých programů – technicky softwaru ale někdy se označuje jako firmware – samotný hardware se v zásadě nemění, provádí stejné operace, ale v jiném pořadí s různými vstupy.

FPGA se obvykle používají ke generování návrhů, které jsou určeny pro ASIC Rozdíl mezi nimi je v tom, že pokud jste chtěli aktualizovat vnitřní fungování FPGA nebo přidat / odebrat funkční bloky, vše, co musíte udělat, je aktualizovat jeho firmware, to nemůže být provedeno na ASIC jako vnitřní wor králové byli oddáni křemíku, není rekonfigurovatelný.

Stručně řečeno, s mikroprocesorem používáte stejný hardware ke spouštění různých programů, s FPGA překonfigurujete hardware tak, aby vykonával různé funkce, a ASIC jsou jako mikrořadič v tom, že hardware nemůže být změněny, ale jsou obvykle navrženy tak, aby jedna funkce fungovala extrémně efektivně.

Jak ASIC, tak FPGA mohou obsahovat mikrořadiče, a pokud ano, můžete pro ně psát programy, jako byste to dělali samostatným mikrořadičem, příklad toto je vestavěný procesor NIOS II společnosti Altera.

Pokud je to stále matoucí, dejte mi vědět, co je nejasné, a udělám vše pro to, abych svou odpověď objasnil.

Gipsy

Odpověď

no, žádné FPGA není programováno elektrickými signály, pokud se chovají jako specifická kolekce bran, některé FPGA obsahují blesk paměť pro uložení této konfigurace, některé ne a musí být přeprogramovány po každém resetování napájení.

ASIC již z výrobní linky c nakonfigurováno.

Chyby FPGA lze opravit upgradem firmwaru, chyby ASIC nelze „ekonomicky opravit“.

Odpovědět

FGPA se i přes svůj název cítí velmi„ specificky závislý na aplikaci “, protože k provedení nového a jiného úkolu musí být znovu zapojen.

To je opak toho, co znamená „pro konkrétní aplikaci“. Můžete znovu použít FPGA pro více než jednu aplikaci. ASIC nemůžete změnit, takže jej lze použít pouze na jeden úkol (tím úkolem může být implementace mikrokontroléru).

I když v případě po opětovném zapojení FPGA by měl být k dispozici veškerý potřebný hardware.

Nejste si jisti, co to znamená. Obvykle existuje softwarové rozhraní pro přeprogramování FPGA. Je to ASIC, který vyžaduje miliony [měnových jednotek] hardwaru.

FPGA jsou programovatelné, ale nejde o to, k čemu je určen mikrokontrolér?

Mikrokontrolér umožňuje programovat sekvenční software pro pevný hardware. Stejně jako normální počítač, ale velmi malý a omezený na zdroje. FPGA vám umožňuje programovat libovolný hardware pomocí HDL.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *