Anonim

Monissa näistä sovelluksista yleinen tarve on kyky tallentaa tietoja, kuten kalibrointitiedot, käyttäjän asetukset ja tunnistemerkit, kun laite on kytketty pois päältä. Jos laitteessa on upotettu mikroprosessori, prosessorin koodi on myös tallennettava.

Järjestelmissä, joissa kustannukset, osien lukumäärä ja kortin jalanjälki eivät ole huolenaiheita, näihin tietojen tallennustarpeisiin voidaan tyypillisesti käyttää tavallista flash-muistilaitetta. Monissa tapauksissa nämä rajoitukset saavat suunnittelijat etsimään tapaa asentaa kaksikäyttöiset komponentit järjestelmiinsä.

FPGA-laitteisiin on aina liitetty haihtumattomia tallennusvälineitä riippumatta siitä, ovatko ne monoliittisia haihtumattomia laitteita vai käynnistysmuistia käyttäviä SRAM-laitteita. Kummassakin tapauksessa on luonnollinen kysymys siitä, voidaanko jotakin tästä haihtumattomasta muistista käyttää tietojen tallentamiseen järjestelmän sammutuksen aikana.

n

Olennaista
Ennen kuin valitset lähestymistavan, on hyödyllistä pohtia sovelluksen vaatimuksia. Ensimmäinen huomioon otettava tekijä on vaaditaanko luku- / kirjoitusominaisuus vai onko vain luku -toimi käyttö hyväksyttävä. Seuraava huomioon otettava tekijä on tallennettavan tiedon määrä.

Tarvitseeko sovellus vain muutaman bitin tallennustilan vai tarvitaanko tuhansia tai miljoonia bittejä? Toinen huomioitava asia on sovelluksen vaatima kirjoitussyklien lukumäärä. Lopuksi luku- ja kirjoitusoperaatioiden luonnetta, peräkkäisiä tai satunnaisia, on tarkistettava.

Alustettu Block RAM
Useimmat FPGA: t sallivat kankaiden lohko RAM-muistien alustamisen niiden käynnistyslaitteesta. Tämä tarjoaa erinomaisen tavan tuottaa suhteellisen suuri määrä ROM-levyä etsintätaulukoiden tai ohjelmakoodien tallentamiseksi. Nämä ROM-levyt tukevat nopeaa satunnaista lukemista, ja ne voidaan ohjelmoida yhdessä muun FPGA-kokoonpanon kanssa. Jos kaikki, mitä suunnittelu vaatii, on pieni määrä ROM-levyä, tätä lähestymistapaa ei pidä unohtaa.

SPI uudelleenkäyttö
Kaikki nykyaikaiset SRAM FPGA -sovellukset sallivat konfiguroinnin SPI-muistista. Koska SPI-muistin ylimääräiset bitit ovat halpoja eivätkä kuluta lisättyä levytilaa, SPI-muistin ylimääräisen tilan käyttäminen tietojen tallentamiseksi on usein järkevää. SPI-rajapinnan hallitseminen on yleensä helppoa sen jälkeen, kun FPGA on käyttänyt sitä konfigurointiin (vaikka tämä voi vaihdella, joten suunnittelijan on vahvistettava tämä ennen sitoutumista tähän lähestymistapaan) ja SPI-rajapintamoottorin rakentaminen vaatii vähän logiikkaa. SPI-muistia käytettäessä on vältettävä kirjoittamista FPGA-kokoonpanotilaan. Tämä voidaan lukita suunnittelemalla käyttöliittymälogiikka ja / tai käyttämällä sektorilukkoja, joita löytyy monista SPI-flash-muistilaitteista.

Vaikka SPI-laitteet sallivat satunnaiset lukemat monille sovelluksille, parempi suorituskyky voidaan saavuttaa tallentamalla välimuisti nykyinen sektori FPGA: n lohkomuistien avulla. Koska kirjoittaminen vaatii ensin sektorin poistamisen, tämä välimuistilähestymistapa mahdollistaa huomattavasti enemmän joustavuutta. SPI-muistin kanssa sallitut poisto- / ohjelmasyklit ylittävät yleensä 100 kt. Tässä selityksessä tyypillisesti kattaa useita virta-
ylös- ja sammutusjaksot, joita tapahtuisi normaalin toiminnan aikana. Jos muistimerkintöjen lukumäärän odotetaan kuitenkin ylittävän tämän määrän, muistilähetystä voidaan taas käyttää estämään järjestelmää saavuttamasta SPI-kestävyysrajaa.

Haihtumattomat FPGA TAG Muisti
Monet haihtumattomat FPGA-yhdisteet sisältävät pienet TAG-muistit laitteessa. Esimerkiksi LatticeXP2-laiteperhe tarjoaa 0, 6-3, 4 kt muistia yleiskäyttöön. Tämä on muistin määrä, joka tarvitaan usein laiteasetusten ja kalibrointitietojen tallentamiseksi. Kuten kuvassa 2 esitetään, LatticeXP2 TAG -muistiin voidaan päästä JTAG-liitännän tai sirun logiikan kautta. Yksityiskohdat eroavat FPGA-myyjistä, joten suunnittelijan tulee vahvistaa, että haluttua lähestymistapaa tuetaan.
TAG-muistitila on erillinen FPGA-kokoonpanosta, joten ei ole mahdollista, että FPGA-kokoonpano korvataan vahingossa näiden toimintojen aikana. Sirulla oleva TAG-muisti on ihanteellinen monien järjestelmien pienten erillisten sarja-EEPROMien integroimiseksi.

Flash Shadowed Block RAM
Nämä FPGA-laitteet tarjoavat tyypillisesti kyvyn käyttää salaman alustusbittejä, jotka varjoavat laitteen lohkomuistit. Laitekonfiguraation aikana flash-muistibitit alustavat kaikki laitteen sisäiset lohkomuistit. Nämä muistot voidaan kirjoittaa ja lukea kuten mikä tahansa muu SRAM. Kun konfiguraatiotietoja on tarpeen tallentaa FPGA: hon, asianmukaisen signaalin vaihtaminen johtaa siihen, että nykyiset RAM-arvot kirjoitetaan takaisin salamaan (kuva 3). Tämä lähestymistapa mahdollistaa RAM: n nopean lukemisen ja kirjoittamisen yhdistämisen salaman haihtumattomaan ominaisuuteen. Tyypillisesti tuhansia poisto- ja kirjoitusjaksoja tuetaan tätä toimintoa varten. Kuten TAG-muistissa, lohko RAM-muistiin liittyvä Flash on erotettu loogisesti, varmistaen, että FPGA-logiikan kokoonpanoa ei kirjoiteta vahingossa.

Valitsemalla lähestymistapa
Kuten aiemmin mainittiin, viime kädessä sovellusvaatimukset ohjaavat sopivimman tekniikan valinnan. Jokaisella yksityiskohtaisella lähestymistavalla on varmasti paikkansa järjestelmän suunnittelussa. Yhteenvetona voidaan todeta, että jos suunnittelija etsii kohtuullista määrää ROM-koodia tallennusta varten tai hakutaulukkona käytettäväksi, niin alustetun lohkon RAM-lähestymistapa on todennäköisesti paras. Toisaalta, jos dataa, kuten kalibrointitietoja, nykyisiä asetustietoja tai järjestelmän tunnistetietoja, on vähän, TAG-muisti tarjoaa kätevän ratkaisun. Suuremmille muistimäärille, jotka on kirjoitettava uudelleen, SPI-muistin uudelleenkäyttö tai flash-varjostettu lohkon RAM-lähestymistapa ovat hyödyllisiä. Tietenkin, riippumatta siitä, mitä lähestymistapaa käytetään, hallitusalue ja kustannukset vähenevät.