Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
ELE3311 –
Systèmes logiques programmables
Mohamad Sawan et collaborateurs
Chapitre 7: multivibrateurs et
considérations pratiques▪ Les multivibrateurs
➢ Définition
➢ Types de multivibrateurs (monostable, bistable et astable)
➢ Exemples de multivibrateurs
➢ Circuits MSI
▪ La métastabilité
▪ Fréquence maximale de fonctionnement d'un circuit
➢ Analyse temporelle dynamique
➢ Analyse temporelle statique (static timing analysis – STA)
▪ Architecture pipelinée
▪ Autres considérations pratiques
▪ Recommandations
ELE3311 –
Systèmes logiques programmablesPage 2
Les multivibrateurs
▪ Définition
➢ Un multivibrateur est un circuit faisant partie de l'une des
trois catégories suivantes:
• monostable;
• bistable ou
• astable.
ELE3311 –
Systèmes logiques programmablesPage 3
Les multivibrateurs (suite)
▪ Types de multivibrateurs
➢ Monostable (aussi appelé "One-Shot")
• L’entrée sert de gâchette (trigger) et doit avoir une largeur
minimum (t)
• La sortie est une impulsion de durée prédéterminée (T)
Multivibrateur
monostableEntrée Sortie
Dt T
ELE3311 –
Systèmes logiques programmablesPage 4
Les multivibrateurs (suite)
▪ Types de multivibrateurs (suite)
➢ Monostable (suite)
• Sortie redéclenchable ou non-redéclenchable.
T
Sortie
redéclenchable
Entrée
Sortie
non-redéclenchableT
ELE3311 –
Systèmes logiques programmablesPage 5
Les multivibrateurs (suite)
▪ Types de multivibrateurs (suite)
➢ Bistable
• Une entrée sert à faire basculer d’état.
• Le même signal ou un autre réinitialise le bistable.
Multivibrateur
bistableEntrée Sortie
Dt
ELE3311 –
Systèmes logiques programmablesPage 6
Les multivibrateurs (suite)
▪ Types de multivibrateurs (suite)
➢ Astable
• Aucune entrée nécessaire mais un signal d’activation (enable)
est souvent utilisé.
• La sortie oscille d’un état à l’autre.
Multivibrateur
astableSortie
T
t1
ELE3311 –
Systèmes logiques programmablesPage 7
Les multivibrateurs (suite)
▪ Exemples de multivibrateurs
➢ Monostable
• Bascule S-R
QR
S
Z
X
Délai(T)
Les entrées 'S' et 'R' de la bascule ne doivent pas être actives simultanément.
X
Z
T
Non-redéclenchable
ELE3311 –
Systèmes logiques programmablesPage 8
Les multivibrateurs (suite)
▪ Exemples de multivibrateurs (suite)
➢ Monostable (suite)
• Bascule D (synchrone)
X*Q
D
clk
Vcc
ZR
QD
clk
ZNRX*
Non-redéclenchable
Redéclenchable
X
ZR
0 1 2 3
CLK
ZNR
T
ELE3311 –
Systèmes logiques programmablesPage 9
QS
R
RR
RR
RR
CR
Vin*
Reset*
Vcc
Cext
Rext
Vout
Vcc
VC
Les multivibrateurs (suite)
▪ Exemples de multivibrateurs (suite)
➢ Monostable (suite)
• Multivibrateur 555 (vue interne)Composants externes
ELE3311 –
Systèmes logiques programmablesPage 10
Les multivibrateurs (suite)
▪ Exemples de multivibrateurs (suite)
➢ Monostable (suite)
• Multivibrateur 555 (diagramme de phase)
Vin*
Vout
T
VC
2VCC
3
QS
R
RR
RR
RR
CR
Vin*
Reset*
Vcc
Cext
Rext
Vout
Vcc
VC
ELE3311 –
Systèmes logiques programmablesPage 11
Les multivibrateurs (suite)
▪ Exemples de multivibrateurs (suite)
➢ Bistable
• Bascule S-R (élément le plus simple pour un bistable)
QR
S
Z
Vcc
RPD
ELE3311 –
Systèmes logiques programmablesPage 12
Les multivibrateurs (suite)
▪ Circuits MSI
➢ Monostable
• Simple: 74121, 74122, 74130
• Double: 74123, 74221, 74423
• Timer 555
➢ Bistable
• 74279 (Bascule S-R)
➢ Astable
• Timer 555
ELE3311 –
Systèmes logiques programmablesPage 13
La métastabilité
▪ La métastabilité est un troisième point d’équilibre ne
correspondant ni à un ‘0’, ni à un ‘1’ logique.
➢ Exemple: Bistable S-R
R
S
Q
Q*
Stable
Métastable
Stable
Q=f(R)
Q*=f(S)
R, Q*
Q, S
R
S
Q
Q*
Équivalent lors d’un passage de "1" à "0".
ELE3311 –
Systèmes logiques programmablesPage 14
La métastabilité dans les FPGAs
▪ Sources
➢ Transfert de données entre des domaines d’horloge indépendants ou
asynchrones
➢ Violation des requis de synchronisation (timing violations)
▪ Réduction des problèmes liés à la métastabilité
L’objectif est de laisser du temps pour résoudre l’état métastable
➢ Synchronisation ou resynchronisation
• 1-bit : 2 registres physiquement près l’un de l’autre
– Utilisation de la propriété: ASYNC_REG
• N-bit : On ne peut garantir la resynchronisation de plusieurs bits
– Synchronisation du signal « valide »
Xilinx Forums
ELE3311 –
Systèmes logiques programmablesPage 15
La métastabilité dans les FPGAs
▪ Synchronisation (1-bit) : Exemple
➢ Xilinx: Utiliser la propriété ASYNC_REG pour les
registres dans le domaine d’horloge destination
Pour plus d’information sur la métastabilité dans les FPGA.
Domaine d’horloge destinationDomaine d’horloge
source
sclk
meta
dclk
dclk
dclk
sig sig_meta sig_dclk
Minimiser le délai de propagation en
gardant les registres physiquement
proches
ELE3311 –
Systèmes logiques programmablesPage 16
Fréquence maximale de fonctionnement
▪ Types d’analyse pour évaluer fmax
➢ Simulation fonctionnelle de circuits
• Évaluation de la fréquence maximale en simulant le fonctionnement du
circuit numérique à partir de modèle des portes logiques
• Haute précision, mais la méthode la plus lente
➢ Analyse temporelle fonctionnelle
• Méthode de calcul statistique, en simulant le fonctionnement du circuit
numérique
• Bonne précision, applicable pour des circuits MSI
➢ Analyse temporelle statique (Static Timing Analysis)
• Méthode de calcul statistique, sans comprendre le fonctionnement
• Méthode la plus rapide, utilisée en VLSI / FPGA
ELE3311 –
Systèmes logiques programmablesPage 17
Fréquence maximale (suite)
▪ Évaluation de la fréquence maximale (règles directrices)
1. Identifier le chemin critique.
2. Sensibiliser le chemin critique (entrées).
3. Trouver les états présents et suivants affectant le chemin critique.
4. Écrire les équations pour toutes les transitions d'états.
5. Évaluer le temps de propagation maximal en fonction des composants
utilisés (L-H, H-L).
Q2D2
Q1D1
clk
XLogique
combinatoire
tPLH
ou
tPHL
tCOMB
tsu
ELE3311 –
Systèmes logiques programmablesPage 18
Fréquence maximale (suite)
▪ Évaluation de la fréquence maximale (composantes)
tSU
tPLH
X
D1
CLK
Q1
0 1 2
D2
tCOMB
MAX
PLH COMB SU
1f =
t + t + t
Fixé avec le type de
mémoire choisie
Q2D2
Q1D1
clk
XLogique
combinatoire
tPLH
ou
tPHL
tCOMB
tsu
ELE3311 –
Systèmes logiques programmablesPage 19
Fréquence maximale (suite)
▪ Cas simple
➢ Élément de mémoire (bascule)SN74LS74
tsu = 20 ns
th = 5 ns
tPLH = 25 ns
tPHL = 40 ns
QD
clk
1 PLH SUT = t + t = 25+ 20 = 45ns
2 PHL SUT = t + t = 40 + 20 = 60ns
LH
HL
MAX
1f = =16.7 MHz
60ns
ELE3311 –
Systèmes logiques programmablesPage 20
Fréquence maximale (suite)
▪ Compteur synchrone 4 bits
Q0
D
clk
Q1
D
clk
Q2
D
clk
Q3
D
clk
11 0 ou 1
LH
1110 1111 0000® ®
LH LH
LH
HL
0110 0111 0010® ®
Présent Suivant
ELE3311 –
Systèmes logiques programmablesPage 21
Fréquence maximale (suite)
▪ Compteur synchrone 4 bits (suite)
'174 '08 '08 '86A '174
tPLH
tPHL
tsu
th
74LS08
15
20
LOW
23
17
HIGH
30
22
74LS174
25
25
20
5
74LS86AOther input
Q0
D
clk
Q1
D
clk
Q2
D
clk
Q3
D
clk
PLH PLH PLH PHL(H)HL SUT = t + t + t + t + t = 25+15+15+ 22 + 20 = 97ns
1110 1111 0000® ®
PLH PLH PLH PLH(L)LH SUT = t + t + t + t + t = 25+15+15+ 23+ 20 = 98ns
0110 0111 0010® ®
Présent Suivant
ELE3311 –
Systèmes logiques programmablesPage 22
Fréquence maximale (suite)
▪ Compteur 2 bits avec séquence 00, 11, 01, 10, 00, 11, …
Q0
D
clk
Q1
D
clk
Z
11 01 10® ®
Présent Suivant
10 00 11® ®LH
HLH
L H
LH
HL
0 PHL PLH PHL SUT = t + t + t + tLH
HLL
H
H
LH
HL
1 PLH PHL PLH SUT = t + t + t + t
ELE3311 –
Systèmes logiques programmablesPage 23
Fréquence maximale (suite)
▪ Compteur 2 bits (suite)
1 PLH PHL PLH SUT = t + t + t + t 8 4 4.5 15 31.5ns= + + + =
tPLH
tPHL
tsu
th
74AS00
(NON-ET)
4.5 ns
4 ns
74ALS08
(ET)
14 ns
10 ns
74AS74
(Bascule D)
8 ns
9 ns
15 ns
2 ns
0 PHL PLH PHL SUT = t + t + t + t 9 4.5 4 15 32.5ns= + + + ='74 '00 '00 '74
MAX
1F = = 30.77 MHz
32.5ns
ELE3311 –
Systèmes logiques programmablesPage 24
Fréquence maximale (suite)
D QQ0
RCO*
Q1
EN
LOAD
A
EN
LOAD
CK
B
D Q
LOAD*
LOAD*
▪ Compteur séquentiel avec chargement parallèle
ELE3311 –
Systèmes logiques programmablesPage 25
Fréquence maximale (suite)
D QQ0
RCO*
Q1
EN
LOAD
A
EN
LOAD
CK
B
D Q
LOAD*
LOAD*
▪ Compteur séquentiel avec chargement parallèle
00 101 0® ®
Présent Suivant
Q0
0 PLH PHL PLH PHL PLH SUT = t + t + t + t + t + t
'74 '00 '00 '86 '00 '74
ELE3311 –
Systèmes logiques programmablesPage 26
Fréquence maximale (suite)
D QQ0
RCO*
Q1
EN
LOAD
A
EN
LOAD
CK
B
D Q
LOAD*
LOAD*
tPLH
tPHL
tsu
th
74ALS00
(NON-ET)
11 ns
8 ns
7486
(OU-Exclusif)
23 ns
17 ns
74ALS74
(Bascule D)
16 ns
18 ns
15 ns
2 ns
▪ Compteur séquentiel avec chargement parallèle
00 101 0® ®
Présent Suivant
10 011 0® ®Q0
T
1= t
PLH+ t
PH L+ t
PLH+ t
PLH+ t
PHL+ t
SU
0 PLH PHL PLH PHL PLH SUT = t + t + t + t + t + t
'74 '00 '00 '86 '00 '74
ELE3311 –
Systèmes logiques programmablesPage 27
Fréquence maximale (suite)
▪ Compteur séquentiel décroissant
CLKQ0 Q1 Q2 Q3 Q4
D
Q
D
Q
D
Q
D
Q
D
Q
ELE3311 –
Systèmes logiques programmablesPage 28
Fréquence maximale (suite)
▪ Compteur séquentiel décroissant
00001 000 100 1111® ®
Présent Suivant
10001 100 000 1111® ®
CLKQ0 Q1 Q2 Q3 Q4
D
Q
D
Q
D
Q
D
Q
D
Q
LHHL LH HL
LH
Q0*
H
Présent Suivant
OU
ELE3311 –
Systèmes logiques programmablesPage 29
Fréquence maximale (suite)
▪ Compteur séquentiel décroissant (suite)
tPLH
tPHL
tsu
th
74AS00
(NON-ET)
4.5 ns
4 ns
74ALS02
(NON-OU)
12 ns
10 ns
74AS74
(Bascule D)
8 ns
9 ns
4.5 ns
4 ns
74ALS86
(OU-Exclusif)
17 ns
12 ns
0 PLH PHL PLH PHL PHL SUT = t + t + t + t + t + t = 8+ 4 +10 + 4 +12 + 4.5 = 42.5ns'74 '00 '02 '74
MAX
1F = = 21.05MHz
47.5ns
'00 '86
1 PLH PHL PLH PHL PLH SUT = t + t + t + t + t + t = 8+ 4 +10 + 4 +17 + 4.5 = 47.5ns
ELE3311 –
Systèmes logiques programmablesPage 30
Fréquence maximale (suite)
▪ MSA bit par état
a
X
Q0
'1''0'
ZSBSE
b c
X'0'
'1'
Q1
Q2
Q2
D
clk
Q0
D
clk
Q1
D
clk
0
1
Q2
Q0
XS
0
X*Q
0
Q2
X
Q1
Rst*
Z
000
001
100
010
ELE3311 –
Systèmes logiques programmablesPage 31
Fréquence maximale (suite)
▪ MSA bit par état
a
X
Q0
'1''0'
ZSBSE
b c
X'0'
'1'
Q1
Q2
Q2
D
clk
Q0
D
clk
Q1
D
clk
0
1
Q2
Q0
XS
0
X*Q
0
Q2
X
Q1
Rst*
Z
001 100 010® ®
Présent Suivant
100 00 01 qq® ®
H
L
LH LH HL
LHH
0 PLH PLH PHL PLH SUT = t + t + t + t + t
1 PHL PHL PLH PHL SUT = t + t + t + t + t
LHHL HL
HL
000
001
100
010
ELE3311 –
Systèmes logiques programmablesPage 32
Fréquence maximale (analyse statique)
▪ Analyse temporelle statique (Static Timing Analysis)
➢ Exemple d’un rapport dans Vivado (projet didac)
➢ Ouvrir le design placé et routé
➢ Identifier un chemin (path)
ELE3311 –
Systèmes logiques programmablesPage 33
Fréquence maximale (analyse statique)
▪ Analyse temporelle statique (STA)
➢ Rapport Vivado (entête)
report_timing -through [get_selected_objects ]
INFO: [Timing 38-91] UpdateTimingParams: Speed grade: -1, Delay Type: max.
INFO: [Timing 38-191] Multithreading enabled for timing update using a maximum of 2 CPUs
INFO: [Timing 38-78] ReportTimingParams: -through_pins -max_paths 1 -nworst 1 -
delay_type max -sort_by slack.
Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.
------------------------------------------------------------------------------------
| Tool Version : Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018
| Date : Tue Mar 26 14:39:37 2019
| Host : sby-7480 running 64-bit major release (build 9200)
| Command : report_timing -through {{inst_msa/compteur_p[3]_i_2_n_0}}
| Design : top_level_compteur
| Device : 7a200t-sbg484
| Speed File : -1 PRODUCTION 1.23 2018-06-13
------------------------------------------------------------------------------------
ELE3311 –
Systèmes logiques programmablesPage 34
Fréquence maximale (STA)
▪ Rapport (résumé)Timing Report
Slack (MET) : 60.234ns (required time - arrival time)
Source: inst_msa/compteur_p_reg[1]/C (rising edge-triggered cell FDCE clocked
by clk_out1_clk_wiz {[email protected] [email protected] period=62.500ns})
Destination: inst_msa/compteur_p_reg[3]/D (rising edge-triggered cell FDCE clocked
by clk_out1_clk_wiz {[email protected] [email protected] period=62.500ns})
Path Group: clk_out1_clk_wiz
Path Type: Setup (Max at Slow Process Corner)
Requirement: 62.500ns (clk_out1_clk_wiz [email protected] - clk_out1_clk_wiz
Data Path Delay: 2.239ns (logic 0.744ns (33.232%) route 1.495ns (66.768%))
Logic Levels: 1 (LUT5=1)
Clock Path Skew: 0.000ns (DCD - SCD + CPR)
Destination Clock Delay (DCD): -1.405ns = ( 61.095 - 62.500 )
Source Clock Delay (SCD): -0.805ns
Clock Pessimism Removal (CPR): 0.600ns
Clock Uncertainty: 0.102ns ((TSJ^2 + DJ^2)^1/2) / 2 + PE
Total System Jitter (TSJ): 0.071ns
Discrete Jitter (DJ): 0.191ns
Phase Error (PE): 0.000ns
ELE3311 –
Systèmes logiques programmablesPage 35
Fréquence maximale (STA)
▪ Rapport (horloge source)Location Delay type Incr(ns) Path(ns) Netlist Resource(s)
------------------------------------------------------------------- -------------------
(clock clk_out1_clk_wiz rise edge)
0.000 0.000 r
R4 0.000 0.000 r clk_100mhz_i (IN)
net (fo=0) 0.000 0.000 inst_clk_wiz/inst/clk_in1
R4 IBUF (Prop_ibuf_I_O) 1.475 1.475 r inst_clk_wiz/inst/clkin1_ibufg/O
net (fo=1, routed) 1.233 2.708 inst_clk_wiz/inst/clk_in1_clk_wiz
MMCME2_ADV_X1Y2 MMCME2_ADV (Prop_mmcme2_adv_CLKIN1_CLKOUT0)
-7.432 -4.724 r
inst_clk_wiz/inst/mmcm_adv_inst/CLKOUT0
net (fo=1, routed) 1.808 -2.915
inst_clk_wiz/inst/clk_out1_clk_wiz
BUFGCTRL_X0Y0 BUFG (Prop_bufg_I_O) 0.096 -2.819 r inst_clk_wiz/inst/clkout1_buf/O
net (fo=30, routed) 2.014 -0.805 inst_msa/CLK
SLICE_X0Y68 FDCE r inst_msa/compteur_p_reg[1]/C
------------------------------------------------------------------- -------------------
ELE3311 –
Systèmes logiques programmablesPage 36
Fréquence maximale (STA)
▪ Rapport (chemin de donnée – datapath)Location Delay type Incr(ns) Path(ns) Netlist Resource(s)
------------------------------------------------------------------- -------------------
SLICE_X0Y68 FDCE (Prop_fdce_C_Q) 0.419 -0.386 r inst_msa/compteur_p_reg[1]/Q
net (fo=4, routed) 1.495 1.109 inst_msa/Q[1]
SLICE_X0Y68 LUT5 (Prop_lut5_I1_O) 0.325 1.434 r inst_msa/compteur_p[3]_i_2/O
net (fo=1, routed) 0.000 1.434 inst_msa/compteur_p[3]_i_2_n_0
SLICE_X0Y68 FDCE r inst_msa/compteur_p_reg[3]/D
------------------------------------------------------------------- -------------------
ELE3311 –
Systèmes logiques programmablesPage 37
Fréquence maximale (STA)
▪ Rapport (horloge destination et total)Location Delay type Incr(ns) Path(ns) Netlist Resource(s)
------------------------------------------------------------------- -------------------
(clock clk_out1_clk_wiz rise edge)
62.500 62.500 r
R4 0.000 62.500 r clk_100mhz_i (IN)
net (fo=0) 0.000 62.500 inst_clk_wiz/inst/clk_in1
R4 IBUF (Prop_ibuf_I_O) 1.405 63.905 r inst_clk_wiz/inst/clkin1_ibufg/O
net (fo=1, routed) 1.162 65.067 inst_clk_wiz/inst/clk_in1_clk_wiz
MMCME2_ADV_X1Y2 MMCME2_ADV (Prop_mmcme2_adv_CLKIN1_CLKOUT0)
-7.674 57.393 r
inst_clk_wiz/inst/mmcm_adv_inst/CLKOUT0
net (fo=1, routed) 1.723 59.116
inst_clk_wiz/inst/clk_out1_clk_wiz
BUFGCTRL_X0Y0 BUFG (Prop_bufg_I_O) 0.091 59.207 r inst_clk_wiz/inst/clkout1_buf/O
net (fo=30, routed) 1.888 61.095 inst_msa/CLK
SLICE_X0Y68 FDCE r inst_msa/compteur_p_reg[3]/C
clock pessimism 0.600 61.695
clock uncertainty -0.102 61.593
SLICE_X0Y68 FDCE (Setup_fdce_C_D) 0.075 61.668 inst_msa/compteur_p_reg[3]
-------------------------------------------------------------------
required time 61.668
arrival time -1.434
-------------------------------------------------------------------
slack 60.234
ELE3311 –
Systèmes logiques programmablesPage 38
Architecture pipelinée
ELE3311 –
Systèmes logiques programmablesPage 39
Architecture pipeline (suite)
D1 D0
D1 D0D2
C0
C0a C0b
X
X
Clk
Clk
C1
C1
ELE3311 –
Systèmes logiques programmablesPage 40
Considérations pratiques (suite)
▪ Interconnections de circuits
➢ Un long fil de masse engendre des effets inductifs et
résistifs qui peuvent provoquer des erreurs logiques;
Masse A&B
Sortie A / Entrée C
Entrée D
Sortie D (erreur !!)
ELE3311 –
Systèmes logiques programmablesPage 41
Considérations pratiques (suite)
▪ Interconnections de circuits (suite)
➢ Des charges capacitives élevées, causées par un trop grand nombre d'entrées (sortance élevée), engendrent une durée de transition plus longue, ce qui réduit la fréquence d’utilisation;
➢ Les fils reliant des portes éloignées sont considérés comme des lignes de transmission et peuvent provoquer des erreurs dues à la réflexion. Ce phénomène est aussi connu sous le nom de "Over Shoot"; L'inductance mutuelle entre des lignes trop rapprochées peut engendrer des erreurs dues aux effets de "Crosstalk";
➢ La distribution non-étudiée d'horloge peut réduire la fréquence maximale d'un système.
ELE3311 –
Systèmes logiques programmablesPage 42
Considérations pratiques (suite)
▪ Recommandations
➢ Utiliser des circuits synchrones pour réduire les effets
d'inductance entre les lignes;
➢ Éviter les capacités parasites dans le filage des circuits;
➢ Réduire les inductances parasites des fils en utilisant un
plan de masse ("Ground Plane"). Sinon élargir les
conducteurs servant à l'alimentation autant que possible et
entourer la carte imprimée d'un conducteur en boucle
fermée;
➢ Élargir une mise à la terre commune dans le cas d'un
circuit multicartes imprimé;
ELE3311 –
Systèmes logiques programmablesPage 43
Considérations pratiques (suite)
▪ Recommandations (suite)
➢ Amplifier les signaux et prévoir une mise à la terre pour
les portes attaquant les autres cartes;
➢ Amplifier les signaux d'horloge, respecter la sortance et
les délais et utiliser autant que possibles des circuits
"Schmitt Trigger";
➢ Maintenir une impédance basse entre l'alimentation et la
mise à la terre de chaque circuit intégré en utilisant une
capacité.