00 19/12/2007 21:54
C'è un difetto di fondo, nella sua soluzione: se avviene più di una sostituzione (X,Y) <- (Y,R), il resto R generato in corrispondenza della prima viene perso (poiché non viene immagazzinato da nessuna parte, salvo il latch in basso, che però è temporaneo). Mettiamoci dal punto di vista del modulo REM, chiamiamo X(0), Y(0) i valori originali e assegniamo degli indici a seconda della iterazione in cui i resti vengono generati:

Fase 1: X(0) -> X, Y(0) -> Y, R = R(1)
Fase 2: Y(0) -> X, R(1) -> Y, R = R(2)
Fase 3: R(1) -> X, R(2) -> Y, etc

ma alla fine della fase 2 il latch contiene R(2), mentre R(1), che alla fase successiva dovrebbe finire sull'ingresso X, adesso non c'è più, perché appunto sostituito da R(2) nel latch. Occorre tener presente, che, in iterazioni successive, un resto R generato all'iterazione n-esima deve essere applicato due volte al modulo REM, un prima volta come operando Y nell'iterazione (n+1)-esima e una seconda volta come operando X nell'iterazione (n+2)-esima.

Quanto alla sua osservazione sulla transizione A -> C nella soluzione pubblicata: no, perché nello stato A (quindi, in una macchina di Mealy, su tutti i rami uscenti dallo stato A) devono comunque essere abilitate le uscite dei due latch-porte; nella transizione da A -> C, essendo attivo XIE, il valore 1 viene trasferito nell'Y-Register (incorrettamente, questo sì, chiamato nel disegno X-Register) e reso disponibile sul bus nello stato C (che si differenzia dallo stato D solo per quale sorgente, latch-porta o registro, viene avviato all'IODB).

Ma lei l'esame lo ha già fatto, com'è che ancora rimugina sui progetti? Non mi dica che la materia comincia ad appassionarla!
[Modificato da pma 19/12/2007 22:00]