Muun kysymyksesi perusteella olet Xilinx-kaveri. Joten suosittelen lämpimästi, että hankit Xilinx-sirusi tietolomakkeen ja siirryt Toiminnallinen kuvaus -osioon. Käyttämälleni Spartan 3 -piirille se on 42 sivua hauskaa lukemista. Siinä kuvataan tarkalleen, mitkä komponentit ovat FPGA: ssa - IOB: t, CLB: t, viipaleet, LUT: t, Block RAM, kertojat, Digital Clock Manager, Clock Network, Interconnect ja joitain perustiedot kokoonpanosta. Sinun on ymmärrettävä nämä tiedot, jos haluat tietää, miltä "käännetty HDL" näyttää.
Kun olet perehtynyt FPGA: n arkkitehtuuriin, voit ymmärtää tämän prosessin. Ensinnäkin HDL-suunnittelusi ajetaan synteesimoottorin kautta, mikä muuttaa HDL: si periaatteessa RTL: ksi. Sitten Mapper käsittelee synteesin tulokset, "kartoittaa" ne käytettävissä oleviin FPGA-arkkitehtuurin osiin. Sitten reititin tekee paikan ja reitin (PAR), joka selvittää, mihin nämä kappaleet menevät ja miten ne yhdistetään. Lopuksi PAR: n tulokset muutetaan BIT-tiedostoksi. Tyypillisesti tämä BIT-tiedosto muunnetaan sitten jollakin tavalla, jotta se voidaan ladata Flash-sirulle, jotta FPGA voidaan ohjelmoida automaattisesti, kun se käynnistyy.
Tämä bittitiedosto kuvaa koko FPGA-ohjelmaa. Esimerkiksi Spartan 3: n CLB: t koostuvat viipaleista, jotka koostuvat LUT: ista, jotka ovat vain 16-osoitteisia 1-bittisiä SRAM-levyjä. Joten yksi asia, jonka BIT-tiedosto sisältää, on juuri se, mitä tietoja SRAM: n jokaiseen osoitteeseen menee. Toinen asia, jonka BIT-tiedosto sisältää, on se, kuinka kukin LUT-tulo on kytketty yhteysmatriisiin. BIT-tiedosto sisältää myös alkuarvot, jotka menevät lohkon RAM-muistiin. Siinä kuvataan, mikä on liitetty jokaisen viipaleen jokaisen kiikun set- ja reset-nastoihin. Siinä kuvataan, kuinka kantoketju on kytketty. Siinä kuvataan jokaisen IOB: n (LVTTL, LVCMOS, LVDS jne.) Logiikkarajapinta. Siinä kuvataan kaikki integroidut ylös- tai alasvetovastukset. Pohjimmiltaan kaikki.
Xilinxissä FPGA: n muisti tyhjennetään, kun määritys aloitetaan (ts. PROG_B on vahvistettu). Kun muisti on tyhjä, INIT_B nousee korkealle osoittamaan, että vaihe on valmis. BIT-tiedosto ladataan sitten joko JTAG: n tai Flash-sirun käyttöliittymän kautta. Kun ohjelma on ladattu, yleinen asetus / nollaus (GSR) sykkii ja palauttaa kaikki varvastossut alkuperäiseen tilaansa. DONE-tappi nousee sitten korkealle, mikä osoittaa konfiguroinnin olevan valmis. Täsmälleen yksi kellojakso myöhemmin globaali kolmen tilan signaali (GTS) vapautetaan, jolloin lähdöt voidaan ohjata. Täsmälleen yksi sykli myöhemmin, Global Write Enable (GWE) vapautetaan, jolloin varvastossut alkavat vaihtaa tilaa vastauksena tuloihinsa. Huomaa, että jopa tämä lopullinen määritysprosessi voidaan hieman järjestää BIT-tiedostossa asetettujen lippujen mukaan.
MUOKKAA:
Haluan myös lisätä, että syy FPGA-ohjelmaan ei ole pysyvä johtuu siitä, että logiikkarakenne koostuu haihtuvasta muistista (esim. SRAM). Joten kun FPGA menettää virran, ohjelma unohdetaan. Siksi he tarvitsevat mm. Flash-sirut haihtumattomana tallennustilana FPGA-ohjelmalle, jotta se voidaan ladata aina, kun laitteeseen kytketään virta.