Ich möchte einen Haupttakt aufteilen in drei "Untertakte" und zwar so, dass zuerst acht Takte auf Leitung eins ausgegeben werden, dann acht Takte auf Leitung zwei und dann ein Takt auf Leitung drei und danach das ganze wieder von vorn. Die Schaltung im Anhang macht schon in etwa das was ich will. Ich habe dafür einen Zähler verwendet, der von 0 bis 16 zählt und dann wieder bei 0 anfängt. Die oberen Bits des Zählers steuern einen Demultiplexer, der den Takt auf die drei Leitungen verteilt. Allerdings werden beim ersten Durchlauf auf Leitung eins nur sieben Takte ausgegeben. Beim zweiten Durchlauf funktioniert es wie gewollt. Wie könnte man das möglichst einfach so machen, dass die Takte wie beschrieben ausgegeben werden?
Zeichne doch mal ein Timing-Diagramm. Das hilft uns allen das Problem zu lösen.
Dein Zähler schaltet auf der falschen Flanke. Er darf erst am Ende des Impulses weiter schalten.
... schrieb: > Clock.png Könnte es sein dass es bessere und vor allem verständlichere Schaltpläne gibt die keine Verbalerotik brauchen um klar darzustellen was gemeint ist?
Mario M. schrieb: > Dein Zähler schaltet auf der falschen Flanke. Er darf erst am Ende des > Impulses weiter schalten. Ja, das ist wohl die Antwort. Du solltest einen Inverter einfügen, dort wo die Clockleitung in den Zähler geht. ... schrieb: > "der von 0 bis 16 zählt" Ähh, das wären aber 17 Zustände. Ein 4 Bit Zähler zählt aber nur 0..15. Also kann dritter Ausgang so nicht funktionieren. Gruss
FSM (finite state machine) / endlicher Automat führt ganz sicher zum Ziel. Einlesen kann man sich z.B. unter https://de.wikipedia.org/wiki/Endlicher_Automat. Links/Literatur gibt's dort auch.
Jester schrieb: > FSM (finite state machine) / endlicher Automat führt ganz sicher zum > Ziel. Damit (mit der Implementierung in diskreter Logik) düfte der Thread-Ersteller aber voll überfordert sein wenn er es schon nicht schafft einen klar leserlichen Schaltplan zu zeichnen. SCNR
Erich schrieb: > Ähh, das wären aber 17 Zustände. > Ein 4 Bit Zähler zählt aber nur 0..15. > Also kann dritter Ausgang so nicht funktionieren. Schon richtig, 8 + 8 + 1 = 17. Wenn man in den tollen Plan weit genug rein zoomt, sieht man dass der Zähler 5 Ausgänge hat.
Wenn einen Takt multiplexen will oder anderweitig logisch verknüpft, muss man aufpassen! Siehe Taktung FPGA/CPLD und Glitch.
Zum Schaltplan: das ist ein Export der Schaltung wie sie von Logisim dargestellt wird. @gequälter: wenn du geistig nicht in der Lage bist eine Schaltung mit einem Zähler und einem Demultiplexer zu verstehen, auch wenn die Darstellung in Logisim nicht optimal ist, dann halte dich einfach raus und nerv nicht sinnlos rum. @Erich: es ist ein 5-Bit Zähler. Am Ausgang sind die Leitungen 0 ... 4 ausgefächert. (Ja der Export war etwas klein geraten.) @Andre: ja es ist für eine einfache bit-serielle CPU ähnlich dem PHYWE Relaiscomputer, nur mit TTL ICs statt der Relais: Beitrag "Reparaturanfrage CPU-Modellrechner Phywe" Falls der Aufwand überschaubar bleibt will ich das später mit Einzeltransistoren (Widerstands-Transistor-Logik) aufbauen. @Jester: daran hatte ich auch schon gedacht. Es soll aber vom Schaltungsaufwand so einfach wie möglich sein, wie der PHYWE. Deshalb die Idee mit dem Zähler und Demultiplexer. @Mario: ja genau so gehts. Danke.
... schrieb: > Falls der Aufwand überschaubar bleibt will ich das später mit > Einzeltransistoren (Widerstands-Transistor-Logik) aufbauen. Welche Drogen hast du genommen? Warum geißelst du dich so?
@Falk: welches Wort von "Falls der Aufwand überschaubar bleibt" hast du nicht verstanden und was soll diese Beleidigung mit den Drogen? Warum steigt denn z.B. ein Bergsteiger auf einen Berg? Die bit-serielle CPU ansich ist schon überhaupt nicht sinnvoll und nur eine Spielerei.
... schrieb: > ja es ist für eine einfache bit-serielle CPU Aber der Spaß an so einem Projekt ist doch dass man es selbst entwickelt und dabei etwas lernt. Ist doch langweilig wenn andere Leute die ganze Denkarbeit machen ...
Zeige bitte mal eine Wahrheitstabelle nach deiner Vorstellung. Also oben die Spaltenbezeichner, Ein- und Ausgänge, und dann in der Tabelle die Nullen und Einsen. 8 8 1 8 8 1, sieht mir nach einen Zähler aus, der von 0 bis 15 zählt und einen Impuls abgibt.
@Günter Danke für dein Hilfsangebot aber das Problem ist bereits durch Mario seinen Tipp gelöst. Ich habe bei der bit-seriellen CPU den Programm- und Datenspeicher, das Befehlsregister und den Akkumulator als Schieberegister realisiert. Deshalb brauche ich zuerst acht Takte um den Befehl vom Programmspeicher ins Befehlsregister zu laden, dann acht um die Daten aus dem Datenspeicher zu holen und in der ALU mit dem Wert aus dem Akkumulator zu verrechnen und dann zum Schluß noch einen, um den Befehlszähler entweder um eins zu erhöhen oder die Sprungadresse zu laden. Also so ähnlich wie es beim PHYWE gemacht wurde. Wie bereits geschrieben hatte ich nun das Problem, dass beim ersten Durchlauf nur sieben statt acht Takte beim Lesen des Befehls ausgegeben wurden. Durch den Tipp von Mario funktioniert es jetzt wie gewollt. Falls Interesse besteht kann ich auch gern alles zeigen. Es ist halt nur der Versuch eines möglichst einfachen Nachbaus des PHYWE mit TTL ICs.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.