Progetto di sistemi digitali controllati da MSF

Giuliano Donzellini, Domenico Ponta

Progetto di un ricevitore seriale a due bit

050340

 

v2.41

Il dispositivo nella figura seguente è un ricevitore di linea seriale. La Macchina a Stati finiti (MSF) riceve, tramite la linea di ingresso LIN, una sequenza sincrona di bit organizzata in pacchetti di 4 bit. La MSF genera le uscite OK ed ERR, e controlla due flip-flop JK-pet attraverso le linee J0, K0, J1 e K1 (un click sulla figura aprirà nell'editor del Deeds-DcS lo schema da completare.

LIN si trova al valore '0' in assenza di trasmissione (due pacchetti consecutivi sono distanziati tra di loro da almeno tre cicli di clock).

Il Bit di Start di ogni pacchetto è sempre a '1', mentre il Bit di Stop dovrebbe essere sempre a '0'. Il secondo e il terzo bit trasportano l'informazione che deve essere trasferita, nell'ordine, alle uscite Q0 e Q1, controllando propriamente i due flip-flop. I valori trasferiti su Q0 e Q1 devono essere mantenuti fino alla ricezione di un nuovo pacchetto.

Se un pacchetto è ricevuto correttamente (ossia, il Bit di Stop Bit risulta a '0') la MSF attiva l'uscita OK, altrimenti attiva l'uscita ERR. I valori di OK e ERR sono mantenuti fino alla ricezione di un nuovo pacchetto sulla linea LIN.

La linea !Reset, quando attivata a '0', forza la MSF nel suo stato iniziale.

Si richiede di progettare la MSF utilizzando il simulatore Deeds-FsM (qui è disponibile il file della MSF da completare).

Quindi, si simuli il comportamento dell'intero sistema utilizzando il simulatore Deeds-DcS, con la MSF importata come componente.

Nella figura seguente suggeriamo una possibile sequenza di test per la linea LIN (la sequenza è già disponibile nella finestra del diagramma temporale del simulatore Deeds-DcS):

Successivamente, si sintetizzi la MSF e si ridisegni lo schema sostituendo il componente MSF con l'effettivo circuito risultante dalla sintesi. Si verifichi il comportamento del sistema utilizzando la simulazione temporale (utilizzando la stessa sequenza su LIN impostata in precedenza).

Infine, si riportino alcuni commenti circa le differenze riscontrate nel comportamento temporale delle due differenti versioni (se presenti).