Trajna memorija. Testovi memorije za ZX-Spectrum, flešovani u ROM Flash ROM, fleš ROM

Opisano kako se instalira Quartus, ali ovo je bio samo korak ka zadatku. Kako bi se u to uvjerili FPGA i rad programera, prvi je morao biti flešovan.
Pokazalo se da se to može učiniti na dva načina, prvi je kroz JTAG sučelje, u ovom slučaju informacije o konfiguraciji se bljeskaju direktno na FPGA. Nedostatak ove metode je to FPGA memorija je nestabilna i firmver se mora učitati u FPGA svaki put kada se uključi napajanje.

Izlaz iz ove situacije se nameće sam od sebe i leži u njemu Postavite memorijski čip pored FPGA i učitajte firmver sa njega svaki put nakon uključivanja napajanja. Jedino što vrijedi dodati je da firmver nije pohranjen na običnom fleš disku, već u posebnom čipu - sekvencijalnom konfiguracijskom ROM-u. U Altera- ovo su mikro kola iz serije EPCS ili EPCQ, programabilno preko interfejsa Active Serial. Ovo je drugi metod, poenta je da se programira sekvencijalni konfiguracioni ROM čip, a nakon što se uključi napajanje, FPGA čita firmver sa njega.
Ali ovo postavlja drugo pitanje: da li je moguće da je potreban poseban konektor za programiranje ROM čipa serijske konfiguracije?
Ispostavilo se da su se FPGA programeri pobrinuli za ovo i FPGA može djelovati kao posrednik između interfejsa JTAG I Active Serial. Odnosno, prima firmver putem JTAG interfejs, i zapisuje ga u ROM koristeći Active Serial. Sredili smo teoriju i možemo početi s vježbanjem.

Na moj zahtjev, prodavač mi je e-poštom poslao shemu ploče za otklanjanje grešaka i nekoliko jednostavnih projekata. U jednom od projekata pronađena je datoteka sa ekstenzijom .sof, koji je neophodan za firmver.
Da biste flešovali FPGA koristeći jtag potrebno:

  • trči Quartus
  • izabrati Programer u kartici Alati
  • navedite datoteku firmvera


  • flešujte FPGA pritiskom na dugme Počni, nakon što ste prethodno instalirali potrebne potvrdne okvire

  • Ako je firmver uspješno instaliran, u gornjem desnom uglu vidimo 100% uspješno

U istom folderu u koji je preuzet .sof fajl, fajl sa ekstenzijom .pof. Datoteke sa ovom ekstenzijom se moraju flešovati direktnim povezivanjem na ROM, ali sam želeo da flešujem ploču bez nepotrebnih pomeranja preko jtag. Da biste to učinili, iz .sof datoteke je bilo potrebno dobiti datoteku sa ekstenzijom .jic.

Da biste konvertovali .sof fajl u .jic, potreban vam je:

  • u meniju File izaberite Convert Programming Files

  • u meniju koji se otvori izaberite u polju Tip datoteke za programiranje izabrati JTAG Indirect
    Konfiguracijski fajl (.jic)
  • u polju Uređaj za konfiguraciju odaberite tip ROM-a koji se nalazi na ploči
  • u polju Mode izaberite režim firmvera
  • u polju Ime dokumenta odrediti ime i direktorij izlazne datoteke

  • u polju Unosi fajl za konverziju kliknite na SOF Data, dugme se pojavljuje na desnoj strani Dodaj datoteku, klikom na koji možete odabrati datoteku za konverziju

7 / 8 121

verzija za štampanje

Testovi memorije za ZX-Spectrum, flešovani u ROM

Neispravnosti vezane za RAM zauzimaju "časnu" nišu među svim mogućim razlozima neoperabilnosti Spectruma. Memorijski čipovi su relativno nepouzdani i imaju tendenciju da pregore (posebno ako postoje problemi sa napajanjem). A posebno ako je izvor napajanja Spectruma transformator. Koliko puta je primećeno na mom računaru Leningrad-1 sa transformatorskim napajanjem - slučajno preskočite napajanje računara (+5V i uzemljenje), a jedno ili dva mikro kola KR565RU5 su već „izletela“.

U pravilu, memorijski čip u potpunosti sagorijeva. One. Ne radi se o tome da jedan dio u njemu ne radi, već da cijeli čip prestaje raditi. Spectrumova memorija je organizovana na takav način da je svaki RAM čip odgovoran za svoj bit memorije (za 48K Spectrum ovo je 8 čipova, po jedan bit, za ukupno 64KB adresabilne memorije). Kada se računar pokrene, ROM vrši test memorije, i ako bilo koja ćelija RAM-a „pokaže“, računar postavlja ograničenje dostupne memorije na adresu ćelije koja je prethodila neispravnoj. U ovom slučaju, vrijednost ograničenja dostupne memorije se postavlja u sistemsku varijablu P_RAMT (nalazi se na adresama 23732-23733 u RAM-u. U radnom računaru vrijednost ove sistemske varijable će biti jednaka #FFFF (da je, brojevi 255 će biti upisani u obje memorijske ćelije ako u Sistemska varijabla sadrži broj koji nije jednak #FFFF, na primjer, ako je #F000 tu, to znači da je memorijska ćelija #F001 već neispravna.

Sve je to vrlo dobro, ali samo ako otkrivena neispravna memorijska ćelija nije na početku dostupne RAM memorije. Činjenica je da je za rad BASIC-48 potrebna i neka vrsta raspoložive radne memorije. A ako se otkrije defekt memorije na početku RAM-a, tada se BASIC jednostavno neće pokrenuti i nećemo moći ništa saznati. Ako jedan od RAM čipova potpuno izgori, računar se neće pokrenuti BASIC.

Onda ostaje samo da "plešete s tamburom" da biste pronašli šta je zapravo izgorelo. Primjenjivo na memorijske čipove, možete isprobati primitivnu, ali ponekad korisnu dijagnostiku. Činjenica je da se neispravan memorijski čip (KR565RU5) može razlikovati po temperaturi od ostalih radnih čipova. Tokom rada, KR565RU5 RAM se zagrijava. Ako stavite prst na RAM čipove, možete osjetiti da su čipovi primjetno topli. Neispravan mikro krug može se zagrijati poput pegle, ili može biti potpuno hladan. To neće nužno biti slučaj, ali ova metoda se može zapamtiti i primijeniti s vremena na vrijeme.

Općenito, kada se proizvodi Spectrum, pravila dobre forme su instaliranje ROM-a i procesorskih čipova na utičnice. Ovo uvelike olakšava život prilikom popravke računara. U ovom slučaju nas zanima ROM čip. U "drevnim" Spectrumima proizvedenim krajem 80-ih (početkom 90-ih), u pravilu su instalirana dva ROM čipa. To je diktirano činjenicom da u to vrijeme nije bilo lako nabaviti 16K ROM čip (buržoaski naziv 27128), pa ga je bilo lakše i jeftinije zamijeniti sa dva 8K čipa, srećom imali su domaći analog KR573RF4, KR573RF6 . I obično je jedan od mikro krugova (obično ROM-0) postavljen na utičnicu. Zašto ROM-0? Jer ROM je sastavljen na dva čipa, njegov adresni prostor je podijeljen na dva dijela. Ukupni kapacitet ROM-a je 16K. Stoga se prvih 8K smatra ROM-0, a drugih 8K ROM-1. Kada se računar pokrene, procesor počinje da izvršava program koji se nalazi na adresi #0000, a to je upravo oblast kojoj se adresira ROM-0.

Dakle, da, zaista nam treba barem jedan ROM da bude na socketu. Ako računarska ploča ima samo jedan ROM na utičnici, to je takođe vrlo dobro. Stvar je u tome što se ROM može ukloniti i zamijeniti vlastitim ROM-om, u koji je “ušiven” test memorije. Zatim, kada uključite računar, pokrenuće se test memorije koji nam je potreban, koji će jasno pokazati šta se dešava sa memorijom u računaru.

Pre jako, jako davno, kada još nisam imao ROM programera, morao sam ići na radio tržište i tamo bi jaki momci ubacili bilo šta u ROM za odgovarajući mito. Imali su i testove memorije za Spectrume. Da, tada je bilo dobro vreme...

Dakle, nakon što ste kupili dragoceni flešovani ROM čip, mogli ste da testirate svoj računar. Međutim, prvo je bilo potrebno riješiti pitanje - kako pravilno umetnuti ROM u utičnicu? Činjenica je da je ROM test ubačen u 2K čip. Ima 24 igle. Spectrum koristi 28-pinski ROM. U ovom slučaju, pinovi 21 i 24 mikrokola sa testom su podignuti i kombinovani na sledeći način:

Takav mikro krug se ubacuje u utičnicu kao što je prikazano na fotografiji:

Mislim da fotografija sve jasno pokazuje. Pin 12 ROM-a (GND) mora odgovarati pinu 14 u utičnici. I izbočeni pin testnog ROM-a trebao bi pasti u 28. pin utičnice (+5V napajanje).

Umjesto da unakažete ROM, možete napraviti adaptersku ploču. Odozgo smo stavili 24-pinski priključak za test ROM, a odozdo vire pinovi za ugradnju ploče u 28-pinsku utičnicu na računaru. Sve potrebne promjene u povezivanju 21 i 24 ROM pina mogu se izvršiti direktno na ovoj ploči:

U svojoj praksi često koristim sljedeće test firmware:

Testirajte ROM za ZX-Spectrum 48K

Kao što ime govori, provjerava 48K RAM-a. Radi vrlo sporo (oko 12 minuta). Prvo se brišu atributi ekrana, zatim se ekran okreče i briše jedan po jedan, a zatim se prikazuju rezultati RAM testa. Nakon ovoga slijedi ROM test, ali uvijek se završava greškom, ali za nas to nije važno. Glavna stvar je provjeriti RAM.

PAŽNJA!
Ovaj test ima jedan “trik” - ako držite razmaknicu pri pokretanju testa, tada se preskače grafički dio sa senčenjem atributa i RAM test počinje direktno. Test za pritisnutu razmaknicu se radi u trenutku kada se završi izbor boja ivica na početku testa.

Prolazak testa ako je jedan od RAM čipova neispravan može se vidjeti u prvom izdanju Byte Tales #01:

BYT Tales #01 - Popravak računara “Byte”

Još jedan test ROM za ZX-Spectrum 48K

Nisam u potpunosti zadovoljan testom memorije od 48K iz prethodnog odeljka stranice, pa sam, kada sam imao slobodnog vremena i želje, rastavio ovaj test i na osnovu njega “sjekao” svoju verziju u kojoj sam pokušao realizovati moje "želje".

Rezultat je bio malo napredniji test memorije, u koji sam dodao nekoliko algoritama za testiranje memorije, izbacio nepotreban kod iz testa (ima ga dosta), a također napravio „ometanje“ sintisajzera na KR580VI53 u kućištu korištenja testa na “Byte” računaru.

Možete preuzeti probni firmver zajedno sa svim izvorima za iS-DOS (test je napisan u iS-Assembleru) na kraju ove stranice.

ROM test za ZX-Spectrum 48K (iz časopisa "Radio amater" 1995. br. 9

U časopisu "Radio amater" br. 9 za 1995. godinu objavljena je deponija ROM testa za ZX-Spectrum 48 autora G. Ulanovskog.

Posebnost testa je u tome što ne prikazuje tekst na ekranu - sve informacije o performansama RAM-a prikazuju se u obliku linija na ivici. Ovo može biti korisno u slučaju potpune neoperabilnosti RAM-a, kada prilikom prikazivanja teksta na ekranu ništa neće biti vidljivo, a linije na ivici će biti jasno vidljive (izlaz informacija na ivici ne zavisi od performansi i dostupnost RAM-a općenito).

Nakon što je test završen, na ivici se prikazuje 8 bijelih traka koje simboliziraju 8 bitova RAM-a. Prva traka odozgo prikazuje upotrebljivost bita D0, druga - D1, treća - D2, itd. Ako je odgovarajući bit RAM-a operativan, opseg će biti uski:

U slučaju neispravnog bita, propusni opseg će biti dvostruko širi:

Nedostatak testa je što provjerava samo prvih 16K RAM-a (na adresama #4000-#7FFF). Međutim, ovo se može lako popraviti promjenom izvora testiranja.

Test se odvija u 4 faze (punjenje i provjera bajtova #00, #FF, #55 i #AA). Ako želite, izvornom tekstu možete dodati druge opcije za provjeru RAM-a.

Kao primjer, modificirao sam test da provjerim cjelokupnu količinu 48K RAM-a, a u izvor sam ubacio i proceduru za ometanje KR580VI53 za Byte računar. Firmware za dvije opcije testiranja i izvore možete preuzeti na kraju ovog članka.

Testirajte ROM za ZX-Spectrum 128K

Ovaj test vam omogućava da brzo provjerite memoriju u 128. ZX-Spectrumu.

Kako test radi na radnom računaru možete pogledati u sljedećem videu:

Ovdje bi trebao biti video, ali neće raditi osim ako ne omogućite JavaScript za ovu stranicu.

Nakon poruke o uspješnom testiranju ROM-a, pojavljuje se petlja, ovo možete zanemariti.

Kada radite na neki Na računarima sa povezanim kontrolorom pogona, mogući su kvarovi prilikom prolaska testa. Činjenica je da se pri povezivanju kontrolera pogona vrši modifikacija koja zabranjuje odabir bilo kojeg porta kada kontroler radi. Na primjer, šta se preporučuje učiniti kada povezujete C-48 kontroler na ZX-Spectrum:

Provodnik koji ide od /IORQ izlaza procesora do računarskog kola je prekinut, a logički element koji prebacuje /IORQ signal je spojen na prekid.

Ovo se radi kako bi se onemogućili mogući portovi računara koji su u sukobu sa portovima kontrolera disk jedinice. Prije svega, ovo je Kempston port džojstika. Međutim, niko neće tražiti određeni model računala da vidi šta bi moglo biti u sukobu s kontrolerom pogona, tako da je lakše potpuno onemogućiti pristup portovima dok kontroler pogona radi.

Druga tačka: ponovo unutra neki Na računarima modifikovanim na ovaj način, TR-DOS se odmah pokreće nakon resetovanja. Ovo je učinjeno tako da svaki put ispod BASIC-a ne morate “ukucati” naredbu RANDOMIZE USR 15616 da pokrenete TR-DOS.

Treća tačka: ponovo unutra neki Na računarima, ROM sa BASIC-om je kombinovan sa ROM TR-DOS u jednom čipu. Na primjer, kao u ovom kompjuteru Leningrad-1:

Programer- hardverski i softverski uređaj dizajniran za pisanje/čitanje informacija u trajni uređaj za skladištenje (jednokratno upisivanje, fleš memorija, ROM, interna memorija mikrokontrolera i PLC-ova).

Programer- ovo je uređaj koji unosi informacije potrebne za rad u programabilne neisparljive digitalne čipove, kao npr. MATURSKO VEČE (ROM), EPROM (PROM), EEPROM (EEPROM), blic, PAL, GAL, FPGA I mikrokontroleri. Proces snimanja se često naziva " ", " ", " ", " ".

Flash ROM, flash ROM

"Flash ROM"- upisati informacije u ROM.

U vreme kada su računari bili veliki, od sredine 1950-ih do sredine 1970-ih, računari su koristili memoriju sa magnetnim jezgrom. Ova memorija je korištena i kao RAM i ROM. Prilikom izrade ROM-a, žica je ili prošla kroz prsten ili ga zaobišla. Žica je provučena kroz feritni prsten pomoću posebne igle. To je "ušiveni" memorijska matrica u doslovnom smislu. Stoga je ovom procesu sasvim prirodno pripisana definicija "flash ROM". Da bi to bilo kako treba "bljesak", kreirao tehnološki dokument "firmware map" koji je ukazivao kroz koje prstenove treba provući žicu, a kroz koje ne. Memorija na feritnim jezgrama je stvar prošlosti, međutim, termin "bljesak" I "firmware" u odnosu na proces pisanja u ROM se i danas koristi. Štaviše riječ "firmver" koristi se i kao glagol u odnosu na proces unosa informacija u ROM, i kao imenica u odnosu na samu informaciju ili datoteku koja se unosi.

Za razliku od poluvodiča, magnetna jezgra se ne boje radijacije i elektromagnetnog zračenja, pa se memorija magnetnih jezgara neko vrijeme nastavila koristiti u vojnim i svemirskim sistemima. Pouzdano se zna da se koristio u Shuttle-ovim on-board kompjuterima do 1991. godine. Možda se takva memorija još uvijek koristi u nekim starijim sistemima. Trenutno je već razvijena poluvodička memorija otporna na specijalne efekte, a era magnetnih jezgri je prošla, ali termin "firmware" ostao.

Burning ROM

"Sreži ROM"- unos informacija.

Memorija na feritnim jezgrama zamijenjena je poluvodičkom RAM memorijom, a kao ROM počeli su se koristiti mikro krugovi s metalnim matricama, često nihromskim, džamperima. Za unos informacija u takve mikro krugove, višak skakača mora biti spaljen strujnim impulsom. Nakon toga, skakači su se počeli koristiti ne samo od metala, već i od poluvodiča, u obliku p-n spoj ili polisilicijum, ali princip fizičkog uništenja skakača ili razgradnje spoja od
uticaj strujnog pulsa je sačuvan. Takvi ROM-ovi se i danas koriste u vojnim i svemirskim sistemima. Svi ChipStar programatori za mikro kola specijalne namene su "izgoriti" takve ROM-ove.

Snimanje, učitavanje ROM-a

U kućnim i industrijskim aplikacijama, gdje su zahtjevi za otpornošću na vanjske faktore manji, a zahtjevi za troškom i kapacitetom memorije veći, čipovi sa fuzijskim džamperima su zamijenjeni električno programabilnim EPROM čipovima i električno reprogramabilnim EEPROM ROM čipovima, i više nedavno, od strane čipova sa baziranim na FLASH-u. Sa promjenom tehnologije, promijenila se i terminologija: počeli su češće da se priča o tome ROM "piše", ili "učitavanje", a termin se češće koristi u odnosu na interni ROM mikrokontrolera, a “write” se češće koristi u odnosu na samostalne memorijske čipove.

ROM za programiranje ili mikrokontroler

"Programski ROM ili mikrokontroler"- unos informacija u ROM ili mikrokontroler.

Termin "programiranje" također se vrlo često primjenjuje na proces pisanja u ROM. I, ako se u odnosu na ROM to uvijek percipira nedvosmisleno, onda se u odnosu na mikrokontrolere javlja nejasnoća: "Programiraj mikrokontroler" može značiti ili upisivanje gotovog programskog koda (slike) u ROM mikrokontrolera pomoću hardverskog uređaja (programator, kabl za preuzimanje), ili sam proces razvoja programa.

P.S. P.S

Reći ćete da se tako lako zbuniti u cijeloj ovoj terminologiji, i bićete potpuno u pravu. Ali u okruženju engleskog govornog područja sve nije bolje! Ne samo da su svi isti "opekotine" ("spaliti"), "preuzimanja"("skinuti"), "rekord"("pisati"), kao i termini "programer"- osoba koja razvija program i "programer"- uređaj koji upisuje ovaj program u mikrokolo označen je jednom riječju: "programer".

Mikroprogramske mašine predstavljaju sljedeći korak u povećanju sofisticiranosti inteligencije digitalnog kola. Na osnovu mikroprogramiranih automata moguće je graditi uređaje koji rade po prilično složenim algoritmima, obavljaju različite funkcije određene ulaznim signalima i proizvode složene sekvence izlaznih signala. U ovom slučaju, operativni algoritam mikroprogramska mašina može se lako promijeniti zamjenom firmvera ROM-a.

Za razliku od prethodno razmatranih "tvrdih" logičkih uređaja, čiji je princip rada jedinstveno određen elementima koji se koriste i načinom njihovog povezivanja, mikroprogramske mašine korištenjem istog kola može obavljati različite funkcije. To jest, oni su mnogo fleksibilniji od kola zasnovanih na „tvrdoj“ logici. Osim toga, dizajn mikroprogramske mašine Sa stanovišta dizajna kola to je prilično jednostavno. Nedostatak bilo kojeg mikroprogramska mašina U poređenju sa sklopovima zasnovanim na “tvrdoj” logici, postoji niža maksimalna performansa i potreba za kompajliranjem ROM firmver mape sa mikroprogrami, često prilično složena.

Najčešća struktura mikroprogramska mašina(Sl. 11.15) uključuje samo tri elementa: ROM, ivični pokretački registar i generator takta.


Rice. 11.15.

ROM ima (L+M) adresne bitove i N bitova podataka. Registar se primjenjuje sa brojem cifara (N + L). ROM bitovi podataka se upisuju u registar na pozitivnoj ivici sat signala od generatora. Dio ovih bitova (M) se koristi za formiranje ROM adrese, drugi dio (N-M) se koristi za generiranje izlaznih signala. Ulazni signali (L) se dovode na ulaze registra i koriste se zajedno sa dijelom izlaznih bitova ROM-a za dobijanje ROM adrese.

Shema funkcionira na sljedeći način. U svakom ciklusu takta, ROM proizvodi kod podataka, određujući tako ne samo stanje izlaznih signala kola, već i ROM adresu, koja će biti postavljena u sljedećem ciklusu takta (nakon sljedeće pozitivne ivice sat signala). Na sljedeću adresu također utiču ulazni signali. To jest, za razliku od sekvencera signala o kojem se govorilo u prethodnom odeljku, u ovom slučaju adrese se mogu sortirati ne samo sekvencijalno (pomoću brojača), već i proizvoljnim redosledom, koji je određen ROM firmverom, koji se naziva firmver.

Uslov za ispravan rad kola je sljedeći. Za jedan period sat signala Registar i ROM moraju imati vremena za rad. Drugim riječima, zbir kašnjenja registra i kašnjenja dohvaćanja ROM adrese ne bi trebao premašiti period sat signala. Imajte na umu i da ulazni signali mikroprogramska mašina ne može se primijeniti direktno na adresne ulaze ROM-a (bez registra), jer njihova asinhrona (u odnosu na signal takta) promjena može uzrokovati prolazni proces na izlazima podataka ROM-a upravo u trenutku kada se upisuju izlazni signali ROM-a u registar. Kao rezultat toga, u registar se mogu upisati netačne informacije, što će poremetiti rad cijelog kola. Registar sinkronizira promjene ulaznih signala sa taktnim signalom, zbog čega se svi bitovi ROM adresnog koda mijenjaju istovremeno - duž pozitivne ivice sat signala. Registar mora biti okidač na ivici upotreba registra zasuna nije dozvoljena, jer može uzrokovati prolazni proces sličan lavini.

Mogućnosti tako jednostavne sheme su vrlo velike. Na primjer, mikroprogramska mašina može proizvesti sekvence izlaznih signala kao odgovor na specifičnu promjenu ulaznih signala. Također može privremeno zaustaviti izlazne signale dok ne stignu ulazni signali. Može analizirati trajanje ulaznog signala i, ovisno o tome, proizvesti određene izlazne signale. Može i puno drugih stvari.

Formulirajmo nekoliko elementarnih funkcija od kojih se mogu sastaviti operativni algoritmi mikroprogramskog automata (slika 11.16):


Rice. 11.16.
  1. Sekvencijalna pretraga ROM adrese (na primjer, za izdavanje niza izlaznih signala).
  2. Periodično ponavljanje niza ROM adresa (na primjer, za ponavljanje niza izlaznih signala).
  3. Zaustavljanje na nekoj ROM adresi (na primjer, da se sačeka da se promijeni ulazni signal).
  4. Privremeno onemogućavanje reakcije na ulazne signale (na primjer, da bi se završila razrada reakcije na prethodnu promjenu ulaznih signala). Ova funkcija nije prikazana na slici.

Kao primjer, razmotrite izvršavanje nekih elementarnih funkcija mikroprogramska mašina, prikazano na sl. 11.17.


Rice. 11.17.

ROM ima organizaciju 64x8 (mogu biti dva PE3 čipa ili jedan RT18 čip), broj bitova registra je deset (mogu biti dva IR27 čipa). Kolo ima dva ulazna i četiri izlazna signala. Takva organizacija mikroprogramska mašina Dobra stvar je što je njegov mikroprogram (tj. mapa firmvera ROM-a) vrlo jasan, lak za sastavljanje i čitanje.

Tabela 11.7. ROM firmver kartica 64x8 for mikroprogramska mašina
Adresa 0 1 2 3 4 5 6 7 8 9 A B C D E F
00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

Izlazni bitovi ROM podataka podijeljeni su u dvije grupe od 4 signala: niži idu da formiraju sljedeću ROM adresu, a visoki formiraju četiri izlazna signala. Ulazni signali stižu (preko registra) do dva najznačajnija bita ROM adrese. Ako mapu firmvera ROM-a prikažemo u uobičajenom obliku tabele od četiri reda i 16 stupaca (tabela 11.7), tada će ova tabela jasno pokazati i stanje svakog od internih signala, kao i odgovor kola na bilo koji ulaz signala, kao i stanja svih izlaznih signala u svakom ciklusu takta.

Prije svega, lako je primijetiti da odabir jednog ili drugog reda tabele vrše najznačajniji bitovi ROM adresnog koda, odnosno ulazni signali mikroprogramska mašina. Dakle, svaka promjena ulaznih signala dovodi do prijelaza na drugu liniju u mapi firmvera. Na primjer, linija 00 će odgovarati nultim ulaznim signalima mikroprogramska mašina, i linija 30 - pojedinačni ulazni signali.

Tabela 11.8. Primjer firmvera za krug na sl. 11.17
Adresa 0 1 2 3 4 5 6 7 8 9 A B C D E F
00 11 22 33 44 55 66 77 88 99 AA. BB CC DD E.E. FF 00
10 11 22 33 44 55 66 77 88 99 55 BB CC DD E.E. FF 00
20 10 21 32 43 54 65 76 87 98 A9 B.A. C.B. DC ED
mob_info