Skip to content

Commit 5b6e441

Browse files
committed
Revise L07
1 parent fecb4cf commit 5b6e441

1 file changed

Lines changed: 75 additions & 110 deletions

File tree

07_Schaltwerke.md

Lines changed: 75 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ version: 0.0.6
66
language: de
77
narrator: Deutsch Female
88
9-
import: https://raw.githubusercontent.com/liaTemplates/AVR8js/main/README.md
10-
https://raw.githubusercontent.com/LiaTemplates/DigiSim/master/README.md
11-
https://github.com/LiaTemplates/Pyodide
9+
import: https://raw.githubusercontent.com/LiaTemplates/DigiSim/master/README.md
1210
https://raw.githubusercontent.com/liascript-templates/plantUML/master/README.md
1311
1412
mark: <span style="background-color: @0;
@@ -171,9 +169,46 @@ __Invertierte Wahrheitstafel__ zeigt die Eingaben, die notwendig sind, um eine b
171169
{{1-3}}
172170
*******************************************************************************
173171

174-
> **Aufgabe:** Stellen Sie die invertierten Wahrheitstafeln für den flankengesteuerten JK- und den flankengesteuerten D-Flip-Flop auf!
172+
> **Aufgabe:** Stellen Sie die invertierten Wahrheitstafeln für ein D-Flip-Flop auf!
175173
176174

175+
__D-Wahrheitstafel__
176+
177+
<!-- data-type="none" style="table-layout: fixed; max-width:480px;"-->
178+
| $D(t)$ | $Q(t+1)$ | Modus |
179+
| ------ | -------- | ------- |
180+
| 0 | $0$ | Löschen |
181+
| 1 | $1$ | Setzen |
182+
183+
__D-Invertierte Wahrheitstafel__
184+
185+
186+
*******************************************************************************
187+
188+
{{1-2}}
189+
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
190+
| $Q(t)$ | $Q(t+1)$ | $D$ |
191+
| ------ | -------- | --- |
192+
| $0$ | $0$ | |
193+
| $0$ | $1$ | |
194+
| $1$ | $0$ | |
195+
| $1$ | $1$ | |
196+
197+
198+
{{2-3}}
199+
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
200+
| $Q(t)$ | $Q(t+1)$ | $D$ |
201+
| ------ | -------- | --- |
202+
| $0$ | $0$ | $0$ |
203+
| $0$ | $1$ | $1$ |
204+
| $1$ | $0$ | $0$ |
205+
| $1$ | $1$ | $1$ |
206+
207+
{{3-5}}
208+
*******************************************************************************
209+
210+
> **Aufgabe:** ... und noch mal!
211+
177212
__JK-Wahrheitstafel__
178213

179214
<!-- data-type="none" style="table-layout: fixed; max-width:540px;"-->
@@ -189,7 +224,7 @@ __JK-Invertierte Wahrheitstafel__
189224

190225
*******************************************************************************
191226

192-
{{1-2}}
227+
{{3-4}}
193228
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
194229
| $Q(t)$ | $Q(t+1)$ | $J$ | $K$ |
195230
| ------ | -------- | --- | --- |
@@ -198,8 +233,7 @@ __JK-Invertierte Wahrheitstafel__
198233
| $1$ | $0$ | | |
199234
| $1$ | $1$ | | |
200235

201-
202-
{{2-3}}
236+
{{4}}
203237
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
204238
| $Q(t)$ | $Q(t+1)$ | $J$ | $K$ |
205239
| ------ | -------- | --- | --- |
@@ -209,44 +243,11 @@ __JK-Invertierte Wahrheitstafel__
209243
| 1 | 1 | d | $0$ |
210244

211245

212-
{{3-5}}
213-
*******************************************************************************
214-
215-
> **Aufgabe:** ... und noch mal!
216-
217-
__D-Wahrheitstafel__
218-
219-
<!-- data-type="none" style="table-layout: fixed; max-width:480px;"-->
220-
| $D(t)$ | $Q(t+1)$ | Modus |
221-
| ------ | -------- | ------- |
222-
| 0 | $0$ | Löschen |
223-
| 1 | $1$ | Setzen |
224-
225-
__D-Invertierte Wahrheitstafel__
246+
### Grundkonzept
226247

248+
{{0-1}}
227249
*******************************************************************************
228250

229-
{{3-4}}
230-
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
231-
| $Q(t)$ | $Q(t+1)$ | $D$ |
232-
| ------ | -------- | --- |
233-
| $0$ | $0$ | |
234-
| $0$ | $1$ | |
235-
| $1$ | $0$ | |
236-
| $1$ | $1$ | |
237-
238-
{{4}}
239-
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
240-
| $Q(t)$ | $Q(t+1)$ | $D$ |
241-
| ------ | -------- | --- |
242-
| $0$ | $0$ | $0$ |
243-
| $0$ | $1$ | $1$ |
244-
| $1$ | $0$ | $0$ |
245-
| $1$ | $1$ | $1$ |
246-
247-
248-
### Grundkonzept
249-
250251
Wie kann man systematisch ein synchrones Schaltwerk ausgehend von
251252
der Problembeschreibung entwerfen ?
252253

@@ -264,32 +265,17 @@ Mathematisch kann ein Deterministischer Endlicher Automat als Tupel $A = (Q, \Si
264265
+ $q\in Q$ ist der Startzustand (auch Anfangszustand oder Initalzustand).
265266
+ $F\subseteq Q$ ist die Menge der akzeptierenden Zustände, die sogenannten Finalzustände (oder Endzustände).
266267

267-
Beispiele:
268-
269-
__Zustand einer Tür__
270268

271-
Darstellung als Graph
269+
*******************************************************************************
272270

273-
```text @plantUML
274-
@startuml
275-
digraph finite_state_machine {
276-
rankdir=LR;
271+
{{1-2}}
272+
*******************************************************************************
277273

278-
node [shape = point ]; qi
279-
node[shape=circle]
280-
A[label="zu"];
281-
B[label="auf"];
274+
>Beispiel I: __Zustand einer Tür__
282275
283-
qi -> A;
284-
A -> A [ label = "schließen" ];
285-
A -> B [ label = "öffnen" ];
286-
B -> B [ label = "öffnen" ];
287-
B -> A [ label = "schließen" ];
288-
}
289-
@enduml
290-
```
291-
@plantUML
276+
Darstellung als Graph
292277

278+
![StateMaschine](https://www.plantuml.com/plantuml/png/ZOqnJiGm44NxdEBBFITO6MrIKz565ZBs68zmPhEEtO0u2xVW0haOmH4eLD2CzDz_cdzUYisbJgdp_9Jj715OkD33nhSxMHTP2AyT06Ghpvwplhi_jImNJnYNQ6U2ndnXAJ0dNFcdtKljEBj4fk5-JFQHabOlLPdzp_2DR0rVhC4hu-OM_MxqQ04OqLHegCN5nBI-aoYOepRyqjQF4EJW3Fzn_fvxwyualaxf4m00)
293279

294280
Darstellung in einer Übergangstabelle
295281

@@ -298,37 +284,22 @@ Darstellung in einer Übergangstabelle
298284
| Zustand offen | offen (unverändert) | geschlossen |
299285
| Zustand geschlossen | offen | geschlossen (unverändert) |
300286

301-
__Codeschloss für die Erfassung der Sequenzfolge `7022`__
302287

288+
*******************************************************************************
303289

304-
```text @plantUML
305-
@startuml
306-
digraph finite_state_machine {
307-
node [shape = point ]; qi
308-
node[shape=Mrecord]
309-
A[label="{A|geschlossen}"];
310-
B[label="{B|geschlossen}"];
311-
C[label="{C|geschlossen}"];
312-
D[label="{D|geschlossen}"];
313-
E[label="{E|geöffnet}"];
290+
{{2-4}}
291+
*******************************************************************************
314292

315-
qi -> A;
316-
A -> A [ label = "E != 7" ];
317-
A -> B [ label = "E == 7" ];
318-
B -> A [ label = "E != 0" ];
319-
B -> C [ label = "E == 0" ];
320-
C -> D [ label = "E == 2" ];
321-
C -> A [ label = "E != 2" ];
322-
D -> E [ label = "E == 2" ];
323-
D -> A [ label = "E != 2" ];
324-
E -> A [ label = "" ];
325-
}
326-
@enduml
327-
```
328-
@plantUML
293+
294+
> Beispiel II: __Codeschloss für die Erfassung der Sequenzfolge `7022`__
295+
296+
![StateMaschine](https://www.plantuml.com/plantuml/png/XSqnReCm5CRnFQVuobwfwj8XSXN07di2X2eN7i6ICGGxKvfhzGAzMD6Bv4J4RHSatk_Fnyu7FOVZO3UjsSzwwj4PPmAzB_VbEUYcDuvmsW206rj2vNiz4GIcqRY0Uek3YNf1yJPJCyvjpVUyilg3hCXE-UUUVDFRqNjovwpUiXVHYwINqSkao-WowIgwMlpxg-iS1LRcWy7ZA_9BcuDVW0hy4GGoXGU1bmprRLAi4d6R5B-jFAsIydxbcfISoFlaUPKaVdHD92VghnNv_ufA98pdpOvSUnpi3m00)
329297

330298
Welche Beschränkungen sehen Sie in diesem Entwurf? Was passiert bei der Sequenzfolge `707022`?
331299

300+
*******************************************************************************
301+
302+
{{3}}
332303
> **Wie realisieren wir nun aber das theoretische Modell des endlichen Automaten mit realen Bauteilen?**
333304
334305
### Beispiel
@@ -354,7 +325,7 @@ Y | | 1 1 | 0
354325
```
355326

356327

357-
```text @plantUML
328+
```text @plantUML.png
358329
@startuml
359330
digraph finite_state_machine {
360331
rankdir=LR;
@@ -378,7 +349,6 @@ digraph finite_state_machine {
378349
}
379350
@enduml
380351
```
381-
@plantUML
382352

383353
- Zustand `A`: die letzte Eingabe war keine `1` (`0` oder Start)
384354
- Zustand `B`: die letzte Eingabe war `1`, die davor war nicht `1`
@@ -408,7 +378,7 @@ Für unsere digitalen Bauteile müssen wir diese Zustände aber mit `1` und `0`
408378
<!-- data-type="none" style="table-layout: fixed; max-width:560px;"-->
409379
| Zustände | Flip-Flops | Mögliche Zustände | Ungenutzte Zustände |
410380
| -------- | ---------- | ----------------- | ------------------- |
411-
| 1 | 0 | 1 | 0 |
381+
| 1 | - | - | - |
412382
| 2 | 1 | 2 | 0 |
413383
| 3 | 2 | 4 | 1 |
414384
| 4 | 2 | 4 | 0 |
@@ -455,7 +425,7 @@ Um die entsprechende Schaltfunktionen für die Änderung der Zustände und die A
455425
456426
Zustandstabelle
457427

458-
<!-- data-type="none" style="table-layout: fixed; max-width:320px;"-->
428+
<!-- data-type="none" style="table-layout: fixed; max-width:350px;"-->
459429
| F | G | E | F' | G' |
460430
| --- | --- | --- | ------------------------------------- | ------------------------------------- |
461431
| 0 | 0 | 0 | 0 | 0 |
@@ -522,7 +492,7 @@ style="width: 80%; min-width: 420px; max-width: 720px;"
522492
.
523493
```
524494

525-
```text @plantUML
495+
```text @plantUML.png
526496
@startuml
527497
digraph finite_state_machine {
528498
rankdir=LR;
@@ -546,7 +516,6 @@ digraph finite_state_machine {
546516
}
547517
@enduml
548518
```
549-
@plantUML
550519

551520
> **Die Ausgabelogik bestimmt Ausgabe Y hängt nur vom aktuellen Zustand ab.**
552521
@@ -570,7 +539,7 @@ style="width: 80%; min-width: 420px; max-width: 720px;"
570539
.
571540
```
572541

573-
```text @plantUML
542+
```text @plantUML.png
574543
@startuml
575544
digraph finite_state_machine {
576545
rankdir=LR;
@@ -593,10 +562,8 @@ digraph finite_state_machine {
593562
D -> D [ label = "E=1 \n A=1", fontcolor=blue ];
594563
D -> A [ label = "E=0 \n A=0", fontcolor=green];
595564
}
596-
597565
@enduml
598566
```
599-
@plantUML
600567

601568
>**Die Ausgabe Y hängt jedoch die Ausgabelogik vom aktuellen Zustand und vom Eingabesignal E ab**
602569
@@ -610,7 +577,7 @@ Der Mealy-Automat ist die generellere Form. Der Moore-Automat unterbindet den Ei
610577

611578
Noch mal zurück zum Beispiel des Binärsequenzdetektors. Welche Konsequenzen hätte die Umsetzung als Mealy-Automat?
612579

613-
```text @plantUML
580+
```text @plantUML.png
614581
@startuml
615582
digraph finite_state_machine {
616583
rankdir=LR;
@@ -633,14 +600,10 @@ digraph finite_state_machine {
633600
D -> D [ label = "E=1 \n A=1", fontcolor=blue ];
634601
D -> A [ label = "E=0 \n A=0", fontcolor=green];
635602
}
636-
637603
@enduml
638604
```
639605

640-
641-
642-
643-
```text @plantUML
606+
```text @plantUML.png
644607
@startuml
645608
digraph finite_state_machine {
646609
rankdir=LR;
@@ -659,12 +622,9 @@ digraph finite_state_machine {
659622
C1 -> A1 [ label = "E=0 \n A=0", fontcolor=green ];
660623
C1 -> C1 [ label = "E=1 \n A=1", fontcolor=blue ];
661624
}
662-
663625
@enduml
664626
```
665627

666-
667-
668628
Zustandstabelle
669629

670630
<!-- data-type="none" style="table-layout: fixed; max-width:780px;"-->
@@ -950,7 +910,7 @@ style="width: 80%; min-width: 420px; max-width: 720px;"
950910

951911
Für die Aufgabe ergibt sich folgender Graph:
952912

953-
```text @plantUML
913+
```text @plantUML.png
954914
@startuml
955915
digraph finite_state_machine {
956916
rankdir=LR;
@@ -971,15 +931,15 @@ digraph finite_state_machine {
971931
}
972932
@enduml
973933
```
974-
@plantUML
975934

976935
Im Beispiel liegt ein Medwedew-Automat vor. Die Zustände werden direkt auf den Ausgang abgebildet.
977936

978937
**2. Schritt: Erstellen der Zustandstabelle**
979938

980939
Hier wäre eine Zustandstabelle denkbar, die alle Eingangskombinationen mit allen Zuständen zeilenweise verknüpft.
981940

982-
| aktueller Zustand | A | B | Folgezustand |
941+
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
942+
| aktueller Zustand | A | B | Folge-zustand |
983943
| ----------------- | --- | --- | ------------ |
984944
| E | 0 | 0 | E |
985945
| E | 0 | 1 | L |
@@ -998,14 +958,16 @@ Eine kompaktere Darstellung fasst die Kombinationen der Eingänge zusammen und o
998958

999959
Insgesamt sind 3 Zustände zu kodieren, entsprechend werden wiederum 2 Flip-Flops benötigt. Dabei wird die Kodierung wie folgt vorgenommen:
1000960

961+
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
1001962
| Zustand | F | G |
1002963
| ------- | --- | --- |
1003964
| E | 0 | 0 |
1004965
| G | 0 | 1 |
1005966
| L | 1 | 0 |
1006967

1007-
Damit ergibt sich folgende Binäre Zustandstabelle
968+
Damit ergibt sich folgende binäre Zustandstabelle
1008969

970+
<!-- data-type="none" style="table-layout: fixed; max-width:620px;"-->
1009971
| aktueller Zustand | AB==00 | AB==01 | AB==10 | AB==11 |
1010972
| ----------------- | ------ | ------ | ------ | ------ |
1011973
| 00 | 00 | 10 | 01 | 00 |
@@ -1014,6 +976,7 @@ Damit ergibt sich folgende Binäre Zustandstabelle
1014976

1015977
In der traditionellen Darstellung zeigt sich diese wie folgt:
1016978

979+
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
1017980
| $F_{t}$ | $G_{t}$ | $A_{t}$ | $B_{t}$ | @gray($F_{t+1}$) | @gray($G_{t+1}$) |
1018981
| ------- | ------- | ------- | ------- | ---------------- | ---------------- |
1019982
| 0 | 0 | 0 | 0 | @gray(0) | @gray(0) |
@@ -1037,6 +1000,7 @@ In der traditionellen Darstellung zeigt sich diese wie folgt:
10371000

10381001
Wir entscheiden uns für einen D Flip-Flop für die Realisierung. Die entsprechende invertierte Wahrheitstafel haben Sie zwischenzeitlich im Kopf:
10391002

1003+
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
10401004
| $Q(t)$ | $Q(t+1)$ | $D$ |
10411005
| ------ | -------- | --- |
10421006
| $0$ | $0$ | $0$ |
@@ -1046,6 +1010,7 @@ Wir entscheiden uns für einen D Flip-Flop für die Realisierung. Die entspreche
10461010

10471011
Damit lässt sich die Zustandsübergangstabelle entsprechend einfach um die zugehörige Eingangsbelegung ergänzen. Für die D-Flip-Flops ist dies einfach eine Kopie der Zustandsspalten.
10481012

1013+
<!-- data-type="none" style="table-layout: fixed; max-width:460px;"-->
10491014
| $F_{t}$ | $G_{t}$ | $A_{t}$ | $B_{t}$ | @gray($F_{t+1}$) | @gray($G_{t+1}$) | $DF$ | $DG$ |
10501015
| ------- | ------- | ------- | ------- | ---------------- | ---------------- | ------- | -------- |
10511016
| 0 | 0 | 0 | 0 | @gray(0) | @gray(0) | 0 | 0 |

0 commit comments

Comments
 (0)