Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale d’uscita Z può modificare il suo valore solo quando si verifica o un fronte di salita di X1 o un fronte di salita di X2: nel primo caso si deve avere Z=1, nel secondo Z=0. 1 Si tratta di una rete di tipo Moore in quanto l’uscita dipende unicamente dagli stati. Di seguito sono riportate la tabella degli stati e la tabella triangolare. X1 X2 00 01 11 10 A B A E - B 0 C BD H - C B 1 D BD ---- C - E C D 0 E ---- CF D A - C D E A E F - F - G F B G H G F - 1 H H E - B 1 0 CF F CF G CF ---- H ---- GE GE F G C A D E α: [AE] β: [BH] δ: [FG] γ: [CD] 2 X1 X2 00 01 11 10 α α α δ β Β γ β α γ α α δ β δ Tabella delle transizioni ridotta. X1 X2 00 01 11 10 0 Y1 Y2 α: 00 00 00 10 11 β 1 γ: 01 00 00 01 01 γ γ 0 Β: 11 11 00 01 11 δ β 1 δ: 10 11 10 10 11 Si può vedere che ci sono delle corse critiche causate dalle transizioni indicate dalle frecce rosse. Nel caso in cui ci trovassimo nello stato 11 stabile per ingressi 00 e si presentasse l’ingresso X1=0 e X2=1, ci dovremmo portare allo stato 00. Si possono quindi presentare 2 casi: se cambia prima Y1 la rete si porta nello stato 00 (stabile con configurazioni d’ingresso 01) passando per lo stato 01 (freccia verde). Se cambia prima Y2 si arriva allo stato 10(freccia gialla tratteggiata), stabile con quelle configurazioni d’ingresso! Discorso analogo si può fare con la seconda corsa critica. 3 Al fine di eliminare le corse è opportuno aggiungere un’ulteriore variabile di stato (codifica ridondante) e ricodificare gli stati. TABELLA DELLE TRANSIZIONI X1 X2 00 01 11 10 α: 000 000 000 010 001 0 β: 001 001 000 101 001 1 011 001 -- -- 001 - δ : 010 011 010 010 011 1 γ : 100 000 000 100 100 0 101 -- -- 100 -- - 111 -- -- -- -- - 110 -- -- -- -- - Y3 Y2 Y1 4 MAPPE DI KARNAUGH E SINTESI X1 X2 X1 X2 Y2 Y1 00 01 11 10 Y2 Y1 00 01 11 10 α 00 000 000 010 001 γ 00 000 000 100 100 β 01 001 000 101 001 01 -- -- 100 -- 11 001 δ 10 011 -- -- 001 11 -- -- -- -- 010 010 011 10 -- -- -- -- y3=0 y3=1 USCITA: Y2 Y1 Y3 00 01 11 10 0 0 1 - 1 1 0 - - - Z = Y1 + Y2 Y1 = X1!X2!Y3 + X1Y1!Y3 + !X2Y1 + !X2Y2 Y2 = Y2!Y1 + X1X2!Y1!Y3 Y3 = X1X2Y1 + X1Y3 5 SCHEMATICO 6 TESTBENCH 1/3 7 TESTBENCH 2/3 8 TESTBENCH 3/3 9 SIMULAZIONE BEHAVIOURAL Nella simulazione behavioural, come si può notare dalle zone evidenziate, le variabili di stato cambiano contemporaneamente senza passare per stati temporanei poiché in questo tipo di simulazione non si tiene conto che le variabili di stato di fatto commutano in istanti diversi, anche se molto brevi. Inoltre l’uscita cambia istantaneamente in quanto non viene considerato il ritardo causato dalla complessità della rete e dalla tecnologia del dispositivo. 10 SIMULAZIONE POST-ROUTE 1/2 Poiché questa simulazione è di tipo post-route, vengono considerati i ritardi sulle uscite causati dalla complessità della rete e dalla tecnologia del tipo di FPGA scelto. Il ritardo è di circa 10 ns. 11 SIMULAZIONE POST-ROUTE 2/2 *in questo caso inizialmente la rete si trova nello stato y3=0 y2=0 y1=1 stabile per configurazioni d’ingresso X1=1 e X2=0. Ad un certo istante X2 commuta quindi la rete, per portarsi allo stato y3=1 y2=0 y1=0, passa per un tempuscolo attraverso lo stato temporaneo, y3=1 Y2=0 y1=1. Ora le variabili di stato non cambiano contemporaneamente, ma passano per stati temporanei. 12