Temps de propagation
Download
Report
Transcript Temps de propagation
Module EN219
Conception ASIC Numérique
Année 2014-2015 / Camille LEROUX
1
Objectifs du module
Comprendre les problématiques liées à l’intégration de
circuits numériques (complexité, temps de propagation,
interconnexion, conso de puissance, …)
Comprendre le flot de conception ASIC numérique en cellules
standards
Savoir synthétiser un circuit simple à partir d’un fichier VHDL
Savoir analyser les résultats de synthèse (timing, power, area)
Savoir simuler le circuit après synthèse
2
Plan du module EN219
Classification des CIN
Temps de propagation
Consommation de puissance et d’énergie
Flot de conception
3
Comment concevoir un circuit numérique ?
TOUS les circuits numériques sont un assemblage plus ou moins complexe de
portes logiques élémentaires et de bascules D (et de mémoire).
+
=
Comment faire des portes logiques et des bascules à partir de transistors ???
4
Options technologiques
CIN
Circuits
configurables
Circuits dédiées
Custom
Circuits
sur mesure
Full
Custom
Semi-Custom
Circuits
précaractérisés
Standard
cell
Circuits
(re)configurables
Circuits
prédiffusés
Gate
array
Sea of
gates
FPGA
CPLD
PLA
5
Full custom ASICs
• Utilisé lorsque les contraintes de conception sont très fortes:
performances, vitesse, consommation de puissance, coût…
• Le circuit est partitionné en sous-circuits optimisés pour l’application.
• Chaque transistor est dessiné “à la main”.
• Typiquement utilisé pour les circuits analogiques ou bien une portion
analogique d’un système plus large.
• Egalement utilisé pour le layout des microprocesseurs.
• Conception très coûteuse, inaproprié pour les très gros circuits, à
moins que la performance soit le premier critère de conception.
Custom
Circuits
sur mesure
Full
Custom
SemiCustom
Circuits
précaractérisé
s
Standard
cell
Circuits
prédiffusés
Gate
array
Sea of
gates
6
ASIC - Cellules standards
• Utilisation de cellules logiques pré-caractérisées (portes ET, OU,
MUX, FF, etc) appelées cellules standards
• Plus simple qu’un design full-custom
• Les cellules standards sont uniquement interconnectées, placées et
routées. Elles sont utilisables comme des boîtes noires.
• En fonction des librairies, possibilité de disposer de macro-fonctions
optimisées : multiplieurs, cœurs de processeurs, ALU, etc…
• Tous les masques (transistors et interconnexions) sont spécifiques
au design (customized masks)
• Des blocs optimisés peuvent être inclus dans le circuit
• La durée de fabrication est de l’ordre de 2 mois.
Custom
Circuits
sur mesure
Full
Custom
SemiCustom
Circuits
précaractérisé
s
Standard
cell
Circuits
prédiffusés
Gate
array
Sea of
gates
7
ASIC - Cellules standards
Une librairie de cellules standards
contient la description
fonctionnelle ainsi que les
caractéristiques physiques de
chaque cellule.
Les caractéristiques principales sont:
- Fondeur (ST, TSMC, IBM,…)
- Longueur min d’un transistor
(90nm, 65nm, 45nm, …)
- Type (general purpose, low power)
- Tension de seuil (low VT, standard
VT, High VT)
- Tension d’alim
- Worst case (lower voltage/ high T
- Best case (higher voltage / low T)
8
ASIC - Cellules standards
Exemples de cellule
9
ASIC - Cellules standards
Exemples de cellule
10
ASIC - Cellules standards
Exemples de cellule
11
ASIC prédiffusé: gate array
• Les transistors sont prédiffusés sur le silicium sous forme de matrice
• La matrice ainsi définie est appelée matrice de base (base array)
• Le plus petit élément constitutif de la matrice de base est appelé
cellule de base (ou cellule primitive)
• Seules les interconnexions entre cellules de base sont modifiables:
Masked Gate Array (MGA)
• Le concepteur utilise une librairie de cellules logiques
• Après validation, le placement et le routage automatique les cellules
logiques sont converties en cellules primitives afin de générer les
masques d’interconnexions
A
A
Out
B
B
NMOS GND Vdd PMOS
NMOS GND Vdd PMOS
12
ASIC prédiffusés: gate array
les sous-types
GA avec canal
GA sans canal
(sea of gates)
Custom
Circuits
sur mesure
Full
Custom
GA structuré
SemiCustom
Circuits
précaractérisé
s
Standard
cell
Circuits
prédiffusés
Gate
array
Sea of
gates
13
Les circuits reconfigurables : FPGAs
14
Les circuits reconfigurables : FPGAs
15
Comparaison des types d’ASICs
Différences structurelles
Type
Full-Custom
Cellules
standards
Gate Array
FPGA
Taille cellules
Variable
Hauteur fixe
Fixe
Fixe
Type de cellule
Variable
Variable
Fixe
Configurable
Placement des
cellules
Variable
En lignes
Fixe
Fixe
Interconnexions
Variable
Variable
Variable
Configurable
16
Comparaison des types d’ASICs
Surface, vitesse, couches de fab
Type
Full-Custom
Cellules
standards
Gate Array
FPGA
Surface
Compacte
Compacte à
modérée
Modérée
Importante
Vitesse
Forte
Forte à
modérée
Modérée
Faible
Couches de
fabrication après
conception
Toutes
Toutes
Couches de
routage
Aucune
17
Comparaison des types d’ASICs
Cout monétaire et temporel
Type
Full-Custom
Cellules
standards
Gate Array
FPGA
NRE(Non-recurring
engineering cost)
Très élevé
Elevé
Elevé
Faible
Coût unitaire (volume
faible)
Très élevé
Elevé
Elevé
Faible
Coût unitaire (volume
important)
Faible
Faible
Faible
Très élevé
Temps de conception
Long
Court
Court
Court
Temps de fabrication
Long
Long
Long
Court
18
Quelques fondeurs d’ASICs
• Manufacturiers
• STMicroelectronics
• IBM
• AMS
• TSMC
• Toshiba
• Texas Instruments
• Samsung…
• Manufacturiers « fabless »
• Broadband corporation
• eASIC
• Nvidia
• Qualcomm
• PMC Sierra…
19
Plan du module EN219
• Classification des CIN
• Temps de propagation
• Consommation de puissance et d’énergie
• Flot de conception
20
Structure classique d’un circuit
numérique synchrone
Tous les circuits numériques ont besoin d’une référence temporelle pour savoir
quand échantillonner/envoyer une valeur numérique:
• Les systèmes synchrones utilisent une horloge
• Les systèmes asynchrones utilisent un mécanisme de Req-Ack
21
Circuit intégré numérique à grande
échelle (VLSI)
La plupart des systèmes intégrés complexes sont globalement asynchrones et
localement synchrones
Nous nous focalisons sur un domaine d’horloge unique.
22
Structure classique d’un circuit
numérique synchrone
Logique
Combinatoire
Logique
Combinatoire
D Flip-Flop
Clock
Le signal d’horloge est propagé à toute les bascules du domaine pour qu’elles soient
synchronisées.
Pour avoir un fonctionnement correct, chaque bascule doit « voir » un front montant au
même instant.
23
Skew d’horloge et jitter
• Skew d’horloge: Variation systématique du front d’horloge, d’un endroit
à un autre du circuit
• Causes: variation de fabrication du circuit, température, bruit d’alim
• En général, les outils permettent de générer un arbre d’horloge
garantissant un skew d’horloge max sur l’ensemble du circuit
• Des circuits de deskewing existent pour compenser certaines
composantes du skew.
• Un design de l’arbre plus fin est possible mais est encore peu
automatisé
• Jitter d’horloge: Variation aléatoire du front d’horloge d’un cycle
d’horloge à un autre
• Cause principale: bruit d’alim
24
Chemin critique
La fréquence d’horloge est limitée par le temps de propagation maximal
entre deux bascules.
Ce chemin combinatoire est appelé chemin critique
Le chemin critique dépend:
• de la quantité de logique combinatoire mise en série
• de la longueur des interconnexions entre les bascules
• de la charge appliquée en sortie de chaque opérateur
+
+
+
Clock
Pour que le circuit fonctionne correctement il faut que Tck > tlogic-max
25
Bascules D - Temps d’acquisition et de
maintien
• Rappel: D-FF: Q devient D après le front
d’horloge et garde cette valeur juqu’au
prochain front
• Temps d’acquisition (set-up time):
temps nécessaire à la bascule pour
mémoriser l’entrée D avant le front d’horloge
• Temps de maintien (hold time) :
Temps nécessaire à la bascule pour
mémoriser l’entrée D après le front d’horloge
• Temps de retard à la sortie (delay on
output):
Délai nécessaire à la bascule pour
répercuter le changement de l’entrée vers la
sortie. NB: il inclut le temps de maintien
26
Violation du temps d’acquisition
Violation du temps d’acquisition quand la logique
combinatoire est “trop lente” et ne permet pas de
stabiliser l’entrée de la bascule de droite avant
l’instant t_clock-t_setup
Timing slack
27
Violation du temps de maintien
Violation du temps maintien quand la logique
combinatoire est “trop rapide” et ne permet pas de
maintenir l’entrée de la bascule suffisamment
longtemps.
Arrive typiquement lorsque un signal est copié d’une
bascule à une autre. L’outil est alors obligé d’insérer de
la logique pour retarder les signaux.
28
Qu’arrive t-il en cas de violation des
temps ?
D change en dehors de l’intervalle set-up/hold → t_clock-Q est correct
D change pendant l’intervalle set-up/hold → t_clock-Q est plus long que
prévu ou bien incorrect
Changement après le setup time :
t_clock-Q est plus long qu’attendu
Changement avant le hold time :
t_clock-Q est plus long qu’attendu et
potentiellement incorrect
29
Analyse temporelle dans les outils de
synthèses
- Pendant la synthèse
- calcul des tp dans le pire cas
- Détermination du chemin critique
- Exploitation du parallélisme
- Déplacement de la logique dans le cas d’une violation du t_setup (retiming)
- Certains outils font un préplacement pour estimer les temps de propagation
le long des interconnexions
- Après la synthèse
- Analyse temporelle statique
- Vérification des t_setup sur les chemins longs
- Vérification des t_hold sur les chemins courts
- Après placement et routage
- Analyse temporelle tenant comptes des interconnexions
30
Comment atteindre les performances
escomptées ?
Une fois le système décrit en HDL, le designer a relativement peu de contrôle
sur les performances:
- choix des librairies de composants (souvent limité à ce que l’on a)
- options compilations (nécessite une très bonne connaissance de l’outil)
- multi cycles (fastidieux)
- insertion de buffer (couteux)
Conclusion: tout se joue lors de la phase de conception !
Si l’architecture du système est mal conçue/pensée, votre circuit aura des
performances limitées.
LES OUTILS NE PEUVENT PAS FAIRE DE MIRACLES SUR UN MAUVAIS
DESIGN !
31
Plan du module EN219
• Classification des CIN
• Temps de propagation
• Consommation de puissance et d’énergie
• Flot de conception
32
Pourquoi doit-on réduire la conso ?
– Pour augmenter l’autonomie des batteries pour
les SE
– Pour limiter les besoins de refroidissement
• T_max sur un circuit : 90 degrés C
– Hautes températures réduisent vitesse et fiabilité du circuit
• Les boitiers plastiques sont 10 fois moins cher que les
boitiers céramiques mais ils ne dissipent que quelques
Watts
• Systèmes de refroidissements coûtent cher
33
Pourquoi doit-on réduire la conso ?
– Pour limiter le coût de conception du circuit
• Lignes d’alimentation prennent de la place sur le circuit
• Régulateurs de puissances et alimentations
– Pour limiter l’impact écologique
• 1% de l’énergie mondiale est consommée par
l’électronique (en augmentation)
• 20% de l’énergie domestique est consommée par
l’électronique (en augmentation)
34
Densité de puissance
35
Conso de puissance dans les circuits
CMOS
- La conso est devenue la fonction de coût numéro 1,
devant le nombre de portes !!!
- Puissance statique (quand le circuit ne bascule pas)
- Courant de fuite (I_DS, courant d’oxide SiO2, …)
- Puissance dynamique (lors d’une transition logique)
- Courant de court-circuit
- Courant de charge de la sortie
36
Courant de charge/décharge
- Dû aux charges et décharges successives des capacités
de sorties.
- Energie par transition = CL . Vdd2
- Puissance = Energie/transition * f = CL . Vdd2 . f
37
Courant de court-circuit
- Pendant la période de transition, les réseaux NMOS et
PMOS sont passants en même temps. Un courant de
court-circuit s’établit donc entre Vdd et la masse.
38
Courant de fuite (canal)
- Même lorsqu’un transistor est ouvert, un courant de
fuite s’établit aux niveaux des jonctions du transistors.
39
Courant de fuite (grille)
- 20-30% des courants de fuites viennent des courants de
grille.
- L’oxyde de grille est tellement fin, que les électrons
arrivent à travers l’oxyde
- NMOS sont plus sensibles à ce courant que les PMOS
40
Consommation de puissance
41
Des pistes pour réduire la conso
42
Solution architecturale:
le parallélisme
• On suppose: tp=25ns à VDD=5V
43
Solution architecturale:
le parallélisme
• Cpar=2.15C (routage supplémentaire nécessaire)
• fpar=f/2 (tp,new=50ns=> VDD~2.9V; VDD,par=0.58VDD
• Ppar=CparVDD2fpar=0.36Pref
44
Solution architecturale:
le pipelining
• Cpipe=1.15C (registres supplémentaires+routage)
• Temps de propagation /2 (VDD,pipe=0.58VDD)
• Ppipe=0.39P
45
Plan du module EN219
• Classification des CIN
• Temps de propagation
• Consommation de puissance et d’énergie
• Flot de conception
46
Flot de conception ASIC
• Les premiers circuits intégrés numériques ont été conçu « à la
main »
• Les circuits intégrés numériques actuels sont constitués de
milliards de transistors
Elévation du niveau d ’abstraction
Automatisation du flot de conception
47
Les outils de conception
(CAD tools)
Quels types d’outils ?
Quel domaine de compétence ?
• Editeurs
• Compilateurs RTL
• Simulateurs
• Librairies
• Synthétiseurs de modules
• Placement / Routage
• Générateurs de masques
• etc…
• Conception logique
• Conception de circuits électriques
• Physique du composant
• Graphique
• Conception système
• Optimization combinatoire
• etc …
48
Les phases de conception
Cahier des charges
Définition de l’architecture
Exploration
architecturale
Définition de la micro architecture
Saisie du design (écriture VHDL,…)
Vérification
Implémentation
Synthèse physique
Fabrication de la puce
Caractérisation et test de la puce
Fabrication /
production
Production
49
Flot de conception ASIC
VHDL / verilog
• Implémentation Frontend
• Indépendant de la technologie
• La plupart du temps, l’effort de
conception fournit peut être réutilisé
pour d’autres cibles technologiques
(FPGA, structured ASIC, etc…)
???
GDSII
•
Implémentation Backend
• Implémentation dépendantes de la
technologie
• L’effort est spécifique à la
technologie cible (optimisation )
50
Flot de conception ASIC: Frontend
HDL ou
schéma
Test
Bench
Vérification
fonctionnelle
Synth. Lib.
Synthèse
Constraints
Analyse Timing
statique
Gate netlist
Timing lib.
Netlist portes
Saisie HDL (Verilog / VHDL)
• Point de départ: description HDL
du circuit
• Facile à modifier, partager
• Modularité
Saisie Schéma
• Méthode traditionnelle
• Bonne vision globale du système
• Facile de suivre le chemin suivi
par un signal
• WYSWYG
Simulation
Pre-layout
NON
OK
OUI
Implémentation Backend
51
Flot de conception ASIC: Frontend
HDL ou
schéma
Test
Bench
Vérification
fonctionnelle
Synth. Lib.
Synthèse
Vérification fonctionnelle
• Simulation fonctionnelle du design
• Comparaison avec référence haut niveau
(C, matlab, …)
• Pas de considérations de delais de
propagation
• Utilisation d’un test bench
• Verif. partielle possible
Constraints
Analyse Timing
statique
Gate netlist
Timing lib.
Netlist portes
Simulation
Pre-layout
NON
OK
OUI
Implémentation Backend
52
Flot de conception ASIC: Frontend
HDL ou
schéma
Test
Bench
Vérification
fonctionnelle
Synth. Lib.
Synthèse logique
• Conversion du RTL en netlist de portes
logiques.
• Utilisation d’une librairie de modèles
synthétisables
• Contraintes de vitesse, de placement, …
Synthèse
Constraints
Analyse Timing
statique
Gate netlist
Timing lib.
Netlist portes
Simulation
Pre-layout
NON
OK
OUI
Implémentation Backend
53
Flot de conception ASIC: Frontend
HDL ou
schéma
Test
Bench
Vérification
fonctionnelle
Synth. Lib.
Synthèse
Analyse temporelle statique
• Verification des contraintes temporelles
• Detection et correction des conditions de
“race”
• Analyse independante des vecteurs de
test
• Aide la synthèse à optimiser la logique
Constraints
Gate netlist
Timing lib.
Netlist portes
Analyse Timing
statique
Simulation
Pre-layout
NON
OK
OUI
Implémentation Backend
54
Flot de conception ASIC Frontend
HDL ou
schéma
Test
Bench
Vérification
fonctionnelle
Synth. Lib.
Simulation Pre-layout
• Verification du design à la fréquence
d’horloge spécifiée
• Les temps de propagation des portes sont
utilisés
Synthèse
Constraints
Gate netlist
Timing lib.
Netlist portes
Analyse Timing
statique
Simulation
Pre-layout
NON
OK
OUI
Implémentation Backend
55
Flot de conception ASIC: Backend
Floor
Planning
Synth. Lib
Physical
Lib.
Timing Lib.
Synthèse
physique
Placement,
Routage et DRC
Floor planning
• Les macro-blocks sont disposés sur le
circuit en fonction de la complexité et
connectivité
• Chaque block est caractérisé par les
cellules qui le compose et par ses
interconnexions
• Agencement “intelligent” des blocks sur le
Silicium
Lib. Techno.
Test
Bench
Post-Layout
simulation
56
Flot de conception ASIC: Backend
Floor
Planning
Synth. Lib
Physical
Lib.
Timing Lib.
Synthèse
physique
Synthèse physique
• Synthèse logique plus poussée
• Des contraintes physiques sont ajoutées
et fournies à l’outil de synthèse logique.
• Un routeur fournit des informations sur
les délais entre les portes
• Les delais d’interconnexion sont plus long
que ceux des portes
Placement,
Routage et DRC
Lib. Techno.
Test
Bench
Post-Layout
simulation
57
Flot de conception ASIC: Backend
Floor
Planning
Synth. Lib
Physical
Lib.
Timing Lib.
Synthèse
physique
Placement,
Routage et DRC
Placement et Routage
• Le placement décide la localisation exacte
de chaque cellule dans les macro-block
• Poursuit l’effort du Floor Planning
• Connecte physiquement les cellules entre
elles
Design Rule Check (DRC)
• Vérifie les règles de dessin dans le design
placé et routé
• Detection d’interférences, cross-talk, etc…
Lib. Techno.
Test
Bench
Post-Layout
simulation
58
Flot de conception ASIC: Backend
Floor
Planning
Synth. Lib
Physical
Lib.
Timing Lib.
Simulation Post-Layout
• Vérifie que le design fonctionne toujours
avec toute les interconnexions
Synthèse
physique
Placement,
Routage et DRC
Lib. Techno.
Test
Bench
Post-Layout
simulation
59