• Non ci sono risultati.

Clk128

Nel documento Politecnico di Torino (pagine 106-110)

Capitolo 8. Programmazione scheda DT5550W / A55CIT4

8.2 Clk128

96 il Latch e il ResetD che dovranno essere collegati a vari pin nel diagramma top, in maniera tale da far risultare il diagramma più ordinato avendo meno fili.

In conclusione, il segnale di Latch viene portato fuori sul LEMO 0 e ricevuto in ingresso sul LEMO 2 mentre il segnale di ResetD viene portato fuori sul LEMO 1 e ricevuto in ingresso sul LEMO 3.

97 Fig.8.10. Blocco Gate and Delay.

con il DDS, oppure nel caso in cui risultassero degli errori durante la generazione del segnale in termini di larghezza, il segnale di Latch fuoriuscente da quel blocco avrà sicuramente la morfologia desiderata. Nel subdiagram in questione, il segnale di Latch viene collegato al pin “In” del blocco GATE and DELAY. Il pin “clk” rimane privo di collegamento, lasciando, quindi, il valore di default di 160 MHz. Al pin “GATE” viene dato il valore di 16, indicando che il segnale di uscita dovrà rimanere alto per 100 ns. Per quanto riguarda il pin “DELAY”, dato che non si ha interesse nel dare un ritardo al Latch, gli viene assegnato il valore di default pari a 0. Tuttavia, occorre f are una piccola digressione riguardo il pin “DELAY”. Effettuando dei test per capire se, dando un ritardo pari a 0 a quel pin, il segnale di uscita uscisse effettivamente senza ritardo oppure ci fossero dei ritardi fisiologici, si è giunti alla seguente conclusione: il blocco GATE And DELAY, nel momento in cui viene collegato al suo pin “DELAY” il valore 0, assegna un ritardo al segnale di uscita dal blocco, rispetto a quello di ingresso, pari a circa 30 ns. Nella Fig. 8.11 è illustrato ciò che è stato appena detto. In un diagramma di prova è stato mandato un segnale proveniente da un Pul se Generator in ingresso al GATE And DELAY, il cui valore in ingresso al pin “DELAY” era pari a 0.

Il segnale di uscita e il segnale di ingresso sono stati mandati in output su due LEMO diversi e visualizzati sull’oscilloscopio. Come si può vedere dalla figura, avendo impostato la griglia orizzontale dello strumento a passi di 10 ns per divisione, il segnale di uscita (rosso) ha il f ronte di salita all’incirca 30 ns dopo il fronte di salita del segnale d’ingresso (giallo). Inoltre, bisogna aggiungere che, ponendo 0 in ingresso al pin “GATE”, non si ottiene in uscita un segnale nullo, bensì un segnale largo quanto un ciclo di clock che, per un clock di 160 MHz, risulta essere circa 6,25 ns. Quindi, nel subdiagram “Clk128” si ottiene dall’uscita del GATE AND DELAY un segnale di Latch largo 106,25 ns circa e ritardato rispetto a quello di ingresso di circa 30 ns.

98 Fig.8.11. Ritardo di 30 ns dato dal blocco "Gate and Delay".

Fig.8.12. Blocco Timer.

Queste differenze dalla condizione ideale, tuttavia, non creano alcun problema all’acquisizione dati.

Tornando alla spiegazione del funzionamento del subdiagram, viene di seguito presentato il blocco di maggiore importanza di questa sezione, ossia il Timer (Fig. 8.12). Questo blocco ha la f unzione di contare le transizioni di un segnale che viene portato in ingresso al pin “CLK” e confrontarle con il valore collegato in ingresso al pin “Target”. Finché il pin “Enable” rimane a livello logico alto, il blocco continua a contare mantenendo il pin di uscita “Running” fisso a livello logico alto.

Raggiunto il valore di target, il pin di uscita “Expired”, che finora era rimasto basso, va a livello alto. A questo punto, se in ingresso al pin “Periodic” c’è un 1 logico, il numero di conteggi viene automaticamente riazzerato e il blocco ricomincia a contare; se in ingresso a “Periodic” c’è uno 0 logico, il blocco non ricomincia il conteggio e l’uscita “Running” passa da 1 a 0. Il conteggio, inoltre, può essere resettato e riavviato tramite il pin “Reset” che resetta il conteggio quando vede

99 una transizione da 0 a 1 e ricomincia a contare quando passa da 1 a 0. Dalla Fig. 8.9 si vede che il segnale le cui transizioni vengono contate è quello uscente dal Pulse Generator. Il target impostato è pari a 128. Inoltre, si nota come il segnale di Latch che esce dal GATE And DELAY vada in ingresso sia al pin di reset del Pulse Generator che al pin di reset del Timer. In questo modo le due azioni di generazione della forma d’onda dal Pulse Generator e di conteggio delle sue transizioni da livello logico basso ad alto, effettuato dal Timer, vengono sincronizzate al segnale di Lat ch e f atte partire nello stesso istante grazie alla funzione di reset. In particolare, le due operazioni di generazione della forma d’onda e relativo conteggio partiranno in corrispondenza del fronte di discesa del Latch. Dopodiché, l’uscita “Running” del Timer, che è sempre pari a 1 durante il conteggio fino al raggiungimento delle 128 transizioni, viene messa in AND con il segnale in uscita del Pulse Generator. In questo modo, vengono generati 128 impulsi distanziati tra loro di 200 ns, i quali partono dopo il fronte di discesa del segnale di Latch. Dopo il 128esimo impulso non ne vengono generati altri, grazie al fatto che il pin “Periodic” è stato lasciato al suo valore di def ault, ovvero 0. Il conteggio, e quindi la generazione dei 128 impulsi, ricomincerà al successivo impulso di Latch. Inoltre, anche il pin “Enable” è lasciato al suo valore di default di 1.

L’ultimo concetto da spiegare è l’inserimento del blocco “DELAY” tra l’output del Pulse Generator e il primo ingresso della porta logica AND. In un diagramma di prova, per testare il funzionamento della generazione dei 128 impulsi, è stato inserito come target al blocco Timer il valore 8, in modo tale che sarebbe stato più semplice visualizzare sull’oscilloscopio solo 8 impulsi piuttosto che 128.

Non inserendo il blocco “DELAY”, ciò che è venuto fuori portando l’uscita della porta AND su un

Fig.8.13. Prova di generazione di 8 impulsi.

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.

Nel documento Politecnico di Torino (pagine 106-110)