Verbinden Sie die ALU mit der CPU im Logism Circuit Design und geben Sie sie an die 7-Segment-Anzeige aus.

Ich habe in Logisim herumgespielt, um etwas Erfahrung im Entwerfen grundlegender elektrischer Schaltungen zu sammeln. Obwohl ich sicher nicht der Beste bin, konnte ich eine funktionsfähige ALU zusammenstellen:

1-Bit :1-Bit-ALU

  • Diese ALU beherrscht die Operationen AND, OR, XOR, NOR, ADD/SUB.
  • [A] & [B] sind separate 8-Bit-Eingänge.
  • Der Eingang [Sub] legt fest, ob addiert (0) oder subtrahiert (1) wird.
  • Der [Operation Setter] gibt an, welche Operation durchgeführt wird.
  • [R] ist das Ergebnis der bezeichneten Operation, wobei das [Null-Flag] uns auf eine „0“-Ausgabe aufmerksam macht, z. B. wenn eine Zahl von sich selbst subtrahiert wird.

Unter Verwendung der 1-Bit-ALU habe ich eine 8-Bit-ALU zusammengesetzt (dieses Bild direkt darunter, das eine ADD-Operation durchführt):8-Bit-ALU

(SUB-Betrieb):8-Bit-ALU-Subtraktionsoperation

Geben Sie hier die Bildbeschreibung ein

Ich versuche jetzt, meine ALU zu nehmen und sie mit einer Art CPU zu kombinieren (derzeit konzentriere ich mich hauptsächlich auf das Addieren / Subtrahieren und das Ausgeben an einige 7-Segment-Anzeigen). Ich habe eine 7-Segment-Anzeige zusammengestellt (habe auch noch eine für alhpa-Zeichen AbcdEfG):

7-Segment-Anzeige (nicht Alpha)

Ich kann mir keinen guten Weg vorstellen, das, was ich für eine ALU habe, zu nehmen und die Ausgabe in meine 7-Segment-Anzeige zu platzieren (letztendlich möchte ich die Ergebnisanzeige über 3 haben, um alle möglichen 255-Werte von meinem 8-Bit anzuzeigen Zusatz):

Das Folgende ist, was meine Schaltung für jede unterschiedliche Operation tut:

UND-Verknüpfung - 1.1 = 1 :UND

ODER-Verknüpfung - 1+0 = 1 :ODER

XOR-Operation - 1 XOR 0 = 1 :XOR

NOR-Verknüpfung - 1 NOR 0 = 6 :NOCH

ADD/SUB Operationg - 1+1 = ERROR (Sub Flag ist fehlerhaft für alle OP's??):Geben Sie hier die Bildbeschreibung ein

Ich bin mir nicht ganz sicher:

  • Warum mein Sub-Flag nicht wählbar ist.
  • Warum mein Null-Flag bei einer Add/Sub-Operation fehlschlägt.
  • Wie ich mein Ergebnis von meiner ALU behebe, damit es richtig in meine 7-Segment-Anzeige geht und dort angezeigt wird (derzeit werden 8-Bit in einen 8-Bit-Splitter ausgegeben und dann die ersten 4 als meine Eingabe für die 7-Segment-Anzeige platziert).

Hat jemand einen Beitrag dazu, wie ich die Probleme in meinem Design korrigieren und dies zum Laufen bringen kann? Vielen Dank im Voraus!

BEARBEITEN:

Problem mit Sub-Flag behoben. Als ich die Schaltung zur Verwendung in meiner Hauptschaltung herüberbrachte, hatte sie irgendwie die Eigenschaften, ein Ausgang zu sein und einen 3-Zustand zu haben (was ich glaube ich nie eingestellt habe). In jedem Fall ist dieses kleine Problem behoben.

Scheint, dass das Zero Flag aus irgendeinem Grund auch auf 3-State gesetzt wurde.

Irgendwelche Ratschläge zur Behebung des Add/Sub-Problems?

Antworten (1)

In den letzten Bildern sieht es so aus, als hätten Sie das "Sub-Flag" als Ausgang und nicht als Eingang konfiguriert. Da nichts dieses Netz antreibt, führt dies zu einem Fehler.

Ich bin mir nicht sicher, wie diese Eigenschaften geändert wurden, aber Sie haben Recht! Das Sub-Flag in meinem Hauptschaltkreis wurde sowohl als Ausgang als auch als 3-Zustand gesetzt. Danke! Irgendwelche Ratschläge für den Rest?