Now playing

Montag, 27. Oktober 2008

Projekt Technische Informatik - Versuch 3

Weil ich noch nicht ins Bett will :)

Digitalrechner - Festverdrahtete Mikroprogrammsteuerung

Aufgabe A
(1) Realisieren Sie die Initialisierungen des Basiscomputers SEGRAS-1 so, dass der im entsprechenden Abschnitt der "Beschreibung des Basiscomputers SEGRAS-1" behandelte Anfangszustand hergestellt wird, sobald S gelöscht wird.
Hinweis: Benutzen Sie hierfür die taktunabhängigen Clear- bzw. Preset-Eingänge von F, R, SC, FGI, FGO und IEN.

- S ist in einem Jump-Kill-Flip-Flop gespeichert
- Master-Clear-Taster muss mit dem CLEAR-Eingang von S verbunden werden (bereits intern realisiert)
- der positive Ausgang von S muss mit den taktunabhängigen invertierten CLEAR-Eingängen von CLEAR_C, CLEAR_T, FGI_Clear und mit dem PRESET-Eingang von FGO_Clear verbunden werden

---

(2) Realisieren Sie die Dekodierung von F, R und SC (liefert die Signale c(i)t(i)), OPR (liefert die Signale q(i)) und MBR (zur Erzeugung der Signale b(i))
Stellen Sie sicher, dass die zu verwendenden 4x16-Dekodierer (IC 74154) bzw. 3x8-Dekodierer (74LS138) nur dann dekodieren, wenn der Rechner läuft, d.h. wenn S gesetzt ist.
Hinweise: Letzteres kann durch entsprechende Beschaltung der Enable-Eingänge der Dekodierer erreicht werden. Beachten Sie, dass die Bits eines Registers mit dem höchstwertigen beginnend nummeriert werden! Beachten Sie, dass die Dekodierer nicht die Signale c(i)t(i), q(i), b(i) liefern, sondern die invertierten Signale.

F, R, SC1 und SC0 werden durch einen 4x16-Dekodierer dekodiert (da 4 Eingänge, 16 Ausgänge)
=> einfach die Ausgänge von F, R, SC1 und SC0 mit den entsprechenden Eingängen des Dekodierers verbinden

OPR1, 2 und 3 werden durch einen 3x8-Dekodierer dekodiert (3 Eingänge, 8 Ausgänge)
=> wieder die Ausgänge mit den 3x8-Eingängen verbinden

MBR1, 2, 3 und 4 => 4x16-Dekodierer
=> s.o.

Außerdem: invertierte "enable"-Inputs der Register mit S(invertiert)-Ausgang und positives "enable"-Output vom 3x8-Dekodierer mit S-Ausgang vom S-Flip-Flop verbinden (damit nur dekodiert wird, wenn der Rechner läuft)

---

(3) Realisieren Sie die Start-/Stoppvorrichtung für den Basiscomputer SEGRAS-1 so, dass die in der Beschreibung behandelte Funktionsweise sichergestellt ist. Integrieren Sie die Realisierung der Execute-Phase des Befehls HLT in diese Start-/Stoppvorrichtung!

Das ganze wird in einem Dual-JK-Flip-Flop gespeichert (eins für Start, eins für Stopp)

Für Start: S muss mit der nächsten abfallenden Flanke des Taktimpulses gesetzt werden
- negativen Ausgang vom Start-Taster (auf der Platine) mit dem (taktunabhängigen) PRESET-Eingang von ST verbinden (=> Startereignis wird in ST gespeichert)
- ST.Q (Ausgang von ST) mit S.J verbinden, damit S beim nächsten Takt gesetzt werden kann (der Rechner also läuft)
- um später auf Stopp reagieren zu können: ST-Flip-Flop nach Setzen des S-Flip-Flops löschen => ST.Q mit ST.K verbinden (Rückkopplung) und ST.J konstant auf 0 setzen

Für Stopp: S muss mit der abfallenden Flanke des Taktimpulses während des nächsten Timing-Signals c(2)t(3) gelöscht werden (also am Ende der nächsten Execute Phase)
- Stopp wird erst zum Zeitpunkt c(2)t(3) wirksam, also: S.K-Eingang = (Stop OR HLT) AND c(2)t(3)
- HLT = I(inv) AND q7 AND b7 = [I OR q7(inv) OR b7(inv)](inv)
- Analog zu Start: PRESET-Eingang vom SP-Flip-Flop mit (Stop OR HLT)(inv) verbinden
- SP.J mit 0, SP.K mit c(2)t(3) verschalten
- an S.K liegt (Stop OR HLT) AND c(2)t(3) an

lalala :)

Keine Kommentare:

Related Posts Plugin for WordPress, Blogger...