Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Studio e creazione di un contatore
con finestre temporali selezionabili e
relativo componente per il suo test
COUNT BOX
Antonietti Rita
Campana Lorenzo
Dastoli Alessio Luigi
Muti Gaia
ESAME
I conteggi effettuati nelle finestre temporali di
durata selezionata vengono scaricati
attraverso una porta parallela a 8 bit
associando ad essi un segnale di validazione
(STROBE_OUT) .
Il dispositivo gen_impulsi è stato ideato per la
simulazione di eventi pseudocausuali da
collegare al count_box.
Il dispositivo count_box permette di effettuare il
conteggio di segnali impulsivi in finestre temporali
(GATE) di durata selezionabile. E possibile
scegliere la finestra di GATE attraverso 3 bit di
selezione GS_[2..0] che gestiscono la divisione
del clock in clock interno e attraverso la parola
WRD[15..0], ottenendo un tempo di GATE:
T_GATE = WRD[15..0] * (1/CLK_INT)
17/01/20 Pagina 2Esame Digital Electronics
TOP LEVEL
ESAME: PIN
MAP
17/01/20 Pagina 3Esame Digital Electronics
ESAME:
FLOORPLAN EDITOR
17/01/20 Pagina 4Esame Digital Electronics
STROBE_IN
SET_FF
RST_EXT PPS_GATED
Fatto ciò e possibile scegliere la durata della finestra temporale desiderata agendo sui
bit GS_[2..0] e WRD_[15..0], tramite il segnale di STROBE_IN questi vengono acquisiti
dal dispositivo. I conteggi vengono eseguiti in finestre temporali della durata
selezionata (T_GATE). I conteggi vengono scaricati in concomitanza di un segnale di
STROBE. Per fermare i conteggi bisogna agire sul RESET, portandolo a ‘0’ logico,
oppure mandare un secondo segnale al PPS_GATED che genererà lo STOP per il
dispositivo.
ESAME:
segnali d’ingresso per l’abilitazione dei componenti logici
Il dispositivo e progettato
per lavorare con un clock di
40MHz. Per iniziare ad
utilizzare il dispositivo
bisogna mandare il segnale
di PPS_GATED che
genererà lo START. Per
funzionare e necessario
portare il reset ad ‘1’ logico.
17/01/20 Pagina 5Esame Digital Electronics
COUNT BOX
17/01/20 Pagina 6Esame Digital Electronics
COUNT_BOX:
PIN MAP
PIN UTILIZZO
WRD[15..0] Bit di selezione per la durata
della finestra temporale
GS_[2..0] Bit di selezione per il divisore
del clock
STROBE_IN Segnale di ablitazione per
selezione del tempo di Gate
P_SYNC Ingresso per i segnali
impulsivi da contare
PPS_GATED Segnale di apertura e
chiusura dell’acquisizione
CLK Ingresso per il segnale di
clock
RST_EXT Reset del dispositivo
O[8..1] Bit di uscita per il conteggio
da scaricare
STROBE_OUT Uscita per il segnale di
strobe
17/01/20 Pagina 7Esame Digital Electronics
SIMULAZIONE:
esame.gdfNella simulazione dei componenti logici si e considerata una configurazione con il generatore d’impulsi
integrato nella parte della count_box.
17/01/20 Pagina 8Esame Digital Electronics
NAME GS_ CLK (MHz) WRD T_GATE (us)
A 0 20 200 10
B 0 20 2000 100
C 1 10 200 20
D 1 10 2000 200
E 2 6,67 200 30
F 2 6,67 2000 300
G 3 5 50 10
H 3 5 200 40
I 3 5 2000 400
M 5 3,3 10000 3030
N 6 2,5 10000 4000
M
Sono possibili diversi valori di
T_GATE, nella tabella vengono
riportate le coppie di valori testati.
Si e riscontrata l’impossibilità
costruttiva nella scelta di valori che
fornissero in uscita un T_GATE
minore di 10 us. Vengono riportati di
seguito i diversi timing.
17/01/20 Pagina 9Esame Digital Electronics
B
C
D
E
F
I
17/01/20 Pagina 10Esame Digital Electronics
G
H
17/01/20 Pagina 11Esame Digital Electronics
STIMOLO PSEUDOCASUALE
Il blocco logico gen_impulsi_16 genera segnali
pseudocasuali di lunghezza 65535
Affinché inizi la generazione pseudocasuali di impulsi,
ogni qual volta il blocco logico viene resettato, occorre
settare il sistema il quale e attivo basso
Per ottenere un rateo di 100 count/ms occorre impostare
il CLK pari a 125 con una grid size pari a 0,2 ns
RITA
17/01/20 Pagina 12Esame Digital Electronics
La generazione di segnali pseudocasuali è data da una catena di shift register, l’input del primo flip-flop è dato da
una sequenza di XOR.
La scelta del numero di shift register determina quanti valori vi sono in una sequenza prima che venga ripetuta, la
lunghezza è data da (2n-1), con n il numero di flip-flop.
Per avere una sequenza pseudocasuale di lunghezza 65535 stati occorre una catena di 16 flip-flop di tipo D, dove
l’input del primo flip-flop e dato dallo XOR tra l’output del 16 e del 15, il risultato viene messo in XOR con il 13,
l’uscita viene messa in XOR con l’output 4.
RITA
17/01/20 Pagina 13Esame Digital Electronics
GENERAZIONE DI IMPULSI PSEUDOCASUALI
Collegando l’uscita negata di un flip flop di tipo D, il quale e pilotato con il segnale di RST_EXT_,
all’input di SET_ del blocco logico di generazione di segnali pseudocasuali e possibile settare il
sistema ogni qual volta si ha un impulso di RST_EXT_
RITA
17/01/20 Pagina 14Esame Digital Electronics
SINCRONIZZAZIONE IMPULSI P CON IL CLK_INT
Il blocco logico p_syncr sincronizza gli impulsi con il
CLK_INT
Gli impulsi sincronizzati (P_SYNCR) hanno una
lunghezza di un periodo di CLK_INT
11 ns
1 T
RITA
17/01/20 Pagina 15Esame Digital Electronics
SINCRONIZZAZIONE IMPULSI P CON IL CLK_INT
Per poter sincronizzare gli impulsi con il CLK_INT si
ha una catena di due shift register, dove il primo flip-
flop di tipo D è pilotato dagli impulsi P, il secondo dal
CLK_INT.
In output si ha l’impulso sincronizzato con il CLK_INT
e di lunghezza di un periodo.
Ogni volta che si ha un impulso sincronizzato con il
CLK_INT il primo flip-flop viene resettato.
RITA
17/01/20 Pagina 16Esame Digital Electronics
PPS
Il PPS_GATED si compone di due segnali,
attraverso i quali vengono generati i segnali
di START_PULSE e di STOP_PULSE in
corrispondenza del segnale di start e il
segnale in stop
25 ns
RITA
17/01/20 Pagina 17Esame Digital Electronics
Macchina a stati
START01
IDLE00
STOP11
ERRORE10
START = ‘0’
STOP = ‘0’
START = ‘1’
STOP = ‘0’
START = ‘0’
STOP = ‘1’
START = ‘0’
STOP = ‘0’
@tn @tn+1 @tn @tn
STATO QA QB STATO QA QB DA DB START STOP
IDLE 0 0 START 0 1 0 1 0 0
START 0 1 STOP 1 1 1 1 1 0
STOP 1 1 START 0 1 0 1 0 1
ERRORE 1 0 IDLE 0 0 0 0 0 0
RITA
17/01/20 Pagina 18Esame Digital Electronics
Derivatore: Al fine di creare un impulso ogni
qual volta si ha un segnale di START e di STOP
RITA
17/01/20 Pagina 19Esame Digital Electronics
GENERAZIONE SEGNALE DI ENABLE E RST_
Viene generato un segnale di ENABLE tra due impulsi di
PPS_GATED.
Ogni qual volta si ha un segnale di RST_EXT_ o di
STOP_PULSE viene generato un segnale di RST_
21 ns 1 ns
RITA
17/01/20 Pagina 20Esame Digital Electronics
Attraverso il flip flop di tipo SR ogni qual volta si ha un impulso di START_PULSE viene
generato un segnale di ENABLE, mentre quando si ha un segnale di RST_EXT_ o di
STOP_PULSE viene generato un segnale di RST_
RITA
17/01/20 Pagina 21Esame Digital Electronics
17/01/20Esame Digital Electronics Pagina 22
Clock Divider
Il blocco logico CLK_DIV è un divisore di
clock interno generato dal quarzo della
scheda FPGA basato su flip flop di tipo D
Ha 3 bit di selezione per la scelta della
divisione del clock desiderato
Possiede inoltre un segnale di STROBE_IN che permette la scrittura
dei 3 bit su un registro interno
ALESSIO
17/01/20Esame Digital Electronics Pagina 23ALESSIO
17/01/20Esame Digital Electronics Pagina 24
I divisori dispari sono ottenuti mediante contatore modulo N dove N è il
fattore di divisone e successivamente messi in una porta OR con lo
stesso segnale ritardato di metà periodo di clock
ALESSIO
17/01/20Esame Digital Electronics Pagina 25
Divisore per 3
Divisore per 5
ALESSIO
17/01/20Esame Digital Electronics Pagina 26
Divisore per 7
ALESSIO
Generatore di gate: top level
20 PIN INPUT
2 PIN OUTPUT
LORENZO
17/01/20 Pagina 27Esame Digital Electronics
Generatore gate: schematico
LORENZO
17/01/20 Pagina 28Esame Digital Electronics
Per generare il segnale di gate con una lunghezza determinata
vengono utilizzati due contatori a 8 bit sincroni 74ls590_noreg
collegati in maniera sincrona. I singoli contatori sono una versione
modificata del 74ls590 a cui sono stati eliminati i registri in uscita. Il
pin GN va messo a terra, CCKEN è il pin di enable attivo basso ( ),
mentre CCLRN è il pin di reset asincrono attivo basso ( ). Nel pin
CCLK va collegato il clock, nel nostro caso CLK_INT. Q(A..H) è il
bus di uscita.
Il pin RCON attivo basso ( ) genera un impulso in corrispondenza
con il riporto del contatore. Per collegare i due contatori e formare un
contatore a 16 bit il pin RCON del primo va collegato al pin CCKEN del
secondo.
Contatore a 16 bit
Il contatore presenta delle alee che generano
conteggi anomali in alcune sezioni della
simulazione. Essendo però di durata breve, le
alee non interferiscono con il corretto
funzionamento del contatore.
LORENZO
17/01/20 Pagina 29Esame Digital Electronics
Contatore a 8 bit: schematico
LORENZO
17/01/20 Pagina 30Esame Digital Electronics
La parola WRD e registrata in due registri a 8 bit reg8bit. D(1..8)
e il bus di ingresso, mentre Q(1..8) e quello di uscita. Nel pin CLK
va collegato il segnale di strobe di entrata attivo alto ( ), mentre
nel pin ENA il segnale di enable generale attivo alto ( ). Il registro
può essere resettato con un segnale asincrono collegato al pin CLRN
attivo basso.
Registro a 16 bit
Anche questo blocco logico presenta delle alee
durante la commutazione, che però non
interferiscono con il corretto funzionamento del
circuito
LORENZO
17/01/20 Pagina 31Esame Digital Electronics
10 ns
Registro a 8 bit: schematico
LORENZO
17/01/20 Pagina 32Esame Digital Electronics
Comparatore a 16 bit
Il comp16bit e un blocco logico che effettua l’operazione
logica di uguaglianza tra due parole a 16 bit. Confronta bit a
bit il bus IN_(A..R) con il bus IN_(0..15) e produce
un segnale attivo alto ( ) quando tutti e 16 i bit di ogni bus
sono uguali.
Il circuito è dotato anche di un ingresso di enable EN che ne
abilita il funzionamento.
La latenza caratteristica di questo blocco logico e dell’ordine
di 20 ns come indicato nella simulazione di timing.
LORENZO
17/01/20 Pagina 33Esame Digital Electronics
20 ns
Comparatore a 16 bit: schematico
LORENZO
17/01/20 Pagina 34Esame Digital Electronics
Simulazione timing
1 2 3 4 5
LORENZO
17/01/20 Pagina 35Esame Digital Electronics
All’interno del blocco logico COUNT PULSE
sono presenti I seguenti sotto blocchi:
• un DECODER 2 a 2
• un RESET
• due contatori a 8 bit
• un multiplexer composto da 16 mux 2 a 1
in parallelo
• quattro blocchi logici per il delay sincrono
• un registro a 8 bit
Sui pin d’ingresso è necessario collegare:
• il segnale impulsivo sincronizzato per il conteggio del RATEO
• il clock di GATE per la gestione dei contatori e del multiplexer
• il clock di GATE dimezzato per la gestione del registro
• il clock interno per gestire il DELAY del gate utilizzato per il segnale di reset dei contatori
• il segnale di RST_ (attivo basso)
Nei pin di uscita si ha che :
➢ otto (D[8..1]) sono dedicati al risultato del conteggio relativo a un tempo T_GATE
➢ uno corrispondente all’uscita di strobe_out (attivo alto) abilita il valore in uscita del
COUNT_PULSE
COUNT PULSE
GAIA
17/01/20 Pagina 36Esame Digital Electronics
COUNT PULSE: RETE INTERNA
Di seguito lo schematico di ogni componente logico
GAIA
17/01/20 Pagina 37Esame Digital Electronics
DECODER 2_2
Il decoder è costituito da una rete
logica in grado di smistare gli
impulsi in ingresso ai due diversi
contatori in funzione del livello del
GATE. Si ha un ritardo di 8-10 ns.
GATE ‘0’ A
GATE ‘1’ B
GAIA
17/01/20 Pagina 38Esame Digital Electronics
RESET
Il reset è una rete logica che gestisce
l’azzeramento dei contatori A e B.
Il reset riceve in ingresso il segnale di GATE
ritardato di un clock interno (GATE) e due clock
interni (GATE_D) e crea un segnale di reset
(attivo basso) sul pin di uscita RST_A o RST_B
a seconda del livello del segnale di GATE .
Nella configurazione scelta:
il contatore A lavora a GATE ‘0’
il contatore B lavora a GATE ‘1’
CONTA
A
CONTA
B
RESETTA A
RESETTA B
GAIA
17/01/20 Pagina 39Esame Digital Electronics
DELAY
Il DELAY è costituito da un flip flop D.
Riceve nell’ingresso GATE il segnale di
GATE e nel CLK_SERV il segnale di clock
interno, in questo modo in uscita si avrà un
segnale GATE ritardato di un clock interno.
Vengono inseriti due delay in cascata per
ottenere un GATE_D ritardato di due clock
interni.
GAIA
17/01/20 Pagina 40Esame Digital Electronics
COUNT
Il COUNT è un contatore a 8 bit,
riceve nell’ingresso A
(corrispondente al CLK del
8count) i segnali gestiti dal
DECODER2_2 e scrive in uscita
il numero di impulsi ricevuti
nell’ingresso A.
L’ingresso RST_A, gestito dal
blocco reset, attivo basso azzera
il conteggio.
8count
GAIA
17/01/20 Pagina 41Esame Digital Electronics
MUX
Il MUX e l’insieme di reti logiche
che gestiscono la scrittura sul
registro di uscita del valore dei
contatori A e B per ogni bit.
S
A
B
Y
RLC del 21mux
Nella configurazione scelta il MUX seleziona:
A quando GATE e ‘0’
B quando GATE e ‘1’
GAIA
17/01/20 Pagina 42Esame Digital Electronics
R_OUT
L’ R_OUT e il registro di
uscita ad 8 bit ed è
composto da due 74173
(due registri a 4 bit).
Il registro viene gestito dal
segnale di GATE diviso per
2, in modo tale da
registrare ad ogni fronte di
salita del GATE_2.2
2
Il registro di uscita scrive in uscita il
conteggio del GATE precedente
GAIA
17/01/20 Pagina 43Esame Digital Electronics
Nel fronte di salita del
GATE_2 il COUNT
PULSE scrive il
conteggio relativo al
T_GATE precedente
(4 impulsi)
4 impulsi
T_GATE
La STROBE_OUT
abilita la lettura per
l’esterno con un
ritardo di due clock
interni
COUNT PULSE: TIMING
Considerando l’intero circuito che costituisce l’integrato COUNT PULSE si ottiene il seguente timing
GAIA
17/01/20 Pagina 44Esame Digital Electronics
17/01/20Esame Digital Electronics Pagina 45
Codice Hamming
Il blocco logico HAMMING ha la
funzione di generare i bit di parità
necessari per fornire un servizio di
correzione degli errori basato su codice
Hamming
Contiene al suo interno un ulteriore registro costituito da flip flop di tipo D
clockato dal segnale di STROBE_OUT che a sua volta viene ritardato di
un ciclo di clock interno CLK_INT per assicurare una corretta lettura dei
dati. Il segnale di strobe finale è chiamato STROBE
Il codice hamming e generato tramite l’utilizzo di porte XOR a fan-in di 4
e 5 prive di alee
ALESSIO
17/01/20Esame Digital Electronics Pagina 46ALESSIO
17/01/20Esame Digital Electronics Pagina 47
Per trasmettere una word ad 8 bit è necessario generare 4 bit di parità
P1 P2 P4 e P8 da posizionare nella posizione binaria corrispondente
P1 è generato a partire da tutti i bit che occupano una posizione in cui la
rappresentazione in binario ha bit meno significativo pari ad 1
P2 è generato a partire da tutti i bit che occupano una posizione in cui la
rappresentazione in binario ha il secondo bit meno significativo pari ad 1
ALESSIO
17/01/20Esame Digital Electronics Pagina 48
P3 e generato a partire da tutti i bit che occupano una posizione in cui la
rappresentazione in binario ha il terzo bit meno significativo pari ad 1
P4 è generato a partire da tutti i bit che occupano una posizione in cui la
rappresentazione in binario ha il quarto bit meno significativo pari ad 1
Per controllare se sono avvenuti errori durante la trasmissione della
word è sufficiente computare nuovamente i quattro bit di parità. In caso
siano tutti zero non è avvenuta corruzione dei dati, altrimenti il bit
corrotto sarà proprio identificato dal numero binario P8 P4 P2 P1
ALESSIO
Il device scelto per le
simulazioni è il
EPF10K10LC84_3
caricando il progetto
sulla scheda e
riassegnando i pin in
modo opportuno è
possibile osservarne
il funzionamento.
17/01/20 Pagina 49Esame Digital Electronics
17/01/20Esame Digital Electronics Pagina 50
UPGRADE
17/01/20Esame Digital Electronics Pagina 51
ESAME