Olen lukenut tämän viestin , eikä se vastaa kysymykseeni kokonaisuudessaan:

Mielestäni mikrokontrolleri on kaikkea, jolla on jonkin verran muistia, rekistereitä ja joka pystyy käsittelemään joukon ohjeita, kuten LOAD, STORE ja ADD. Se sisältää logiikkaportteja ja vastaavia tehtävänsä suorittamiseksi, mutta sen päätehtävä on olla universaali bittien prosessori. Mielestäni mikrokontrolleri on yhdistettyjen ASIC-mallien järjestelmä, joka luo kyvyn tallentaa ja käsitellä ohjeita.

Ajattelen ASIC-laitetta piirinä, joka on erityisesti rakennettu loogisten ja sähköisten komponenttien avulla. yksi yksittäinen tehtävä, eikä mitään muuta tehtävää pidetä mielessä eikä mukana ole ylimääräisiä laitteita.

Ajattelen FPGA-laitetta ASIC-laitteena (matalan tason laite) + joukko käyttämättömiä juttuja, jotka Toteuta tietty totuustaulukko.

Nimestään huolimatta FGPA tuntuu hyvin ”sovelluskohtaiselta”, koska se on kytkettävä uudelleen uuden ja erilaisen tehtävän suorittamiseen. Tämä johtaa sekaannukseen ASIC: n kanssa. FPGA: n uudelleenjohdotuksen tapauksessa kaikkien tarvittavien laitteiden tulisi kuitenkin olla läsnä. Myös FPGA: n on tarkoitus olla ohjelmoitavissa, mutta eikö mikään mikrokontrolleri ole tarkoitettu?

Edellä mainitsemassani viestissä mainitaan myös HDL, jonka tunnen. Voiko t HDL: ää käyttää sekä ASIC: lle että FPGA: lle ja välityspalvelimen avulla kokonaisen mikrokontrollerin suunnitteluun?

Kommentit

  • Se ’ ei ole kovin selvää, mikä kysymyksesi on. Oletko lukenut asiaan liittyviä kysymyksiä FPGA: sta vs ASIC: stä? HDL: ää käytetään todellakin ASIC: ien ja FPGA-toteutusten suunnitteluun, ja voit suunnitella mikrokontrollerin HDL: ssä.
  • Altera tarjoaa ilmaisen e-kirjan nimeltä FPGAs for Dummies , joka selittää hyvin FPGA: n, ASIC: n ja mikro-ohjaimen välisen eron.
  • @kkrambo Soitat ’ minulle nuken? 🙂 Anteeksi, en voinut ’ vastustaa … I tarkistan sen.
  • Lisäsin kysymyksen otsikkoon sanan ’ yhtäläisyydet ’, koska näyttää siltä, että on pieniä teknisiä ammattikieltä koskevia yksityiskohtia, jotka voivat sekoittaa kolmen laitteen välisen suhteen: esimerkiksi yksi laite voi sisältää toisen kahdesta laitteesta, tai se voi sisältää monia samanlaisia komponentteja, mutta eroavat toisistaan tärkeissä asioissa. Jotkut nykyisistä vastauksista ovat jo koskettaneet tätä. Kiitos.

Vastaa

ASIC vs FPGA

Kenttäohjelmoitava porttiryhmä voidaan nähdä sovelluskohtaisten integroitujen piirien prototyyppivaiheena: ASIC: ien valmistus on erittäin kallista, ja kun se on siellä tehty ei ole paluuta (koska kallein kiinteä hinta on naamiot [eräänlainen valmistus ”kaava”] ja niiden kehitys). FPGA: t voidaan ohjelmoida uudelleen monta kertaa, kuitenkin siksi, että tavoitteen saavuttamiseksi on kytketty yleinen porttiryhmä , sitä ei ole optimoitu kuten ASIC: itä. Lisäksi FPGA: t ovat luontaisesti dynaamisia laitteita, koska jos sammutat virran, menetät paitsi nykyisen tilan myös kokoonpanosi. Nykyään on olemassa levyjä, vaikka niihin lisätään FLASH-siru ja / tai mikro lataa kokoonpano käynnistyksen yhteydessä, joten tämä on yleensä vähemmän tärkeä argumentti. Sekä ASIC: t että FPGA: t voidaan määrittää laitteiston kuvauskielillä, ja joskus FPGA: t ovat käytetään lopputuotteeseen. Mutta yleensä ASIC: t käynnistyvät, kun muotoilu on kiinteä.

FPGA vs. mikrokontrolleri

Mitä tulee mikrokontrollerin ja FPGA, voit pitää mikro-ohjainta ASIC-järjestelmänä, joka käsittelee periaatteessa koodin FLASH / ROM-levyllä peräkkäin. Voit tehdä mikrokontrollereita FPGA: lla, vaikka sitä ei olisikaan optimoitu, mutta ei päinvastoin. FPGA: t on kytketty aivan kuten elektroniset piirit, joten sinulla voi olla todella rinnakkaisia piirejä, ei kuten mikrokontrollerissa, jossa prosessori hyppää koodikappaleesta toiseen riittävän hyvän rinnakkaisuuden simuloimiseksi. Koska FPGA: t on kuitenkin suunniteltu rinnakkaistoimintoja varten, ei ole yhtä helppoa kirjoittaa peräkkäistä koodia kuin mikrokontrolleriin.

Esimerkiksi, jos kirjoitat esimerkiksi pseudokoodiin ”anna C olla A XOR B” FPGA: lle, joka käännetään seuraavasti: ”rakenna XOR-portti, jossa on lego-tiilet (hakupöydät ja salvat), ja kytke A / B tulona ja C lähtöön ”, joka päivitetään joka kellosykli riippumatta siitä, käytetäänkö C: tä vai ei. Mikrokontrollerissa, joka käännetään ”lukuohjeeksi – se” on muuttujien XOR RAM-osoitteissa A ja B, tulos varastoidaan osoitteeseen C. Lataa aritmeettisten logiikkayksiköiden rekisterit ja pyydä sitten ALU: ta tekemään XOR, Kopioi sitten lähtörekisteri RAM-muistin osoitteeseen C. ”Käyttäjäpuolella molemmat ohjeet olivat kuitenkin yksi koodirivi.Jos tekisimme tämän, SITTEN jotain muuta, HDL: ssä meidän olisi määriteltävä prosessi, jota kutsutaan prosessiksi sekvenssien tekemiseksi keinotekoisesti – erillään rinnakkaisesta koodista. Mikro-ohjaimessa ei ole mitään tekemistä. Toisaalta, jotta saat ”rinnakkaisuuden” (todella virittäminen sisään ja ulos) mikrokontrollerista, sinun on käytävä jongleerausta langoilla, mikä ei ole triviaali. Eri työskentelytavat, erilaiset tarkoitukset.

Yhteenvetona:

ASIC vs FPGA: kiinteä, kalliimpi pienelle määrälle tuotteita (halvempi suurille määrille), mutta optimoitu.

ASIC vs mikrokontrolleri: varmasti pidät työkalun vertaamisesta vasaraan.

FPGA vs mikrokontrolleri: ei optimoitu peräkkäiselle koodinkäsittelylle, mutta voi tehdä todella rinnakkaisia tehtäviä myös hyvin helposti. Yleensä FPGA: t on ohjelmoitu HDL: ssä, mikrokontrollerit C / Assembly: ssä

Aina kun rinnakkaisten tehtävien nopeus on ongelma, ota FPGA, kehitä suunnittelua ja tee siitä lopulta ASIC, jos se ”S sinulle halvemmalla pitkällä aikavälillä (massatuotanto). Jos peräkkäiset tehtävät ovat kunnossa, ota mikro-ohjain. Luulen, että voisit tehdä tästä vielä sovelluskohtaisemman IC: n, jos se on sinulle halvempaa myös pitkällä aikavälillä . Paras ratkaisu on todennäköisesti vähän molempia.

Kuinka nopea haku minulle kirjoituksen jälkeen antoi: kirjoita kuva kuvaus tähän kirjoita kuvakuvaus tähän

FPGA vs mikro-ohjaimet, tällä foorumilla

Vastaus

FPGA: t voidaan ”kytkeä uudelleen” ohjelmoimalla uudelleen. FPGA lataa kokoonpanonsa konfiguroitaviin logiikkasoluihin virran ollessa käynnissä . Tämä tarkoittaa, että se voidaan ohjelmoida uudelleen ilman muutoksia laitteistoon.

ASIC-kaapelit voidaan kytkeä uudelleen vain muokkaamalla piivalimon fotolitografisia naamioita.

Mikrokontrolleri on tyyppi ASIC, joka suorittaa ohjelman ja voi sen seurauksena tehdä yleisiä asioita. Jos kuitenkin haluat muuttaa käskyjoukkoa tai tehdä jotain vastaavaa, joudut muokkaamaan varsinaista pii-IC-asettelua.


FPGA: n ja MCU: n ero on enemmän sumea. Pohjimmiltaan mikä FPGA on laitteistotasolla, on paljon pieniä SRAM-soluja, jotka kaikki on liitetty tiheään multiplekserien matriisiin. Pohjimmiltaan FPGA on koko joukko erillistä logiikkaa, joka voidaan elektronisesti ”kytkeä uudelleen” ** yksinkertaisesti ohjelmoimalla multiplekserit ja SRAM-solut.

Sellaisena voit todella toteuttaa MCU FPGA: n sisällä , koska MCU on vain tietty logiikkasolujen kokoonpano. Itse asiassa FPGA: ita käytetään hyvin yleisesti MCU: iden suunnitteluprosessissa.

Mikrokontrolleri on tietyn logiikkakonfiguraation toteutus. Syy siihen, että meillä on niitä, on se, että toteuttamalla MCU suoraan piiin, tarvittavan piimuotti-tilan kokonaismäärä voidaan optimoida huomattavasti, ja voidaan tehdä tiettyjä suorituskyvyn optimointeja, joita FPGA: n vaadittu ”yleisyys” kieltää. Tämä mahdollistaa MCU: n tuotantokustannusten alentamisen dramaattisesti, ja seurauksena on, että yleinen MCU on paljon halvempi kuin FPGA, joka pystyy sisällyttämään vastaavan logiikan.


FPGAs ovat hyödyllisiä tietyissä sovelluksissa, koska ne voivat toteuttaa logiikkarakenteita tavalla, jota MCU: t eivät pysty. Jos esimerkiksi on lisättävä X1 + Y1, X2 + Y2, X3 + Y3 ja X4 + Y4, MCU: n on tehtävä jokainen operaatio peräkkäin *. FPGA: lla voi olla yksinkertaisesti 4 erillistä ALU: ta samanaikaisesti , joten se voi tehdä saman toiminnon neljänneksessä (olettaen, että molemmat laitteet kellotetaan samalla nopeudella).

Täällä FPGA: t ( tai samaan tehtävään suunnitellut ASIC: t) voivat todella loistaa, sillä voit tehdä monia, monia asioita samanaikaisesti , mikä yksi prosessi voi tehdä vain peräkkäin.

* (Huomaa: Ohitan joitain asioita, kuten SIMD täällä)

Kommentit

  • En aio ’ usko, että FPGA / ASIC-ero on sumea; FPGA: ssa piirit, joiden ” johdotusta ” voidaan vaihtaa, toimivat samanaikaisesti ja itsenäisesti. MCU: lla on suuri määrä piirejä, joiden johdotusta ei voida muuttaa, joiden käyttäytymistä ohjataan informaation avulla, johon pääsee paloittain ohjelmoitavalta muistiryhmältä. Milloin tahansa, prosessori pystyy yleensä suorittamaan vain yhden operaation muutamasta tuhannesta muutamaan miljardiin valintaan, mutta MCU suunnitellaan siten, että tällaisten toimintojen yhdistäminen peräkkäin mahdollistaa sen, että hyödyllinen työ.
  • Kiitos. Hyvin lähellä vastausta … vaikkakin 10 kuukautta myöhemmin. +1 tehdä ammuksia.

vastaus

Tämä on hyvä kysymys,

Pohjimmiltaan mikro-ohjain ja ASIC: llä on kiveen asetettu laitteisto (jota usein kutsutaan piiksi) ja jota ei voi muuttaa. FPGA voidaan määrittää määritettynä edustaa monia erilaisia laitteistoja (tämä voi sisältää mikro-ohjaimia).

Saatat ajatella, että mikro-ohjain voidaan saada tekemään monia erilaisia asioita, mutta tämä kaikki tapahtuu suorittamalla erilaisia ohjelmia – teknisesti ohjelmisto mutta joskus sitä kutsutaan laiteohjelmistoksi – laitteisto itse ei muutu olennaisesti, se tekee samat toiminnot, mutta eri järjestyksessä eri tuloilla.

FPGA: ita käytetään yleensä ASIC: ille sitoutuneiden mallien luomiseen. ero niiden välillä on se, että jos haluat päivittää FPGA: n sisäisen toiminnan tai lisätä / poistaa toiminnallisia lohkoja, sinun tarvitsee vain päivittää sen laiteohjelmisto, tätä ei voida tehdä ASIC-laitteilla, koska sisäinen työ kuninkaat ovat sitoutuneet piiin, sitä ei voida konfiguroida uudelleen.

Joten lyhyesti sanottuna, mikroprosessorilla käytät samaa laitetta eri ohjelmien ajamiseksi, FPGA: n avulla konfiguroit laitteiston uudelleen suorittamaan erilaisia toimintoja ja ASIC: t ovat kuin mikro-ohjain, koska laitteistoa ei voida muutettu, mutta ne on yleensä suunniteltu suorittamaan yhtä toimintoa erittäin tehokkaasti.

Sekä ASIC: t että FPGA: t voivat sisältää mikro-ohjaimia, ja jos ne tekevät, voit kirjoittaa niille ohjelmia kuten erillinen mikro-ohjain, esimerkki tämä on Alteran sulautettu NIOS II -prosessori.

Jos tämä on edelleen hämmentävää, kerro minulle, mitä siitä on epäselvää, ja teen parhaani selvittääksesi vastaukseni.

Gipsy

Vastaa

No, FPGA: ta ei ole ohjelmoitu sähköisillä signaaleilla, jos ne käyttäytyvät kuin tietty porttikokoelma, joissakin FPGA: t sisältävät salaman muistia tämän kokoonpanon tallentamiseksi, jotkut eivät, ja ne on ohjelmoitava uudelleen jokaisen virran palautuksen jälkeen.

ASIC tulee pois tuotantolinjalta jo c määritetty.

FPGA-virheet voidaan korjata laiteohjelmistopäivityksellä, ASIC-virheitä ei voida taloudellisesti korjata.

Vastaa

Nimestään huolimatta FGPA tuntuu hyvin” sovelluskohtaiselta ”, koska se on kytkettävä uudelleen uuden ja toisen tehtävän suorittamiseen.

Se on päinvastoin mitä ”sovelluskohtainen” tarkoittaa. Voit käyttää FPGA: ta useampaan kuin yhteen sovellukseen kytkemällä se uudelleen. Et voi muuttaa ASIC-koodia, joten sitä voidaan soveltaa vain yhteen tehtävään (kyseinen tehtävä saattaa toteuttaa mikrokontrollerin).

Vaikka, FPGA: n uudelleenjohdotuksen yhteydessä kaikkien tarvittavien laitteiden tulee olla läsnä.

Etkö ole varma, mitä tämä tarkoittaa. Yleensä siellä on ohjelmointirajapinta FPGA: n uudelleenohjelmoimiseksi. Se on ASIC, joka vaatii miljoonia [valuuttayksikköä] laitteistoa.

FPGA ” on tarkoitettu ohjelmoitaviksi, mutta eikö tälle ole tarkoitettu mikro-ohjainta?

Mikrokontrollerin avulla voidaan ohjelmoida peräkkäisiä ohjelmistoja kiinteälle laitteistolle. Aivan kuin normaali tietokone, mutta hyvin pieni ja resurssit rajalliset. FPGA: n avulla voit ohjelmoida haluamasi laitteistot HDL: n avulla.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *