87
1 LAAS 06/2003 Yannick HERVE - ENSPS 1 VHDL-AMS Un outil de l’électronique moderne 1 - Besoins, Historique, Généralités (4h) 2 - Introduction à VHDL-AMS (4h+2h prés.) 3 - VHDL-AMS en profondeur (2h+4hTD) 4 - VHDL-AMS : contexte et utilisation (2h) 5 - VHDL et la synthèse logique (2h) LAAS 06/2003 Yannick HERVE - ENSPS 2 Ressources associées au cours n Ce document power point © n Les énoncés de TP n Document « Where are we going? » n La grammaire HTML interactive © n Des exemples n Le tutorial DAC 99 (PDF) n Un fichier Bookmark

LAAS_AMS_1

Embed Size (px)

Citation preview

Page 1: LAAS_AMS_1

1

LAAS 06/2003 Yannick HERVE - ENSPS 1

VHDL-AMSUn outil de l’électronique moderne

1 - Besoins, Historique, Généralités (4h)2 - Introduction à VHDL-AMS (4h+2h prés.)3 - VHDL-AMS en profondeur (2h+4hTD)4 - VHDL-AMS : contexte et utilisation (2h)5 - VHDL et la synthèse logique (2h)

LAAS 06/2003 Yannick HERVE - ENSPS 2

Ressources associées au cours

n Ce document power point ©n Les énoncés de TPn Document « Where are we going? »n La grammaire HTML interactive ©n Des exemplesn Le tutorial DAC 99 (PDF)n Un fichier Bookmark

Page 2: LAAS_AMS_1

2

LAAS 06/2003 Yannick HERVE - ENSPS 3

1 - Besoins, Historique, Généralités

Cycle de CAO et Méthodes modernes de conceptionModélisation et simulation : besoins nouveauxBesoin d'un standard : VHDL-AMSLes concurrents en présence Simulateur numérique vs continu ?

LAAS 06/2003 Yannick HERVE - ENSPS 4

Le cycle de CAO pour CIn FRONT-END : description fonctionnelle,

validation algorithmes, synthèse, macro-cellules, optimisations haut niveau, simulations fonctionnelles, preuve formelle

n BACK-END : translation netlist vers techno, placement-routage, DRC, extraction des délais, back-annotation, simulations temporelles, LVS, (packaging, thermique)

Page 3: LAAS_AMS_1

3

LAAS 06/2003 Yannick HERVE - ENSPS 5

Spécifications de client

Cahier des charges

Description de haut niveau(matériel/logiciel)

Modèlesexternes

Partition hard (ana/num) / soft Vers l’étude soft

Analogique : schéma

Logique : schémas, HDL + simulations

Contraintes(techn, com.)

RessourcesBiblio. cell.

simulation

To /fromback-end

Synthèse/opt.

Netlist de portes

LAAS 06/2003 Yannick HERVE - ENSPS 6

Description structurelledans la DB de la techno

Placement / routage / pack.

Extraction

Biblio. cell.Géom. Elec.Therm.

vérification

To /from front-end

Pré-industrialisation Fabrication

DRC

LVS

Rétro-annotation

Géométrie

Layout

Page 4: LAAS_AMS_1

4

LAAS 06/2003 Yannick HERVE - ENSPS 7

Méthodes modernes de CAO

n Top-downn Conception mixte (num. / analog.)n Co-design (matériel/logiciel)n Cahier des charges formel et simulablen Outil unique et concurrent engineeringn Indépendance fondeur et normesn Preuve formelle

LAAS 06/2003 Yannick HERVE - ENSPS 8

Méthodes modernes de CAO :

Conception Top-down

n Formalisation du cahier des chargesn Spécifications simulablesn Représentation hiérarchique

(du quoi vers le comment)n Travail dans une DB / Grande équipe

n Implique « hiérarchique » et multi-abstraction

Page 5: LAAS_AMS_1

5

LAAS 06/2003 Yannick HERVE - ENSPS 9

Méthodes modernes de CAO :

Conception mixte

n Tendance : analogique + numériquen WorkFlow adapté

n Numérique = juste par designn Analogique ????

LAAS 06/2003 Yannick HERVE - ENSPS 10

Méthodes modernes de CAO :

Synthèse logique

n Ne s’applique qu’au numérique(pour l ’instant)

n Passer automatiquement d ’une représentation de haut-niveau à une représentation de plus bas niveau.

Fonction. vers RTL (recherche ou spécialisé)

RTL vers Gate (synthèse logique ~85)

Gates vers layout (compilation de silicium, ~65 )

Page 6: LAAS_AMS_1

6

LAAS 06/2003 Yannick HERVE - ENSPS 11

Méthodes modernes de CAO :

Co-design (matériel/logiciel)

n Développement et optimisationconjoints du logiciel et du matériel

n Workflow adapté ???

LAAS 06/2003 Yannick HERVE - ENSPS 12

Méthodes modernes de CAO :

Cahier des charges formel

n Expression des besoins sous forme formelle et simulable

n Workflow adapté ?

Page 7: LAAS_AMS_1

7

LAAS 06/2003 Yannick HERVE - ENSPS 13

Méthodes modernes de CAO :

Concurrent engineering

n Mettre en parallèle des tâches pour optimiser le time-to-marketExemples : faire le routage alors que les ASICs sont en développementFaire la publicité pendant les testsConcevoir le boîtier alors que le contenu n’existe pas

n Workflow adapté ??n Coût des erreurs et des retours

LAAS 06/2003 Yannick HERVE - ENSPS 14

Méthodes modernes de CAO :

Indépendance fondeur et normes

n Passé : les fondeurs fournissaient leurs méthodes et langages de descriptionConséquences : dépendance

n Actuel : Workflow et langages permettent de repousser au plus tard possible le choix du fondeurLe front end est indépendant du fondeur et repose sur une norme (Remarque : difficultés en deep sub micron)

Page 8: LAAS_AMS_1

8

LAAS 06/2003 Yannick HERVE - ENSPS 15

Méthodes modernes de CAO :

Preuve formelle

n Permet de vérifier « l ’égalité » de deux descriptions sans simulation (incomplète par nature)

n Deux familles de méthodesPreuve de théorème (théorème et démonstration)

Bijection de graphes

n Le langage doit pouvoir permettre ces calculs

LAAS 06/2003 Yannick HERVE - ENSPS 16

Nouveaux besoins

n Modélisation environnementalen MOEMSn Variabilité des processn Maîtrise des modèlesn Intellectual property (IP)n ...

Page 9: LAAS_AMS_1

9

LAAS 06/2003 Yannick HERVE - ENSPS 17

Nouveaux besoins :

Modélisation environnementale

n Spécification, Cahier de chargesn Pré-études (fonctionnel, structurel)n Plusieurs disciplinesn Plusieurs niveau d ’abstractionn Interfaçage avec les techniques de

production (analogique, numérique)

LAAS 06/2003 Yannick HERVE - ENSPS 18

Image LEPSI

EXEMPLE : BESOINS

Page 10: LAAS_AMS_1

10

LAAS 06/2003 Yannick HERVE - ENSPS 19

Image LEPSI

EXEMPLE :mise en situation du CI

LAAS 06/2003 Yannick HERVE - ENSPS 20

Nouveaux besoins :

MOEMS(micro-opto-electronical-mechanical systems)

n Mécanique, Optique, Electronique dans le silicium (compatible process Si)

n Nouvelles techniques de conceptionn Méthodes de modélisationn Collaboration techniques de simulation

Page 11: LAAS_AMS_1

11

LAAS 06/2003 Yannick HERVE - ENSPS 21

Vidéo et images extraites de http://www.mdl.sandia.gov/micromachine

LAAS 06/2003 Yannick HERVE - ENSPS 22

Page 12: LAAS_AMS_1

12

LAAS 06/2003 Yannick HERVE - ENSPS 23

Electronique (num./anal.), capteurs …sur le même substrat

LAAS 06/2003 Yannick HERVE - ENSPS 24

Nouveaux besoins :

Bilan

n CdC : haut niveau d ’abstractionn Multi-disciplines/Multi abstractionn Modèle externe (not SPICE)n Langage « naturel »n Equations différentiellesn Sémantique « électrique »

Page 13: LAAS_AMS_1

13

LAAS 06/2003 Yannick HERVE - ENSPS 25

Physique Equa.Diff. Silvaco

Electrique Spice / EldoEq.diff/mod. compo.

Switch Equations d ’état ?

Gate OrcadEq. booléenne

Structurel Netlist Dépend des blocs

Signal flow HDLProcess concurrents

Algo Prog.impératif C/pascal/ADA...

Système Pas d ’outil industriel

Processeurscommuniquants

Abstraction Expression Simulateur

Cont./cont.

Cont./cont.

Cont./quantifiés.

Discret/logic (2-9)

idem

Discret/symb.

idem

Symb./symb.

temps/signaux

VH

DL

VH

DL

-AM

S

Abstraction vs Simulation

LAAS 06/2003 Yannick HERVE - ENSPS 26

Besoin d ’un standard

n Histoire et nécessitén Qu'est ce qu'un HDLn Genèse de VHDL-AMSn Ce que peux faire VHDL-AMSn Avantage et inconvénientsn Les concurrents en présence

Page 14: LAAS_AMS_1

14

LAAS 06/2003 Yannick HERVE - ENSPS 27

Besoin d ’un standard :

Histoire et nécessitéChaque métier avait son mode de description(circuit, association de circuits, cartes, racks, systèmes,…)

VHDL : VHSIC Hardware Description Language(Very High Speed Integrated Circuit)

Sert à décrire des systèmes matériels à un haut niveau d ’abstraction

DoD : appel d ’offres = 80 langages de descriptionProblèmes : analyse, indépendance, maintenance, doc. …

Appel d ’offres : « Proposer un HDL » : VHDL accepté (Intermetrics, IBM, Texas)[ref à ADA]Domaine public en 85 / Norme IEEE 1076-1987 (10/12/87)

Note : démarche identique pour le soft a donné ADA (France)

LAAS 06/2003 Yannick HERVE - ENSPS 28

Besoin d ’un standard :

Qu'est ce qu'un HDLDescription de matériel

Ne vise pas forcément une exécution :SpécificationSynthèse logique (description vers masque) Preuve formelleDocumentationExtraction (LVS)

Plusieurs niveaux de description mixables

Page 15: LAAS_AMS_1

15

LAAS 06/2003 Yannick HERVE - ENSPS 29

Besoin d ’un standard :Qu'est ce qu'un HDL

Différences Langage / HDLLangage HDL

Sous-programme (dyn) Composant (stat)appel, calcul, oubli existe en soi

Variables (dynamique) Signaux(statiques+hist)a := b a <= ba := c (b oublié) a <= c (equip.)

Simulation du temps Gestion du temps

VHDL : composants et sous-programmessignaux et variables

COMPLET / POLYVALENT(inévitable / incontournable)

LAAS 06/2003 Yannick HERVE - ENSPS 30

Sub Par 1076.1Sub Par 1076.1

Besoin d ’un standard :

Genèse de VHDL-AMSVHDL VHDL IEEE 1076-1987

VHDL IEEE 1076-1993

Renormalisation + retard

Détails de consistance,quelques mots clefs, quelques concepts

Numérique pur

Sub Par 1076.1

Voir www.vhdl.org

VHDL-AMS IEEE 1076-1999

Extension à l ’analogique

Renormalisation + retard

Nouvelle philosophie

Compatible VHDL ’93

Autres efforts : non intégrés

Page 16: LAAS_AMS_1

16

LAAS 06/2003 Yannick HERVE - ENSPS 31

Besoin d ’un standard :

Ce que peut faire VHDL-AMSModèles multi-disciplines hiérarchiques continus et à événements discrets en bibliothèques « UTILISATEUR »

Abstraction comportementale, structurelle, signal-flow

Equations différentielles ordinaires (par rapport au temps) Modélisation en Laplace, en Z, spectrale, bruitSémantique de connexion : Kirchoff généralisé

Egalité des efforts / Somme des flux = 0v-i, °C-W, m-N, rad/s-1-N.m, n.A-Wb, Pa-l/s ...

Facilités d ’analyse de type SPICE (dépend de l ’outil)(DC, transient, AC, noise, Monte-Carlo,…)

LAAS 06/2003 Yannick HERVE - ENSPS 32

Besoin d ’un standard :

Ce qu’il ne peut pas faire

Equations différentielles d./dx avec x différent de t

Modèles « géométriques » et mailleur associé.

Définition de sémantique de connexion

Ces limitations font l’objet de travaux au sein desgroupes de normalisation et seront examinés à laprochaine re-normalisation en 2004.

Page 17: LAAS_AMS_1

17

LAAS 06/2003 Yannick HERVE - ENSPS 33

Besoin d ’un standard :

AvantagesAvantages commerciaux :

Naissance de l ’IP, Standard industriel (+DoD), Investissements plus sûrs, Modèles indépendants d ’un fournisseur de CAO,

Avantages techniques : Moderne, Puissant, Général, Bonne lisibilité, Haute modularité, Typage fort, Généricité, Temps solidement défini, mixage abstractions, Fonction de résolution, Ressources nombreuses Communauté large, Activités de normalisation (norme qui bouge est une norme qui vit).

LAAS 06/2003 Yannick HERVE - ENSPS 34

Besoin d ’un standard :

Inconvénients

Inconvénients :

Puissant, général = complexe(mais pas compliqué)

Limitations intrinsèques (un peu bâclé sur certains points)

Simulation pas efficace en temps pour l’instant

Pas de simulateur natif (et outils existants coûteux)

Page 18: LAAS_AMS_1

18

LAAS 06/2003 Yannick HERVE - ENSPS 35

Besoin d ’un standard :

Les concurrents en présence

Mentor Graphics (ANACAD+LEDA+MODELTECH) : ADV- MS + ELDO + Modelsim

DOLPHIN Integration : SMASH-AMS 4.2.9

hAMSter de SIMEC (15kF)

CADENCE (?)

ANALOGY : The HDL

Universités : SEAMS (University of Cincinnati)

LAAS 06/2003 Yannick HERVE - ENSPS 36

Structure d’un simulateur numériqueBasé sur l’exécution conditionnelle et itérative

d ’équations logiques dépendantes dans un temps dicrétisé

Modèle : Equations de composants logiquesNetlist

Procédure : (emploi d’une liste d ’événement (EL) et de signaux datés)

Mise à jour de l ’EL classée par dateExtraction des signaux avec t miniAvancée de l’horloge de simulationRéveil et simulation des process dépendantsProduction de nouveaux événements

Production d ’un LSP

Page 19: LAAS_AMS_1

19

LAAS 06/2003 Yannick HERVE - ENSPS 37

Structure d’un simulateur analogiqueBasé sur la résolution des équations de kirchoff à chaque t

Modèle : Equations de branches (loi des composants)(éventuellement non-linéaires, non stationnaires, …)

Equations de structure (loi de Kirchoff)

Procédure : (calcul matriciel d ’ordre élevé !!)

Mise en équation (jeu d’équations Diff NL)

Discrêtisation (jeu d’équations aux différences NL)x(t+d) = fNL(x(t),x ’(t),p(t)) [méth. d ’intégration]

Linéarisation (jeu d’équations aux différences L)

Résolution [gauss seidel]

Vérification de la convergenceConvergence : Production d ’un ASP

À chaque t

LAAS 06/2003 Yannick HERVE - ENSPS 38

Analyses possibles (pour SPICE) (1)Analyses DC

.OP : point de repos/polarisation (convergence ?){v,i} du circuit C = ouvert / L = c-circuit (toujours effectué avant une autre analyse)

.SENS : Sensibilité du point de repos(variation d ’un paramêtre)

.DC : Plusieurs OP dans la même simulation (sweep)

.TF : Fonction de transfert; sortie/entrée en petit signal(calcul dvout/diin, dvout/dvin, diload/dvin, diout/diin)

Page 20: LAAS_AMS_1

20

LAAS 06/2003 Yannick HERVE - ENSPS 39

Analyses possibles (pour SPICE) (2)Analyses AC

.TRAN : Analyse grand signaux temporelle(difficulté de convergence / algorithme d ’intégration numérique pas d’intégration variable (max/min) / temps de calcul spécifié)

.AC : Analyse fréquentielle linéaire (petit signal/point de repos)

.NOISE : Analyse fréquentielle avec sources de bruit

.DISTO : harmonique ou de phase, intermodulationcross modulation, cross-over (.TRAN+.AC(local))

.FOUR : Analyse de fourier (distortion fort signal = .TRAN+.FOUR)

Page 21: LAAS_AMS_1

1

LAAS 03/2003 Yannick HERVE - ENSPS 1

2 - Introduction à VHDL-AMS

Structure générale d'un modèleStructuration en bibliothèquesIndentificateurs, Objets et typage. OpérateursInstructions séquentielles, concurrentes, simultanéesNotion d ’attributs et Synchronisation des noyauxCritère de solvabilité et Exemples

LAAS 03/2003 Yannick HERVE - ENSPS 2

Structure générale d ’un modèleEntity

Déf. connexions

ArchitectureDéclarationBody

Inst.concurrentes Inst.simultanéesInstanciations

Vue interne du modèle

discret-eventcontinuous timestructurel/hiérarchie

Entity

Architecture

Interfaçage/netlist (port)signal : numériqueterminal : analogique, kirchoffquantity : analogique, signal flow

Page 22: LAAS_AMS_1

2

LAAS 03/2003 Yannick HERVE - ENSPS 3

Structure générale d ’un modèle : ExempleENTITY exemple ISport (signal sig_ext:in real; terminal vp,vm : electrical);END exemple;

LIBRARY ressource_lib; USE ressources_lib.ressources_package.ALL;ARCHITECTURE archi1 OF exemple IS

TYPE list_ex IS (el1,el2,el2);CONSTANT cst1 : list_ex, k:REAL; SIGNAL sig1 : BIT, sig2 :INTEGER, sig3 : REAL; QUANTITY vbias ACROSS ibias THROUGH vp TO vm; QUANTITY free_quant : REAL;

BEGINu1:ENTITY model_externe(archi_du_modele) GENERIC MAP(100.0e3,5.0) PORT MAP(vp,vm,sig1);

free_quant == 3.0*sinus( k * now ); ibias == free_quant’dot;

p1:PROCESSvariable x : real := 5.5;BEGIN

wait on sig3 until sig2 > 3 for 25 ms;x := 2*x ;sig_ext <= sig3 after 1 ms;

END PROCESS;

END archi1;

Exe

mpl

e ill

ustr

atif

non

com

pila

ble

LAAS 03/2003 Yannick HERVE - ENSPS 4

Structure générale d ’un modèle :

Prise en charge par le simulateurEntity

Architecture

E+A E+A

E+A E+A

CS1CS2CS3...

CS1CS2

SS1SS2SS3...

SS1SS2SS3...

CS1CS2

SS1

Sim anal. Sim num.

{}Equa.DiffNL (SS)

{}Equa.Log (CS)

Tsim

Produit des ASP{valeurs i(t),v(t)}

Produit des événements

CS : concurrent statementSS : simultaneous statementE+A : Entity + Architecture

Page 23: LAAS_AMS_1

3

LAAS 03/2003 Yannick HERVE - ENSPS 5

Structuration en bibliothèquesn Pas de longue descriptionn Unités petites et hiérarchiséesn Partie compilable = Unité de conceptionn Système complexe = équipe

Besoin de méthodologie rigoureuse

n Une compilation qui aboutitMise à jour d ’une bibliothèque de travail (WORK)

n Bibliothèque de ressources (de projet, d ’un fournisseur, de test, …)

LIBRARY ressource_lib;USE ressource_lib.pack_lib.ALL;

LAAS 03/2003 Yannick HERVE - ENSPS 6

Structuration en bibliothèque :

Les unités de conceptionn Modèle : ENTITY (UC) + ARCHITECTURE (UC)

plusieurs ARCHITECTURE possibles par ENTITY

n Code souvent utilisé et partagé : paquetagePACKAGE (UC) + PACKAGE BODY (UC)vue ext. : exportation vue interne : privé

n Association effective d ’une instance et un modèle compilé : CONFIGURATION (UC)

n Les bibliothèques contiennent des UCn Méthode : Un fichier = Une Unité de Conception

Page 24: LAAS_AMS_1

4

LAAS 03/2003 Yannick HERVE - ENSPS 7

Identificateursn Noms des objets : identificateursn Suite de lettres et de chiffresn Commence par une lettre, no case sensitiven Possible de poser des traits bas : Rdf_232

n Traits bas doubles, au début, à la fin : interdit

n Commentaire : -- (jusqu’à la fin de la ligne)

LAAS 03/2003 Yannick HERVE - ENSPS 8

Littéraux (1) (Valeurs « dures » du langage)

n Caractères : 95 des 128 ASCII (imprimables)‘ a ’, ‘ b ’, ’Q ’, …

n Chaînes de caractères«C ’est »& --(« » = guillemets)«possible sur deux lignes»

n Notations décimales1345, 1_345, 1e6, 1E61345.3, 1_345.1, 1.0e2 (attention x.0)

Page 25: LAAS_AMS_1

5

LAAS 03/2003 Yannick HERVE - ENSPS 9

Littéraux (2)n Notations basées (entiers et réels exprimables)

2#01101# est un entier qui vaut 137#03630#, 16#FF3A#2#01101.0# est un réel qui vaut 13.016#FF.4A#e12

n Notation par chaînes

B«000110» = (‘0’, ‘0’, ‘0’, ‘1’, ‘1’, ‘0’)0«06» = (‘0’, ‘0’, ‘0’, ‘1’, ‘1’, ‘0’)X«255» = (‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘1’)

LAAS 03/2003 Yannick HERVE - ENSPS 10

Typagen Tous les objets sont typés (strong typing)n Permet l’initialisation fiable et augmente le pouvoir de

vérification du compilateurn Familles (définit les valeurs et opérations possibles):

– scalaires (un seul élément porté à la fois, ordonnés)• integer, real, physical• énumérés

– composites (plusieurs éléments portés à la fois)• array, record

– access – fichiers

n Types et sous-types utilisateurs possibles

Page 26: LAAS_AMS_1

6

LAAS 03/2003 Yannick HERVE - ENSPS 11

Typage :

Déclaration scalairestype_declaration ::= TYPE type_name IS type_definition;

Enuméré : TYPE enum_type IS (bleu, blanc, rouge) ; -- relation d ’ordreEntiers : TYPE index IS RANGE -3 TO 27 ;

TYPE rev_index IS RANGE 27 DOWNTO -3 ;Flottants : TYPE ex_real IS RANGE -3.0 TO 27.0 ; Physique : TYPE distance IS RANGE 0 TO 1e16

UNITS A ;nm = 10 A ; -- espace obligatoiremil = 254_000 A ;inch = 1_000 mil ;ft = 12 inch ;yd = 3 ft ,cm = 10e7 nm ;

END UNITS ; -- facteurs conversion = integer !!!35 yd + 547 cm + 17 inch calculée en Angströms(35 yd + 547 cm)/mil sera calculé en mils.(103 nm) / nm est un entierA * nm transforme un entier en nm

LAAS 03/2003 Yannick HERVE - ENSPS 12

Typage :

Déclaration compositesVecteur : rassembler plusieurs valeurs de même type

index entier ou énuméré, ne peut contenir des fichiers

TYPE int_vec IS ARRAY(3 to 45) of integer ; Tableau d’entier contraintTYPE real_vec IS ARRAY(natural range <>) of real ; Tableau non contraint

TYPE enum_vec IS ARRAY(enum_type) of integer ; si A est de type enum_vec on a A(bleu),A(blanc) et A(rouge)

Record : rassembler plusieurs valeurs de types différents (champs)accès par notation pointée, ne peut contenir des fichiers

TYPE record_ex IS RECORD -- Record d’array ou de record possible champ_1 : bit ;champ_2 : real ;autre_champ : enum_type ;

END RECORD;Si A est de type record_ex : A.champ_1,A.champ_2 et A.autre_champ existent

Page 27: LAAS_AMS_1

7

LAAS 03/2003 Yannick HERVE - ENSPS 13

Typage :

Déclaration fichiers et pointeurs (notes)

Fichiers : TYPE file_type IS file OF string ;

Voir fonctions associées dans le paquetage STANDARDread / write /file_open / endfile / file_close

Pointeurs : TYPE index IS natural RANGE 0 TO 15 ;TYPE index_ptr IS ACCESS index ;

NEW index_ptr ; -- nouveau pointeurSi IPtr est de type index_ptr

IPtr.all à la valeur de l’objet pointé

Réservé aux variables

LAAS 03/2003 Yannick HERVE - ENSPS 14

Typage :

Types prédéfinis (notes)

n Types prédéfinis– integer TYPE integer IS RANGE integer’low to integer’high;

– real TYPE real IS RANGE real’low to real’high ;

– bit TYPE bit IS (‘0’, ’1’) ;

– std_logic TYPE std_logic IS (‘U’,’0 ’,’1’,’Z’,’X’,’H’,’L’,’W’,’-’) ; (IEEE 1164)

– bit_vector TYPE bit_vector IS ARRAY (natural RANGE<>) of bit ;

– boolean TYPE boolean IS (false, true)

– severity_level TYPE severity_level IS (NOTE,WARNING,ERROR,FAILURE) ;

– characterTYPE character IS (NUL, SOH,…, ’a’, ’b’, …, ‘~’,DEL) ;

– string TYPE string IS ARRAY (positive range <>) of character ;

– time TYPE time IS RANGE integer’low TO integer’high UNITS fs;ps = 1000 fs ; ns = 1000 ps ; us = 1000 ns ;ms = 1000 us ; sec = 1000 ms ; mn = 60 sec ; hr = 60 mn;

END UNITS ;

Page 28: LAAS_AMS_1

8

LAAS 03/2003 Yannick HERVE - ENSPS 15

Typage :

Sous-typessubtype_declaration ::=

SUBTYPE subtype_name IS type_names [constraints];

n Sous-types prédéfinis– natural SUBTYPE natural IS integer RANGE 0 to integer’high;

– positive SUBTYPE positive IS integer RANGE 1 to integer’high;

n DynamiqueSUBTYPE mot IS bit_vector (1 to max) ;(MAX variable)

n Permet de définir des sous ensembles de valeurs en gardant la compatibilité avec le type de base

SUBTYPE signal_value IS real RANGE -15.0 to 15.0 ;

n Permet de définir des fonctions de résolution(voir cours suivant)

SUBTYPE resolved_bit IS resolution_function bit ;

LAAS 03/2003 Yannick HERVE - ENSPS 16

Typage :

Initialisation des objetsn En VHDL-AMS tous les objets sont initialisés

implicitement ou explicitement

n Un objet prend la valeur la plus à gauche de son typesignal A : bit ; -- A vaut ‘0’signal A : bit := ‘1’; -- A vaut ‘1’variable B : boolean ; -- B vaut falsequantity Q : real ; -- Q vaut 0.0

n Un type peut être incomplètement définiTYPE cell ; -- type incomplètement définiTYPE link IS ACCESS cell ;TYPE cell is record -- définitions récursive de type

value : index ;succ : link ;

END RECORD ;

Page 29: LAAS_AMS_1

9

LAAS 03/2003 Yannick HERVE - ENSPS 17

Les 6 classes d’objetsn Les classes d ’objets (transport de l ’information)

CONSTANT (valeur fixe connue à l ’élaboration)

VARIABLE (séquentiel / dynamique)

modifiée par affectation ( := )SIGNAL (concurrent / statique)

modifié par affectation ( <= )TERMINAL

permet les connexions analogiquesbranch/free QUANTITY

participe aux simult.stat. ( == )est toujours d ’un type issu des real

FILE

LAAS 03/2003 Yannick HERVE - ENSPS 18

Classes d ’objets :

Constantesn Permet de stocker des valeurs constantes

CONSTANT pi : real := 3.141592 ;CONSTANT clock_period : time := 20 ns ;

CONSTANT BV0 : bit_vector(15 DOWNTO 0) := (‘1’, ’0 ’,others=> ’0 ’) ;CONSTANT tt : truth_table := (other => (others => ‘ 0 ’)) ;CONSTANT mem_bus : memory_bus := (adrr =>X «00AA»,data=>X«FF»,

read => ‘0’, write => ’1 ’, enable => ’1 ’ ) ;

n Peut être initialisée au moment de l ’utilisationCONSTANT cst_val : integer := 40 * N ; N ne peut être connu qu ’à l ’élaboration (paramètre générique)Si la déclaration de constante est dans une fonction N peut être un paramêtre de celle-ci

n Constante à valeur différéeCONSTANT cst_val : integer ; est valide (on ne connaît pas la valeur)déclaration dans la spécification paquetageaffectation dans le corps de paquetage (masquage d ’information)

Page 30: LAAS_AMS_1

10

LAAS 03/2003 Yannick HERVE - ENSPS 19

Classes d ’objets :

Variablesn Stockage et manipulation de valeurs

VARIABLE phase : real := 124.0 ;VARIABLE clock_period : time := 20 ns ;VARIABLE var1: integer := function_d_init(…) ;

Affectation et modification : A := B *C + 3.0;

n N ’est utilisable que dans un contexte séquentielPROCESS uniquement

n Il existe des variables partagées (shared)!!! Programmes non déterministes !!!

A manipuler avec circonspection

LAAS 03/2003 Yannick HERVE - ENSPS 20

Classes d ’objets :

Signal

n Transporte les valeurs du simulateur event-drivenS <= 3 after 15 ns;

n Modélise les fils entre les portes (symbolique)Inport <= Outport ;

n Nom de fonction dans la déclaration: signal résoluplusieurs sources possible / résolution du conflit (voir cours suivant)

n REGISTER ou BUS : signal gardé (guarded)ne pourra être affecté que si le signal GUARD est TRUE (vu plus loin)

n Possède un passé, une valeur, un futur proposéle driver du signal

signal_declaration ::= SIGNAL signal_name : [fonc_resolution] type [contraintes][REGISTER|BUS] [:= init_value];

Page 31: LAAS_AMS_1

11

LAAS 03/2003 Yannick HERVE - ENSPS 21

Classes d ’objets :

Terminal

n Permet de nommer des nœuds (ne porte pas de valeur !!!)

n Une nature est définie par deux types réelsNATURE name IS acr ACROSS thr THROUGH ref REFERENCE ;Across = effort / through = fluxv-i, °C-W, m-N, rad.s-1-N.m, n.A-Wb, Pa-l/s, ...

SUBTYPE v IS real ; SUBTYPE i IS real ;NATURE electrical IS v ACROSS i THROUGH gnd REFERENCE ;TERMINAL vp,vm : electrical ;

n Vecteur de nature NATURE elec_vec IS ARRAY(natural RANGE <>) of electrical ;

n Record de nature

terminal_declaration ::= terminal identifier_list : subnature_indication ;

LAAS 03/2003 Yannick HERVE - ENSPS 22

Classes d ’objets :

Quantityn « Signaux continus » du simulateur analogiquen Free Quantity (n ’est pas attachée à un TERMINAL)

QUANTITY Q : real := expression;Valeur initiale implicite 0.0 (dépend de l’outil)

n Branch QuantityQUANTITY [across_aspect] [through_aspect] terminal_aspect ;QUANTITY V12 across I1 through t1 to t2 ;QUANTITY V1,V2 across t1; -- aliasQUANTITY I1,I2 through t1; -- branches parallèles

n Implicit QuantityQUANTITY Q : real := expression;Q’dot, Q’integ existent toujours et sont créées si besoinQUANTITY QV : real_vector (3 downto 0) ;QV’dot, QV’integ sont valides

Page 32: LAAS_AMS_1

12

LAAS 03/2003 Yannick HERVE - ENSPS 23

Classes d ’objets :

Terminal/Quantity : exemplesn terminal t1,t2 : electrical ;

terminal t3, t4 : electrical_vector (1 to 5);

n quantity v12 across i1, i2 through t1 to t2 ;définit une tension et deux courants

n quantity v31 across i3 through t3 to t2 ;

n quantity v24 across i4 through t2 to t4 ;

n quantity v34 across i5 through t3 to t4 ;

n Définir un système étoile,un système triangle(terminaux scalaires)

n Définir un système N-phases étoile, N-triangle

(N inconnu)

LAAS 03/2003 Yannick HERVE - ENSPS 24

Sémantique de connexionn Spécification d ’entité :

PORTS : classe, type et mode des connexions (et valeurs par défaut)GENERIC : constantes passées à l ’élaboration

ENTITY exemple ISgeneric (par1,par2,par3:real;par4:time:= 3 ns) port (signal sig :{in|out|inout|linkage|buffer} real;

quantity q: {in|out} real ; terminal vp,vm : electrical);

BEGIN{instructions passives = pas d’affectations de signal}

END exemple;

n Les comportements possibles (par port)event driven : port de classe signalsignal flow : port quantity ou terminal à une seule quantitéconservatif : port terminal et deux quantités définies

Page 33: LAAS_AMS_1

13

LAAS 03/2003 Yannick HERVE - ENSPS 25

Sémantique de connexion :

Event drivenn ENTITY exemple IS

port (signal sig :{in|out|inout|linkage|buffer} real);END exemple;

n Un port de classe signal ne peut être branché que sur un signal ou sur un port de même type, les modes doivent être compatibles

n Un port de mode OUT n ’est pas lisible dans l ’architecturen LINKAGE, BUFFER : modes inutilisés en pratiquen Un port de mode INOUT est forcément résolu n Le mot clef OPEN permet de laisser ouvert

LAAS 03/2003 Yannick HERVE - ENSPS 26

Sémantique de connexion :

Event driven : formal/actual portAvec :ENTITY source ISPORT (SIGNAL a : in real; b : out real);END; -- a et b sont les ports formels

On a:ENTITY testdetector ISPORT (SIGNAL extin : IN real; extout : OUT real);END;

LIBRARY disciplines; USE disciplines.Electromagnetic_system.ALL;ARCHITECTURE test OF testdetector IS

SIGNAL pin,pout:real;BEGIN

u1:ENTITY source(pulse_proba) PORT MAP (extin,extout);u2:ENTITY source(pulse_proba) PORT MAP (pin,pout);

END; -- extin,extout,pin,pout sont des ports réels (actual)

Page 34: LAAS_AMS_1

14

LAAS 03/2003 Yannick HERVE - ENSPS 27

Sémantique de connexion :

Signal Flown ENTITY exemple IS

port (QUANTITY Q1 : in real,Q2 : out real);

END exemple;

n Support de l ’interconnexion à temps continun Permet de modéliser sous forme de schéma-blocs

Une entrée n ’influence pas une sortie(impédance d ’entrée infinie, impédance de sortie nulle)

n Les quantité connectées doivent être de même typen Les ports de classe Quantity connectés doivent être

compatiblesn Pas encore supporté par les outils

LAAS 03/2003 Yannick HERVE - ENSPS 28

Sémantique de connexion :

Signal Flow : exempleAvec :ENTITY block1 ISPORT (QUANTITY a : in real; b : out real);END;

On a:ENTITY black_boxes ISPORT (QUANTITY extin : IN real;QUANTITY extout : OUT real);END;

LIBRARY disciplines; USE disciplines.Electromagnetic_system.ALL;ARCHITECTURE test OF black_boxes IS

QUANTITY ploc:real; -- Free QuantityBEGIN

u1:ENTITY block1(beh) PORT MAP (extin,ploc);u2:ENTITY block1(beh) PORT MAP (ploc,extout);

END;

Page 35: LAAS_AMS_1

15

LAAS 03/2003 Yannick HERVE - ENSPS 29

Sémantique de connexion :

Conservatif : Kirchoff généralisén ENTITY exemple IS

port (TERMINAL T1,T2 : electrical); --PAS DE MODE/VALEUREND exemple;

n Interconnexions à temps continu conservatifn Permet de tenir compte influences Entrées/Sortiesn TERMINAL connectés doivent être de même nature

KIRCHOFF LAW : Si T1 est branché sur T2 et si les aspects ACROSS et THROUGH sont définis alors

ACROSS( T1 ) = ACROSS( T2 )et THROUGH( T1 ) + THROUGH( T2 ) = 0

Quelle que soit la nature : multidiscipline

LAAS 03/2003 Yannick HERVE - ENSPS 30

Sémantique de connexion :

Conservatif : Netlist analogiquen ENTITY R IS

port (TERMINAL T1,T2 : electrical); END R;ENTITY C ISport (TERMINAL T1,T2 : electrical); END C;

n ENTITY RC ISport (TERMINAL T1,T2 : electrical); END RC;ARCHITECTURE ONE OF RC IS

TERMINAL LocalT:electricalBEGIN

R:ENTITY R(beh) PORT MAP (T1 => T1,T2 => LocalT);C:ENTITY C(beh) PORT MAP (T1 => LocalT,T2 => T2);

END ;

n Association par nommage : Formal => Actual

Page 36: LAAS_AMS_1

16

LAAS 03/2003 Yannick HERVE - ENSPS 31

Opérateursn 6 classes d ’opérateurs et niveaux de priorité

(l ’évaluation d ’une expression commence par la priorité la plus haute)

– logic : and, or, nand, nor, xor, xnor, sll, sla, sra, srl, rol, ror(s ’appliquent à boolean et bit, surcharge sur IEEE_1164-MVL9)

– relationnels : =, /=, <, <=, >, >= (s ’appliquent à tout sauf fichiers, résultat de type BOOLEAN)

– addition : +, -, & (& : concaténation sur type STRING)

– signe : +, -– multiplication : *, /, mod, rem– divers : **, abs, not

n Opérateurs surchargeables, pas de changement de priorités

Prio

rity

LAAS 03/2003 Yannick HERVE - ENSPS 32

Instructions du langage (les plus importantes)

n Une architecture contientsimultaneous statements (doivent être évalués à chaque ASP)

f == g / procedural / if use / case use / nullconcurrent statements (évalués si besoin à chaque LSP)

process / affectation de signalinstanciationbreak, assertion

n Un process contient séquential statements (évalués en séquence dans le process)

affectation signal, affectation variablewaitif, case, loop ...

Disponibles aussi en Procedural (sauf => et wait)

Page 37: LAAS_AMS_1

17

LAAS 03/2003 Yannick HERVE - ENSPS 33

Instructions séquentielles, concurrentes, simultanées :

Instructions séquentiellesn Permet de fabriquer des PROCESS (instruction concurrente utilisateur)

n Flow control : test et bouclesn Gestion du temps : Waitn Affectation variablesn Affectation signal et mécanismes temporels associésn Auto test : Assert / report

LAAS 03/2003 Yannick HERVE - ENSPS 34

n Affectation variables V := f (V|S|Q) (la valeur de l ’objet)tab1 := tab2; tableaux tab(3 to 5) := (1,2,4);

Affectation signal : proposition de transaction[label :] target <= [transport | [reject time ] inertial] waveform ; avec target ::= name | aggregate

et waveform ::= wf_element {,wf_element} | unaffected

lab1: S <= ’0’; -- affectation à délai deltaS <= ’0’ after 3 ns; -- transport par défaut

lab:(S1,S2)<= (’0’,’1’) after 3 ns, (’1’, ’0’) after 10 ns;

S1 <= inertial s2 after 4 ns; -- anti-physiqueS1 <= reject 10 ns inertial S2 after 4 ns; -- mieux

Instructions séquentielles, concurrentes, simultanées :

Inst. Séqu. : affectations (1)

Page 38: LAAS_AMS_1

18

LAAS 03/2003 Yannick HERVE - ENSPS 35

Instructions séquentielles, concurrentes, simultanées :

Inst. Séqu. : affectations (2)n Notion de forme d ’onde (waveform)

s <= a after ta, b after tb, …, x after tx ;

la liste (ta, tb, tc, …, tx) doit être ordonnée

n Mécanisme temporel : transport, inertiel, réjectionn Sources possibles : constantes, variables, signaux, quantités

S <= objet

n Notion de transaction et d’événementsi S vaut x et y /= x : S <= y after 3 ns; événement

S <= x after 3 ns; transaction sans event

n Notion de pilote (driver)S <= x after 5 ns; ne modifie pas la valeur de SS sera éventuellement modifiée quand l ’horloge avancera à to+ 5 ns

n Notion de source uniqueUn signal ne peut être affecté que par une seule source (sauf résolution : voir cours suivant)

LAAS 03/2003 Yannick HERVE - ENSPS 36

Instructions séquentielles, concurrentes, simultanées :

Instructions séquentielles : WAITn Instruction la plus importante de la partie numérique

wait [on signal_list] [until bool_cond] [for time] ;

Pour au plus timesi un événement survient sur un signal de la liste signal_listla condition booléenne bool_cond est évaluée :

si elle est fausse on se remet en attentesi elle est vraie on passe à la ligne suivante.

Tous les PROCESS sont sur un WAIT : blocageOn recherche le prochain event dans la liste d ’événementOn avance l ’horloge de simulation, nouveau LSP

Formes simplifiées : wait; wait on a; wait on a,b;wait for 10 ns; -- time outwait until a=‘1’; -- front;

Page 39: LAAS_AMS_1

19

LAAS 03/2003 Yannick HERVE - ENSPS 37

Instructions séquentielles, concurrentes, simultanées :

Inst. Séqu. : flow control - test / sélection n Test

[label:]if cond_bool then{séquence instructions séquentielles}

elsif cond2 then{séquence instructions séquentielles}

else{séquence instructions séquentielles}

end if ;

n Sélection

[label:]case expression iswhen value_1 => {séq. Inst. Séqu. 1}when value_2 => {séq. Inst. Séqu. 2}when others => {séq. Inst. Séqu.}

end case ;

LAAS 03/2003 Yannick HERVE - ENSPS 38

Instructions séquentielles, concurrentes, simultanées :

Inst. Séqu. : flow control - bouclesn [label:][schéma d ’itération] loop

{séquence instructions séquentielles}end loop [label] ;

n Infinie : loopN :=N+1;

end loop;

Conditionnelle : Itérative :while conditions loop for i in 1 to 100 loop{séqu. Instr. Séqu.} {séqu. Instr. Séqu.}[exit;] [exit;][next[label]]

end loop ; end loop ;

Boucle : i déclaré de facto / «i in A’range» possible

next [label] when cond_bool / exit [label] when cond_bool

Page 40: LAAS_AMS_1

20

LAAS 03/2003 Yannick HERVE - ENSPS 39

Instructions séquentielles, concurrentes, simultanées :

Instructions séquentielles : auto-test n Envoi d ’un message à la console

[lab:]report expr [severity note|warning|error|failure] ;

n Surveillance d ’une condition

[lab:] assert cond_bool [report expression] [severity note|warning|error|failure] ;

Si cond_bool est fausse alors expression est envoyée à la console associé à un niveau d ’erreur.

assert teff<tsetup report «Set up violé» severity error ;

LAAS 03/2003 Yannick HERVE - ENSPS 40

Instructions séquentielles, concurrentes, simultanées :

Instructions concurrentesn Support de la modélisation/simulation à temps discret

Ces instructions sont évaluées, si besoin, à chaque LSP

n Processn Affectation concurrente de signaln Instanciation de composantn Assertion concurrenten Break (voir synchronisation des noyaux)

n Prochain cours– Block– Concurrent procedure– Generate

Page 41: LAAS_AMS_1

21

LAAS 03/2003 Yannick HERVE - ENSPS 41

Instructions séquentielles, concurrentes, simultanées :

Instructions concurrentes : Processn Instruction concurrente « Utilisateur »

[label :][postponed]process -- postponed: vu plus tard{zone de déclaration / pas de signaux}

begin{sequ. Instr. Sequ.}

end[postponed]process [label] ;

n Un PROCESS vit toujours (il est global)éventuellement suspendu sur un wait

n Un PROCESS est itératif (boucle sans arrêt)sauf si wait

n Variante : ancienne méthode (issue de VHDL 7.2)[label :] Process(signal_liste) -- liste de sensisbilité

{zone de déclaration}begin{sequ. Instr. Sequ. sans wait}

end process [label] ;

LAAS 03/2003 Yannick HERVE - ENSPS 42

Instructions séquentielles, concurrentes, simultanées :

Instructions concurrentes : Process (exemple)processvariable sp_res : integer_vector(0 to c_nb-1) := (others=>0); variable index_tab : integer;beginwait on vtest'dot'above(0.0),watchdog;if watchdog'event thenfor i in sp_res’range loop

spectre <= real(sp_res(i));wait for 1 us;

end loop;spectre <= 0.0;end if;end process;

processbegin

wait for analysis_time;watchdog <= not watchdog;

end process;

Page 42: LAAS_AMS_1

22

LAAS 03/2003 Yannick HERVE - ENSPS 43

Instructions séquentielles, concurrentes, simultanées :

Instructions concurrentes : Affectationn Raccourci d’ écriture

toujours remplaçable par : process + affectation séquentielle + tests

n Forme simple :[label:]nom_ou_aggregat <= [options] waveform ;

options ::= [guarded] [transport | [reject time ] inertial]

n Forme conditionnelle : [label:]nom_ou_aggregat<=[options]waveform1 when cond1 else

waveform2 when cond2 else. . . waveformN when condN ;

n Forme sélective :[label:] With expression select

nom_ou_aggregat <= [options] waveform1 when list1,. . .waveformN when listN ;

LAAS 03/2003 Yannick HERVE - ENSPS 44

Instructions séquentielles, concurrentes, simultanées :

Instructions concurrentes : Instanciationn Prendre une copie (une instance) d ’un modèle

la personnaliser, la configurer, la brancher

n label : entity nom_du_compo(archi_compo)[generic map (formal => actual)][port map(formal => actual)];

Recherche de l ’entité dans les « library » référencéessi archi_compo n ’apparaît pas : la dernière analysée (!!??outil)

n Attention : label obligatoire (plusieurs instances d’un modèle)

n Configuration : association composant / modèle de la basevue au cours suivant

Page 43: LAAS_AMS_1

23

LAAS 03/2003 Yannick HERVE - ENSPS 45

Instructions séquentielles, concurrentes, simultanées :

Instr. Conc. : Instanciation (exemple)n entity RS is

port (S,R : bit ; Q,Qb : out bit);end entity;

architecture structural of RS issignal n1_out, n2_out : bit ;

beginnand1: entity nandg port map(in1=>S,

in2=>n2_out, outp=>n1_out);nand2: entity nandg generic map (5 ns)

port map(R,n1_out, n2_out);Q <= n1_out;Qb <= n2_out;

end structural;

LAAS 03/2003 Yannick HERVE - ENSPS 46

Instructions séquentielles, concurrentes, simultanées :

Instructions concurrentes : Assertionn Permet de surveiller en permanence une condition

n [lab:] [postponed]assert cond_bool [report expression] [severity note|warning|error|failure] ;

n Process équivalent :

[lab:] [postponed] Process (signaux_de la conditions)beginassert cond_bool

[report expression] [severity note|warning|error|failure] ;

end process [lab] ;

Page 44: LAAS_AMS_1

24

LAAS 03/2003 Yannick HERVE - ENSPS 47

Instructions séquentielles, concurrentes, simultanées :

Instructions simultanées

n Support de la modélisation/simulation à temps continuCes instructions sont évaluées à chaque ASP

n Simple simultaneous statement : == n Forme conditionelle : if cond usen Forme sélective : case cond whenn Forme procédurale : Procedural

LAAS 03/2003 Yannick HERVE - ENSPS 48

Instructions séquentielles, concurrentes, simultanées :

Instructions simultanées : Forme simplen Simple simultaneous statements (doivent être évalués à chaque ASP)

f == g f et g deux fonctions NL contenant des quantitésle simulateur s ’assure qu ’à chaque ASP f-g=0.0aux tolérances prêt (équation caractéristique)Ces équations sont explicites ou implicites

Exemple : Q**2 + Y ’dot == sqr(Y) - Q ’integ ;C*U == Q ;Q == I’integ;

n ENTITY R ISgeneric (R_value : real := 1_000.0)port (TERMINAL vp,vm:electrical);END;ARCHITECTURE equ OF R IS

QUANTITY V ACROSS I THROUGH vp TO vm; BEGIN

V == R_value * I;END;

Page 45: LAAS_AMS_1

25

LAAS 03/2003 Yannick HERVE - ENSPS 49

Instructions séquentielles, concurrentes, simultanées :

Instructions simultanées : Choixn Choix du jeu d ’équations en fonction de conditionsn La forme conditionelle :

label :IF cond_1 USE -- ASP = evaluation condx {equations analogiques} -- !! BREAKELSIF cond_2 USE{equations analogiques}…ELSE{equations analogiques}

END USE label;

n La forme sélective : label : CASE expr USE

WHEN value1 => {equations analogiques}WHEN value2 => {equations analogiques}

END CASE label

LAAS 03/2003 Yannick HERVE - ENSPS 50

Instructions séquentielles, concurrentes, simultanées :

Instructions simultanées : Proceduraln Fabriquer un « Simultaneous Statement » à partir de séquentiel

[label :] PROCEDURAL [IS]{declaration_part} -- NORME : réévalués /exécution

BEGIN -- (pas de mémoire ?) {sequential_statement} -- sauf wait, break, and <=

END PROCEDURAL [label]

n Sommateur analogique pondéré Avec beta:real_vector et vp(i) ACROSS T(i) to GND (taille identique inconnue)ARCHITECTURE…

BEGINPROCEDURAL ISvariable bvs : real := 0.0;

BEGINbvs := 0.0; -- si memorisation

FOR i IN beta’range loop -- Quantités externes bvs := bvs + beta(i) * vp(i); -- sont vues comme des

END LOOP; -- variablesQout := bvs;

END PROCEDURAL;END;

Page 46: LAAS_AMS_1

26

LAAS 03/2003 Yannick HERVE - ENSPS 51

Notion d’attribut (et exemples indispensables)

n Fonctions à syntaxe spécifique(A→B : attribut appliqué à A rend un objet B)

n Array → range : A’rangen Array → value : A’lengthn Signal → signal : S’delayed(T), S’stable, S’quietn Signal → fonction : S’event, S’last_event, S’last_valuen Quantité → quantité : Q’dot, Q’integ, n Quantité → signal : Q’above(E)n Nature → terminal : N’reference

n Nature → type : N’across, N’throughn Terminal → quantité : T’contribution, T’reference

LAAS 03/2003 Yannick HERVE - ENSPS 52

Synchronisation des noyauxUn événement sur un SIGNAL doit pouvoir provoquer une évaluation analogique :

Break on S; -- version simple

Force un ASP sur les événement de SBreak [[for Q1] use Q2 => expression] [on S][when cond];Force ASP et recalcule les conditions initialesExiste aussi en séquentiel

Une valeur sur une QUANTITY doit pouvoir fabriquer un événement :

Q’above(Value) crée un événement booléenquand Q « croise » value

Page 47: LAAS_AMS_1

27

LAAS 03/2003 Yannick HERVE - ENSPS 53

Synchronisation des noyaux : exemplesarchitecture ideal of comparator is

quantity vin across vp to ref;begindout <= vin’above(seuil); -- dout est TRUE si vin > seuil

-- dout est FALSE si vin < seuilend architecture ideal ;

architecture ideal of ball isquantity v:velocity;quantity s:displacement;constant G:real:= 9.31;constant fric :real := 0.1;begin

break v => 0.0, s => 10.0; -- conditions intialesbreak v => -v when not s’above(0.0);s ’dot == v;if v > 0.0 use V’dot == -G - v**2 * fric;

else V’dot == -G + v**2 * fric;end use ;

end architecture ideal ;

LAAS 03/2003 Yannick HERVE - ENSPS 54

Critère de solvabilité (non de convergence)

Simulation analogique →Résoudre système d’équations à chaque pas de temps

Il faut assurer que le modèle contient autant d’équations que d ’inconnues

CRITERE DE SOLVABILITE : Le nombre d ’équations (simultaneous statements)

doit être égal au nombrede quantités THROUGH

augmenté du nombre de quantités FREEet du nombre de quantité d’interface en mode OUT.

Critère pouvant être assuré localementLes constructions de choix doivent être équilibrées

Page 48: LAAS_AMS_1

28

LAAS 03/2003 Yannick HERVE - ENSPS 55

Critère de solvabilité : exempleentity Vdc isgeneric (dc: REAL);port (terminal p, m: electrical);

end entity Vdc;

architecture Bad of Vdc is NE COMPILE PASquantity v across p to m;

beginv == dc;

end architecture Bad;

architecture Good of Vdc isquantity v across i through p to m;

beginv == dc;

end architecture Good;

LAAS 03/2003 Yannick HERVE - ENSPS 56

Mots clefs (en gras, ceux qui ont été abordés)

abs access across after alias all and architecture array assert attribute

begin block body break buffer bus case component configuration constantdisconnect downto else elsif end entity exitfile for function generate generic group guarded

if impure in inertial inout is library limit linkage loopmap mod nand nature new next noise nor not nullof on open or others out package port postponed procedural procedure processpure quantity range record reference register reject rem report return rol rorselect severity signal shared sla sll spectrum sra srl subnature subtypeterminal then through to tolerance transport type unaffected units until usevariable wait when while with xnor xor

Page 49: LAAS_AMS_1

29

LAAS 03/2003 Yannick HERVE - ENSPS 57

Exemples simples

n Porte NANDn Bascule Dn Résistance, Condensateur, Inductancen RLC parallèle, RLC sérien Source sinus parfaiten Diode avec comportement thermiquen Non linéarité : modèle par morceauxn Modèle mixte (piloté par FSM)

LAAS 03/2003 Yannick HERVE - ENSPS 58

Porte NANDENTITY nandg ISGENERIC (tplh,tphl : time := 10 ns);PORT (SIGNAL inp1,inp2 : IN std_ulogic, outp : OUT std_ulogic);END;

LIBRARY IEEE;use ieee.math_real.all; ARCHITECTURE beh1 OF nandg ISBEGIN

outp <= inp1 nand inp2 after ( tplh + tphl)/2;END;

ARCHITECTURE beh2 OF nandg ISBEGIN

processvariable loc : std_ulogic;beginwait on inp1, inp2;loc := inp1 nand inp2;if loc = ‘1’ thenoutp <= loc after tplh;

else outp <= loc after tphl;

end if;end process;

END;

Page 50: LAAS_AMS_1

30

LAAS 03/2003 Yannick HERVE - ENSPS 59

Bascule D

ENTITY bascd ISGENERIC (tpd: time := 10 ns);PORT (SIGNAL D,CLK : IN std_ulogic; SIGNAL Q : OUT std_ulogic);END;

LIBRARY IEEE;use ieee.math_real.all; ARCHITECTURE beh1 OF bascd ISBEGIN

Q <= D after tpd when (CLK’event and CLK=‘1’) elseunaffected;

END;

ARCHITECTURE beh2 OF bascd ISBEGIN

processbeginwait until CLK=‘1’;Q <= D after tpd;

end process ;END;

LAAS 03/2003 Yannick HERVE - ENSPS 60

Résistance

ENTITY R ISgeneric (R_value : real := 1_000.0);port (TERMINAL a,b:electrical);END;

ARCHITECTURE equ OF R ISQUANTITY V ACROSS I THROUGH a TO b;

BEGINV == R_value * I;

END;

Page 51: LAAS_AMS_1

31

LAAS 03/2003 Yannick HERVE - ENSPS 61

Condensateur

ENTITY C ISgeneric (C_value : real := 1.0e-6);port (TERMINAL vp,vm:electrical);END;

ARCHITECTURE equ OF C ISQUANTITY V ACROSS I THROUGH vp TO vm;

BEGINI == C_value * V ’dot;

END;

LAAS 03/2003 Yannick HERVE - ENSPS 62

Inductance

ENTITY L ISgeneric (L_value : real := 1.0e-3);port (TERMINAL vp,vm:electrical);END;

ARCHITECTURE equ OF L ISQUANTITY V ACROSS I THROUGH vp TO vm;

BEGINV == L_value * I ’dot;

END;

Page 52: LAAS_AMS_1

32

LAAS 03/2003 Yannick HERVE - ENSPS 63

RLC parallèle

ENTITY RLCp ISgeneric (R,L,C : real);port (TERMINAL vp,vm:electrical);END;

ARCHITECTURE struct OF RLCp ISBEGINlab_R: entity R generic map (R) port map (b => vm, a => vp);lab_C: entity C generic map (C) port map (vp, vm);lab_L: entity L generic map (L) port map (vp=>vp ,vm=>vm);

END;

ARCHITECTURE equ OF RLCp ISquantity V across I1,I2,I3 through vp to vm;

BEGINV == R*I1 ;V == L*I2’dot V == I3’integ/C ;

END;

LAAS 03/2003 Yannick HERVE - ENSPS 64

RLC série

ENTITY RLCs ISgeneric (R,L,C : real);port (TERMINAL vp,vm:electrical);END;

ARCHITECTURE struct OF RLCs ISTerminal RC,CL : electrical;BEGINlab_R: entity R generic map (R) port map (vp,RC);lab_C: entity C generic map (C) port map (RC, CL);lab_L: entity L generic map (L) port map (CL, vm);

END;

ARCHITECTURE equ OF RLCs ISquantity V across I through vp to vm;

BEGINV == R*I + L*I’dot + I’integ/C ;

END;

Page 53: LAAS_AMS_1

33

LAAS 03/2003 Yannick HERVE - ENSPS 65

Source sinus idéale

library Disciplines;use Disciplines. electrical_ system. all;ENTITY gene_sinus ISgeneric (Ampl,freq,phase : real);port (TERMINAL vp,vm:electrical);END;

library ieee;use ieee.math_real.all;ARCHITECTURE beh OF gene_sinus ISquantity V across I through vp to vm;

BEGINV == Ampl * sin( 2.0 * math_pi * freq * now + phase) ;

END;

LAAS 03/2003 Yannick HERVE - ENSPS 66

Diode paramétrée

ENTITY diode ISgeneric(Iss:real:=1.0e-14;n,af:real:=1.0;

tt,cjo,vj,rs,kf:real:=0.0);port (TERMINAL anode,cathode:electrical);END;

ARCHITECTURE level0 OF diode ISquantity Vd across id,ic through anode to cathode;quantity qc : charge;constant vt : real := 0.0258;

BEGINic == qc ’dot;qc == tt * id - 2.0 * cjo * sqrt( vj**2 - vj * vd );id == iss * exp(( vd - rs*id )/( n * vt )) - 1.0);

END ARCHITECTURE level0;

1).(eII )/(n.vt)rs.I(vsd

dd −= −

).vv-²v.2.C-(tt.Idtd

I djjjodc =

Page 54: LAAS_AMS_1

34

LAAS 03/2003 Yannick HERVE - ENSPS 67

Diode : modèle électro-thermique

ENTITY diodth ISgeneric(Iss:real:=1.0e-14;n,af:real:=1.0;

tt,cjo,vj,rs,kf:real:=0.0);port (TERMINAL anode,cathode:electrical;

TERMINAL junction:thermal);END;

ARCHITECTURE level0 OF diodth ISquantity Vd across id,ic through anode to cathode;quantity temp across power through thermal_ref to junction;quantity qc : charge;quantity vt : voltage;BEGINic == qc ’dot;qc == tt * id - 2.0 * cjo * sqrt( vj**2 - vj * vd );id == iss * exp(( vd - rs*id )/( n * vt )) - 1.0);vt == temp * boltzmann / elec_charge ;power == vd * id;

END ARCHITECTURE level0;

LAAS 03/2003 Yannick HERVE - ENSPS 68

Diode : modèle électro-thermique - Testbench

library Disciplines;use Disciplines. electrical_ system. all;use Disciplines. thermal_ system. all;entity TestBench is end entity TestBench;

architecture DiodeWithHeatSink of TestBench isterminal a, b: electrical; terminal j, h: thermal;beginv0: entity Vdc generic map (dc => 1.0)

port map (p => a, m => ground);r1: entity Resistor generic map (r => 1.0e3)

port map (p => a, m => b);d1: entity DiodeTh port map (anode => b,

cathode => ground, junction => j);heatres: entity ResistorTh generic map (r => 0.1)

port map (p => j, m => h);heatsink: entity CapacitorTh generic map (c => 0.008)

port map (p => h, m => thermal_ ref);rad: entity ResistorTh generic map (r => 10.0)

port map (p => h, m => thermal_ ref);end architecture DiodeWithHeatSink;

Page 55: LAAS_AMS_1

35

LAAS 03/2003 Yannick HERVE - ENSPS 69

Modèle par morceaux : Mauvaise méthodelimiteur de tension

library Disciplines;use Disciplines. electrical_ system. all;entity VoltageLimiter is

generic (vlim: REAL); -- open loop gainport (terminal ip, im, op, om: electrical);

end entity VoltageLimiter;

architecture Bad of VoltageLimiter isquantity vin across ip to im;quantity vout across iout through op to om;

beginif vin > vlim use

vout == vlim;elsif vin < -vlim use

vout == -vlim;else

vout == vin;end use;

end architecture Bad;

C’E

ST M

AU

VA

IS

LAAS 03/2003 Yannick HERVE - ENSPS 70

C’E

ST M

EIL

LEU

R

library Disciplines;use Disciplines. electrical_ system. all;

architecture Good of VoltageLimiter isquantity vin across ip to im;quantity vout across iout through op to om;

beginif vin’Above( vlim) use

vout == vlim;elsif not vin’Above(- vlim) use

vout == -vlim;else

vout == vin;end use;

-- break on vin’Above( vlim), vin’Above(- vlim);

end architecture Good;

Modèle par morceaux : Bonne méthodelimiteur de tension

Page 56: LAAS_AMS_1

36

LAAS 03/2003 Yannick HERVE - ENSPS 71

library IEEE, Disciplines; use IEEE. std_ logic_ 1164.all;use Disciplines. electrical_ system. all;entity ComparatorHyst is

generic (vlo, vhi: REAL; -- thresholdstimeout: DELAY_ LENGTH);

port (terminal ain, ref: electrical;signal dout: out std_ logic);

end entity ComparatorHyst;

architecture Hysteresis of ComparatorHyst istype states is (unknown, zero, one, unstable);quantity vin across ain to ref;function level( vin, vlo, vhi: REAL) return states isbegin

if vin < vlo then return zero;elsif vin > vhi then return one;else return unknown; end if;

end function level;begin. . .

Modèle mixte piloté par FSM : Comparateur à hystérésis (1)

LAAS 03/2003 Yannick HERVE - ENSPS 72

. . .processvariable state: states := level( vin, vlo, vhi);begincase state iswhen one => dout <= ’1’;

wait on vin’Above( vhi); state := unstable;

when zero => dout <= ’0’;wait on vin’Above( vlo); state := unstable;

when unknown => dout <= ’X’;wait on vin’Above( vhi), vin’Above( vlo);state := level( vin, vlo, vhi);

when unstable => wait on vin’Above( vhi), vin’Above( vlo) for timeout;state := level( vin, vlo, vhi);

end case;end process;end architecture Hysteresis;

Modèle mixte piloté par FSM : Comparateur à hystérésis (2)

Page 57: LAAS_AMS_1

1

LAAS 06/2003 Yannick HERVE - ENSPS 1

3 - VHDL-AMS en profondeur

Le reste des instructions, Quelques précisionsLes dernières constructions, Le reste des attributsPaquetages standards et non standardsCompilation, Elaboration, Simulation, ExploitationLe cycle de simulation / l’initialisation / DOMAINLa grammaire BNF en HTML

LAAS 06/2003 Yannick HERVE - ENSPS 2

Mots clefs restant à éclaircir

Autres instructions : alias attribute block disconnect function generate

group procedure component

Précisions sur les instructions: postponed guarded buffer bus pure impure register

return tolerance limit noise spectrum

Autre unité de conception : package (package)body configuration

Page 58: LAAS_AMS_1

2

LAAS 06/2003 Yannick HERVE - ENSPS 3

Instructions :

ALIAS et ATTRIBUTEn Nouveau nom (constante, variable, signal) :

ALIAS nouveau_nom : type_ou_subtype IS nom_de_lobjet;

exemple : variable s_m:bit_vector(7 downto 0);

alias sign:bit is s_m(7);

alias module:bit_vector(0 to 6) is s_m(6 downto 0);

n Propriété constante d ’un objet : déclaration et spécification(entity, architecture, configuration, procedure, function, package, type, subtype,

constant, signal, variable, quantity, terminal, nature, component, label, group, file, units)

attribute num_pin, valeur : integer -- déclaration

attribute num_pin of vcc:signal is 14; -- spécification

attribute num_pin of others:signal is 0;

attribute valeur of all:entity is 14;

vcc’num_pin vaut 14

x’num_pin vaut 0 si x!= vcc

LAAS 06/2003 Yannick HERVE - ENSPS 4

Instructions :

GROUPn Permet de grouper des objets

– Group template declaration

group pin2pin is (signal,signal); -- deux signauxgroup resource is (label <>); -- ensemble de labelgroup diff_c is (group <>); -- groupe de groupe

– Group declaration

group G1:resource(L1,L2);group G2:resource(L1,L2,L3);group C2Q:pin2pin(Projet.Global.CK, Q);group SetG:diff_c(G1,G3);

Page 59: LAAS_AMS_1

3

LAAS 06/2003 Yannick HERVE - ENSPS 5

Instructions :

BLOCKPermet de rassembler des instructions concurrentes sous la même

zone de définition et la même conditions de guarde (imbricables)

label: block [condition de guard] -- condition booléenne

[en_tête généricité et ports]

[déclarations locales/ sauf variables]

begin

{instructions concurrentes ou simulatnées}

end block [label];

block1: block clock ’event and clk=’1’ -- condition booléenne

begin

a <= guarded b after 3 ns ;

c <= guarded d;

end block block1;

LAAS 06/2003 Yannick HERVE - ENSPS 6

Instructions :

GENERATEn Ecriture automatique itérative ou conditionnelle de code

Exemple : Je veux décrire structurellement un compteur N bits

générique sur N; je dois instancier N bascules, avec N inconnu.

n label : if cond_bool generate

{instr. Concurrentes/simultanées}

end generate [label] ;

n label : for identif in intervalle generate

{instr. Concurrentes/simultanées}

end generate [label] ;

Page 60: LAAS_AMS_1

4

LAAS 06/2003 Yannick HERVE - ENSPS 7

Instructions :

GENERATE (exemple)n Instanciation de N additionneurs (N inconnu à la compilation)

entity adderN isgeneric(N : integer := 16);port (a,b : in bit_vector(N downto 1);

cin : in bit;sum : out bit_vector(N downto 1);cout: out bit);

end adderN;

architecture structural of adderN iscomponent adder

port (a,b,cin : in bit; sum, cout : out bit);end component;signal carry : std_logic_vector(0 to N);

begincarry(0) <= cin;gen: for I in 1 to N generateadd: adder port map(a(I),b(I),carry(I-1),sum(I),carry(I));

end generate;end structural;

LAAS 06/2003 Yannick HERVE - ENSPS 8

Instructions :

FUNCTION et PROCEDURE (1)n Sous programmes : regroupe des instructions séquentielles

fonction - rend un résultat (pas d ’effet de bord)procédure - peut consulter/modifier environnement

n fonction pure : mêmes paramêtres = même résultatNOW et FREQUENCY sont impures

n Sous programme : déclaration / corpsdéclaration ::= procedure proc1 ( {liste paramêtres} ); |

[pure|impure] function func1 ( {liste paramêtres} ) return type;

paramêtre ::= classe {nom} : [mode] type [:= default_val] Les paramètres ne sont pas obligatoirement passés

procedure : constant (in), variable (in,out,inout), signal(in,out,inout), filefunction : constant (in), signal(in), file

! Le driver des signaux sont passés complétement(attributs signaux ou quantity interdits à l ’intérieur des sub-prog)

! Les quantités sont traitées comme des constantes (même en simultané)

Page 61: LAAS_AMS_1

5

LAAS 06/2003 Yannick HERVE - ENSPS 9

Instructions :

FUNCTION et PROCEDURE (2)n Sous programme : déclaration / corps

corps ::= procedure proc1 ( {liste paramêtres} ) is{declarations locales}

begin{seq. statement}

end ; |[pure|impure] function func1 ( {liste paramêtres} ) return type is

{declarations locales}begin

{seq. statement}return result; -- si end est atteint ERREUR

end ; |

n Fonctions surchargeables : redéfinies sur des nouveaux typesopérateur «+» redéfinie peut s ’appeler a := c + d; ou a := «+»(c,d);

n Appel concurrent de procédure : liste de signaux= liste de sensibilitépas de variable dans les paramètressi pas de signal en mode in ou inout : un seul appel

LAAS 06/2003 Yannick HERVE - ENSPS 10

Précisions :

Domaine d’analysen Signal implicite : DOMAIN (quiescent_domain, time_domain, frequency_domain,)

Ce signal est fourni par l ’environnement de simulationif DOMAIN = quiescent_domain use . . . else . . . end use;

n Les simulateurs SPICE-like proposent différents mode d ’analyse : DC, AC, TRAN, MonteCarlo, NoiseL ’analyse AC se fait avec les sources SPECTRUM après analyse DCL ’analyse NOISE se fait avec les sources NOISE

quantity i through p to m;quantity ac : real spectrum 1.0, 0.0; -- magnitude, phaselimit i:electrical’through with 1.0/(20.0*freq);quantity nois_src : real noise 4.0 * amb_temp * K/R;. . .

i == V/R + ac + nois_src ;

FREQUENCY même rôle en AC que NOW en TRAN

Page 62: LAAS_AMS_1

6

LAAS 06/2003 Yannick HERVE - ENSPS 11

Précisions :

POSTPONEDn Retarder l’exécution d ’une instruction concurrente à la fin du

cycle (le dernier des delta) (process, assertion, affectation, procedure)

Ne concerne pas les instructions à delta-time (erreur)

[label :] postponed process

[label :] postponed S <= ‘0’ after 3 ns;

[label :] postponed assert . . .;

INTERDIT postponed S <= ‘0’; -- crée un delta time

LAAS 06/2003 Yannick HERVE - ENSPS 12

Précision :

TOLERANCEn On peut spécifier une tolérance dans un sous type

subtype displacement is real tolerance « def_displ »;subnature elec2 is electrical tolerance

« def_displ_ac » across « def_displ_th » through;

n Une quantité hérite de la tolérance du sous type

n Une instruction simultanée peut être « tolérancée »

m2 * x2’dot’dot == -f(x2-x1) tolerance « def_displ »

n Dans l ’environnement la tolérance est associée avec une valeur pouvant piloter le critère de convergence du simulateur

Page 63: LAAS_AMS_1

7

LAAS 06/2003 Yannick HERVE - ENSPS 13

Précision :

Signaux résolusn Un signal ne peut avoir qu’une seule source

Multi-sources (tri-state, OC) = Mécanisme spécifique

n Si, dans un contexte concurrent, on a :

A <= B ;A <= C ;

il faut que le signal soit résolu par une fonction F :à chaque tentative de transaction le simulateur effectuera

A <= F(B,C);

n Type résolu : type bit4 is (’0’, ’1’, ’X’, ’Z’); type bit4_v is array(natural range<>)of bit4;function reso_f ( s : bit4_v) return bit4;type res_bit is reso_f bit4;

n Signal résolu : signal A : res_bit [register|bus] ;

Un signal de mode inout est forcement résolu

LAAS 06/2003 Yannick HERVE - ENSPS 14

Précision :

Fonction de résolution : comportementn Appelée automatiquement à toutes les tentatives de transaction

Elle prend en entrée un vecteur de tous les signaux sources à l ’exception de ceux qui sont déconnectés (transaction nulle).

n Fonction de résolution : exemplefunction reso_f (s : bit4_v) return bit4 isvariable result : bit4 := ‘Z’;variable x : integer := 0; beginfor i in s’range loopif s(i) /= ‘Z’ then

result := s(i);x := x+1;

end if;end loop;case x is

when 0|1 => return result;when others => return ‘X’;

end case;end reso_f;

Page 64: LAAS_AMS_1

8

LAAS 06/2003 Yannick HERVE - ENSPS 15

Précision :

Déclaration des signaux (2)n Signaux gardés : REGISTER ou BUS apparaît dans la déclaration.

Si toutes les sources sont déconnectées :Register : garde la dernière valeur rendue par la FR Bus : rend la valeur de la FR appelée avec une entrée vide

(prévue par le programmeur dans la FR)

n Affectations gardées : GUARDED apparaît dans l ’affectationA <= guarded B after 3 ns;

4 cas : signal non gardé / affectation non gardéesignal non gardé / affectation gardée

if GUARD=true then A <= . . . End if;signal gardé / affectation non gardée

INTERDITsignal gardé / affectation gardée

if GUARD=true then a <= . . . Elsedeconnexion End if

n Déconnexions : disconnect nom_de_signal:type after time;disconnect a,b:integer after 5 ns;disconnect others:integer after 15 ns; disconnect all:real after 20 ns;

LAAS 06/2003 Yannick HERVE - ENSPS 16

Les dernières constructions :

Unités de conception

Les 5 unités de conception (compilables seules) :Primaires : entité, paquetage, configurationSecondaires : architecture, corps de paquetage

Le paquetage (package) : rassembler un ensemble de déclarations en vue de l ’exportation (library/use).Le corps du paquetage : rassembler les définitions des procédure / fonctions déclarées, des constantes ou des types non exportables.

La configuration permet de réaliser l’association effective de l ’instanciation d ’un composant et d ’un modèle de la base de données au moment de l’élaboration sans avoir à recompiler le modèle

Page 65: LAAS_AMS_1

9

LAAS 06/2003 Yannick HERVE - ENSPS 17

Les dernières constructions :

PaquetagePACKAGE bit_vector_ops IS

FUNCTION "+"(left, right : bit_vector) RETURN bit_vector;type state is (lec, ecr,wait,reset);

END;

PACKAGE BODY bit_vector_ops IStype internal is (ceci, pas, exporte);FUNCTION "+"(left, right : bit_vector) RETURN bit_vector IS

VARIABLE carry : bit := '0';BEGIN

FOR i IN result'reverse_range LOOP. . . END LOOP;RETURN result;

END "+";

END bit_vector_ops;

Si le paquetage est compilé dans MYLIB, les informationssont disponibles par : LIBRARY MYLIB;

USE MYLIB.bit_vector_ops.all;

LAAS 06/2003 Yannick HERVE - ENSPS 18

Les dernières constructions :

Configuration : support de généricité(1) Déclaration de composant : COMPONENT

(2) Instanciation le composant

Description structurelle = netlist de composants virtuels

(3) Configuration : instance de COMPONENT →→→→ entité(archi)

(1) et (2) Généralisation à compiler une seule fois

(3) Spécialisation : applicable sans recompiler

Les deux méthodes de configuration :

Embarquée dans l ’architecture :

for lab_inst:nom_instance use lib_nam.entity(archi);

Par unité de conception : la seule correcte

(+ instanciation directe label:entity …)

Page 66: LAAS_AMS_1

10

LAAS 06/2003 Yannick HERVE - ENSPS 19

Les dernières constructions :

Configuration : exemple (1)

entity adder isport (a,b,cin : in bit ; sum,cout : out bit);

end adder;

architecture rtl of adder isbegin

sum <= (a xor b) xor cin;cout <= (a and b) or (cin and a) or (cin and b);

end rtl;

Modèle compilé et disponible dans la bibliothèque WORK

LAAS 06/2003 Yannick HERVE - ENSPS 20

Les dernières constructions :

Configuration : exemple (2)entity adder4 is

port (a,b : in bit_vector(4 downto 1);cin : in std_logic;sum : out bit_vector(4 downto 1);cout : out bit);

end adder4;

architecture structural of adder4 is(1) component compo1

port (x,y,z : in bit; v,t : out bit);end component;signal carry : bit_vector(0 to 4);

begincarry(0) <= cin;

(2) add1:compo1 port map(a(1),b(1),carry(0),sum(0), carry(1));(2) add2:compo1 port map(a(2),b(2),carry(1),sum(1), carry(2));(2) add3:compo1 port map(a(3),b(3),carry(2),sum(2), carry(3));(2) add4:compo1 port map(a(4),b(4),carry(3),sum(3), carry(4));

cout <= carry(4);end structural;

Page 67: LAAS_AMS_1

11

LAAS 06/2003 Yannick HERVE - ENSPS 21

Les dernières constructions :

Configuration : exemple (3)(3) configuration test_adder4 of adder4 is

for structuralfor all: compo1

use entity work.adder(rtl)port map (a=>x, b=>y, cin=>z, sum=>v, cout=>t);

end for;end for;end test_adder4;

Ce module est compilable seul. Si on change rtl par other_archi on peut simuler une nouvelle architecture sans recompiler les modèles!!

Si la hiérarchie était plus profonde on pourrait imbriquer :for archi0 for label: compo use entity lib.entity(archi1);

for archi1 for label: compo use entity lib.entity(archi2);for archi2 for label: compo use entity lib.entity(archi3);

. . . end for;

end for;end for;

LAAS 06/2003 Yannick HERVE - ENSPS 22

Les dernières constructions :

Configuration : back-annotation(3) configuration test_adder4 of adder4 is

for structuralfor all: compo1

use entity work.adder(rtl)generic map (td => 12 ns, tr => 22 ns); port map (a=>x, b=>y, cin=>z, sum=>v, cout=>t);

end for;end for;end test_adder4;

Configuration retardée

Les délais obtenus par analyse du routage sont ré-injectés dans le modèle sans avoir à le recompiler : conception d ’ASIC

Page 68: LAAS_AMS_1

12

LAAS 06/2003 Yannick HERVE - ENSPS 23

Les dernières constructions :

Configuration : Raccourci (mauvais)On peut embarquer la configuration dans l ’architecture

On perd beaucoup de puissance de généralisation/spécialisation

architecture structural of adder4 is(1) component compo1

port (x,y,z : in bit; v,t : out bit);end component;signal carry : bit_vector(0 to 4);

(3) for all: compo1 use entity work.adder(rtl)port map (a=>x, b=>y, cin=>z, sum=>v, cout=>t);

begincarry(0) <= cin;

(2) add1:compo1 port map(a(1),b(1),carry(0),sum(1), carry(1));(2) add2:compo1 port map(a(2),b(2),carry(1),sum(I), carry(2));

. . .end structural;

Pas très rigoureux sur le plan sémantique : on configure avant d ’instancier (!!??)

LAAS 06/2003 Yannick HERVE - ENSPS 24

n Intérêt du multi-abstraction / configuration

n Travail en équipe : E1 / E2 / E3

Cahier des charges fonctionnel simulable, blocs fonctionnels :

B10 / B20 / B30

E1 doit concevoir B1 : B10 à B1n

Vérification possible par simulation de B1x / B20 / B30

(en cas d ’erreur 90% des problèmes sont aux interfaces)

Même remarque pour les équipes E2 et E3

n Si la description est bien faite (configuration) n’importe quelle netlist de type B1x / B2y / B3z est simulable sans recompiler.Étude de performances locales en optimisant les besoins en calculs

n Voir Aussi transparent « Back-annotation »

Les dernières constructions :

Configuration : Intérêt opérationnel

Page 69: LAAS_AMS_1

13

LAAS 06/2003 Yannick HERVE - ENSPS 25

Type T →→→→ Type : T'baseType T →→→→ Value : T'left, T'right, T'high, T'low, T'ascendingType T →→→→ Function : T'image(X), T'value(X), T'val(X), T'pos(X), T'succ(X), T'pred(X), T'leftof(X), T'rightof(X)

Array A →→→→ Function :A’left[(N)], A’right[(N)], A’high[(N)], A’low[(N)] Array A →→→→ Range : A'range[(N)], A'reverse_range[(N)]Array A →→→→ Value : A’length[(N)], A'ascending[(N)]

Signal S →→→→ Signal :S’delayed[(T)], S’stable[(T)], S’quiet[(T)], S'transaction

Signal S →→→→ Quantity : S'ramp([TR[,TF]]), S'slew([max_rising_slope, [max_falling_slope]])

Signal S →→→→ Fonction :S’event, S'active, S’last_event, S'last_active, S’last_value, S'driving, S'driving_values

Attributs restants à définir (liste 1)

LAAS 06/2003 Yannick HERVE - ENSPS 26

Entity E →→→→ String : E'simple_name, E'instance_name, E'path_name

Nature N →→→→ Type : N’across, N’through Nature N →→→→ Terminal : N’reference

Quantité Q →→→→ Value : Q’tolerance

Quantité Q →→→→ Quantité :Q’dot, Q’integ, Q'delayed(T), Q'zoh(T[,initial,delay]),Q'ltf(num,den), Q'ztf(num,den,T[,initialelay]), Q'slew([max_rising_slope,[max_falling_slope]])

Quantité Q →→→→ Signal : Q’above(E)

Terminal T →→→→ Quantité : T’contribution, T’reference

Terminal T →→→→ Value : T'tolerance

Attributs restants à définir (liste 2)

Page 70: LAAS_AMS_1

14

LAAS 06/2003 Yannick HERVE - ENSPS 27

S'ramp([TR[,TF]]) : permet de fabriquer une quantité sous forme de rampe à partir d ’un signal « tout ou rien »

S'slew([max_rising_slope, [max_falling_slope]]),Q'slew([max_rising_slope,[max_falling_slope]]) : permet de fabriquer une quantité présentant un slew rate (dérivée bornée) aussi bien à la montée qu’à la descente.

Q'zoh(T[,initial,delay]): échantilloneur bloqueur.Q'ltf(num,den) : application d ’une fonction de transfert sous forme de transformée de laplace.Q'ztf(num,den,T[,initialelay]): application d ’une fonction de transfert sous forme de transformée en Z.

Attributs importants :

LAAS 06/2003 Yannick HERVE - ENSPS 28

Q'ltf(num,den) : Applique la fonction de transfert à QLe résultat est sous forme temporelle.

num et den sont deux vecteurs de réelsnum = (a0,a1,a2,…,an)den = (b0,b1,b2,…,bn) avec b0!=0

Avec Ho, wp et qp constantesnum = ( Ho*wp*wp )den = ( wp*wp, wp/qp, 1.0)

Q'ztf(num,den,T[,initialelay]): Même mécanisme, avec en plus période d’échantillonnage et décalage initial.

Transformée de Laplace / en Z

=

== n

0kk

k

m

0kk

k

p.b

p.a)p(H

2p

p

p2

2p0

p.Q

p

.H)p(H

ω+ω

+

ω=

Page 71: LAAS_AMS_1

15

LAAS 06/2003 Yannick HERVE - ENSPS 29

Paquetages utilitairesn Paquetages de la norme

STD, TEXTIO : types et fonctions de base,opérations sur les fichiersLIBRARY IEEE :STD_LOGIC_1164 : MVL9 (std_ulogic, std_logic), fonctions associéesMATH_REAL, MATH_COMPLEX : constantes, types et fonctions

LIBRARY DISCIPLINES :ELECTROMAGNETIC_SYSTEM, KINEMATIC_SYSTEM,ROTATIONAL_SYSTEM, FLUIDIC_SYSTEM: naturesPHYSICAL_CONSTANTS : boltzmann, electron, . . .

n Paquetages non normalisésPaquetages fournisseurs notamment pour la synthèse : En cas de portage, il faut porter les paquetages. (ex : CONVERSION par MG)Si des fonctions utilisées sont définies comme FOREIGN les constructions ne sont pas portables

n Les Outils livrés avec des libraries de ressourcesIntellectual Property (IP) : on n ’a pas accès au source

LAAS 06/2003 Yannick HERVE - ENSPS 30

Compilation, Elaboration, Simulation, Exploitation

n Compilation : analyse syntaxique et sémantiqueUC primaires avant UC secondairesStockage en bibliothèque

n ElaborationRassemble les modèles utilisés (propriétaire ou IP),vérifie les associations, fixe les génériques, crée les data-structures

process inteconnectés + jeu d’équations simultanées

n Simulation (deux noyaux de simulation)vérifie les contraintes dynamiques de valeurrapporte les REPORT et pilote le simulateur avec le SEVERITYvérifie les boucles infinies des process, contrôle la convergence

n Exploitationtracé des chronogrammes, tracé des x(t),auto-test des modèles

Page 72: LAAS_AMS_1

16

LAAS 06/2003 Yannick HERVE - ENSPS 31

Cycle de simulation : initialisationn Tc= 0.0 / Frequency = 0.0n Valeurs initiales des signaux et quantitésn Exécute tous les PROCESSn (1) Exécute le solveur analogique : trouve point DCn Mise à jour des signauxn Exécute les PROCESS sensibles a ces signaux n Reste-il des événements dans la queue ?

Si OUI; retour en (1)n Quiescent state : Mise à jour du signal DOMAIN n Time_domain ou Frequency_domain simulation

LAAS 06/2003 Yannick HERVE - ENSPS 32

Cycle de simulation : time_domainn (2) Extraire premiers événements de la liste

Avancer Tn à cette daten (3) Simuler analogique jusqu’ à Tn ’

Tn ’ peut être < Tn à cause des Q ’above(E)plusieurs ASP qui ne coïncident pas forcément avec Tn

n Tc =Tn : si Tc=time ’high alors ENDn Mise à jour des signauxn Exécute les PROCESS sensibles a ces signaux n Reste-il des événements dans la queue

ou il y a t il un BREAK ?Si OUI : Tn=Tc, retour en (3) [delta-cycle]Si NON : retour en (2)

Page 73: LAAS_AMS_1

17

LAAS 06/2003 Yannick HERVE - ENSPS 33

Cycle de simulation : frequ_domain

n Ne concerne que la partie continue

n Résolution d’un jeu d ’équations algébriques linéaires

LAAS 06/2003 Yannick HERVE - ENSPS 34

n entity Capacitor isgeneric (C: REAL; Vo: REAL := REAL’low);port (terminal p, m: electrical);

end entity Capacitor;

n architecture One of Capacitor isquantity v across i through p to m;begini == C * v’dot;break v => Vo when Vo /= REAL’low;

end architecture One;

n architecture Two of Capacitor isquantity v across i through p to m;quantity q : charge;

beginq == c * v;i == q’dot;break for q use v => Vo when Vo /= REAL’low;

end architecture Two;

Initialisation après discontinuité

v == vo remplacev’dot == 0

v == vo remplaceq’dot == 0

Par défautQ’dot==0.0, Q=Q(t-)après discontinuité

Page 74: LAAS_AMS_1

18

LAAS 06/2003 Yannick HERVE - ENSPS 35

La grammaire BNF en HTML©

n La seule référence : LRM IEEE 1076.1999

n Le fichier ams_bnf.html est une aide à la rédaction syntaxique

Page 75: LAAS_AMS_1

1

LAAS 06/2003 Yannick HERVE - ENSPS 1

4 - VHDL-AMS avancé

Bonnes méthodes et habitudes, Les pièges à éviterTestbench avancés, Intellectual property (IP)ADVance MS et Configuration de l ’environnementSimulation analogique et fichier de commandeLimites des outils actuels et futur possible (?!)

LAAS 06/2003 Yannick HERVE - ENSPS 2

Bonnes méthodes et habitudes

n Modularisation n Présentation du coden Test locaux / globauxn Généricité (reusability)n Configuration

Page 76: LAAS_AMS_1

2

LAAS 06/2003 Yannick HERVE - ENSPS 3

Bonnes méthodes et habitudes :

Modularisation

Chaque UC doit être dans un fichier avec ses clauses library et use

La recompilation d’une UC ne doit pas impliquer la manipulation de fichiers qui ne la concerne pas (risques d ’erreurs, temps gaspillé, …)

Une nouvelle configuration pourra se faire sans recompiler

Les outils vérifient le cohérence des temps de simulation : Un objet ne peut faire référence qu ’à un objet compilé avant lui

LAAS 06/2003 Yannick HERVE - ENSPS 4

Bonnes méthodes et habitudes :

La présentation du codeMise en forme / Nom des objets / Structure (Mauvais)

LIBRARY IEEE;use ieee.math_real.all; entity x is port (a,b :std_ulogic; c : OUT std_ulogic); end;architecture z OF x isbegin c <= a after 3 ns when (b’event and b=‘1’) else unaffected;end;;

architecture z2 of x isbeginprocessbeginwait until b=‘1’;c <= a after 3 ns;end process;end;

Page 77: LAAS_AMS_1

3

LAAS 06/2003 Yannick HERVE - ENSPS 5

ENTITY bascd ISGENERIC (tpd: time := 10 ns);PORT (SIGNAL D,CLK : IN std_ulogic; SIGNAL Q : OUT std_ulogic);

END ENTITY basd;

LIBRARY IEEE;use ieee.math_real.all; ARCHITECTURE beh1 OF bascd ISBEGIN

Q <= D after tpd when (CLK’event and CLK=‘1’) else unaffected;END ARCHITECTURE beh1;

ARCHITECTURE beh2 OF bascd ISBEGINbascp : PROCESS

BEGINWAIT UNTIL CLK=‘1’;Q <= D AFTER tpd;

END PROCESS bascp;END ARCHITECTURE beh2;

Bonnes méthodes et habitudes :

La présentation du codeMise en forme / Nom des objets / Structure (Mieux)

LAAS 06/2003 Yannick HERVE - ENSPS 6

Un module/modèle/composant ne doit être livré ou utilisé qu’une fois rigoureusement testé et validé

Bonnes méthodes et habitudes :

Tests rigoureux

• Travail long et exigeant• Procédure éventuellement standard• Archiver rapports de validation• Documenter hypothèses et limites de validitéRappel : Une erreur coûte d ’autant moins cher qu’elle est détectée tôt

(anecdotes : renault1, renault2, peugeot, perrier, coca, P120, …)

Plus le modèle semble/est simple, plus cette procédure est ignoréeA TORT

Page 78: LAAS_AMS_1

4

LAAS 06/2003 Yannick HERVE - ENSPS 7

Bonnes méthodes et habitudes :

Tests rigoureux : couverture de code s’applique au numérique

n Outils d ’analyse permettant de savoir si au cours d’une simulation toutes les lignes de codes ont été « activées » ()

n Critères de couverture :

LAAS 06/2003 Yannick HERVE - ENSPS 8

Penser à l’avenir plutôt qu’au présent

Le « réutilisabilité » doit être facilitéea <= b after 3 ns ; pas réutilisable

generic(tpd:time:=3 ns);a <= b after tpd ; réutilisable

La configuration permet d’élaborer des grosses structures sans recompiler les constituants(instanciation directe / configuration embarquée : trop restrictif)

Bonnes méthodes et habitudes :

Généricité / Configuration

Page 79: LAAS_AMS_1

5

LAAS 06/2003 Yannick HERVE - ENSPS 9

Pièges à évitern Le manque de wait : faminen Le test if Q = 0.0 (compréhension des ASP)n Comportement mixte sans break

n Le développement sans analyse (faux gain de temps)

n Le bricolage/replâtrage (faux gain de temps)

n Le manque de généralité (faux gain de temps)

n Négliger la « mécanique » du simulateur analogiquen Ne pas confronter au monde réeln Ne pas utiliser toutes les possibilités de l ’outil

LAAS 06/2003 Yannick HERVE - ENSPS 10

Système : Comment tester ?

Système matérielsous test

Contrôledu test

Rapport detest

Visu ouacquisition

Générateur de signaux

Analyse de données

CdC du test

Tests de systèmes matériels

VXI, GPIB, …LabWindows, VEE

CI : testeur sous pointes ou JTAG

Vecteurs de testgénérés par la CAO

Page 80: LAAS_AMS_1

6

LAAS 06/2003 Yannick HERVE - ENSPS 11

Modèles : Comment tester ?Note : Les modèles doivent utiliser toutes les subtilités et toute la

puissance de l’environnement de travail

Rapport (fichier/visu)

Modèle à valider(sous test)

Contrôledu test

Visu ouacquisition

Générateur de signaux

Analyse de données

Modèle instancianttous les objets :

TESTBENCH (bans de test)

Notion de Testbench (modèle auto-analysant)

Utiliser la puissance du langage

LAAS 06/2003 Yannick HERVE - ENSPS 12

Modèles : Comment tester ? :

Les ressourcesn Les objets de gestion du test seront purement

comportementaux et génériques

n Générateurs : Sinus parfait, Sinus modulé, ..Générateur de séquence numérique,

n Analyseurs : GoNogo, Testeur de temps,…n Modèles utiles : VCO, ...

n Construire sa propre bibliothèque pour optimiser le travail (paquetage de test)

Page 81: LAAS_AMS_1

7

LAAS 06/2003 Yannick HERVE - ENSPS 13

Modèles : Comment tester ? :

Exemple de source sinus modulélibrary …; use …;

entity S_sine isgeneric (InitDelay,StartFreq,SweepRate,Ampl:real);port (quantity S_out:out voltage);

end entity S_sine;

architecture bhv of S_sine isquantity freq,phi:real;

beginif NOW > InitDelay useFreq == StartFreq + SweepRate*(Now-InitDelay);

elseFreq == StartFreq;

end use;phi’dot == Freq; S_out == Ampl * SIN(2.0 * Math_pi * phi );end architecture bhv;

LAAS 06/2003 Yannick HERVE - ENSPS 14

Modèles : Comment tester ? :

Mesure de temps (1)DUTtesteur

Rise time, ...library …; use …;

entity Step_meas isgeneric (Tbeg, Tlow, Thigh, Trt, Tend, DUTgain:real);port (quantity T_in:in voltage, quantity T_out:out voltage;

signal rt_v :out real := -1.0);beginassert Tbeg > 0.0 report «Le temps de départ doit être > 0»;… -- la même chose pour les autres paramètres

end entity Step_meas;

architecture bhv of Step_meas issignal stim_val : real := Tlow;signal rt_10 : real := -1.0; -- temp pour 10%

constant Tstep:real:= Thigh - Tlow;constant Th0_1:real:= DUTgain*(Tlow+ 0.1 * Tstep);constant Th0_9:real:= DUTgain*(Tlow+ 0.9 * Tstep);

begin...

Page 82: LAAS_AMS_1

8

LAAS 06/2003 Yannick HERVE - ENSPS 15

Modèles : Comment tester ? :

Mesure de temps (2)DUTtesteur

Rise time, ...…stim_val <= Thigh after real2time(Tstart);

T_out == Stim_val ’RAMP(Trt,Trt);

measure_rt : process -- recherche la passage à 10% et à 90%beginwait until DOMAIN = time_domain;

wait until T_in’above(Th0_1) and NOW <= Tend;rt_10 <= NOW;

wait until T_in’above(Th0_9) and NOW <= Tend;rt_val <= NOW - rt_10;

end process measure_rt;

end architecture bhv;

LAAS 06/2003 Yannick HERVE - ENSPS 16

Intellectual Property (IP)n Norme : nouveau métier (vendeur de modèles)n Contexte de l’entreprise

Si quelque chose existe : on l’achète si c’est plusrapide ou meilleur marché qu’un développement

n Sur le marché libre ou commercial : bibliothèques, cœur de processeur, de micro-contrôleurs, mémoires

n Outil Mentor (Comm_lib) : A2D, Amp/Comp, Control,D2A, Delta-Sigma, Digital, S-Z domain, Maths, Mod/Dem, PLL, DigitalSources

Page 83: LAAS_AMS_1

9

LAAS 06/2003 Yannick HERVE - ENSPS 17

L’outil de CAO : ADVance-MS(prix catalogue : 480.000 frs avec commlib)

n Sociéte MENTOR-GRAPHICSfiliales : ANACAD (ELDO [électronique douce Vs épicé ???])

MODEL-TECHNOLOGY (V-SYSTEM)fournisseurs : LEDA (Parser VHDL-AMS)

Cygnus (compilateur C / GNU)n Modification d ’un simulateur SPICE-like

On décrit les circuit en .CKTLe testbench VHDL-AMS n ’a pas de PORTUn .CKT peut instancier un VHDL-AMS (ELDO classique)Un VHDL-AMS peut instancier un .CKT

On pilote le simulateur par un .CMD (obligatoire)

LAAS 06/2003 Yannick HERVE - ENSPS 18

L’environnement

n Interface utilisateurn Structure de bibliothèquen Fenêtres utilisateurs

fenêtre générale / consoleload design structure (red=spice / green=VHDL-AMS / blue=VHDL)

netsourceprocessvariables

Page 84: LAAS_AMS_1

10

LAAS 06/2003 Yannick HERVE - ENSPS 19

Les outils disponiblesn vasim : interface graphique et simulationn vacom : compilateurn valib,vasetlib : création bibliothèquesn vadir, vadel, vamap : gestion bibliothèquesn xelga : Grapheur

n Exemple :valib ./mylib -- création ou vasetlib si la dir mylib existe dejà

vamap mylib ./mylib -- logic mappingvamap -- display mappingsvamap -del mylibvacom -work mylib design.vams

LAAS 06/2003 Yannick HERVE - ENSPS 20

Configuration

n Voir TP

Page 85: LAAS_AMS_1

11

LAAS 06/2003 Yannick HERVE - ENSPS 21

Simulation et .CMD

n Analyses possiblesn Paramêtres utilisateurs

LAAS 06/2003 Yannick HERVE - ENSPS 22

Limitations de l’outil (V1.1-1.1)

n Types : record, multidimensional arrays,quantity and terminal arraystype résolus utilisateur

n Proceduraln Quantity ports n Initialization and break : break list (pas de

conditions initiales en DC ou après une discontinuité)n Concurrent procedure calln NOISE sources : peuvent être instanciées en .CKTn SPECTRUM sources : magnitude/phase statiquesn Fichiers

Ce qui n’est pas supporté (1)

Page 86: LAAS_AMS_1

12

LAAS 06/2003 Yannick HERVE - ENSPS 23

Limitations de l’outil (V1.1-1.1)

n Les conditional simultaneous statements doivent être équilibrés (if cond use … else … end use;)

n Les cibles sous forme d ’aggregats(A,B,C) <= (‘ 0 ’, ’1 ’, ’0 ’) avec A,B,C : bit ; pas autoriséA <= (‘ 0 ’, ’1 ’, ’0 ’) avec A : bit_vector(1 to 3) ; autorisé

n Dans un ASSERT le severity est obligatoireassert A = ‘ 1 ’ report « A est faux » ; ne marche pasassert A = ‘ 1 ’ report « A est faux » severity note ; marche

n TOLERANCES ignoréesn T ’contributionn CONFIGURATION : seule la forme la plus simplen Disconnection, registers, buses, guarded signals

Ce qui n’est pas supporté (2)

LAAS 06/2003 Yannick HERVE - ENSPS 24

Limitations de l’outil (V1.1-1.1)

n Shared variables and file objectsn Alias and User defined attributs namesn Unaffectedn Generaten null simultaneous statementn Groupn Open : les ports doivent être connectésn S ’driving, S ’driving_valuen Postponed processesn Linkage, buffer, Access types

Ce qui n’est pas supporté (3)

Page 87: LAAS_AMS_1

13

LAAS 06/2003 Yannick HERVE - ENSPS 25

Limitations de l’outil (V1.1-1.1)

n Un modèle purement numérique n ’est pas bien pris en charge (gestion d ’horloge)

n La durée de simulation doit être connue au départn Le rafraîchissement de l ’écran est pénalisant

(option du grapheur)n Le spécialisation d ’un outil existant génère des

limitations et lourdeurs intrinsèques– Les limitations d’ELDO sont naturellement présentes

Limites d ’environnement

LAAS 06/2003 Yannick HERVE - ENSPS 26

Futur probable : quelques pistes

n « Boost » de la recherche en synthèse analogiquen IP et modèles constructeurs (analo.) plus présentsn Accessibilité aux outils de haut niveaun Support de l’échange

n Développement de simulateur natifs efficacesn Support du calcul parallèle

n NAISSANCE D ’UN NOUVEAU METIER !!!! (vous !!)