Calcolatori elettronici(riconoscitore di una sequenza di bit)

luaneddra1989
Salve a tutti non riesco a costruire un diagramma di stato che mi riconosca la sequenza 1010
Potete spiegarmi come si fa?
non riesco a capire quando uno stato deve tornare allo stato precedente in base agli ingressi... sbaglio a collegarli con le frecce

Risposte
RenzoDF
Prova a postare il pallogramma degli stati in formato FidoCadJ così che poi lo possa correggere, editando il tuo schema.

luaneddra1989

luaneddra1989
da qui non so come proseguire

RenzoDF
Da ogni pallozzo dovranno uscire tante frecce, quanti sono i possibili ingressi, le frecce indicano il collegamento dello stato con i rimanenti stati della macchina a stati finiti. In questo caso dobbiamo avere due frecce in uscita da ogni stato: una per ingresso 0 e una per ingresso 1, ingressi che saranno affiancati dalla corrispondente uscita (x/y), visto che usi la rappresentazione di Mealy.

Il diagramma degli stati dovrebbe quindi essere il seguente,

[fcd="fig.1"][FIDOCAD]
FJC A 0.4
FJC B 0.4
EV 45 45 60 60 0
BE 52 45 52 40 65 38 59 26 0
FCJ 2 0 2 1 0 0
EV 80 45 95 60 0
BE 61 52 68 51 74 51 79 52 0
FCJ 2 0 2 1 0 0
EV 115 45 130 60 0
BE 95 52 105 50 115 52 115 52 0
FCJ 2 0 2 1 0 0
EV 150 45 165 60 0
BE 130 50 140 49 150 50 150 50 0
FCJ 2 0 2 1 0 0
BE 152 58 121 88 86 88 58 59 0
FCJ 2 0 2 1 0 0
LI 30 52 45 52 0
FCJ 2 0 3 2 0 0
LI 45 55 45 55 0
TY 65 44 4 3 0 1 0 * 1/0
TY 101 44 4 3 0 1 0 * 0/0
TY 135 43 4 3 0 1 0 * 1/0
TY 100 74 4 3 0 1 0 * 0/1
TY 64 29 4 3 0 1 0 * 0/0
TY 51 49 4 3 0 0 0 * A
TY 87 50 4 3 0 0 0 * B
TY 122 49 4 3 0 0 0 * C
TY 156 49 4 3 0 0 0 * D
BE 89 44 94 34 98 33 93 24 0
FCJ 2 0 2 1 0 0
BE 124 44 129 34 133 33 128 24 0
FCJ 2 0 2 1 0 0
TY 98 28 4 3 0 1 0 * 1/0
TY 134 27 4 3 0 1 0 * 0/0
BE 160 44 165 34 169 33 164 24 0
FCJ 2 0 2 1 0 0
TY 170 26 4 3 0 1 0 * 1/0
TY 125 17 4 3 0 1 2 * ?
TY 57 18 4 3 0 1 2 * ?
TY 91 17 4 3 0 1 2 * ?
TY 161 17 4 3 0 1 2 * ?[/fcd]

dove ho lasciato indicati, ma non completati (?), i collegamenti mancanti; prova a completare lo schema collegando le frecce al corretto stato e ripostarlo; puoi riciclarlo copiando ed incollarlo il codice FidoCadJ nella finestra di disegno del programma.

RenzoDF
Visto che forse hai ancora dei dubbi, provo a darti una mano collegandono due: il primo loop a sinistra che fa rimanere lo stato in A con ingresso 0, sta ad indicare che dobbiamo per forza aspettare un 1 per cominciare a "riconoscere" la sequenza e solo in quel caso lo stato potrà passare da A a B, il secondo invece va ad indicare che se (una volta raggiunto B) continuiamo a ricevere un 1 in ingresso, possiamo considerare quell'ultimo 1 come inizio sequenza e quindi "aspettiamo" in B l'arrivo del secondo carattere della sequenza, ovvero lo 0 per poter passare da B a C ...

[fcd="fig.2"][FIDOCAD]
FJC A 0.4
FJC B 0.4
EV 40 40 55 55 0
BE 45 40 35 25 60 25 50 40 0
FCJ 2 0 2 1 0 0
EV 75 40 90 55 0
BE 56 47 63 46 69 46 74 47 0
FCJ 2 0 2 1 0 0
EV 110 40 125 55 0
BE 90 47 100 45 110 47 110 47 0
FCJ 2 0 2 1 0 0
EV 145 40 160 55 0
BE 125 45 135 44 145 45 145 45 0
FCJ 2 0 2 1 0 0
BE 147 52 116 82 81 82 53 53 0
FCJ 2 0 2 1 0 0
LI 25 47 40 47 0
FCJ 2 0 3 2 0 0
LI 40 50 40 50 0
TY 78 22 4 3 0 1 0 * 1/0
TY 60 39 4 3 0 1 0 * 1/0
TY 96 39 4 3 0 1 0 * 0/0
TY 130 38 4 3 0 1 0 * 1/0
TY 91 78 4 3 0 1 0 * 0/1
BE 81 40 71 25 96 25 86 40 0
FCJ 2 0 2 1 0 0
TY 44 21 4 3 0 1 0 * 0/0
BE 110 50 100 55 105 65 100 70 0
FCJ 2 0 2 1 0 0
TY 106 57 4 3 0 1 0 * 0/0
BE 147 41 145 30 135 35 135 20 0
FCJ 2 0 2 1 0 0
TY 141 24 4 3 0 1 0 * 1/0
TY 46 44 4 3 0 0 0 * A
TY 82 45 4 3 0 0 0 * B
TY 117 44 4 3 0 0 0 * C
TY 151 44 4 3 0 0 0 * D
TY 135 15 4 3 0 1 2 * ?
TY 95 65 4 3 0 1 2 * ?[/fcd]
Lascio a te i restanti due.

luaneddra1989
purtroppo nn riesco a utilizzare fidocadj.
Quindi C resta in se stesso per 0/0 e D invece torna in B per 1/0 ???

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.