PREVIEW
ROM

ROM

Advanced signal_cellular_alt Advanced schedule 30 min

Interactive Circuit

ROM (Read-Only Memory)

Übersicht

  • Zweck: ROM (Read-Only Memory, Festwertspeicher) ist eine digitale Speicherkomponente, die vorprogrammierte Daten enthält, die im normalen Betrieb nicht verändert werden können. Es dient als nichtflüchtiger Speicher, der seinen Inhalt auch ohne Stromversorgung beibehält.
  • Symbol: Das ROM wird durch einen rechteckigen Block mit Adresseingängen, Steuereingängen (Chip Select, Output Enable) und Datenausgängen dargestellt.
  • DigiSim.io-Rolle: Bietet permanenten Speicher für Programme, Lookup-Tabellen und Referenzdaten in digitalen Schaltungen und ist für Systeme unverzichtbar, die feste Daten oder Befehle benötigen.

ROM-Komponente

Funktionsbeschreibung

Logikverhalten

Das ROM bietet Nur-Lese-Zugriff auf vorab gespeicherte Daten. Wenn eine Adresse an die Adresseingänge angelegt wird, gibt das ROM die an dieser Stelle gespeicherten Daten aus, sofern der Chip über seine Steuereingänge aktiviert ist.

Wahrheitstabelle:

CS (Pin) OE (Pin) Adresse (A) Datenausgang Operation
0 (LOW) 0 (LOW) Beliebig Daten an Adresse Lesen (aktiv)
0 (LOW) 1 (HIGH) Beliebig Hi-Z (aus) Ausgang gesperrt
1 (HIGH) X Beliebig Hi-Z (aus) Chip gesperrt

Hinweis: CS = Chip Select (aktiv-LOW), OE = Output Enable (aktiv-LOW), X = don't care, Hi-Z = hochohmig. Sowohl CS als auch OE müssen LOW (0) sein, damit der Datenausgang aktiv ist.

Eingänge und Ausgänge

  • Eingänge:

    • Address[7:0]: 8-Bit-Adresseingang, der eine von 256 Speicherstellen auswählt (A0-A7).
    • CS (Chip Select): 1-Bit-Steuereingang, der den gesamten Chip aktiviert oder deaktiviert (aktiv-LOW).
    • OE (Output Enable): 1-Bit-Steuereingang, der die Datenausgänge aktiviert oder deaktiviert (aktiv-LOW).
  • Ausgänge:

    • Data[7:0]: 8-Bit-Datenausgang, der den Inhalt der ausgewählten Adresse darstellt.

Konfigurierbare Parameter

  • Speichergröße: Die Gesamtspeicherkapazität (z. B. 256 Byte, 1 KB usw.), bestimmt durch die Adressbreite.
  • Datenbreite: Die Anzahl der Bits pro Speicherstelle (typischerweise 8, kann aber 4, 16, 32 usw. sein).
  • Inhalt: Die im ROM gespeicherten vorprogrammierten Daten, die bei der Konfiguration geladen werden.
  • Zugriffszeit: Die Verzögerung zwischen dem Anlegen einer Adresse und dem Erscheinen gültiger Daten an den Ausgängen.

Visuelle Darstellung in DigiSim.io

Das ROM wird als rechteckiger Block mit beschrifteten Eingängen auf der linken Seite (A0-A7 für die Adresse, CS für Chip Select, OE für Output Enable) und Datenausgängen (D0-D7) auf der rechten Seite dargestellt. Die Komponente visualisiert ihren aktiven Zustand durch die an den Ausgängen angezeigten Werte und durch Farbänderungen auf den verbundenen Leitungen. Benutzer können den ROM-Inhalt über einen dedizierten Dialog anzeigen und bearbeiten.

Pädagogischer Wert

Schlüsselkonzepte

  • Nichtflüchtiger Speicher: Zeigt, wie digitale Systeme dauerhafte Daten speichern.
  • Speicheradressierung: Veranschaulicht, wie auf bestimmte Daten über Binäradressen zugegriffen wird.
  • Speicherhierarchie: Vermittelt das Konzept verschiedener Speichertypen in Computersystemen.
  • Steuersignale: Zeigt, wie Chip-Select- und Output-Enable-Signale den Gerätebetrieb steuern.
  • Speicherorganisation: Stellt die grundlegende Organisation wortadressierten Speichers vor.

Lernziele

  • Die Rolle dauerhafter Speicher in digitalen Systemen verstehen.
  • Lernen, wie Adressierungsschemata den Zugriff auf bestimmte Speicherstellen ermöglichen.
  • Die Unterschiede zwischen verschiedenen Speichertypen (ROM vs. RAM) erkennen.
  • ROM in Designs einsetzen, die konstante Daten wie Lookup-Tabellen oder Programmspeicher benötigen.
  • Die Beziehung zwischen Adressraum, Datenbreite und Speicherkapazität verstehen.

Anwendungsbeispiele/Szenarien

  • Programmspeicherung: Speichern von Firmware oder Bootloader-Code in Computersystemen.
  • Zeichenerzeugung: Speichern von Schriftartdaten für Anzeigesysteme.
  • Lookup-Tabellen: Implementierung mathematischer Funktionen über vorab berechnete Werte.
  • Zustandsautomaten: Codierung komplexer Zustandsübergänge in Steuerungssystemen.
  • Mikrocode-Speicherung: Speichern von Befehlsdecodier-Informationen in CPUs.
  • Konstante Daten: Bereitstellung von Referenzwerten zur Kalibrierung oder Konfiguration.

Technische Hinweise

  • Zu den ROM-Implementierungen zählen Mask-ROM (werksprogrammiert), PROM (einmal programmierbar), EPROM (UV-löschbar), EEPROM und Flash (elektrisch löschbar).
  • Die Zugriffszeit ist ein wichtiger Parameter, der die Systemleistung beeinflusst und je nach Technologie typischerweise 45–200 ns beträgt.
  • Moderne Systeme realisieren ROM-Funktionalität oft durch Flash-Speicher oder durch Laden von Daten aus dem Speicher in das RAM während der Initialisierung.
  • In DigiSim.io wird die Zugriffszeit des ROM simuliert, um realistisches Timing-Verhalten zu bieten.
  • ROM ist besonders wichtig in Boot-Prozessen, in denen ein System anfängliche Befehle benötigt, bevor es von anderen Speichern lädt.
  • Steuersignale: Sowohl CS (Chip Select) als auch OE (Output Enable) sind als aktiv-LOW-Signale implementiert:
    • CS (Chip Select): Bei CS = 0 (LOW) ist der Chip ausgewählt und aktiv. Bei CS = 1 (HIGH) ist der Chip deaktiviert und die Ausgänge sind hochohmig.
    • OE (Output Enable): Bei OE = 0 (LOW) sind die Ausgangspuffer aktiviert. Bei OE = 1 (HIGH) sind die Ausgänge hochohmig (Tri-State).
    • Kombinierte Logik: Daten werden NUR ausgegeben, wenn BEIDE CS = 0 (LOW) UND OE = 0 (LOW) sind. Ist eines der beiden Signale HIGH, sind die Ausgänge hochohmig.
    • Dies entspricht den standardmäßigen digitalen Logikkonventionen für Speicherkomponenten und ermöglicht es, dass mehrere ROM-Bausteine sich einen gemeinsamen Datenbus teilen.

Eigenschaften

  • Eingangskonfiguration:

    • Adresseingänge (typischerweise 8 bis 20 Leitungen für ROM-Größen von 256 Byte bis 1 MB)
    • Chip-Select-Eingang (CS) zum Aktivieren/Deaktivieren des Bausteins
    • Output-Enable-Eingang (OE) zur Steuerung der Ausgangspuffer
    • Alle Eingänge kompatibel mit standardmäßigen digitalen Logikpegeln
    • Adressleitungen bestimmen, welche Speicherstelle gelesen wird
    • Steuereingänge regeln das Timing des Bausteinbetriebs
  • Ausgangskonfiguration:

    • Datenausgänge (typischerweise 8 Bit breit, können aber 4, 16 oder 32 Bit betragen)
    • Tri-State-Ausgänge, die in den hochohmigen Zustand versetzt werden können
    • Ausgänge liefern die an der ausgewählten Adresse gespeicherten Daten
    • Können standardmäßige digitale Lasten treiben
    • Üblicherweise gepuffert für höhere Stromtreiberfähigkeit
  • Funktionalität:

    • Speichert festen Programmcode oder konstante Daten
    • Nichtflüchtig (behält Daten bei abgeschalteter Stromzufuhr)
    • Im normalen Betrieb nur lesbar
    • Die Zugriffszeit bestimmt, wie schnell Daten nach einer Adressänderung verfügbar sind
    • Decodiert die Adresse, um eine von 2^n Speicherstellen auszuwählen
    • Liefert den vorprogrammierten Wert von der ausgewählten Stelle
    • Kann im normalen Betrieb nicht beschrieben werden
  • Signallaufzeit:

    • Adresszugriffszeit: typisch 45–200 ns
    • Chip-Select-Zugriffszeit: typisch 45–200 ns
    • Output-Enable-Zugriffszeit: typisch 20–100 ns
    • Technologieabhängig (Mask-ROM, PROM, EPROM usw.)
    • Kritischer Parameter für das Systemtiming
    • Kann mit Temperatur und Spannung variieren
  • Fan-Out:

    • Treibt typischerweise 10–20 Standardlasten
    • Ausgangspuffer für Bus-Schnittstellen ausgelegt
    • Kann konfigurierbare Ausgangstreiberstärke enthalten
    • Üblicherweise zum Treiben standardmäßiger Buslasten ausgelegt
  • Leistungsaufnahme:

    • Statische Leistung niedrig bis mittel je nach Technologie
    • Aktive Leistung steigt mit der Zugriffsfrequenz
    • Standby-Leistung, wenn der Chip deselektiert ist
    • Energiemanagement-Modi in modernen Bausteinen
    • Deutlich geringerer Stromverbrauch als äquivalentes RAM
    • Kann Power-down-Modi zur Akkuschonung bieten
  • Schaltungskomplexität:

    • Hohe interne Komplexität (Adressdecoder, Speicher-Array, Ausgangspuffer)
    • Einfache externe Schnittstelle (Adresseingänge, Steuereingänge, Datenausgänge)
    • Variiert mit Kapazität und Technologie
    • Zusätzliche Komplexität bei programmierbaren Varianten (EPROM, EEPROM)
    • Moderne Bausteine können erweiterte Funktionen (Fehlerkorrektur usw.) enthalten

Implementierungsmethoden

  1. Mask-ROM

    • Inhalt während der Fertigung durch eine Maskenschicht programmiert
    • Höchste Dichte und niedrigste Kosten bei Großserienproduktion
    • Nach der Fertigung nicht modifizierbar
    • Lange Vorlaufzeit für kundenspezifische Muster
    • Am effizientesten für die Massenproduktion
    • Typisch für hochvolumige feste Anwendungen
  2. Programmierbares ROM (PROM)

    • Einmal programmierbar mittels Fuse- oder Antifuse-Technologie
    • Benutzer kann einmal programmieren, aber nicht löschen
    • Schnellere Verfügbarkeit als Mask-ROM
    • Geeignet für mittlere Produktionsmengen
    • Programmierung mit speziellem PROM-Programmiergerät
    • Üblich in Legacy-Systemen und Produktionsumgebungen
  3. Löschbares programmierbares ROM (EPROM)

    • Mit ultraviolettem Licht löschbar und neu programmierbar
    • Erkennbar am Quarzfenster auf dem Gehäuse
    • Mehrere Programmierzyklen möglich
    • Lange Löschzeiten (typischerweise 20–30 Minuten)
    • Ideal für Entwicklung und kleine Produktionsserien
    • Beliebt für eingebettete Systeme und Mikrocontroller-Anwendungen
  4. Elektrisch löschbares PROM (EEPROM)

    • Elektrisch löschbar und neu programmierbar
    • Byte-genaues Löschen und Programmieren
    • Begrenzte Programmierzyklen (typischerweise 100.000+)
    • Langsamere Schreibzeiten als RAM
    • Nichtflüchtige Speicherung mit elektrischer Wiederbeschreibbarkeit
    • Üblich für Konfigurationsspeicher und kleine Datensätze
  5. Flash-ROM

    • Hochdichtes elektrisch löschbares ROM
    • Blockweises Löschen (statt byteweise)
    • Höhere Kapazität als herkömmliches EEPROM
    • Schnellere Lösch- und Schreibzeiten als EEPROM
    • Begrenzte Programmierzyklen (100.000 bis 1.000.000)
    • Dominiert moderne eingebettete und Speicheranwendungen
  6. FPGA/ASIC-Implementierung

    • Realisiert als Lookup-Tabellen oder dedizierte ROM-Blöcke
    • Konfigurierbar zum Designzeitpunkt oder bei der Initialisierung
    • Optimiert für spezifische Anwendungsanforderungen
    • Ressourceneffizient in moderner programmierbarer Logik
    • Kann mit Verarbeitungslogik kombiniert werden
    • Ermöglicht Aktualisierungen im Feld bei reprogrammierbarer Logik
  7. Emuliertes ROM

    • ROM-Funktionalität mit RAM und Initialisierungslogik realisiert
    • Inhalt beim Start aus externem Speicher geladen
    • Ermöglicht einfache Aktualisierungen bei gleichzeitiger ROM-ähnlicher Schnittstelle
    • Üblich in mikroprozessorbasierten Systemen
    • Verbindet die Flexibilität der Neuprogrammierung mit der Geschwindigkeit des RAM-Zugriffs
    • Shadow-ROM-Techniken für das System-Bootstrapping

Anwendungen

  1. Bootloader-Speicherung

    • BIOS/UEFI-Speicherung in Computern
    • Mikrocontroller-Startup-Code
    • Initialer Programmlader
    • Systeminitialisierungsroutinen
    • Selbsttestverfahren
    • Speicherung der Bootstrap-Sequenz
  2. Firmware-Speicherung

    • Betriebssystemkerne
    • Gerätetreiber
    • Speicherung von Steuerprogrammen
    • Software für eingebettete Systeme
    • Implementierung fester Algorithmen
    • Systemsteuerungsroutinen
  3. Lookup-Tabellen

    • Werte trigonometrischer Funktionen
    • Zeichensätze und Schriftarten
    • Farbpaletten
    • Umrechnungstabellen
    • Algorithmus-Koeffizienten
    • Funktionsapproximationen
  4. Mikrocode-Speicherung

    • CPU-Befehlsdecodierung
    • Interpretation komplexer Befehle
    • Signalverarbeitungsalgorithmen
    • Steuerung mit fester Sequenz
    • Befehlsexpansion
    • Codierung von Zustandsautomaten
  5. Zeichengeneratoren

    • ASCII-/Unicode-Zeichenmuster
    • Anzeigeschriftarten
    • Benutzerdefinierte Symbolsätze
    • Speicherung grafischer Elemente
    • Symbolbibliotheken
    • Erzeugung von Anzeigemustern
  6. Speicherung konstanter Daten

    • Konfigurationsparameter
    • Kalibrierungskonstanten
    • Feste Referenzdaten
    • Sicherheitsschlüssel und Kennungen
    • Seriennummern und IDs
    • Lizenzinformationen
  7. Digitale Signalverarbeitung

    • Filterkoeffizienten
    • Konstanten der schnellen Fourier-Transformation
    • Audiowellenformen
    • Signalmustererkennung
    • Implementierung digitaler Filter
    • Algorithmische Konstanten

Einschränkungen

  1. Inflexibilität

    • Inhalt im normalen Betrieb nicht modifizierbar
    • Aktualisierungen erfordern Austausch oder spezielle Programmierverfahren
    • Nicht für variable Datenspeicherung geeignet
    • Bei Inhaltsänderungen ist ein Systemredesign erforderlich
    • Unflexibel bei sich entwickelnden Anforderungen
    • Versionsverwaltung herausfordernd bei mehreren ROM-Varianten
  2. Zugriffszeitbeschränkungen

    • Langsamer als RAM in den meisten Technologien
    • Zugriffszeit begrenzt die Systemleistung
    • Kann Wartezustände für schnelle Prozessoren erfordern
    • Caching ist häufig in Hochleistungssystemen erforderlich
    • Timing-Beschränkungen für Hochgeschwindigkeitssysteme
    • Kompromisse zwischen Geschwindigkeit und Leistungsaufnahme im Design
  3. Programmierkomplexität

    • Spezielle Geräte für die Programmierung erforderlich
    • Komplexe Verfahren für löschbare Varianten
    • Begrenzte Programmierzyklen für EEPROM/Flash
    • Anforderungen an die Programmierverifikation
    • Verwaltung des Schreibschutzes
    • Spezialisierte Programmierprotokolle
  4. Physische Einschränkungen

    • Begrenzte Dichte im Vergleich zu modernem Massenspeicher
    • Größen- und Leistungsbeschränkungen
    • Temperaturempfindlichkeit
    • Bedenken hinsichtlich der Datenerhaltung über die Zeit
    • Gehäusebeschränkungen
    • Veralterung älterer Technologien
  5. Kostenfaktoren

    • Höhere Kosten pro Bit als bei Massenspeicher
    • Skaleneffekte für Mask-ROM erforderlich
    • Entwicklungskosten für kundenspezifische Inhalte
    • Test- und Verifikationskosten
    • Investitionen in Programmiergeräte
    • Bestandsverwaltung vorprogrammierter Bausteine

Schaltungsdetails

Grundlegende ROM-Array-Struktur

Organisation der Speicherzellen-Matrix:

graph TB
    AddressInputs[Address Inputs<br/>A0, A1, ...] --> RowDecoder[Row Decoder]
    RowDecoder --> MemoryArray[Memory Cell Array<br/>Programmed Cells]
    MemoryArray --> ColumnDecoders[Column Decoders<br/>& Output Buffers]
    ColumnDecoders --> DataOutputs[Data Outputs<br/>D0, D1, D2, D3, ...]

Strukturkomponenten:

  • Zeilendecoder: Wählt eine Zeile von Speicherzellen basierend auf den Adresseingängen aus
  • Speicherzellen-Array: 2D-Matrix programmierbarer Zellen (● = 1, ○ = 0)
  • Spaltendecoder: Leiten die Daten der ausgewählten Zeile zu den Ausgangspuffern
  • Ausgangspuffer: Verstärken und treiben die Datenausgänge

Funktionsweise: Adresse wählt Zeile → Zellzustände werden gelesen → Daten erscheinen an den Ausgängen

Beispiel: 28C16 EEPROM-IC

Pinbelegung (2 KB EEPROM):

Pin-Gruppe Pins Funktion
Adresse A0-A10 11-Bit-Adresse (2048 Speicherstellen)
Daten D0-D7 8-Bit-Datenbus (bidirektional)
Steuerung /CE Chip Enable (aktiv-LOW)
Steuerung /OE Output Enable (aktiv-LOW)
Steuerung /WE Write Enable (aktiv-LOW)
Versorgung VCC, GND +5V und Masse

Merkmale:

  • Kapazität: 2K × 8 Bit (2048 Byte)
  • Zugriffszeit: typisch 150–250 ns
  • Schreibzyklen: 100.000+ Lösch-/Schreibzyklen
  • Datenerhaltung: 10+ Jahre
  • Programmierung: Byteweise elektrische Programmierung

Verwandte Komponenten

  • RAM (Random Access Memory): Erlaubt Lese- und Schreiboperationen mit vergleichbarer Geschwindigkeit
  • PROM (Programmable ROM): Einmal programmierbares ROM
  • EPROM (Erasable PROM): ROM, das mit UV-Licht gelöscht und neu programmiert werden kann
  • EEPROM (Electrically Erasable PROM): ROM, das elektrisch gelöscht und neu programmiert werden kann
  • Flash-Speicher: Hochdichtes EEPROM mit Blocklöschung
  • NVRAM (Non-Volatile RAM): RAM, das Daten bei Stromverlust beibehält
  • FRAM (Ferroelectric RAM): Nichtflüchtiger Speicher mit ferroelektrischer Speicherung
  • Mask-ROM: Während der Fertigung programmiertes ROM
  • Inhaltsadressierbarer Speicher: Speicher, der die Eingabe mit gespeichertem Inhalt vergleicht
  • Speichercontroller: Verwaltet den Zugriff auf ROM und andere Speicherkomponenten

school Lernpfad

arrow_back Voraussetzungen

arrow_forward Nächste Schritte

help_outline Häufig gestellte Fragen

Was ist ROM?

ROM ist nichtflüchtiger Speicher, der Daten ohne Stromversorgung beibehält. Sein Inhalt ist fest (einmalig programmiert) und wird für permanente Programme, Lookup-Tabellen und Boot-Code verwendet.

Wie unterscheidet sich ROM von RAM?

ROM: Nur-Lese, nichtflüchtig, permanenter Inhalt. RAM: Lese-Schreib, flüchtig, veränderbarer Inhalt. ROM ist für Firmware, RAM für Arbeitsspeicher.

play_arrow Live-Schaltung ausführen

Weitere Komponenten ansehen