Permanentes Gedächtnis. Speichertests für ZX-Spectrum, geflasht in ROM, Flash-ROM, Flash-ROM

Beschrieben, wie man installiert Quartus, aber das war nur ein Schritt in Richtung der Aufgabe. Um das sicherzustellen FPGA und die Programmierarbeit, das erste musste geflasht werden.
Es stellte sich heraus, dass dies auf zwei Arten geschehen kann: Die erste ist durch JTAG Schnittstelle, in diesem Fall werden die Konfigurationsinformationen direkt auf das FPGA geflasht. Der Nachteil dieser Methode besteht darin Der FPGA-Speicher ist flüchtig und die Firmware muss jedes Mal, wenn Strom angelegt wird, in das FPGA geladen werden.

Der Ausweg aus dieser Situation bietet sich an und er liegt darin Platzieren Sie einen Speicherchip neben dem FPGA und laden Sie die Firmware jedes Mal nach dem Anlegen der Stromversorgung von diesem. Das Einzige, was erwähnenswert ist, ist, dass die Firmware nicht auf einem normalen Flash-Laufwerk gespeichert ist, sondern in einem speziellen Chip – einem sequentiellen Konfigurations-ROM. U Altera- das sind Mikroschaltungen der Serie EPCS oder EPCQ, programmierbar über Schnittstelle Aktive Seriennummer. Dies ist die zweite Methode. Der Zweck besteht darin, den ROM-Chip für die sequentielle Konfiguration zu programmieren. Nach dem Anlegen der Stromversorgung liest das FPGA die Firmware daraus.
Dies wirft jedoch eine andere Frage auf: Ist möglicherweise ein separater Anschluss erforderlich, um den ROM-Chip für die serielle Konfiguration zu programmieren?
Es stellt sich heraus, dass die FPGA-Entwickler dafür gesorgt haben und der FPGA als Vermittler zwischen Schnittstellen fungieren kann JTAG Und Aktive Seriennummer. Das heißt, es erhält die Firmware von JTAG Schnittstelle und schreibt es mit ins ROM Aktive Seriennummer. Wir haben die Theorie geklärt und können mit der Praxis beginnen.

Auf meine Anfrage hin schickte mir der Verkäufer per E-Mail einen Schaltplan des Debug-Boards und mehrere einfache Projekte. In einem der Projekte wurde eine Datei mit der Erweiterung gefunden .sof, was für die Firmware notwendig ist.
Um das FPGA zu flashen jtag notwendig:

  • laufen Quartus
  • wählen Programmierer in der Registerkarte Werkzeuge
  • Geben Sie die Firmware-Datei an


  • Flashen Sie den FPGA per Knopfdruck Start, nachdem zuvor die erforderlichen Kontrollkästchen installiert wurden

  • Wenn die Firmware erfolgreich installiert wurde, wird in der oberen rechten Ecke 100 % erfolgreich angezeigt

Im selben Ordner, in dem die .sof-Datei erstellt wurde, befindet sich eine Datei mit der Erweiterung .pof. Dateien mit dieser Erweiterung müssen durch eine direkte Verbindung zum ROM geflasht werden, aber ich wollte das Board ohne unnötige Bewegungen über flashen jtag. Dazu musste aus der .sof-Datei eine Datei mit der Erweiterung abgerufen werden .jic.

Um eine .sof-Datei in .jic zu konvertieren, benötigen Sie:

  • Wählen Sie im Menü „Datei“ die Option „Programmierdateien konvertieren“.

  • Wählen Sie im sich öffnenden Menü das Feld aus Programmierdateityp wählen JTAG Indirekt
    Konfigurationsdatei (.jic)
  • auf dem Feld Konfigurationsgerät Wählen Sie den ROM-Typ auf der Platine aus
  • auf dem Feld Modus Wählen Sie den Firmware-Modus
  • auf dem Feld Dateiname Bestimmen Sie den Namen und das Verzeichnis der Ausgabedatei

  • auf dem Feld Zu konvertierende Eingabedatei Klicken Sie auf SOF-Daten. Auf der rechten Seite erscheint eine Schaltfläche Datei hinzufügen, durch Anklicken können Sie die zu konvertierende Datei auswählen

7 / 8 121

Druckversion

Speichertests für ZX-Spectrum, ins ROM geflasht

RAM-bedingte Fehlfunktionen nehmen unter allen möglichen Gründen für die Funktionsunfähigkeit von Spectrums eine „ehrenvolle“ Nische ein. Speicherchips sind relativ unzuverlässig und neigen zum Durchbrennen (insbesondere bei Stromproblemen). Und vor allem, wenn die Stromquelle des Spectrum ein Transformator ist. Wie oft ist es bei meinem Leningrad-1-Computer mit Transformator-Stromversorgung aufgefallen, dass Sie versehentlich die Computer-Stromversorgung (+5 V und Masse) übersprungen haben und ein oder zwei KR565RU5-Mikroschaltungen bereits „herausgeflogen“ sind.

In der Regel brennt der Speicherchip komplett durch. Diese. Es ist nicht so, dass ein Teil darin nicht funktioniert, sondern dass der gesamte Chip nicht mehr funktioniert. Der Speicher des Spectrum ist so organisiert, dass jeder RAM-Chip für sein eigenes Speicherbit verantwortlich ist (bei einem 48K-Spectrum sind dies 8 Chips, jeweils ein Bit, also insgesamt 64 KB adressierbarer Speicher). Wenn der Computer startet, führt das ROM seinen Speichertest durch, und wenn eine RAM-Zelle „ausfällt“, setzt der Computer die Grenze des verfügbaren Speichers auf die Adresse der Zelle vor der fehlerhaften Zelle. In diesem Fall wird der Wert der Grenze des verfügbaren Speichers in der Systemvariablen P_RAMT festgelegt (sie befindet sich an den Adressen 23732-23733 im RAM). In einem funktionierenden Computer ist der Wert dieser Systemvariablen gleich #FFFF (das d.h. die Zahlen 255 werden in beide Speicherzellen geschrieben.) Wenn in der Systemvariablen eine Zahl ungleich #FFFF steht, also zum Beispiel #F000 steht, bedeutet das, dass die Speicherzelle #F001 bereits defekt ist.

Das ist alles schön und gut, aber nur, wenn die erkannte defekte Speicherzelle nicht am Anfang des verfügbaren RAM liegt. Tatsache ist, dass BASIC-48, damit es funktioniert, auch eine Art verfügbaren Arbeitsspeicher benötigt. Und wenn am Anfang des RAM ein Speicherdefekt festgestellt wird, startet BASIC einfach nicht und wir können nichts herausfinden. Wenn einer der RAM-Chips vollständig durchbrennt, startet der Computer BASIC nicht.

Dann bleibt nur noch der „Tanz mit dem Tamburin“, um herauszufinden, was tatsächlich verbrannt ist. Bei Speicherchips können Sie eine einfache, aber manchmal nützliche Diagnose ausprobieren. Tatsache ist, dass ein defekter Speicherchip (KR565RU5) sich in der Temperatur von anderen funktionierenden Chips unterscheiden kann. Im Betrieb erwärmt sich der KR565RU5-RAM. Legt man den Finger auf die RAM-Chips, spürt man, dass die Chips spürbar warm werden. Ein defekter Mikroschaltkreis kann sich wie ein Bügeleisen erhitzen oder völlig kalt sein. Dies wird nicht unbedingt der Fall sein, aber diese Methode kann man sich merken und von Zeit zu Zeit anwenden.

Generell gelten bei der Produktion von Spectrums die guten Sitten, ROM- und Prozessorchips auf den Sockeln zu installieren. Dies erleichtert Ihnen die Reparatur Ihres Computers erheblich. In diesem Fall interessiert uns der ROM-Chip. In den „alten“ Spectrums, die Ende der 80er (Anfang der 90er) produziert wurden, waren in der Regel zwei ROM-Chips verbaut. Dies lag daran, dass es zu dieser Zeit nicht so einfach war, einen 16K-ROM-Chip (bürgerlicher Name 27128) zu bekommen, so dass es einfacher und billiger war, ihn durch zwei 8K-Chips zu ersetzen, zum Glück gab es ein inländisches Analogon KR573RF4, KR573RF6 . Und normalerweise wurde einer der Mikroschaltkreise (normalerweise ROM-0) auf dem Sockel platziert. Warum ROM-0? Weil Das ROM ist auf zwei Chips aufgebaut, sein Adressraum ist in zwei Teile geteilt. Die gesamte ROM-Kapazität beträgt 16 KB. Daher gelten die ersten 8 KB als ROM-0 und die zweiten 8 KB als ROM-1. Wenn der Computer startet, beginnt der Prozessor mit der Ausführung des Programms, das sich an der Adresse #0000 befindet, und dies ist genau der Bereich, der von ROM-0 adressiert wird.

Also ja, wir brauchen wirklich mindestens ein ROM auf dem Sockel. Wenn das Computerboard nur ein ROM auf dem Sockel hat, ist das auch sehr gut. Die Sache ist, dass das ROM entfernt und durch ein eigenes ROM ersetzt werden kann, in das der Speichertest „eingenäht“ ist. Wenn Sie dann den Computer einschalten, wird der von uns benötigte Speichertest gestartet, der deutlich zeigt, was mit dem Speicher im Computer passiert.

Vor sehr, sehr langer Zeit, als ich noch keinen ROM-Programmierer hatte, musste ich zum Radiomarkt gehen und dort haben harte Kerle für entsprechendes Bestechungsgeld alles ins ROM geflasht. Sie führten auch Gedächtnistests für Spectrums durch. Ja, es war damals eine schöne Zeit...

Nachdem Sie also den begehrten Flash-ROM-Chip gekauft haben, können Sie Ihren Computer testen. Zunächst musste jedoch die Frage geklärt werden: Wie wird das ROM richtig in den Sockel eingesetzt? Tatsache ist, dass der ROM-Test in einen 2K-Chip geflasht wird. Es hat 24 Pins. Das Spectrum verwendet 28-Pin-ROMs. In diesem Fall wurden die Pins 21 und 24 der Mikroschaltung mit dem Test angehoben und wie folgt kombiniert:

Eine solche Mikroschaltung wird wie auf dem Foto gezeigt in die Steckdose eingesetzt:

Ich denke, das Foto zeigt alles deutlich. Pin 12 des ROM (GND) muss mit Pin 14 im Sockel übereinstimmen. Und der hervorstehende Pin des Test-ROMs sollte in den 28. Pin der Buchse (+5V-Stromversorgung) fallen.

Anstatt das ROM zu verstümmeln, können Sie eine Adapterplatine herstellen. Oben haben wir einen 24-Pin-Sockel für das Test-ROM angebracht, unten ragen Stifte heraus, um die Platine in einen 28-Pin-Sockel im Computer einzubauen. Alle erforderlichen Änderungen zur Verbindung von 21 und 24 ROM-Pins können direkt auf dieser Platine vorgenommen werden:

In meiner Praxis verwende ich häufig folgende Test-Firmware:

Test-ROM für ZX-Spectrum 48K

Wie der Name schon sagt, werden 48 KB RAM überprüft. Es funktioniert sehr langsam (ca. 12 Minuten). Zuerst werden die Bildschirmattribute gelöscht, dann wird der Bildschirm einzeln übermalt und gelöscht, dann werden die RAM-Testergebnisse angezeigt. Danach erfolgt ein ROM-Test, der jedoch immer mit einem Fehler endet, was für uns aber keine Rolle spielt. Die Hauptsache ist, den RAM zu überprüfen.

AUFMERKSAMKEIT!
Dieser Test hat einen „Trick“: Wenn Sie beim Starten des Tests die Leertaste gedrückt halten, wird der grafische Teil mit der Schattierung der Attribute übersprungen und der RAM-Test beginnt direkt. Der Test für die gedrückte Leertaste wird in dem Moment durchgeführt, in dem die Auswahl der Rahmenfarben zu Beginn des Tests endet.

Das Bestehen des Tests, wenn einer der RAM-Chips fehlerhaft ist, ist in der ersten Ausgabe von Byte Tales #01 zu sehen:

BYT Tales #01 – Den Computer „Byte“ reparieren

Ein weiteres Test-ROM für ZX-Spectrum 48K

Ich bin mit dem 48K-Speichertest aus dem vorherigen Abschnitt der Seite nicht ganz zufrieden. Als ich Zeit und Lust hatte, habe ich diesen Test zerlegt und darauf basierend meine eigene Version „gekürzt“, in der ich es versucht habe meine „Wünsche“ verwirklichen.

Das Ergebnis war ein etwas fortgeschrittenerer Speichertest, bei dem ich mehrere Speichertestalgorithmen hinzugefügt, unnötigen Code aus dem Test entfernt habe (davon gibt es reichlich) und außerdem den Synthesizer des KR580VI53 im Gehäuse „störte“. Möglichkeit, den Test auf dem „Byte“-Rechner durchzuführen.

Sie können die Test-Firmware zusammen mit allen Quellen für iS-DOS (der Test ist in iS-Assembler geschrieben) am Ende dieser Seite herunterladen.

ROM-Test für ZX-Spectrum 48K (aus der Zeitschrift „Radio Amateur“ 1995 Nr. 9

In der Zeitschrift „Radio Amateur“ Nr. 9 aus dem Jahr 1995 wurde ein Dump eines ROM-Tests für das ZX-Spectrum 48 von G. Ulanovsky veröffentlicht.

Die Besonderheit des Tests besteht darin, dass er keinen Text auf dem Bildschirm anzeigt – alle Informationen über die Leistung des Arbeitsspeichers werden in Form von Linien am Rand angezeigt. Dies kann bei völliger Funktionsunfähigkeit des RAM nützlich sein, wenn bei der Anzeige von Text auf dem Bildschirm nichts sichtbar ist und die Linien am Rand deutlich sichtbar sind (die Ausgabe von Informationen am Rand hängt nicht von der Leistung ab und Verfügbarkeit von RAM im Allgemeinen).

Nach Abschluss des Tests werden am Rand 8 weiße Streifen angezeigt, die 8 Bit RAM symbolisieren. Der erste Balken von oben zeigt die Funktionsfähigkeit des D0-Bits, der zweite - D1, der dritte - D2 usw. Wenn das entsprechende RAM-Bit betriebsbereit ist, ist das Band schmal:

Im Falle eines fehlerhaften Bits ist die Bandbreite doppelt so groß:

Der Nachteil des Tests besteht darin, dass er nur die ersten 16 KB RAM überprüft (bei den Adressen #4000–#7FFF). Dies kann jedoch leicht durch einen Wechsel der Testquelle behoben werden.

Der Test erfolgt in 4 Stufen (Füllen und Prüfen auf Bytes #00, #FF, #55 und #AA). Bei Bedarf können Sie dem Quelltext weitere Optionen zur RAM-Prüfung hinzufügen.

Als Beispiel habe ich den Test geändert, um die gesamte Menge an 48 KB RAM zu überprüfen, und außerdem das Verfahren zum Blockieren von KR580VI53 für den Byte-Computer in die Quelle eingefügt. Firmware für zwei Testoptionen und Quellen können am Ende dieses Artikels heruntergeladen werden.

Test-ROM für ZX-Spectrum 128K

Mit diesem Test können Sie den Speicher im 128. ZX-Spectrum schnell überprüfen.

Wie der Test auf einem funktionierenden Computer abläuft, können Sie im folgenden Video sehen:

Hier sollte ein Video vorhanden sein, aber es funktioniert nur, wenn Sie JavaScript für diese Website aktivieren.

Nach der Meldung über einen erfolgreichen ROM-Test kommt es zu einer Schleife, die Sie ignorieren können.

Beim Arbeiten an manche Auf Computern mit angeschlossenem Laufwerkscontroller kann es beim Bestehen des Tests zu Störungen kommen. Tatsache ist, dass beim Anschluss des Antriebsreglers eine Änderung vorgenommen wird, die die Auswahl beliebiger Ports im laufenden Betrieb des Reglers verbietet. Was wird beispielsweise empfohlen, wenn Sie den C-48-Controller an das ZX-Spectrum anschließen:

Der Leiter, der vom /IORQ-Ausgang des Prozessors zur Computerschaltung führt, ist unterbrochen, und ein logisches Element, das das /IORQ-Signal schaltet, ist mit der Unterbrechung verbunden.

Dies geschieht, um mögliche Computerports zu deaktivieren, die mit den Laufwerkscontroller-Ports in Konflikt stehen. Zunächst einmal ist dies der Kempston-Port des Joysticks. Allerdings wird niemand nach einem bestimmten Computermodell suchen, um zu sehen, was mit dem Laufwerkscontroller in Konflikt geraten könnte. Deshalb ist es einfacher, den Zugriff auf Ports ganz zu deaktivieren, während der Laufwerkscontroller in Betrieb ist.

Zweiter Punkt: wieder drin manche Auf so modifizierten Computern wird TR-DOS beim Zurücksetzen sofort gestartet. Dies geschieht, damit Sie nicht jedes Mal unter BASIC den Befehl RANDOMIZE USR 15616 „eintippen“ müssen, um TR-DOS zu starten.

Dritter Punkt: wieder drin manche Auf Computern ist ROM mit BASIC mit ROM TR-DOS in einem Chip kombiniert. Zum Beispiel wie in diesem Computer Leningrad-1:

Programmierer- ein Hardware- und Softwaregerät, das zum Schreiben/Lesen von Informationen in ein permanentes Speichergerät (einmaliges Schreiben, Flash-Speicher, ROM, interner Speicher von Mikrocontrollern und SPS) konzipiert ist.

Programmierer- Dies ist ein Gerät, das die für den Betrieb notwendigen Informationen in programmierbare nichtflüchtige digitale Chips eingibt, wie z ABSCHLUSSBALL (Rom), EPROM (PROM), EEPROM (EEPROM), Blitz, KUMPEL, GAL, FPGA Und Mikrocontroller. Der Aufnahmevorgang wird oft als „ “, „ “, „ “, „ “ bezeichnet.

Flash-ROM, Flash-ROM

„Flash-ROM“- Informationen ins ROM schreiben.

Damals, als Computer noch groß waren, von Mitte der 1950er bis Mitte der 1970er Jahre, verwendeten Computer Magnetkernspeicher. Dieser Speicher wurde sowohl als RAM als auch als ROM verwendet. Bei der Herstellung des ROM wurde der Draht entweder durch den Ring geführt oder umgangen. Der Draht wurde mit einer speziellen Nadel durch einen Ferritring geführt. Also „genäht“ Speichermatrix im wahrsten Sinne des Wortes. Daher wurde diesem Prozess ganz natürlich die Definition zugewiesen „Flash-ROM“. Um es richtig zu machen "Blitz", erstellte ein technologisches Dokument „Firmware-Karte“ Dies gab an, durch welche Ringe der Draht geführt werden sollte und durch welche nicht. Speicher auf Ferritkernen gehört jedoch der Vergangenheit an, so der Begriff "Blitz" Und „Firmware“ in Bezug auf den Prozess des Schreibens in ROM wird auch heute noch verwendet. Darüber hinaus das Wort „Firmware“ wird sowohl als Verb im Zusammenhang mit der Eingabe von Informationen in das ROM als auch als Substantiv im Zusammenhang mit der eingegebenen Information oder Datei selbst verwendet.

Im Gegensatz zu Halbleitern haben Magnetkerne keine Angst vor Strahlung und elektromagnetischer Strahlung, weshalb Magnetkernspeicher noch einige Zeit in Militär- und Raumfahrtsystemen eingesetzt wurden. Es ist sicher bekannt, dass es bis 1991 in den Shuttle-Bordcomputern eingesetzt wurde. Möglicherweise wird ein solcher Speicher noch in einigen älteren Systemen verwendet. Derzeit wurden bereits spezialeffektresistente Halbleiterspeicher entwickelt, und die Ära der Magnetkerne ist vorbei, aber der Begriff „Firmware“ blieb.

ROM brennen

„ROM brennen“- Eingabe von Informationen.

Speicher auf Ferritkernen wurden durch Halbleiter-RAM-Speicher ersetzt, und Mikroschaltungen mit Matrizen aus Metall, oft Nichrom, im Inneren wurden als ROM verwendet. Um Informationen in solche Mikroschaltungen einzugeben, müssen überschüssige Jumper mit einem Stromimpuls verbrannt werden. Anschließend wurden Jumper nicht nur aus Metall, sondern auch aus Halbleitern in Form verwendet p-nÜbergang oder Polysilizium, sondern das Prinzip der physischen Zerstörung des Jumpers oder des Zusammenbruchs des Übergangs durch
Die Wirkung des Stromimpulses blieb erhalten. Solche ROMs werden auch heute noch in Systemen des Militärs und der Luft- und Raumfahrt eingesetzt. Alle ChipStar-Programmierer für spezielle Mikroschaltungen sind "durchbrennen" solche ROMs.

Aufnahme, ROM laden

In häuslichen und industriellen Anwendungen, wo die Anforderungen an die Widerstandsfähigkeit gegenüber externen Faktoren geringer und die Anforderungen an Kosten und Speicherkapazität höher sind, wurden Chips mit abgesicherten Jumpern durch elektrisch programmierbare EPROM-Chips und elektrisch umprogrammierbare EEPROM-ROM-Chips und mehr ersetzt vor kurzem durch Chips mit basierend auf FLASH. Mit dem Technologiewandel änderte sich auch die Terminologie: Man begann häufiger darüber zu sprechen ROM „schreibt“, oder "Wird geladen", und der Begriff wird häufiger in Bezug auf das interne ROM von Mikrocontrollern verwendet, und „Schreiben“ wird häufiger in Bezug auf eigenständige Speicherchips verwendet.

Programmier-ROM oder Mikrocontroller

„Programmieren von ROM oder Mikrocontroller“- Eingabe von Informationen in ROM oder Mikrocontroller.

Begriff "Programmierung" wird auch sehr oft auf den Prozess des Schreibens ins ROM angewendet. Und wenn es in Bezug auf ROM immer eindeutig wahrgenommen wird, dann entsteht in Bezug auf Mikrocontroller Mehrdeutigkeit: „Programmieren Sie den Mikrocontroller“ Dies kann entweder das Schreiben eines vorgefertigten Programmcodes (Image) in das ROM des Mikrocontrollers mithilfe eines Hardwaregeräts (Programmierer, Download-Kabel) oder den Prozess der Entwicklung des Programms selbst bedeuten.

P.S. P.S

Sie werden sagen, dass es bei all dieser Terminologie so leicht zu Verwirrung kommt, und Sie werden völlig Recht haben. Aber im englischsprachigen Umfeld ist nicht alles besser! Sie sind nicht nur alle gleich „brennt“ ("brennen"), „Downloads“("herunterladen"), "aufzeichnen"(„schreiben“), so sind auch die Bedingungen "Programmierer"- die Person, die das Programm entwickelt und "Programmierer"- Das Gerät, das dieses Programm in die Mikroschaltung schreibt, wird mit einem Wort bezeichnet: "Programmierer".

Mikroprogramm-Maschinen stellen den nächsten Schritt zur Verbesserung der Intelligenz digitaler Schaltkreise dar. Basierend auf mikroprogrammierten Automaten ist es möglich, Geräte zu bauen, die nach recht komplexen Algorithmen arbeiten, verschiedene durch Eingangssignale bestimmte Funktionen ausführen und komplexe Folgen von Ausgangssignalen erzeugen. In diesem Fall der Betriebsalgorithmus Mikroprogramm-Maschine kann einfach durch Austausch der ROM-Firmware geändert werden.

Im Gegensatz zu den bisher betrachteten „harten“ Logikgeräten, deren Funktionsprinzip eindeutig durch die verwendeten Elemente und die Art ihrer Verbindung bestimmt wird, Mikroprogramm-Maschinen Durch die Verwendung derselben Schaltung können verschiedene Funktionen ausgeführt werden. Das heißt, sie sind viel flexibler als Schaltkreise, die auf „harter“ Logik basieren. Darüber hinaus Design Mikroprogramm-Maschinen Aus schaltungstechnischer Sicht ist es recht einfach. Der Nachteil von jedem Mikroprogramm-Maschine Im Vergleich zu Schaltungen, die auf „harter“ Logik basieren, ist die maximale Leistung geringer und die Notwendigkeit, eine ROM-Firmware-Karte zu kompilieren, ist erforderlich Mikroprogramme, oft recht komplex.

Häufigste Struktur Mikroprogramm-Maschine(Abb. 11.15) enthält nur drei Elemente: ROM, ein flankengesteuertes Register und Taktgenerator.


Reis. 11.15.

Das ROM verfügt über (L+M) Adressbits und N Datenbits. Das Register wird mit einer Anzahl von Stellen (N + L) angelegt. Bei einer positiven Flanke werden ROM-Datenbits in das Register geschrieben Taktsignal vom Generator. Ein Teil dieser Bits (M) wird zur Bildung der ROM-Adresse verwendet, der andere Teil (N-M) wird zur Erzeugung von Ausgangssignalen verwendet. Eingangssignale (L) werden den Registereingängen zugeführt und in Verbindung mit einem Teil der ROM-Ausgangsbits verwendet, um die ROM-Adresse zu erhalten.

Das Schema funktioniert wie folgt. Bei jedem Taktzyklus erzeugt das ROM einen Datencode und bestimmt dadurch nicht nur den Zustand der Ausgangssignale der Schaltung, sondern auch die ROM-Adresse, die im nächsten Taktzyklus (nach der nächsten positiven Flanke) eingestellt wird Taktsignal). Diese nächste Adresse wird auch von Eingangssignalen beeinflusst. Das heißt, im Gegensatz zum im vorherigen Abschnitt besprochenen Signalsequenzer können die Adressen in diesem Fall nicht nur sequentiell (mithilfe eines Zählers), sondern auch in einer willkürlichen Reihenfolge sortiert werden, die durch die ROM-Firmware, sogenannte Firmware, bestimmt wird.

Die Voraussetzung für den korrekten Betrieb der Schaltung ist folgende. Für einen Zeitraum Taktsignal Das Register und das ROM müssen Zeit zum Betrieb haben. Mit anderen Worten, die Summe aus der Registerverzögerung und der Verzögerung beim Abrufen der ROM-Adresse sollte den Zeitraum nicht überschreiten Taktsignal. Beachten Sie auch, dass die Eingangssignale Mikroprogramm-Maschine können nicht direkt (ohne Register) an die Adresseingänge des ROM angelegt werden, da ihre (bezogen auf das Taktsignal) asynchrone Änderung genau in dem Moment, in dem die ROM-Ausgangssignale geschrieben werden, zu einem transienten Vorgang an den ROM-Datenausgängen führen kann zum Register. Infolgedessen werden möglicherweise falsche Informationen in das Register geschrieben, was den Betrieb der gesamten Schaltung stört. Das Register synchronisiert Änderungen der Eingangssignale mit dem Taktsignal, wodurch sich alle Bits des ROM-Adresscodes gleichzeitig ändern – entlang der positiven Flanke Taktsignal. Das Register muss flankengetriggert sein; die Verwendung eines Latch-Registers ist nicht zulässig, da es zu einem lawinenartigen Einschwingvorgang kommen kann.

Die Möglichkeiten eines so einfachen Schemas erweisen sich als sehr groß. Zum Beispiel, Mikroprogramm-Maschine kann als Reaktion auf eine bestimmte Änderung der Eingangssignale Sequenzen von Ausgangssignalen erzeugen. Außerdem können Ausgangssignale vorübergehend gestoppt werden, bis Eingangssignale eintreffen. Es kann die Dauer des Eingangssignals analysieren und abhängig davon bestimmte Ausgangssignale erzeugen. Es kann auch viele andere Dinge tun.

Formulieren wir mehrere Elementarfunktionen, aus denen sich die Betriebsalgorithmen eines Mikroprogrammautomaten zusammensetzen lassen (Abb. 11.16):


Reis. 11.16.
  1. Sequentielle Suche ROM-Adressen (z. B. um eine Folge von Ausgangssignalen auszugeben).
  2. Periodisches Wiederholen einer Folge von ROM-Adressen (z. B. um eine Folge von Ausgangssignalen zu wiederholen).
  3. Stoppen an einer ROM-Adresse (z. B. um auf die Änderung eines Eingangssignals zu warten).
  4. Vorübergehendes Deaktivieren der Reaktion auf Eingangssignale (z. B. um die Reaktion auf eine vorherige Änderung der Eingangssignale fertig auszuarbeiten). Diese Funktion ist in der Abbildung nicht dargestellt.

Betrachten Sie als Beispiel die Ausführung einiger elementarer Funktionen Mikroprogramm-Maschine, dargestellt in Abb. 11.17.


Reis. 11.17.

Das ROM hat eine 64x8-Organisation (es können zwei PE3-Chips oder ein RT18-Chip sein), die Anzahl der Registerbits beträgt zehn (es können zwei IR27-Chips sein). Die Schaltung verfügt über zwei Eingangssignale und vier Ausgangssignale. So eine Organisation Mikroprogramm-Maschine Das Gute daran ist, dass das Mikroprogramm (also die ROM-Firmware-Karte) sehr klar, einfach zu erstellen und zu lesen ist.

Tabelle 11.7. ROM-Firmware-Karte 64x8 für Mikroprogramm-Maschine
Adresse 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

Die Ausgangsbits der ROM-Daten werden in zwei Gruppen zu je 4 Signalen unterteilt: Die niedrigen Bits bilden die nächste ROM-Adresse, die hohen Bits bilden vier Ausgangssignale. Eingangssignale gelangen (über ein Register) zu den beiden höchstwertigen Bits der ROM-Adresse. Wenn wir die ROM-Firmware-Karte in der üblichen Form einer Tabelle mit vier Zeilen und 16 Spalten darstellen (Tabelle 11.7), dann zeigt diese Tabelle deutlich sowohl den Status jedes der internen Signale als auch die Reaktion der Schaltung auf jeden Eingang Signal sowie die Zustände aller Ausgangssignale in jedem Taktzyklus.

Zunächst ist leicht zu erkennen, dass die Auswahl der einen oder anderen Tabellenzeile durch die höchstwertigen Bits des ROM-Adresscodes, also durch die Eingangssignale, erfolgt Mikroprogramm-Maschine. Somit führt jede Änderung der Eingangssignale zu einem Übergang zu einer anderen Zeile in der Firmware-Karte. Beispielsweise entspricht Zeile 00 Null-Eingangssignalen Mikroprogramm-Maschine und Zeile 30 – einzelne Eingangssignale.

Tabelle 11.8. Beispiel einer Firmware für die Schaltung in Abb. 11.17
Adresse 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 A.A. 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. Gleichstrom ED
mob_info