Entwerfen eines RAM mit 4x2 Chips und einer Kapazität von 8 Adressen

Dies ist eine typische Prüfungsfrage, und ich habe einige sehr hilfreiche Beiträge dazu gesehen, aber ich habe immer noch viele Zweifel.

Bei einer gegebenen integrierten Schaltung mit bestimmten Abmessungen, in diesem Beispiel einem 4x2, muss ich einen RAM-Speicher mit jeweils x Adressen und y Bits entwerfen. Hier ist ein Beispiel für die Schaltung, die ich verwenden muss:

Geben Sie hier die Bildbeschreibung ein

  • A0, A1 – Adresszeilen
  • D0, D1 – Datenleitungen
  • R/W – Zeile lesen/schreiben
  • CS – Chip-Auswahllinie

Mit IC1 muss ich einen RAM-Speicher mit 8 Adressen zu je 8 Bit erstellen , der die CS-Leitung (Chip Selection) des Speichers angibt .


Bisher kann ich daraus herausfinden, dass IC1 4 Zellen oder Adressen hat und jede 2 Bits aufnehmen kann. Wenn ich also 8 Adressen benötige, würde das bedeuten, dass ich 2 IC1s haben muss, aber dann würden sie nicht genug Bits halten, was bedeutet, dass ich zwei weitere benötige (unter Verwendung nur der Datenpins)?

Ich bin sehr verwirrt darüber, wie ich diese Designs erstellen soll, da ich nie die Gelegenheit hatte, welche in einem Laborszenario zu erstellen. Ich hoffe, jemand kann mir einige Hinweise geben oder mir zeigen, wie diese Chips angeschlossen werden könnten, um den gewünschten Speicher zu erhalten. Ich suche nicht nur nach der Antwort auf das Beispiel, weil ich andere RAMs mit anderen Chips bauen muss.


Das ist mir eingefallen:

Geben Sie hier die Bildbeschreibung ein

Die Unterscheidung zwischen Breitenausdehnung und Tiefenausdehnung ist jeweils unabhängig voneinander und erfordert einen separaten Ansatz.
Die UND-Gatter, die Sie eingezeichnet haben, sind rückwärts und ergeben keinen Sinn.
Ja, ich wusste, dass das nicht stimmen kann @duskwuff, aber ich kann einfach nicht herausfinden, wie ich eine der Banken negieren kann. Wenn ich dazu zwei Chips verwenden könnte, müsste ich nur einen Wechselrichter verwenden, bevor ich die CS-Leitung an einen von ihnen anschließe. Ich habe meinen Entwurf aktualisiert.
Sie haben dies halb fertig verlassen. Wenn Sie es beenden, wird die richtige Antwort für andere Website-Benutzer nützlich sein.
@TonyM Keine Sorge, ich werde es bald beenden, ich bin gerade sehr beschäftigt mit anderen Themen. Ich bin sehr dankbar für all die Hilfe, die mir alle gegeben haben, und dafür, dass Sie mich herausgefordert haben, diese Frage voranzutreiben, und sobald ich sie richtig verstehe, werde ich sie aktualisieren :)
Wie versprochen @TonyM , habe ich eine eigene Antwort mit dem gepostet, was meiner Meinung nach der richtige Weg ist, um die obere Bank zu negieren. Ich hoffe, ich habe es diesmal geschafft.

Antworten (2)

Sie benötigen zwei Bänke mit vier Chips. Die vier Chips in jeder Bank haben einfach ihre A0-, A1-, CS-, R/W-Signale verbunden und ihre D0/D1 sind mit D0/D1, D2/D3, D4/D5, D6/D7 verbunden.

Das CS-Signal jeder Bank muss durch eine Logik unter Verwendung des externen CS- und des externen A2-Signals berechnet werden. Zwei UND-Gatter und ein Inverter.

Das sind alles Hinweise, die Sie brauchen.

Vielen Dank für die Tipps, ich habe meinen Entwurf der Frage hinzugefügt. Bin ich gezwungen, ANDs und den Inverter zu verwenden, um das zu erreichen, was ich will, oder ist es nur eine Frage der Organisation?
Deinem Entwurf fehlt die A2-Logik. Sie benötigen Mittel, um das CS-Signal für die obere und die untere Bank zu erzeugen. Nur einer von ihnen darf aktiv sein, wenn das äußere CS aktiv ist. Das geschieht mit den beiden UND-Gattern und dem einzelnen Inverter.
Danke, dass du bisher mit mir ausgehalten hast @Janka, ich habe meinen Entwurf aktualisiert, aber ich habe das Gefühl, dass ich die UND-Gatter nicht richtig verwendet habe. Ich fange an zu verstehen, ich bin mir nur nicht sicher, wie die Verbindung und Inversion zwischen mehreren Banken hergestellt wird. Wenn ich nur zwei Chips verwenden müsste, müsste ich nur die Invertierung vornehmen, bevor ich mich mit dem CS von einem von ihnen verbinde.
Sie sollten sich zuerst die Funktionsweise von UND-Gattern noch einmal ansehen. Denken Sie dann daran, dass Sie die externen CS- und A2-Signale in sie einspeisen müssen und als Ergebnis die internen oberen CS- und unteren CS-Signale erhalten.
Ich wusste, dass diese ANDs zu lückenhaft waren, ich habe meinen Entwurf erneut aktualisiert. Ich habe mich mit den Toren vertraut gemacht, aber ich kann einfach nicht herausfinden, wie man eine ganze Bank negiert und wo das andere UND ins Spiel kommt. Ich hasse es, nach dem gelösten Ding zu fragen, aber würden Sie in Betracht ziehen, mir zu zeigen, was mein Entwurf ist wird vermisst?
@BlindRoach, Sie sind jetzt so nah dran, nur den Adressdecoder zu erledigen, wie Sie wahrscheinlich bemerkt haben. Dies lässt sich am besten lösen, indem Sie eine Wahrheitstabelle zeichnen - Sie können deutlich sehen, was der Decoder tun sollte. Sie können alles von hier aus lösen, ganze Schaltung. Zeichnen Sie eine Wahrheitstabelle mit Eingaben (CS, A2) und Ausgaben (selLoBank, selHiBank) und füllen Sie sie dann mit dem, was Sie tun müssen. Erst dann sollten Sie über Ihre UND- und NICHT-Gatter nachdenken. Weitermachen :-)
Sie benötigen zwei interne CS, eine für die obere Bank und eine für die untere Bank. Das CS der oberen Bank ist hoch, wenn das externe CS und A2 hoch sind. Erscheint Ihnen das sinnvoll? Das CS der unteren Bank ist hoch, wenn das externe CS hoch und A2 niedrig ist . Verstehst du es jetzt?

Nach all den Tipps, die mir alle gegeben haben, und dem Auffrischen des Schaltungsbaus, habe ich mir das ausgedacht.

Geben Sie hier die Bildbeschreibung ein

Ich sehe jetzt, was mit all meinen anderen Entwürfen nicht stimmte, da ich mir immer noch nicht sicher war, wie der CS funktioniert. Um sicherzugehen, dass ich das verstanden habe, habe ich eine weitere Erinnerung gemacht, diesmal ein 4x2 mit 2x1s. Hier ist meine Lösung:

Geben Sie hier die Bildbeschreibung ein

Ich entschied mich dafür, die Chips in einer anderen Reihenfolge zu platzieren, um sicherzustellen, dass ich wusste, was ich tat, und nicht nur die letzte Frage kopierte.