matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenTechnische InformatikAutomatensynthese
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Technische Informatik" - Automatensynthese
Automatensynthese < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Technische Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Automatensynthese: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:27 Mo 03.12.2007
Autor: dump_0

Hallo.

Ich habe einen Moore-Automaten, bereits in minimierter Form, der eine Paketerkennungsmaschine realisieren soll (2 Lichtschranken LS1 und LS2, es gibt kurze und lange Pakete, wobei der Abstand zwischen LS1 und LS2 größer ist als die Länge eines kurzen und kleiner als die Länge eines langen Pakets, d.h. bei einem langen Paket sind beide Lichtschranken = 1 - 1 steht für Gegenstand erkannt, bei einem kurzen Paket ist erst LS1 = 1, dann ist LS1 = 0 und anschließend wird LS2 = 1 --- die Maschine soll bei einem kurzen Paket die Ausgabe 1 liefern, d.h. wenn LS1 von 1 auf 0 springt und LS2 noch 0 ist. Springt dann LS2 allerdings auf 1, wird A wieder 0) und soll diesen nun synthetisieren und anschließend mit einem Programm, z.B. DigitalSimulator, simulieren.

[Dateianhang nicht öffentlich]

Leider habe ich nicht wirklich Ahnung wie ich jetzt vorgehen soll. Unser Prof. hat in der Vorlesung einen Synthese-Algorithmus vorgegeben der in etwa so lautet:

1. Kodierung von Ein-, Ausgabe- und Zustandsmenge
2. Erstellen der Wertetabellen und DNFs für Ausgabe- und Zustandüberführungsfunktion
3. evtuell Vereinfachen der DNFs bzw. Schaltnetze.

1. habe ich gemacht: 3 Zustände [mm] $Z_0, \ldots, Z_2$ [/mm] mit [mm] $code(Z_0) [/mm] = 00, [mm] code(Z_1) [/mm] = 01, [mm] code(Z_2) [/mm] = 10$. Das Eingabealphabet besteht aus 0 (Lichtschranke hat nichts erkannt) und 1 (Lichtschranke hat Gegenstand erkannt). Das Ausgabealphabet ebenfalls aus 0 (kein kurzes Paket erkannt) und 1 (kurzes Paket erkannt).

Wie es nun weitergehen soll ist mir jedoch unklar.
Vielleicht kann mir jemand weiterhelfen.


Schöne Grüße
[mm] dump_0 [/mm]

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
        
Bezug
Automatensynthese: Antwort
Status: (Antwort) fertig Status 
Datum: 10:30 Di 04.12.2007
Autor: Martin243

Hallo,

der Automatengraph sieht schon mal nicht schlecht aus. Allerdings würde ich für jede Lichtschranke ein eigenes Bit nehmen.

Bei den Tabellen gehst du folgendermaßen vor:
Übergangstabelle:
Du erstellt eine Tabelle mit Spalten für alle Zustands-, Eingangs- und Folgezustandsbits. Dann trägst du jede in Frage kommende Kombination aus Zustand und Eingansbelegung und den sich daraus ergebenden Folgezustand, wie man ihn aus dem Graph ablesen kann.
Im Fall der zwei Lichtschrankenbits würdest du so anfangen:
z1  z0  l1  l2  |  z1' z0'
 0   0   0  0   |   0   0
 0   0   1  0   |   0   1
 0   0   *  1   |   0   1
usw.
Das Sternchen bedeutet 0 oder 1, weil es hier egal ist.
Die Kombinationen, die nicht eintreten sollten, kannst du als Don't-Care ansehen.

Für die Ausgabetabelle machst du eine einfachere Tabelle, weil du einen Moore-Automaten hast. Die Spalten umfassen lediglich die Zustandsbits und das eine Ausgabebit


Die Vereinfachung per KV-Diagramm oder Quine-McCluskey sollte wieder klar sein, oder?


Gruß
Martin

Bezug
                
Bezug
Automatensynthese: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:11 Di 04.12.2007
Autor: dump_0

Hallo Martin,
erstmal vielen Dank für deine Antwort.

Ich hab die Zustandsübergangstabelle erstellt, hier ein Bild:

[Dateianhang nicht öffentlich]

Wir hatten vor 2 Jahren mal was in der Vorlesung, dort haben wir dann DNFs aus den Tabellen erstellt, d.h. hier müsste ich je eine DNF für [mm] Z_1' [/mm] und [mm] Z_2' [/mm] erstellen. Wir hatten aber auch was gehabt mit Karanaugh-Plänen, das habe ich mal versucht, zumindest erstmal für [mm] Z_1' [/mm] und bin zu folgender Gleichung gekommen: [mm] $Z_1' [/mm] = [mm] (\overline{LS_1} \wedge \overline{LS_2} \wedge \overline{Z_1} \wedge Z_2) \vee (\overline{LS_1} \wedge \overline{LS_2} \wedge Z_1 \wedge \overline{Z_2})$. [/mm]

Allerdings bin ich mir hier völlig unsicher ob das richtig ist, da es schon eine halbe Ewigkeit her ist, seitdem ich das das letzte mal gemacht hab.

Bei der Ausgabetabelle hätte ich dann also nur 3 Spalten und 3 Zeilen, wobei in jeder Zeile der Zustand steht und bei [mm] \lambda [/mm] jeweils 1 oder 0 oder?


Grüße
[mm] dump_0 [/mm]

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
Bezug
                        
Bezug
Automatensynthese: Antwort
Status: (Antwort) fertig Status 
Datum: 16:45 Di 04.12.2007
Autor: Martin243

Hallo,

zuerst zu Karnaugh: Mir scheint, du hast die Don't-Care-Fälle nicht berücksichtigt. Da du bei [mm] z_1z_2=11 [/mm] alles mögliche einsetzen kannst, kannst du die Blöcke jeweils auf zwei Kästchen des Diagramms ausweiten.

Aber darüber können wir noch reden. Jetzt noch zur Tabelle:
Was ich auf jeden Fall für falsch halte sind die Zeilen 2,4 und 7.
Dank der Zeilen 2 und 4 kann der Automat in den zweiten Zustand springen. Wenn da plötzlich die Lichtschranken ausgehen, dann springt er in den dritten Zustand und detektiert fälschlicherweise ein kurzes Paket!
Zeile 7 bewirkt, dass der Automat bei augelöster Lichtschranke 1 in den 1. Zustand zurückspringt. Das darf er nicht, sondern er muss im zweiten Zustand verharren, um ggf. das kurze Paket zu detektieren.

Ein anderes Thema sind die Zeilen 6, 11 und 12. Hierbei handelt es sich um "unmögliche" Fälle, also um Belegungen, die eigentlich nicht auftreten dürften. Für deren Behandlung gibt es drei Möglichkeiten:
1. Man springt (wie du es machst) in einen bestimmten Zustand. Das bedeutet: Man weiß zwar nicht, warum der Fehler aufgetaucht ist, aber man tut so, als wäre nichts passiert. Das ist eine Pseudofehlerbehandung, die die Maschine zwar am Laufen hält, aber man nimmt den Fehler bewusst in Kauf.
2. Man führt einen vierten Zustand ein, den Fehlerzustand. Dort springt der Automat in diesen Fällen hin und bleibt dort, bis jemand den Stecker zieht oder das Reset-Knöpfchen drückt. Das ist bei Maschinen natürlich das Sicherste.
3. (mein Favorit) Man geht bei einer idealen Maschine davon aus, dass diese Fälle wirklich nicht eintreten und lässt diese Zeilen in der Tabelle entweder weg oder füllt [mm] z_1' [/mm] und [mm] z_2' [/mm] in diesen Fällen mit Don't-Cares. Das ermöglicht evtl. eine weitere Vereinfachung der Funktionen.

Also beschäftige dich auf jeden Fall mit den Sachen, die ich als Fehler bezeichnet habe. Die Behandlung der "unmöglichen" Fälle sei dir überlassen.
Und beachte bei den KV-Diagrammen etwaige Don't-Care-Fälle!


Gruß
Martin

Bezug
                                
Bezug
Automatensynthese: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:31 Di 04.12.2007
Autor: dump_0

Hallo,

danke für die Hinweise, ich habe die Tabelle (hoffentlich richtig) korrigiert:

[Dateianhang nicht öffentlich]

Ich habe bei den unmöglichen Fällen deine 3. Variante gewählt, Don't-Care-Stellen (Schreibweise: [mm] $Z_1 Z_2 LS_1 LS_2$): [/mm] 0101, 1010, 1011, 1100, 1101, 1110, 1111.

EDIT: [mm] $Z_1' [/mm] = [mm] (Z_2 \wedge \overline{LS_1}) \vee (Z_1 \wedge \overline{LS_2})$ [/mm]

[mm] $Z_2' [/mm] = [mm] (Z_1 \wedge LS_2) \vee (\overline{Z_2} \wedge LS_1 \wedge \overline{LS_2})$ [/mm]

und [mm] $\lambda [/mm] = [mm] (Z_1 \wedge \overline{Z_2})$ [/mm]

Ich hoffe diesmal stimmen die DNFs und ich habe nichts vergessen oder außer Acht gelassen.


Gruß
[mm] dump_0 [/mm]

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
Bezug
                                        
Bezug
Automatensynthese: Antwort
Status: (Antwort) fertig Status 
Datum: 18:17 Di 04.12.2007
Autor: Martin243

Hallo,

bei [mm] Z_1' [/mm] und [mm] $\lambda$ [/mm] stimme ich dir zu, aber für [mm] Z_2' [/mm] habe ich [mm] $L_1 \overline{L_2}$ [/mm] raus. Das sind in der Tabelle nur zwei Einsen. Mit den beiden Don't-Care-Fällen für 1101 und 1111 bekomme ich so eine ganze Reihe, so dass die Abhängigkeit von den Zuständen wegfällt (sieht man auch in der Tabelle, du kannst die Zustandssplaten zudecken und bekommst trotzdem eine gültige Funktion für [mm] Z_2'). [/mm]

In der Tabelle solltest du die Don't-Care-Fälle vielleicht mit * oder - kenntlich machen oder die Zeilen ganz weglassen...


Gruß
Martin

Bezug
                                                
Bezug
Automatensynthese: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 18:53 Di 04.12.2007
Autor: dump_0

Hallo Martin,

du hast natürlich Recht mit [mm] Z_2', [/mm] ich habe [mm] $Z_1 Z_2 [/mm] = 01$ wohl mit [mm] $Z_1 Z_2 [/mm] = 10$ im Karnaugh-Plan vertauscht, in der Tabelle stimmt es ja.

Ich danke dir für deine Mühe und Zeit mir zu helfen :-)

Jetzt muss ich das Ganze nur noch irgendwie in einem Schaltplan mit Gattern und Flip Flops verwirklichen, wirklich Ahnung habe ich zwar nicht, aber mal sehen.


EDIT: Ich habe nun einmal versucht den Automaten in ein Schaltnetz umzusetzen, herausgekommen ist bisher das hier:

[Dateianhang nicht öffentlich]


Gruß
[mm] dump_0 [/mm]

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
Bezug
                                                        
Bezug
Automatensynthese: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:00 Fr 07.12.2007
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Technische Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]