Tris Il progetto si propone di simulare il gioco del Tris: a turno i giocatori scrivono il proprio simbolo (per comodità useremo ‘0’ e ‘1’) all’interno di una delle caselle di una griglia 3x3. Ottiene la vittoria il primo giocatore che riesce a disporre tre dei suoi simboli in una linea retta verticale, orizzontale o diagonale. N.B. In questa simulazione è possibile per i giocatori sovrascrivere una casella contenente un altro simbolo. Se un giocatore cerca di scrivere al di fuori della griglia fornendo coordinate sbagliate perderà il proprio turno (le coordinate per riga e colonna sono comprese tra “00” e “10”). Ciascuna casella del gioco viene simulata da un Flip-Flop D che possiede due uscite significative : -Q0 : indica il segno inserito nella casella -Q1 : bit di controllo, il valore è ‘1’ se la casella è stata scritta dopo l’ultimo RESET Le 8 linee evidenziate nel disegno rappresentano le 8 possibili combinazioni vincenti del gioco del Tris Ciascuna combinazione vittoriosa viene analizzata da un blocco di controlli logici identico a quello evidenziato in figura: un NOR3 ed un AND3 sulle uscite Q0 dei FFD, posti a loro volta in OR, per controllare l’uguaglianza dei segni, e un AND3 sulle uscite Q1 per controllare la validità dei segni (ovvero che le “caselle” siano state scritte). L’OR di queste 8 combinazioni segnala quindi il termine del gioco (il segnale in output è in logica negativa!). SIMULAZIONE BEHAVIORAL Come è possibile osservare nelle due parti di simulazione evidenziate, il segnale Victory (in logica negativa) passa a ‘0’ non appena si presenta una combinazione vincente, e finché il segnale di RESET non viene posto a ‘1’ qualsiasi ingresso successivo alla vittoria viene ignorato dal sistema. Quando si presenta una “vittoria” il segnale Winner indica quale tra i due giocatori abbia vinto! SIMULAZIONE POST-ROUTE La simulazione Post-Route si presenta sostanzialmente identica a quella Behavioral, con l’unica differenza che il segnale Winner presenta un ritardo di circa 7 ns dal fronte positivo di Input_enable, mentre il segnale Victory un ritardo di 9 ns.