Trigger di Molteplicità
Dipartimento di Fisica
Corso di Elettronica Digitale
01/02/2017
Progetto di un trigger di molteplicità per un esperimento di fisica delle alte energie
sul modello di quello adoperato nell’esperimento HELIOS al CERN (1986)
Studente: Claudio Quaranta – [email protected]
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 2
• 384 pad totali;
• 4 quadranti (96 pad);
• 12 settori (3 per quadrante);
• 32 anelli (32 pad per settore);
• 16 connettori, 1 ogni 24 pad (4
connettori per quadrante).
(N.B.: nell’esperimento originale un singolo
connettore raggruppava i pad di due anelli, dai più
interni ai più esterni. Nella presente dissertazione
supporremo, invece, che raggruppi i pad interni a
uno stesso quadrante, così 4 connettori contengono
l’informazione dei 96 pad di un quadrante)
Il Rivelatore (Ring Counter)
96 pad
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 3
Amplificazione del Segnale
Il segnale analogico proveniente da ogni pad passa in una serie di amplificatori che ne modificano
forma e ampiezza. Successivamente viene inviato all’elettronica per la conversione digitale e al trigger
di molteplicità. In questo secondo caso passa attraverso un discriminatore a soglia che lo trasforma in
un segnale logico: 1 se il segnale supera la soglia, 0 altrimenti.
Il Trigger
• Trigger di molteplicità totale per un
singolo RC;
• Sbilanciamento di uno o più quadranti;
• 384 canali per i dati in ingresso (dal
discriminatore);
• Tre soglie impostabili: una per la
molteplicità totale (THR) e due per lo
sbilanciamento in eccesso e in difetto
(Q_THR_MAX e QTHR_MIN);
• Possibilità di reset asincrono con l’imput
di CLEAR (attivo basso);
• Segnale di BUSY, attivo quando non
può ricevere dati;
• Attivazione sul fronte di salita di un
segnale di pretrigger (PRE_TRIG) da
ricevere in contemporanea con i dati.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 4
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 5
Schema a Blocchi
DL
S
T
R
E
T
C
H
R
E
G
E
N
C
O
D
E
R
R
E
G
I
S
U
M
I
R
E
G
II
S
U
M
II
R
E
G
III
S
U
M
III
R
E
G
IV
S
U
M
IV
R
E
G
V
C
O
M
P
A
R
A
T
O
R
R
E
G
VI
R
E
G
IV
A
R
E
G
V
A
S
U
B
T
R
A
C
T
O
R
R
E
G
VI
A
C
O
M
P
A
R
A
T
O
R
R
E
G
O
U
T
R
E
G
O
U
T
T
H
R
E
S
R
E
G
GATE STB1 STB2 STB3 STB4 STB5 STB6
STB7
D
A
T
A
IN
PRE_TRIG
CLR
BUSY
CLR
OUTPUT
ALL REG
Q_THR_MIN
Q_THR_MAX
THRC
O
M
P
A
R
A
T
O
R
S
MLT_TRIG
Q1
Q2
Q3
Q4
DL DL DL DL DL DL
BUSY_LOGIC
GATE_GEN
STB4 STB5 STB6 STB7
(0-24)x16 (0-48)x8 (0-96)x4 (0-192)x2 (0-384)x1
(0-96)x4 (0-96)x4
(0-96)x4
\RST_SR
\RST_SR
STRETCHREG
Stima della latenza
Ogni stadio di elaborazione è caratterizzato da
un tempo di latenza massimo.
Per la stima di tale tempo di latenza in questa
presentazione si usa un’unità di misura
convenzionale, indicata con tick, che
corrisponde a un conteggio del clock del
programma usato per la simulazione.
La latenza effettiva, in una ipotetica
realizzazione del circuito, dipenderà dalla scala
di integrazione e dalla tecnologia adottate.
Per convenzione a una singola porta logica a
due ingressi (come una AND o una OR) è
attribuita una latenza di 10 tick, quindi un
componente che ha latenza 100 avrà la latenza
corrispondente a 10 porte logiche.
Ogni componente è stato realizzato nella
simulazione usando solo porte logiche con fan in
di 2-3 a cui è stata attribuita la stessa latenza.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 6
Funzionamento: soglia sulla molteplicità
La funzione principale di un trigger di molteplicità come quello progettato è quella
di contare numero di discriminatori che ha segnato un 1 logico in un evento e
confrontarlo con un numero di soglia indicato.
Questo avviene in vari passaggi, qui elencati rapidamente:
• all’arrivo del fronte di salita di un segnale di pretrigger viene inviato un
segnale di gate alla prima batteria di registri (StretchReg), che registrano i dati
dei discriminatori;
• inizia la codifica dei dati (fatta a gruppi di 24 bit), contemporaneamente il
segnale di gate viene propagato in una serie di linee di ritardo che attivano,
dopo un tempo stabilito, i registri dei successivi passaggi di sommatori;
• vari sommatori in cascata (ognuno con un registro in ingresso e in uscita)
permettono di ottenere il valore dellà molteplicità di linee che sono state a 1
logico per un determinato evento;
• Nell’ultimo stadio un comparatore confronta il risultato della somma con un
valore di soglia impostato dall’utente, segnando un 1 logico se il primo ha un
valore strettamende maggiore della seconda.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 7
Gestione dell’elaborazione
Per gestire i tempi di tutti gli stadi dell’elaborazione dei dati il sistema fa uso di una rete
logica apposita, nello schema indicata con BUSY_LOGIC e GATE_GEN, e di una serie di
linee di ritardo (DL) in serie.
All’arrivo di un pretigger la rete logica di controllo genera un segnale di GATE, che abilita i
registri di input e viene porpagato nella prima linea di ritardo. Il GATE rimane a livello alto
per un tempo fissato di progetto pari a 30 tick: in questo tempo il primo registro può
registrare i dati in ingresso.
I registri degli stadi successivi sono dunque attivati in sequenza dai segnali ritardati (STB),
in modo che ogni componente abbia il tempo necessario per elaborare correttamente i dati.
Compito della BUSY_LOGIC è anche quello di inviare in output un segnale di BUSY che,
quando a livello logico ‘1’, indica che il sistema non può ricevere ulteriori dati ed eventuali
segnali di pretrigger vengono ignorati.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 8
Il sistema è impegnato quando:
• i registri in ingresso contengono dati la cui
elaborazione non è terminata;
• il \CLR è a ‘0’, indicando che si è nella fase di set-up;
Inoltre la BUSY_LOGIC invia un segnale di reset dei
registri in ingresso (attivo basso) quando il primo
stadio dell’elaborazione si è concluso.
Registrazione dei dati in ingresso
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 9
La registrazione dei dati in ingresso avviene
con opportuni registri che stretchano il
segnale in arrivo (StretchReg nello schema
a blocchi).
Sono costituiti da una batteria di Flip Flop
di tipo D pilotati come in figura.
Quando RST=‘0’ e GATE=‘1’ l’arrivo di un
fronte di salita in D0 porta l’uscita Q0 a ‘1’.
Q0 rimane a 1 anche quando D0 e/o il
segnale di GATE sono tornati a ‘0’,
permettendo dunque di mantenere il dato
salvato.
Tali registri, una volta finita la prima fase di
codifica, sono automaticamente resettati
dal segnale di RST_SR che va nell’ingresso
RST asincrono e sono pronti per registrare
nuovi dati.
All’uscita di tale registro sono presenti il
valore del dato in ingresso in Q0 e il suo
complemento Q0!
Codifica
Il primo stadio chiamato ENCODER è
composto da una prima batteria di reti logiche
(Coder) che codificano il segnale proveniente
dai registri in ingresso a gruppi di 4 bit.
All’uscita di ognuna di queste reti logiche vi
sarà pertanto il numero binario (0-4) delle
linee che hanno un 1 logico come valore.
I valori così ottenuti passano dunque in una
serie di sommatori a previsione di riporto fino
ad avere in uscita un numero a 5 bit che può
andare da 0 a 24.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 10
Latenza: 0-130 tick
Stadi successivi: i sommatori
Alla fine dello stadio di codifica abbiamo dunque
16 parole da 5 bit ciascuna il cui valore può
andare da 0 a 24. Queste passano in una serie
di 4 sommatori ibridi (due sommatori a
previsione di riporto in serie) in modo da avere
nei passaggi successivi la molteplicità su metà
quadrante, su un quadrante, su metà rivelatore
e, infine, la molteplicità totale. Ognuno di questi
passaggi ha un registro in ingresso, che registra
il risultato dello stadio precedente una volta
terminata l’elaborazione, quando riceve cioè un
segnale di strobe proveniente dalla
propagazione del gate sulla corrispondente linea
di ritardo.
Il risultato finale di questa operazione è dunque
una parola a 9 bit contenente il valore della
molteplicità totale che può andare da 0 a 384
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 11
Latenze (tick):
0-70
0-80
0-90
0-100
Ultimo stadio: comparazione e output
Nell’ultimo stadio la parola a 9 bit che reca
l’informazione sulla molteplicità totale viene
confrontata con un valore di soglia (THR)
presente in un registro apposito aggiornato nella
fase di set-up (vedi slide successive).
Il comparatore utilizzato è un comparatore per
numeri positivi di 9 bit senza segno, in caso di
superamento della soglia l’uscita (A>B nella
figura) ha un valore logico di ‘1’. Tale valore viene
salvato nel registro REG VI e successivamente
passa nel registro REG OUT in modo da arrivare
in output insieme ai risultati sullo sbilanciamento.
10/02/2017Trigger di molteplicità Pagina 12
Latenza: 0-130 tick
Fase di Elaborazione: Diagramma a Stati 2
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 13
IDLE
/CLR=‘1’
BUSY
PRE_TRIG=‘0’
STAR
T
PRE_TRIG
GATEBUSY=‘1’
ENCO
DER
GATE
STB1=‘0’
BUSY
REG
I
STB1
SUM
I
BUSY=‘0’BUSY=‘0’
STB2
REG
II
STB2
SUM
II
STB3
REG
III
STB3=‘0’
MLT_TRIG=‘0’
STB3
SUM
III
STB4=‘0’
STB4
REG
IV
SUM
IV
STB5=‘0’
STB4
REG
V
STB5
COM
PARI
SON
STB5
STB6=‘0’
REG
VI
STB6
POS
RES
STB7 STB6
TOT>THR=‘1’
STB7 STB6
TOT>THR=‘0’
NEG
RES
MLT_TRIG=‘1’
MLT_TRIG=‘0’
MLT
_T
RIG
STB1
STB2=‘0’
Fase di elaborzione: Timing 1
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 14
PRE_TRIG
Tempo in tick: 0 160 160 240
[80]
330
[90]
430
[100]
540
[110]
670
[130]
700
[130]
0
Funzione: sbilanciamento dell’evento
Oltre alla funzione principale di trigger di molteplicità il sistema è anche in grado
di segnalare se un evento è sbilanciato, cioè se uno o più quadranti registrano un
conteggio è superiore o inferiore rispetto alla media.
Questo è svolto nei seguenti passaggi, che avvengono in contemporanea con
quelli della funzione principale:
• I dati del registro III, che contengono il conteggio sui quadranti (QI…QIV), nello
stadio successivo passano in memoria al registro IV A, e successivamente nel
registro V A;
• In uscita al registro V A vi è un sottrattore che sottrae al conteggio sul quadrante
la media dei conteggi (cioè la molteplicità totale diviso 4), il risultato può essere
positivo o negativo, il risultato è in complemento a 2 e salvato nel resitro VI A;
• Il risultato della sottrazione viene confrontato in una batteria di comparatori che
inviano un segnale logico positivo ‘1’ se tale valore è maggiore di una soglia
massima o minore di una soglia minima* impostata nella fase di set-up.
• Il risultato della comparazione è inviato in REG OUT e poi mandato in output,
nelle uscite Q1…Q4. Se una o più di queste uscite è a ‘1’ dunque l’evento è
sbilanciato.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 15
* In un evento perfettamente bilanciato il risultato della sottrazione sarebbe 0 perciò la soglia massima è
necessariamente un numero positivo mentre quella minima è negativa.
Sbilanciamento: il sottrattore
Il sottrattore utilizzato per misurare lo scarto
di un conteggio del quadrante n-esimo (Qn)
rispetto alla media (AVG) è un sottrattore
per parole a 8 bit in cui il bit più significativo
è un bit di segno.
Il risultato dell’operazione è la sottrazione è
Qn-AVG, una parola a 8 bit il cui bit di
segno è vale 1 per numeri negativi e 0 per
numeri positivi.
Il circuito è ricavato dal sommatore ibrido a
8 bit in cui viene complementata la seconda
parola (B nell’immagine) e viene sommata
ad A.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 16
Sbilanciamento: comparatore
Il comparatore adesso deve comparare parole a
8 bit il cui bit più significativo è un bit di segno.
Tuttavia, grazie alle proprietà della notazione in
complemento a due si può usare lo stesso
circuito usato per comparare numeri positivi a
patto di invertire il bit di segno (all’ingresso del
comparatore).
In tal modo i numeri in binario sono
rappresentati secondo un ordine crescente (vedi
tabella) e un comparatore per numeri positivi è
in grado di confrontarli correttamente.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 17
Base 10 -4 -3 -2 -1 0 1 2 3
Compl. a 2
(standard)
100 101 110 111 000 001 010 011
Compl. a 2 (inv.
segno)
000 001 010 011 100 101 110 111
Fase di Elaborazione: Diagramma a Stati 1
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 18
IDLE
/CLR=‘1’
BUSY
PRE_TRIG=‘0’
STAR
T
PRE_TRIG
GATEBUSY=‘1’
ENCO
DER
GATE
STB1=‘0’
BUSY
REG
I
STB1
SUM I
BUSY=‘0’BUSY=‘0’
STB2
REG
II
STB2
SUM
II
STB3
REG
III
STB3=‘0’
MLT_TRIG=‘0’
STB3
REG
IV A
STB5=‘0’
STB4REG
V A
SUB
Qn-
AVG
STB6=‘0’
STB4
REG
VI A
STB5
COM
PARI
SON
STB5
STB7=‘0’
STB6
POS
RESSTB7STB6
Qn-AVG>Q_THR_MAX=‘1’ ||
Qn-AVG<Q_TRH_MIN=‘1’
STB7NEG
RES
Qn=‘1’
Qn=‘0’
ST
B7
STB1
STB2=‘0’
Qn-AVG>Q_THR_MAX=‘0’ &&
Qn-AVG<Q_TRH_MIN=‘0’
Qn
Fase di Elaborazione: Timing 2
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 19
Tempo in tick: 0 330 540 670 700
Clear e set-up del sistema
Attraverso il segnale di CLEAR (attivo basso) è possibile resettare il sistema in
qualunque momento in modo asincrono: le uscite di tutti i registri vengono
azzerate e il BUSY è a livello alto ‘1’ finchè il clear è a ‘0’ logico , dunque il
sistema non può regstrare nuovi dati ed eventuali pretrigger vengono ignorati.
In questa fase è possibile inserire i valori per le soglie dei comparatori:
• la soglia sulla molteplicità totale è una parola a 9 bit senza segno (può essere
solo positiva);
• per la soglia sullo sbilanciamento in eccesso va inserito numero a 7 bit
corrispontente al modulo, sarà il sistema ad attribuire automaticamente l’ottavo bit
di segno, essendo necessariamente un numero positivo;
• anche per la soglia sullo sbilanciamento in difetto occorre inserire un numero a 7
bit corrispondente al modulo, sarà il sistema ad eseguire il complemento a 2 e ad
attribuire ad essa il giusto segno (è necessariamente un numero negativo).
Quando il CLEAR viene portato ad ‘1’, in corrispondenza del fronte di salita
vengono aggiornati i registri che contengono le soglie impostate e il BUSY torna a
‘0’. L’operazione di complemento a 2 della soglia di sbilanciamento in difetto
richiede del tempo e genera delle alee, tuttavia, prima dell’arrivo del dato nello
stadio di comparazione passa un tempo sufficiente al completamento
dell’operazione.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 20
Fase di Set-up: Diagramma a Stati
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 21
IDLE
/CLR=‘1’
BUSY=‘0’
RST
REG
/CLR=‘0’
BUSY=‘1’ /CLR=‘0’
MEM
THR
/CLRTHR
Q_THR_MIN
Q_THR_MAX
Fase di Set-up: Timing
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 22
Tempo in tick: 0 10 0 20 90
Simulazione
10/02/2017Trigger di molteplicità Pagina 23
Il funzionamento del dispositivo è stato infine testato in una simulazione in cui 320 canali
di dati in ingresso sono stati pilotati con segnali logici fissi (‘0’ o ‘1’) e i restati 64 con alcu-
ni generatori di sequenza randomica.
Anche il segnale di pretrigger era generato in modo random.
Parte fissa del conteggio: 144 (90 in esadecimale) THR=208 (B0) Q_THR_MIN=-2 Q_THR_MAX=2
Conclusioni
Caratteristiche principali del trigger di molteplicità:
• Funzione di trigger sulla molteplicità totale;
• controllo dello sbilanciamento dell’evento;
• tempo di elaborazione di un dato dall’input all’output: 700 tick;
• frequenza massima di presa dati: 1/160 tick -> 6,3 x 10 tick ;
• Clear asincrono;
• possibilità di scegliere indipendentemente le soglie sulla molteplicità totale e
sullo sbilanciamento in eccesso e in difetto.
10/02/2017Trigger di molteplicità – Claudio Quaranta Pagina 24
-3 -1