Digitaltechnik < Elektrotechnik < Ingenieurwiss. < Vorhilfe
|
[Dateianhang nicht öffentlich]
haben mit 5 mann versucht die aufgabe zu lösen
prof meinte irgendwas mit dem codewandler vorne anhängen
aber bekommen einfach da keine lösung hin wie das gescheit und einfach funktionniert
kann da vll jemand helfen?
vielen dank ist sehr wichtig !!!
Dateianhänge: Anhang Nr. 1 (Typ: JPG) [nicht öffentlich]
|
|
|
|
Vorabüberlegungen:
Alle drei Codes besitzen 4bit. Wollten wir nun einfach alle Möglichkeiten durchgehen, bräuchten wir eine Übergangs-/Ansteuerungstabelle mit insgesamt 6bit als Eingang (2bit für s1s0 und 4bit für die Zahl x3x2x1x0) und 4bit als Ausgang (für das neue x3x2x1x0). Dafür bräuchten wir 8 JK-Flipflops, was zu 8 KV-Diagrammen (J3,K3...J0,K0) mit je 6 Variablen führt: ziemlich aufwändig & unübersichtlich.
Darum nochmal eine genauere Betrachtung der Codes: Es gibt nur 4 verschiedene Zuständen pro Code, daher wäre auch eine 2bit Ansteuerung mit anschließender Codewandlung möglich. Also konzipiere ich zuerst einen 2bit-Zähler q1q0 (00,01,10,11,00...). Dafür benötige ich 2 JK-Flipflops; wenn man die Formeln aufstellt, ergibt sich folgendes:
J1=q0,K1=qo,J0=1,K0=1.
Nun brauche ich einen Wandler, der die Ansteuerung S berücksichtigt (jedenfalls 00,01,10; 11 vernachlässigen wir vorerst) und mir aus den 2bit q1,q0 eine 4bit Zahl x3x2x1x0 erzeugt; je nach Ansteuerung in einem der 3 Codes. Also stelle ich für jeden Ausgang x ein KV-Diagramm mit den 4bits s1,s0,q1,q0 auf. Zusammenfassung ergibt
[mm]x3=(s0\wedge q0)\vee (\neg s1\wedge \neg s0\wedge q1)[/mm]
[mm]x2=(s0\wedge q0)\vee (s1\wedge q1\wedge \neg q0)\vee (\neg s1\wedge q1\wedge q0)[/mm]
[mm]x1=q1[/mm]
[mm]x0=q0\vee (\neg s1\wedge q1)[/mm]
Damit wären die 3 Codewandler realisiert, bislang gibt die Schaltung nur bei Ansteuerung von s1=1,s0=1 noch Unsinn aus, den Fall 'Speichern' haben wir bis jetzt auch noch nicht betrachtet.
Wir wollen den aktuellen Wert hinter dem Codewandler speichern, wenn S=3 ist und unbeeinflusst lassen, wenn S!=3 ist. Weil die Funktion 'Speichern' aber für jedes Ausgangsbit x gleich funktioniert, entwickeln wir eine Schaltung, die entweder ein bit speichert oder ein ankommendes bit durchlässt. Diese kann später für jedes Ausgangsbit in gleicher Weise verwendet werden. Zum Speichern benötigen wir ein JK-Flipflop.
Also erstellen wir eine Übergangs-/Ansteuerungstabelle, die mit s1s0 die Ansteuerung berücksichtigt, mit x das Stellenwert-bit und mit w(i) den alten Ausgang des Flipflops. Gleichzeitig taucht in unserer Tabelle q(i+1) auf, das für S=0,1,2 dem Wert von x entspricht (das Stellenwert-bit wird ohne Beeinflussung durchgelassen). Für S=3 soll w(i+1) dem w(i) entsprechen, die Ansteuerung x wird ignoriert. Damit wird auch klar, weshalb wir tolerieren konnten, dass unser Codewandler bei S=3 Unfug erzeugt: die Werte werden ohnehin ignoriert.
[mm]J=(\neg s1\wedge x)\vee (\neg s0\wedge x)[/mm]
[mm]K=(\neg s1\wedge \neg x)\vee (\neg s0\wedge \neg x)[/mm]
Wer meinen Ausführungen bis hierhin folgen konnte, für den sollte es nun kein großes Problem mehr darstellen, die Formeln in reine NAND-Form zu bringen und die Schaltung aufzubauen
(2bit-Zähler->Codewandler->4*Speichereinheit->4*Ausgang)
Ob diese Lösung nun wirklich weniger Aufwand bedeutet als die zu Anfang beschriebene 'all-in-one', kann ich nicht beurteilen, jedenfalls haben wir nicht nur 4, sondern 6 Flipflops benötigt. Der Entwicklungsaufwand war aber meines Erachtens geringer.
Noch Fragen/Anmerkungen/Kritik/gefundene Fehler?
mfG philipp.w
Edit: Jetzt habe ich zum besseren Verständnis die entsprechenden Ansteuertabellen und KV-Diagramme gescannt und hochgeladen. Außerdem habe ich einen Variablennamen im Speicherblock geändert, um Missverständnissen vorzubeugen (q->w). Der gesamte Aufwand für diese Schaltung beläuft sich (kurz überschlagen) auf 6 JK-Flipflops, 34 2-fach-NANDs und 4 3-fach-NANDS. Darum habe ich auch auf das Zeichnen der fertigen Schaltung großzügig verzichtet.
Ich lasse diesen Artikel aber als fehlerhaft markiert, da es bestimmt noch bessere / einfachere Lösungen gibt. Möchte sich jemand einbringen?
Dateianhänge: Anhang Nr. 1 (Typ: jpg) [nicht öffentlich] Anhang Nr. 2 (Typ: jpg) [nicht öffentlich]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:20 Mi 23.07.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|