Progetto di sistemi digitali controllati da MSF

Giuliano Donzellini, Domenico Ponta

Progetto di un generatore di impulsi programmabile via linea seriale

050310

 

v1.71

Progettare un sistema digitale sincrono in grado di ricevere comandi attraverso una linea seriale e, conseguentemente, generare impulsi la cui durata dipende dalle informazioni contenute nei comandi stessi. I comandi sono costituiti da pacchetti seriali, ricevuti tramite l'ingresso LN, il cui formato è descritto nella figura seguente:

Il pacchetto prevede un bit di start, tre bit di dato D0, D1 e D2, ed infine due bit di stop. Il tempo di bit è pari ad un ciclo di clock, e il cambiamento del bit è sincrono con i fronti di salita del clock CK. La figura seguente mostra l'architettura del sistema, composto da due macchine a stati finiti e alcuni flip-flop:

Il flip-flop D-net, visibile in alto a sinistra, re-sincronizza sul fronte di discesa del clock le sequenze di bit ricevute.

La macchina a stati finiti RX FSM ha il compito di ricevere e decodificare le sequenze re-sincronizzate dal flip-flop. Durante la ricezione di un nuovo pacchetto di dati, la RX FSM memorizza uno dopo l'altro i tre bit di informazione nei tre flip-flop JK-pet (D0 è memorizzato in Q0, D1 in Q1, e D2 in Q2). Se la sequenza ricevuta è valida (ossia i due bit di stop sono ricevuti correttamente a zero), la RX FSM attiva, per la durata di un ciclo di clock, il segnale GO.

L'attivazione del segnale GO copia inoltre sui flip-flop P0, P1 e P2 l'informazione ricevuta. Lo scopo di questa operazione è di permettere al ricevitore RX FSM di ricevere, subito dopo, una nuova sequenza di bit.

La macchina a stati finiti PULSE FSM attende l'attivazione del segnale GO. Quando questo è portato a '1', la PULSE FSM inizia la generazione di un impulso sull'uscita PS, la cui durata è funzione delle uscite dei flip-flop P0 e P1. La durata è definita come T= (2 + P1P0), dove P1P0 è un numero binario (P1 = MSB, P0 = LSB).

Se l'uscita del flip-flop P2 è a '1', la PULSE FSM attiva l'uscita SYN durante l' ultimo ciclo di clock dell'impulso PS, per avvisare che la generazione dell'impulso sta terminando.

Il reset asincrono !Reset forza l'intero sistema in uno stato di riposo, in cui attende l'arrivo di un bit di start sulla linea LN.

Si chiede di progettare e simulare, utilizzando il d-FsM, il ricevitore RX FSM e il generatore di impulso PULSE FSM. Non appena completate le due macchine, si chiede di disegnare nel d-DcS lo schema dell'intero sistema, utilizzando i componenti generati dal d-FsM. Sono disponibili le tracce dei diagrammi ASM di RX FSM e di PULSE FSM, e dello schema completo d-DcS del sistema completo.

Infine, si chiede di simulare l'intero sistema, con la simulazione temporale del d-DcS (potete utilizzare le sequenze di test disponibili nella finestra del diagramma temporale).