Forum: Mikrocontroller und Digitale Elektronik Takt aufteilen: 8, 8, 1, 8, 8, 1,.


von ... (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Andre G. (andgst01)


Lesenswert?

Zeichne doch mal ein Timing-Diagramm.
Das hilft uns allen das Problem zu lösen.

von Mario M. (thelonging)


Lesenswert?

Dein Zähler schaltet auf der falschen Flanke. Er darf erst am Ende des 
Impulses weiter schalten.

von gequälter (Gast)


Lesenswert?

... 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?

von Andre G. (andgst01)


Lesenswert?

Rein aus Neugier:

Ist das für eine CPU oder so was?

von Erich (Gast)


Lesenswert?

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

von Jester (Gast)


Lesenswert?

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.

von gequälter (Gast)


Lesenswert?

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

von Mario M. (thelonging)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

Wenn einen Takt multiplexen will oder anderweitig logisch verknüpft, 
muss man aufpassen!

Siehe Taktung FPGA/CPLD und Glitch.

von ... (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

... 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?

von ... (Gast)


Lesenswert?

@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.

von Andre G. (andgst01)


Lesenswert?

... 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 ...

von Günter Lenz (Gast)


Lesenswert?

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.

von ... (Gast)


Lesenswert?

@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
Noch kein Account? Hier anmelden.