Das Problem:
Ihr eingebettetes System verfügt über einen 8-Bit-Mikroprozessor, der über einen 16-Bit-Adressbus verfügt. Zusätzlich haben Sie einen 32-KByte-FLASH-Chip und einen 8-KByte-RAM-Chip. Sie möchten den FLASH-Chip ganz am Anfang des Adressraums und das RAM am Ende des Adressraums platzieren. Alle Speicherchips haben eine einzelne /CS-Auswahlleitung, die von einem schnellen 32 x 8 OTP-ROM-Chip gesteuert wird.
Was werden Sie in den Inhalt des OTP-ROM programmieren und wie verbinden Sie es mit dem Mikroprozessor und den Speicherchips?
Ich habe nur 1,5 Pence von 6 Punkten erhalten, indem ich eine Lösung verwendet habe, die dem Bild ähnelt, das ich angehängt habe. Der Prof hat mir folgendes gesagt:
"Sie haben einen Punkt für die korrekte Verbindung der Ausgänge der OTP-ROM-Schaltung und ½ Punkte für die Verbindung der Adressleitungen a15 und a14 mit der OTP-ROM-Schaltung erhalten. Ansonsten war die Verbindung falsch und der Inhalt des Speichers wurde nicht angegeben/gelöst alle."
Bitte helfen Sie mir bei diesem Problem. Alle Ratschläge sind willkommen.
Wo soll ich anfangen? Und was soll ich in das opt-rom programmieren? Eine 32x8-Matrix voller Einsen und Nullen?
Blockdiagramm des opt-rom (siehe unten.):
mein (falscher) Lösungsversuch:
Ich setze meinen Lehrer-/Professorhut auf.
Ihr Text erwähnt einen 8-KB-RAM, Ihr Diagramm zeigt 16 KB.
Ihr ROM hat 32 Speicherplätze, daher benötigt es mehr als die 2 Adressleitungen, die Sie damit verbinden. Auch wenn Sie beabsichtigen, einige Leitungen mit einem festen Wert zu verbinden, sollten Sie das tun.
Die Frage fragt explizit nach dem PROM-Inhalt, den Sie nicht angeben. Ja, es ist eine 32x8-Tabelle mit Einsen und Nullen, aber der Punkt ist, welchen Wert Sie an jeder Stelle eingeben! Sie müssen nicht alle 32x8-Speicherorte angeben.
Ich schlage vor, Sie zeichnen sich eine Erinnerungskarte. Das kleinste Element, das Sie zuordnen müssen, ist 8 KB groß. Wie viele Blöcke müssen also 64 KB abdecken? Wie viele Adresszeilen sind an der Auswahl eines Blocks beteiligt? Wenn weniger als die vom ROM geforderte Anzahl, was werden Sie mit den anderen machen? Notieren Sie für jeden Block den Wert dieser Adressleitungen und den Wert der beiden ausgewählten Ausgangsbits. Jetzt ist es fast trivial, den Inhalt des PROMs auszuschreiben. Es wird viele "egal"-Bits enthalten.
Nebenbemerkung: Heutzutage stellen nur Archäologen solche Systeme aus separaten Chips her, und sogar Mikrocontroller* stellen von 8 Bit auf 32 Bit um. Aber das Design von so etwas ist immer noch ein guter Test für Ihr allgemeines Wissen über digitale Logik.
Gute Antwort von @Woutervanooijen. Lassen Sie mich etwas darauf eingehen, was Sie falsch gemacht haben.
Da das kleinste Speichergerät 8 KB groß ist, müssen Sie in der Lage sein, /CS auf 8 KB-Grenzen geltend zu machen. Dies bedeutet, dass ein 64-KB-Speicherplatz in 8 Blöcke aufgeteilt wird. Die ersten 4 sind der Flash und die letzten sind der RAM. Das OTP-ROM benötigt die Mikroprozessoren A13, A14 und A15 als Eingänge auf den OTP-Adressleitungen A0, A1, A2 und den Rest auf Masse. Deine Dx-Ausgänge sind in Ordnung.
Der Inhalt des OTP-ROM ist sehr einfach. Die ersten 4 Stellen sind 11111110 und die 8. Stelle ist 11111101. Den Rest können Sie bei 11111111 belassen. (Beachten Sie, dass in Ihrem Fall alle XXXXXX01 und XXXXXX10 und XXXXXXX11 sein können. Es werden nur die niederwertigsten 2 Datenbits verwendet).
Es sind andere Kombinationen für das ROM möglich. Beispielsweise könnten Sie die hohen 3 Adresszeilen verwenden und die Dateneinträge in 8 Gruppen von 4 duplizieren.
Probleme wie diese werden geschrieben, um gelöst zu werden, und in größeren Klassen werden sie so geschrieben, dass sie leicht bewertet werden können, indem nach bestimmten Schlüsselergebnissen gesucht wird. Die Antworten sind in diesem Fall oft mit Hinweisen wie der RAM-Größe in das Problem eingebaut. Sie sollten sich fragen: "Wie viel OTP brauche ich? Brauche ich alle 32 Einträge? Was ist der kleinste Block, den ich adressieren muss?" usw. Ein Bewerter sucht nach offensichtlichen Fehlern, wie z. B. die Verwendung von 0000001 anstelle von 11111110, um /CS zu bestätigen.
Der 16K-Gerätefehler würde meine Aufmerksamkeit erregen, wenn ich benoten würde. Ich würde nach anderen Papieren mit dem gleichen Fehler suchen, weil es so aussieht, als wäre es ungeprüft kopiert worden. Viele Lehrer verwenden leicht unterschiedliche A- und B-Aufgaben oder Tests, um so etwas zu lernen.
dext0rb
dext0rb
Superkatze
Lior Bilia
Benutzer35419