ENS / Electronique |
: |
ASIC / FPGA |
Travaux Pratiques |
: |
Simulation et Synthèse Logique pour Technologie ASIC |
-~oOo~-
Introduction
1. Objectif du TP
L'objectif de ces travaux pratiques est de donner un aperçu de la fonctionalité des simulateurs et des synthétiseurs pour la technologie
ASIC.
Les fondements théoriques ont été vus en cours, aussi ce TP se place-t-il délibérément dans l'optique concrète de l'utilisateur.
2. Langages
Le langage de description de matériel utilisé sera VHDL.
Les manuels de référence du langage (
LRM) sont disponibles en ligne :
- LRM VHDL (standards IEEE 1076
1987,
1993,
2000,
2002)
– en gras le plus récent.
- Paquetage de logique multi-valuée à 9 états
'U',
'X',
'0',
'1',
'Z',
'W',
'L',
'H' et
'-'
(standard IEEE 1164).
- Paquetages mathématiques (standard IEEE 1076.2) :
- ieee.math_real
- ieee.math_complex
- Paquetages pour la synthèse (standard IEEE 1076.3) :
- ieee.numeric_bit
- ieee.numeric_std
- Paquetages VITAL pour la simulation avec retards (standards IEEE 1076.4
1995,
2000).
- Sous-ensemble VHDL synthétisable (standard IEEE 1076.6),
dont la lecture est fortement recommandée.
Les paquetages standards de VHDL sont également accessibles en ligne :
Si vous préférez coder en Verilog (ce qui n'est cependant pas recommandé dans le cadre de ce TP), voilà les LRM :
- LRM VerilogHDL (standards IEEE 1364
1995,
2001)
– en gras le plus récent.
- Sous-ensemble Verilog synthétisable, avec les directives (pragmas) de synthèse :
"IEEE Standard for Verilog® Register Transfer Level Synthesis"
(standard IEEE 1364.1 de 2002, 109 pages).
Un tutoriel en ligne, avec des exemples réutilisables de codes, est disponible depuis le site
http://www.comelec.enst.fr/hdl.
La partie sur Verilog est plus à jour que celle sur VHDL (en version alpha).
Tous les outils de CAO se contrôlent par le langage TCL.
Les simulateurs et les synthétiseurs ne font pas exception à cette règle.
Les quelques rudiments de TCL à connaître seront donnés au court du TP.
Pour plus d'information, la meilleure source est
la page web officielle du langage.
3. Outils informatiques
Le simulateur est
ModelSim
de la société
Mentor Graphics.
Comme l'objectif principal du TP n'est pas la simulation, seul un manuel de prise en main de l'outil est fourni :
La chaîne de simulation de ModelSim (comme celle des concurrents) comprends quatre étapes (associées à quatre utilitaires) :
- vlib :
création d'une bibliothèque de compilation (un répertoire ou ModelSim stocke ses fichiers binaires),
- vmap :
association entre un nom logique (celui qui est utilisé dans la clause library de VHDL) à un nom physique (le chemin d'accès au répertoire créé avec vlib),
- vcom :
compilation des sources VHDL,
- vsim :
élaboration (édition de liens) et simulation (exécution).
Pour avoir un aperçu concret de cette chaîne, utilisez :
- le test-bench suivant : helloworld.vhd
- avec ce Makefile.vhd
(Attention: il faut renommer ce fichier Makefile).
Tapez simplement make pour tout lancer,
et make clean pour tout nettoyer.
Le synthétiseur est
PKS Shell
(pour
Physically Knowledgeable Synthesis – Shell)
de la société
Cadence.
La documentation du synthétiseur est répartie en plusieurs fichiers PDF thématiques.
Une vue d'ensemble est disponible dans :
Quelques autres documents utiles sont :
4. Technologies pour la synthèse
Nous allons utiliser deux technologies.
La première s'appelle
simple, car elle ne contient qu'un nombre réduit de portes et qu'elle est caractérisée très grossièrement.
Son utilité est pédagogique.
Elle comprend les cellules données dans le tableau suivant.
Mis à part le buffer (cellule
BFX2), toutes les portes sont unitaires :
elles peuvent charger en moins d'une nanoseconde une capacité maximale d'une picofarad.
Cellule |
Fonction logique |
Surface |
Capacité d'entrée |
Capacité maximale de sortie |
Temps de propagation |
BFX2 |
Buffer (identité) |
2 |
1 |
2 |
2 |
IV |
Inverseur unitaire |
1 |
1 |
1 |
1 |
AN |
ET |
2 |
1 |
1 |
2 |
EO |
OU Exclusif |
4 |
1 |
1 |
2 |
MX |
Multiplexeur à deux entrées |
4 |
1 |
1 |
2 |
FD |
Bascule D |
10 |
1 |
1 |
1 |
|
La seconde technologie est la 130 nm de STMicroelectronics.
Nous utiliserons la bibliothèque
CORE9GPLL, disposant de 693 cellules standards à faibles courants de fuites
(
Low Leakage),
caractérisée pour :
- une tension d'alimentation de 1.08 V (tension nominale = 1.20 V),
- une températeur de 125 degrés Celsius (température nominale = 25 C),
- un procédé de fabrication worst (procédé nominal = regular).
La documentation de cette bibliothèque figure dans ce recueil :
Les descriptions "formelles" de ces bibliothèques, au format
liberty de
Synopsys,
seront utilisées tout au long du TP.
Il est utile de les parcourir au moins une fois :
- simple.lib
- CORE9GPLL_Worst.lib