• Non ci sono risultati.

Acquisizione

Nel documento Politecnico di Torino (pagine 110-113)

Capitolo 8. Programmazione scheda DT5550W / A55CIT4

8.3 Acquisizione

100 LEMO è quello che viene mostrato in Fig. 8.13. Dalla figura è possibile notare l’impulso di Latch (giallo) seguito dagli impulsi (azzurri), i quali non sono 8 come ci si aspettava, bensì 9. Il nono impulso risulta essere più corto rispetto a quelli precedenti. Questa situazione è dovuta al f atto che sono stati messi in ingresso alla porta AND due segnali dipendenti dallo stesso blocco (il Pulse Generator), dove, però, uno entra direttamente nella porta logica, mentre l’altro passa attraverso il blocco Timer che ha un suo tempo di lavoro e quindi impone un piccolo fisiologico ritardo al segnale. Si viene a creare la condizione rappresentata in Fig. 8.14. Nella suddetta figura sono rappresentati IN0 e IN1, che sono gli input della porta AND, e OUT, che è l’output della stessa porta. IN1 sarebbe il segnale in uscita dal pin “Running” del Timer, che è sempre alto finché il blocco conta. A causa di ciò che è stato detto prima, si può notare come il segnale di Running si abbassi quando in IN0 è già partito il nono impulso; di conseguenza, l’OUT sarà fatto in quel modo rappresentato in figura e come è stato visto anche sull’oscilloscopio.

Per evitare la formazione dell’ultimo impulso in più è necessario, quindi, inserire un ritardo al segnale in uscita dal Pulse Generator di pochi cicli di clock. Attraverso varie prove sperimentali la scelta è stata quella di inserire un ritardo pari a 7 cicli di clock, considerando sempre un clock di 160 MHz (al pin “CLK” del blocco DELAY viene lasciato il valore di default che sarebbe il clock da 160 MHz). Inserendo questo ritardo si può osservare dalla Fig. 8.15 che viene generato l’esatto numero di impulsi; tuttavia, il primo impulso si è leggermente spostato rispetto al fronte di discesa del Latch. In ogni caso, quest’ultimo effetto non va ad incidere sul corretto funzionamento dell’acquisizione dati.

101 Fig.8.15. Corretta generazione degli impulsi dopo l'inserimento del blocco DELAY.

Fig.8.16. Subdiagram "Acquisizione".

Fig.8.17. Blocco contatore sincrono (rising edge).

102 lasciato il clock di default (160 MHz). Il conteggio dell’input avviene se il pin “GATE” è lasciato a livello logico alto, il quale è il valore di default di quel pin. Vi è, poi, l’output “Counts ” che dà in uscita il valore numerico di impulsi contati. Tutti i contatori su SCI-Compiler sono contatori a 32 bit. Quando il valore del conteggio supera il massimo valore esprimibile con 32 bit, il pin di output

“Overflow” genera un impulso. Inoltre, il pin “Reset”, quando è a livello logico alto, può essere utilizzato per azzerare l’uscita del contatore e far ripartire il conteggio. Nel subdiagram

“Acquisizione” è collegato al pin “In” del contatore una Schematic Port In denominata “Trig”. Essa rappresenta un canale del Citiroc. Viene rappresentato in questo modo perché il canale viene collegato all’ingresso del contatore da un altro subdiagram del programma che non è ancora stato introdotto. Dopodiché è possibile vedere il comando di ResetD che va in ingresso ad una porta OR, il cui secondo ingresso è l’overflow del contatore. L’uscita della porta logica viene collegata al pin

“Reset” del contatore. In questo modo si è implementato un meccanismo che permette di resettare il conteggio del contatore sia attraverso il comando asincrono ResetD, che grazie all’overflow del contatore che indica il valore massimo esprimibile raggiunto per quel blocco.

Come è già stato detto in precedenza, i dati trattati nella scheda, che descrivono il passaggio delle particelle nel monitor, così come lo era per il Tera06, sono a 16 bit. Per questo motivo, il valore in uscita dal contatore a 32 bit, viene fatto passare attraverso il blocco “SLICE”. Questo ha la capacità di estrarre un qualsiasi numero di bit susseguenti da una parola binaria. Nel caso in questione, gli vengono dati in ingresso i 32 bit del contatore per ottenere in uscita i primi 16 (a partire dai meno significativi) e rispettare la specifica relativa al numero di bit dei dati.

I 16 bit sono portati in ingresso in un Latch D. Questo blocco funziona nel seguente modo: riceve un segnale di ingresso e un segnale di clock. Quando il clock è a livello logico basso, l'uscita non cambia e mantiene il valore precedente, indipendentemente dalle variazioni del segnale di in gresso.

Quando, invece, il segnale di clock è a livello logico alto, l'ingresso si propaga direttamente attraverso il blocco e viene riportato in uscita. L'ingresso del blocco è il pin “IN”, il clock è il pin

“CLK”, mentre il pin “OUT” rappresenta il segnale di uscita. Il funzionamento appena descritto è rappresentato in Fig. 8.18.

E’ stato utilizzato il pin “CE” del blocco Latch D il quale serve ad abilitare la generazione dell’uscita quando è a livello logico alto. A questo pin è stato collegato il comand o di Latch. In questo modo, nei 100 ns in cui il segnale di Latch è alto, il blocco Latch D funziona normalmente;

quindi, funziona in trasparenza, riportando in uscita i dati che vede in ingresso quando il clock è a livello logico alto. Anche in questo blocco è stato lasciato il clock di default da 160 MHz. Dopo 100 ns il Latch si abbassa e, quindi, l’uscita non varia fino al comando di Latch successivo. Quando il

Fig.8.18. Funzionamento Latch D.

103 segnale di Latch si abbassa, in uscita dal Latch D, rimane l’ultimo dato a 16 bit che era stato mandato in uscita dal blocco stesso un attimo prima che il segnale di Latch si abbassasse. Quando il segnale di Latch ritorna a livello logico alto, l’uscita del Latch D torna nuovamente a variare in base a ciò che gli arriva dal contatore. Questo certifica il fatto che il segnale di Latch è, eff ettivamente, coinvolto nell’operazione di latch dei canali di acquisizione, come era stato anticipato nella parte introduttiva del capitolo, oltre che nell’avvio dell’intera acquisizione dati. L’uscita del Latch D è collegata ad una Schematic Port Out chiamata “Canale”, la quale è mandata in uscita dal subdiagram e verrà utilizzata in un altro subdiagram non ancora commentato.

Nel documento Politecnico di Torino (pagine 110-113)