Progetto in Circuit Maker - AA 2008-09

Quest'anno dovete realizzare una macchina sequenziale in CircuitMaker, che riconosca 3 stringhe di 4 bit ciascuna ottenuta dall'ultima lettera del codice fiscale di uno dei partecipanti al gruppo.

PRENOTATEVI per la consegna ed il test del vostro progetto.

ATTENZIONE: la consegna e valutazione avverrà:

  • 4-2-09 dalle 10 alle 18 nel lab Bessie (quello piccolo nel seminterrato di Via Salaria)
  • 12-2-09 dalle 14 alle 18 nel lab Colossus (quello grande nel seminterrato di Via Salaria)

La macchina sequenziale:

  • ha un solo bit di input
    • usate il componente "Ascii Key" come input
      • l'uscita marcata 1 produce il bit meno significativo che userete come ingresso
      • l'uscita marcata S produce un impulso ogni volta che un tasto viene premuto, e può essere usata come CLOCK per i flip-flop
    • per inserire le sequenze io batterò sequenze di '0' e '1', che hanno il bit meno significativo uguale a 0 e 1 rispettivamente
  • deve riconoscere 3 stringhe da 4 bit ciascuna, anche sovrapposte
    • le tre stringhe di bit da riconoscere sono i 4 meno significativi dell'ultima lettera del vostro CF
    • esempio: se la lettera è A (che ha codice ASCII 0x41) la stringa è 0001
  • la parte combinatoria va realizzata con MUX 8-a-1 oppure con porte logiche
    • ad esempio il componente 74LS251 è un MUX 8-a-1 in cui:
      • gli 8 ingressi hanno nome I0..I7
      • i 3 selettori hanno nome S0 S1 S2
      • l'ingresso OE abilita il componente quando è posto a ZERO
      • sono disponibili sia l'uscita normale Y che quella negata
  • il numero di stati varia da 5 a 9
    • quindi il numero di FF è 3 o 4
    • se avete meno di 5 stati vi devo cambiare io una delle stringhe, non verranno accettati automi con 4 stati o meno
    • se avete 9 stati avrete bisogno di 4 FF e potete usare 2 MUX 8-a-1 in parallelo per simularne uno da 16 ingressi
      • usate 3 bit come selettori per entrambi i MUX
      • usate il 4° bit per abilitare il primo o il secondo MUX (con l'ingresso marcato OE)
      • le uscite Y dei due MUX vanno in OR
      • il 4° FF è un D
      • NOTA con 9 stati dovreste avere solo una riga della tabella di transizione che cade nel secondo MUX, per cui potete anche evitare di usare il secondo MUX ed realizzare direttamente la funzione logica corrispondente a quella transizione
    • se il numero dei FF è 3, è VIETATO usare la tecnica dei 2 MUX per ottenere un mux 16-a-1 (sarebbe troppo facile)
  • La macchina deve avere 3 lucette diverse, di cui se ne deve accendere solo una per indicare quale delle tre stringhe in input è stata riconosciuta

ATTENZIONE

  • Notate che in Circuit Maker il FF di tipo SR non ha l'ingresso di clock, per cui aggiungetelo voi come abbiamo visto a lezione (trasformazione di un latch in un gated-latch)
  • Se vi serve di generare un segnale logico costante (0 o 1) usate il componente "Logic switch"
  • State attenti che il FF JK ha il clock negato per cui se necessario inserite un NOT tra il tasto e il flipflop
  • i tempi di propagazione nelle porte del vostro circuito potrebbero essere maggiori del tempo che impiega il segnale S dal componente tasto ad arrivare ai flip-flop per cui vi potreste trovare con il circuito che reagisce in ritardo (alla pigiata di tasto successiva). Per risolvere questa situazione inserite una catena di buffer o di coppie di not per aggiungere al segnale di clock il ritardo necessario ad arrivare ai flip-flop quando i segnali di eccitazione sono già arrivati.

Per sapere quali FF dovete usare calcolate resto del numero del vostro gruppo diviso per 8 e guardate nella tabella qui sotto: (ad esempio il gruppo 95 dovrebbe usare i FF indicati alla riga 95%8=7, quindi dovrà usare 3 FF di tipo JK)

Resto 1° FF 2° FF 3° FFSorted ascending
1 SR SR JK
3 SR JK JK
5 JK SR JK
7 JK JK JK
0 SR SR SR
2 SR JK SR
4 JK SR SR
6 JK JK SR

-- AndreaSterbini - 12 Jan 2009

Edit | Attach | Watch | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r7 - 2009-02-02 - AndreaSterbini






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback