2 - Introduction - PowerPoint PPT Presentation

About This Presentation
Title:

2 - Introduction

Description:

2 - Introduction VHDL-AMS (1 23 = 1h45) Structure g n rale d'un mod le Structuration en biblioth ques Indentificateurs, Objets et typage. – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 73
Provided by: YRV
Category:

less

Transcript and Presenter's Notes

Title: 2 - Introduction


1
2 - Introduction à VHDL-AMS(1 à 23 1h45)
  • Structure générale d'un modèle
  • Structuration en bibliothèques
  • Indentificateurs, Objets et typage. Opérateurs
  • Instructions séquentielles, concurrentes,
    simultanées
  • Notion d attributs et Synchronisation des noyaux
  • Critère de solvabilité et Exemples

2
Structure générale d un modèle
Interfaçage/netlist (port)signal
numériqueterminal analogique,
kirchoffquantity analogique, signal flow
Entity Déf. connexions
Architecture Déclaration Body
Inst.concurrentes Inst.simultanées
Instanciations
Vue interne du modèlediscret-eventcontinuous
timestructurel/hiérarchie
Entity
Architecture
3
Structure générale d un modèle Exemple
ENTITY exemple IS port (signal sig_extin real
terminal vp,vm electrical) END
exempleLIBRARY ressource_lib USE
ressources_lib.ressources_package.ALLARCHITECTUR
E archi1 OF exemple IS TYPE list_ex IS
(el1,el2,el2) CONSTANT cst1 list_ex, kREAL
SIGNAL sig1 BIT, sig2 INTEGER, sig3 REAL
QUANTITY vbias ACROSS ibias THROUGH vp TO vm
QUANTITY free_quant REAL BEGIN
u1ENTITY model_externe(archi_du_modele)
GENERIC MAP(100.0e3,5.0) PORT MAP(vp,vm,sig1)
free_quant 3.0sinus( k now ) ibias
free_quantdot p1PROCESS variable x real
5.5 BEGIN wait on sig3 until sig2 gt 3 for
25 ms x 2x sig_ext lt sig3 after 1
ms END PROCESS END archi1
Exemple illustratif non compilable
4
Structure générale d un modèle Prise en charge
par le simulateur
Entity
Sim anal.
Sim num.
Architecture
Tsim
Equa.DiffNL (SS)
Equa.Log (CS)
SS1SS2 SS3 ...
CS1CS2 CS3 ...
EA
EA
SS1
EA
EA
Produit des ASPvaleurs i(t),v(t)
Produit des événements
CS1CS2
SS1SS2 SS3 ...
CS1CS2
CS concurrent statementSS simultaneous
statementEA Entity Architecture
5
Structuration en bibliothèques
  • Pas de longue description
  • Unités petites et hiérarchisées
  • Partie compilable Unité de conception
  • Système complexe équipe Besoin de méthodologie
    rigoureuse
  • Une compilation qui aboutit Mise à jour d une
    bibliothèque de travail (WORK)
  • Bibliothèque de ressources (de projet, d un
    fournisseur, de test, ) LIBRARY
    ressource_lib USE ressource_lib.pack_lib.ALL

6
Structuration en bibliothèque Les unités de
conception
  • Modèle ENTITY (UC) ARCHITECTURE
    (UC) plusieurs ARCHITECTURE possibles par ENTITY
  • Code souvent utilisé et partagé
    paquetage PACKAGE (UC) PACKAGE BODY (UC) vue
    ext. exportation vue interne privé
  • Association effective d une instance et un
    modèle compilé CONFIGURATION (UC)
  • Les bibliothèques contiennent des UC
  • Méthode Un fichier Une Unité de Conception

7
Identificateurs
  • Noms des objets identificateurs
  • Suite de lettres et de chiffres
  • Commence par une lettre, no case sensitive
  • Possible de poser des traits bas Rdf_232
  • Traits bas doubles, au début, à la fin interdit
  • Commentaire -- (jusquà la fin de la ligne)

8
Littéraux (1) (Valeurs  dures  du langage)
  • Caractères 95 des 128 ASCII (imprimables)  a 
    ,  b , Q ,
  • Chaînes de caractères C est 
    --(   guillemets) possible sur
    deux lignes
  • Notations décimales 1345, 1_345, 1e6,
    1E6 1345.3, 1_345.1, 1.0e2 (attention x.0)

9
Littéraux (2)
  • Notations basées (entiers et réels
    exprimables) 201101 est un entier qui vaut
    13 703630, 16FF3A 201101.0 est un réel
    qui vaut 13.0 16FF.4Ae12
  • Notation par chaînes B000110 (0, 0,
    0, 1, 1, 0) 006 (0, 0, 0, 1,
    1, 0) X255 (1, 1, 1, 1, 1,
    1, 1, 1)

10
Typage
  • Tous les objets sont typés (strong typing)
  • Permet linitialisation fiable et augmente le
    pouvoir de vérification du compilateur
  • 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
  • Types et sous-types utilisateurs possibles

11
Typage Déclaration scalaires
type_declaration TYPE type_name IS
type_definition
Enuméré TYPE enum_type IS (bleu, blanc, rouge)
-- relation d ordre
Entiers 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 obligatoire mil 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
entier A nm transforme un entier en nm
12
Typage Déclaration composites
Vecteur 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 dentier contraintTYPE
real_vec IS ARRAY(natural range ltgt) of real
Tableau non contraintTYPE 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 darray 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
13
Typage Déclaration fichiers et pointeurs (notes)
Fichiers TYPE file_type IS file OF string
Voir fonctions associées dans le paquetage
STANDARD read / 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 pointeur Si IPtr est de
type index_ptr IPtr.all à la valeur de lobjet
pointé Réservé aux variables
14
Typage Types prédéfinis (notes)
  • Types prédéfinis
  • integer TYPE integer IS RANGE integerlow to
    integerhigh
  • real TYPE real IS RANGE reallow to
    realhigh
  • 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
    RANGEltgt) of bit
  • boolean TYPE boolean IS (false, true)
  • severity_level TYPE severity_level IS
    (NOTE,WARNING,ERROR,FAILURE)
  • character TYPE character IS (NUL,
    SOH,, a, b, , ,DEL)
  • string TYPE string IS ARRAY (positive range
    ltgt) of character
  • time TYPE time IS RANGE integerlow TO
    integerhigh 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

15
Typage Sous-types
subtype_declaration SUBTYPE subtype_name IS
type_names constraints
  • 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
  • Permet de définir des fonctions de
    résolution (voir cours suivant) SUBTYPE
    resolved_bit IS resolution_function bit
  • Sous-types prédéfinis
  • natural SUBTYPE natural IS integer RANGE 0 to
    integerhigh
  • positive SUBTYPE positive IS integer RANGE 1 to
    integerhigh
  • Dynamique SUBTYPE mot IS bit_vector (1 to max)
    (MAX variable)

16
Typage Initialisation des objets
  • En VHDL-AMS tous les objets sont
    initialisés implicitement ou explicitement
  • Un objet prend la valeur la plus à gauche de son
    type signal A bit -- A vaut 0 signal A
    bit 1 -- A vaut 1 variable B
    boolean -- B vaut false quantity Q real
    -- Q vaut 0.0
  • Un type peut être incomplètement défini TYPE
    cell -- type incomplètement défini TYPE link
    IS ACCESS cell TYPE cell is record --
    définitions récursive de type value index
    succ link END RECORD

17
Les 6 classes dobjets
  • 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 ( lt ) TERMINAL permet les
    connexions analogiques branch/free QUANTITY
    participe aux simult.stat. ( ) est
    toujours d un type issu des real FILE

18
Classes d objets Constantes
  • Permet de stocker des valeurs constantesCONSTANT
    pi real 3.141592 CONSTANT clock_period
    time 20 ns CONSTANT BV0 bit_vector(15
    DOWNTO 0) (1, 0 ,othersgt 0 ) CONSTANT
    tt truth_table (other gt (others gt  0 ))
    CONSTANT mem_bus memory_bus (adrr gtX
    00AA,datagtXFF, read
    gt 0, write gt 1 , enable gt 1  )
  • 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
  • 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)

19
Classes d objets Variables
  • 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 est utilisable que dans un contexte
    séquentiel PROCESS uniquement
  • Il existe des variables partagées (shared) !!!
    Programmes non déterministes !!! A
    manipuler avec circonspection

20
Classes d objets Signal
signal_declaration SIGNAL signal_name
fonc_resolution type contraintesREGISTERBUS
init_value
  • Transporte les valeurs du simulateur
    event-driven S lt 3 after 15 ns
  • Modélise les fils entre les portes
    (symbolique) Inport lt Outport
  • Nom de fonction dans la déclaration signal
    résolu plusieurs sources possible / résolution
    du conflit (voir cours suivant)
  • REGISTER ou BUS signal gardé (guarded)ne
    pourra être affecté que si le signal GUARD est
    TRUE (vu plus loin)
  • Possède un passé, une valeur, un futur proposéle
    driver du signal

21
Classes d objets Terminal
terminal_declaration terminal identifier_list
subnature_indication
  • Permet de nommer des nœuds (ne porte pas de
    valeur !!!)
  • 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
  • Vecteur de nature NATURE elec_vec IS
    ARRAY(natural RANGE ltgt) of electrical
  • Record de nature

22
Classes d objets Quantity
  •  Signaux continus  du simulateur analogique
  • Free Quantity (n est pas attachée à un
    TERMINAL)QUANTITY Q real expression Valeur
    initiale implicite 0.0 (dépend de loutil)
  • Branch Quantity QUANTITY 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
  • Implicit QuantityQUANTITY Q real
    expressionQdot, Qinteg existent toujours et
    sont créées si besoinQUANTITY QV real_vector
    (3  downto 0) QVdot, QVinteg sont valides

23
Classes d objets Terminal/Quantity exemples
  • terminal t1,t2 electrical terminal t3, t4
    electrical_vector (1 to 5)
  • quantity v12 across i1, i2 through t1 to t2
    définit une tension et deux courants
  • quantity v31 across i3 through t3 to t2
  • quantity v24 across i4 through t2 to t4
  • quantity v34 across i5 through t3 to t4
  • Définir un système étoile,un système
    triangle(terminaux scalaires)
  • Définir un système N-phases étoile, N-triangle
  • (N inconnu)

24
Sémantique de connexion
  • Spécification d entité PORTS classe, type
    et mode des connexions (et valeurs par défaut)
    GENERIC constantes passées à
    l élaborationENTITY exemple IS generic
    (par1,par2,par3realpar4time 3 ns) port
    (signal sig inoutinoutlinkagebuffer
    real quantity q inout real
    terminal vp,vm electrical)BEGIN
    instructions passives pas daffectations de
    signalEND exemple
  • 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

25
Sémantique de connexion Event driven
  • ENTITY exemple IS port (signal sig
    inoutinoutlinkagebuffer real)END
    exemple
  • 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
  • Un port de mode OUT n est pas lisible dans
    l architecture
  • LINKAGE, BUFFER modes inutilisés en pratique
  • Un port de mode INOUT est forcément résolu
  • Le mot clef OPEN permet de laisser ouvert

26
Sémantique de connexion Event driven
formal/actual port
  • Avec
  • ENTITY source IS PORT (SIGNAL a in real b
    out real)END -- a et b sont les ports formels
  • On a
  • ENTITY testdetector IS PORT (SIGNAL extin IN
    real extout OUT real)ENDLIBRARY
    disciplines USE disciplines.Electromagnetic_syst
    em.ALLARCHITECTURE test OF testdetector IS
  • SIGNAL pin,poutrealBEGIN
  • u1ENTITY source(pulse_proba) PORT MAP
    (extin,extout) u2ENTITY source(pulse_proba)
    PORT MAP (pin,pout)
  • END -- extin,extout,pin,pout sont des ports
    réels (actual)

27
Sémantique de connexion Signal Flow
  • ENTITY exemple IS port (QUANTITY Q1 in real,
    Q2 out real) END exemple
  • Support de l interconnexion à temps continu
  • Permet de modéliser sous forme de
    schéma-blocsUne entrée n influence pas une
    sortie(impédance d entrée infinie, impédance de
    sortie nulle)
  • Les quantité connectées doivent être de même type
  • Les ports de classe Quantity connectés doivent
    être compatibles
  • Pas encore supporté par les outils

28
Sémantique de connexion Signal Flow exemple
  • Avec
  • ENTITY block1 IS PORT (QUANTITY a in real b
    out real)END
  • On a
  • ENTITY black_boxes IS PORT (QUANTITY extin IN
    realQUANTITY extout OUT real)ENDLIBRARY
    disciplines USE disciplines.Electromagnetic_syst
    em.ALLARCHITECTURE test OF black_boxes IS
  • QUANTITY plocreal -- Free QuantityBEGIN
  • u1ENTITY block1(beh) PORT MAP (extin,ploc)
    u2ENTITY block1(beh) PORT MAP (ploc,extout)
  • END

29
Sémantique de connexion Conservatif Kirchoff
généralisé
  • ENTITY exemple IS port (TERMINAL T1,T2
    electrical) --PAS DE MODE/VALEUREND exemple
  • Interconnexions à temps continu conservatif
  • Permet de tenir compte influences Entrées/Sorties
  • 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
30
Sémantique de connexion Conservatif Netlist
analogique
  • ENTITY R IS port (TERMINAL T1,T2 electrical)
    END RENTITY C ISport (TERMINAL T1,T2
    electrical) END C
  • ENTITY RC IS port (TERMINAL T1,T2 electrical)
    END RCARCHITECTURE ONE OF RC IS TERMINAL
    LocalTelectricalBEGIN RENTITY R(beh) PORT MAP
    (T1 gt T1,T2 gt LocalT) CENTITY C(beh) PORT
    MAP (T1 gt LocalT,T2 gt T2)END
  • Association par nommage Formal gt Actual

31
Opérateurs
  • 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 , /, lt, lt, gt, gt
    (s appliquent à tout sauf fichiers, résultat de
    type BOOLEAN)
  • addition , -, ( concaténation sur type
    STRING)
  • signe , -
  • multiplication , /, mod, rem
  • divers , abs, not
  • Opérateurs surchargeables, pas de changement de
    priorités

Priority
32
Instructions du langage (les plus importantes)
  • Une architecture contient simultaneous
    statements (doivent être évalués à chaque
    ASP) f g / procedural / if use / case use /
    null concurrent statements (évalués si besoin à
    chaque LSP) process / affectation de
    signal instanciation break, assertion
  • Un process contient séquential statements
    (évalués en séquence dans le process)
    affectation signal, affectation
    variable wait if, case, loop
    ... Disponibles aussi en Procedural (sauf gt et
    wait)

33
Instructions séquentielles, concurrentes,
simultanées Instructions séquentielles
  • Permet de fabriquer des PROCESS (instruction
    concurrente utilisateur)
  • Flow control test et boucles
  • Gestion du temps Wait
  • Affectation variables
  • Affectation signal et mécanismes temporels
    associés
  • Auto test Assert / report

34
Instructions séquentielles, concurrentes,
simultanées Inst. Séqu. affectations (1)
  • Affectation variables V f (VSQ) (la
    valeur de l objet) tab1 tab2 tableaux
    tab(3 to 5) (1,2,4)Affectation signal
    proposition de transactionlabel target lt
    transport reject time inertial waveform
    avec target name aggregateet waveform
    wf_element ,wf_element unaffected lab1 S
    lt 0 -- affectation à délai deltaS lt 0
    after 3 ns -- transport par défautlab(S1,S2)lt
    (0,1) after 3 ns, (1, 0) after 10
    nsS1 lt inertial s2 after 4 ns
    -- anti-physiqueS1 lt reject 10 ns inertial S2
    after 4 ns -- mieux

35
Instructions séquentielles, concurrentes,
simultanées Inst. Séqu. affectations (2)
  • Notion de forme d onde (waveform) s lt a after
    ta, b after tb, , x after tx la liste (ta,
    tb, tc, , tx) doit être ordonnée
  • Mécanisme temporel transport, inertiel,
    réjection
  • Sources possibles constantes, variables,
    signaux, quantités S lt objet
  • Notion de transaction et dévénementsi S vaut x
    et y / x S lt y after 3 ns événement S lt
    x after 3 ns transaction sans event
  • Notion de pilote (driver)S lt x after 5 ns ne
    modifie pas la valeur de SS sera éventuellement
    modifiée quand l horloge avancera à to 5 ns
  • Notion de source uniqueUn signal ne peut être
    affecté que par une seule source (sauf
    résolution voir cours suivant)

36
Instructions séquentielles, concurrentes,
simultanées Instructions séquentielles WAIT
  • Instruction la plus importante de la partie
    numériquewait on signal_list until
    bool_cond for time Pour au plus timesi un
    événement survient sur un signal de la liste
    signal_list la condition booléenne bool_cond est
    évaluée si elle est fausse on se remet en
    attente si elle est vraie on passe à la ligne
    suivante.Tous les PROCESS sont sur un WAIT
    blocage On recherche le prochain event dans la
    liste d événement On avance l horloge de
    simulation, nouveau LSPFormes simplifiées
    wait wait on a wait on a,b wait for 10
    ns -- time out wait until a1 -- front

37
Instructions séquentielles, concurrentes,
simultanées Inst. Séqu. flow control - test
/ sélection
  • Test labelif cond_bool then
    séquence instructions séquentielles
    elsif cond2 then séquence
    instructions séquentielles else
    séquence instructions séquentielles end if
  • Sélection labelcase expression is
    when value_1 gt séq. Inst. Séqu.
    1 when value_2 gt séq. Inst. Séqu.
    2 when others gt séq. Inst. Séqu. end
    case

38
Instructions séquentielles, concurrentes,
simultanées Inst. Séqu. flow control -
boucles
  • labelschéma d itération loop
    séquence instructions séquentielles end
    loop label
  • Infinie loop N N1 end
    loopConditionnelle Itérative while
    conditions loop for i in 1 to 100 loop séqu.
    Instr. Séqu. séqu. Instr. Séqu.
    exit exitnextlabel end loop
    end loop Boucle i déclaré de facto / i
    in Arange possiblenext label when cond_bool
    / exit label when cond_bool

39
Instructions séquentielles, concurrentes,
simultanées Instructions séquentielles
auto-test
  • Envoi d un message à la consolelabreport
    expr severity notewarningerrorfailure
  • Surveillance d une conditionlab assert
    cond_bool report expression severity
    notewarningerrorfailure Si cond_bool est
    fausse alors expression est envoyée à la console
    associé à un niveau d erreur.assert
    tefflttsetup report Set up violé severity error

40
Instructions séquentielles, concurrentes,
simultanées Instructions concurrentes
  • Support de la modélisation/simulation à temps
    discretCes instructions sont évaluées, si
    besoin, à chaque LSP
  • Process
  • Affectation concurrente de signal
  • Instanciation de composant
  • Assertion concurrente
  • Break (voir synchronisation des noyaux)
  • Prochain cours
  • Block
  • Concurrent procedure
  • Generate

41
Instructions séquentielles, concurrentes,
simultanées Instructions concurrentes Process
  • Instruction concurrente  Utilisateur label
    postponedprocess -- postponed vu plus
    tard zone de déclaration / pas de
    signaux begin sequ.
    Instr. Sequ. endpostponedprocess
    label
  • Un PROCESS vit toujours (il est
    global) éventuellement suspendu sur un wait
  • Un PROCESS est itératif (boucle sans arrêt) sauf
    si wait
  • 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

42
Instructions séquentielles, concurrentes,
simultanées Instructions concurrentes
Process (exemple)
  • process variable sp_res integer_vector(0 to
    c_nb-1) (othersgt0) variable index_tab
    integerbegin wait on vtest'dot'above(0.0),watch
    dog if watchdog'event then for i in
    sp_resrange loop spectre lt
    real(sp_res(i)) wait for 1 us end loop
    spectre lt 0.0 end ifend process
  • processbegin wait for analysis_time
    watchdog lt not watchdogend process

43
Instructions séquentielles, concurrentes,
simultanées Instructions concurrentes
Affectation
  • Raccourci d écriture toujours remplaçable par
    process affectation séquentielle tests
  • Forme simple labelnom_ou_aggregat lt
    options waveform options guarded
    transport reject time inertial
  • Forme conditionnelle labelnom_ou_aggregatlt
    optionswaveform1 when cond1 else
    waveform2 when cond2 else
    . . .
    waveformN when condN
  • Forme sélective label With expression
    select nom_ou_aggregat lt options waveform1
    when list1, . .
    . waveformN when listN

44
Instructions séquentielles, concurrentes,
simultanées Instructions concurrentes
Instanciation
  • Prendre une copie (une instance) d un modèle la
    personnaliser, la configurer, la brancher
  • label entity nom_du_compo(archi_compo)
    generic map (formal gt actual)
    port map(formal gt actual)Recherche de
    l entité dans les  library  référencéessi
    archi_compo n apparaît pas la dernière
    analysée (!!??outil)
  • Attention label obligatoire (plusieurs
    instances dun modèle)
  • Configuration association composant / modèle de
    la base vue au cours suivant

45
Instructions séquentielles, concurrentes,
simultanées Instr. Conc. Instanciation
(exemple)
  • entity RS is port (S,R bit Q,Qb out
    bit)end entityarchitecture structural of RS
    is signal n1_out, n2_out bit begin
    nand1 entity nandg port map(in1gtS,
    in2gtn2_out, outpgtn1_out)
    nand2 entity nandg generic map (5 ns)
    port map(R,n1_out, n2_out) Q lt n1_out
    Qb lt n2_outend structural

46
Instructions séquentielles, concurrentes,
simultanées Instructions concurrentes
Assertion
  • Permet de surveiller en permanence une condition
  • lab postponedassert cond_bool
    report expression severity
    notewarningerrorfailure
  • Process équivalent lab postponed Process
    (signaux_de la conditions) begin assert
    cond_bool report expression
    severity notewarningerrorfailure
    end process lab

47
Instructions séquentielles, concurrentes,
simultanées Instructions simultanées
  • Support de la modélisation/simulation à temps
    continu Ces instructions sont évaluées à chaque
    ASP
  • Simple simultaneous statement
  • Forme conditionelle if cond use
  • Forme sélective case cond when
  • Forme procédurale Procedural

48
Instructions séquentielles, concurrentes,
simultanées Instructions simultanées Forme
simple
  • Simple simultaneous statements (doivent être
    évalués à chaque ASP)f g f et g deux
    fonctions NL contenant des quantités le
    simulateur s assure qu à chaque ASP
    f-g0.0 aux tolérances prêt (équation
    caractéristique) Ces équations sont explicites
    ou implicites Exemple Q2 Y dot sqr(Y)
    - Q integ CU Q
    Q Iinteg
  • ENTITY R IS generic (R_value real 1_000.0)
    port (TERMINAL vp,vmelectrical)ENDARCHITECTUR
    E equ OF R IS QUANTITY V ACROSS I THROUGH vp TO
    vm BEGIN V R_value IEND

49
Instructions séquentielles, concurrentes,
simultanées Instructions simultanées Choix
  • Choix du jeu d équations en fonction de
    conditions
  • La forme conditionelle label IF cond_1 USE
    -- ASP evaluation condx
    equations analogiques -- !! BREAK
    ELSIF cond_2 USE equations analogiques
    ELSE equations
    analogiquesEND USE label
  • La forme sélective label CASE expr USE
    WHEN value1 gt equations analogiques
    WHEN value2 gt equations analogiques
    END CASE label

50
Instructions séquentielles, concurrentes,
simultanées Instructions simultanées
Procedural
  • Fabriquer un  Simultaneous Statement  à partir
    de séquentiellabel PROCEDURAL
    IS declaration_part -- NORME réévalués
    /exécutionBEGIN -- (pas de
    mémoire ?) sequential_statement --
    sauf wait, break, and ltEND PROCEDURAL label
  • Sommateur analogique pondéré Avec
    betareal_vector et vp(i) ACROSS T(i) to GND
    (taille identique inconnue)ARCHITECTURE
    BEGIN PROCEDURAL IS variable bvs real
    0.0 BEGIN bvs 0.0 -- si memorisation
  • FOR i IN betarange loop -- Quantités
    externes bvs bvs beta(i) vp(i) --
    sont vues comme des END LOOP
    -- variables Qout bvs END
    PROCEDURALEND

51
Notion dattribut (et exemples indispensables)
  • Fonctions à syntaxe spécifique(A?B attribut
    appliqué à A rend un objet B)
  • Array ? range Arange
  • Array ? value Alength
  • Signal ? signal Sdelayed(T), Sstable,
    Squiet
  • Signal ? fonction Sevent, Slast_event,
    Slast_value
  • Quantité ? quantité Qdot, Qinteg,
  • Quantité ? signal Qabove(E)
  • Nature ? terminal Nreference
  • Nature ? type Nacross, Nthrough
  • Terminal ? quantité Tcontribution, Treference

52
Synchronisation des noyaux
Un événement sur un SIGNAL doit pouvoir provoquer
une évaluation analogique Break on S --
version simple Force un ASP sur les événement
de S Break for Q1 use Q2 gt expression on
Swhen cond Force ASP et recalcule les
conditions initiales Existe aussi en
séquentiel Une valeur sur une QUANTITY doit
pouvoir fabriquer un événement
Qabove(Value) crée un événement booléen
quand Q  croise  value
53
Synchronisation des noyaux exemples
architecture ideal of comparator is quantity vin
across vp to refbegin dout lt
vinabove(seuil) -- dout est TRUE si vin gt
seuil -- dout est FALSE si vin lt
seuilend architecture ideal architecture
ideal of ball is quantity vvelocityquantity
sdisplacementconstant Greal 9.31constant
fric real 0.1begin break v gt 0.0, s gt
10.0 -- conditions intiales break v gt -v when
not sabove(0.0) s dot v if v gt 0.0 use
Vdot -G - v2 fric else
Vdot -G v2 fric end use end
architecture ideal
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é
dinterface en mode OUT.
Critère pouvant être assuré localementLes
constructions de choix doivent être équilibrées
55
Critère de solvabilité exemple
entity Vdc is generic (dc REAL) port
(terminal p, m electrical) end entity
Vdc architecture Bad of Vdc is NE
COMPILE PAS quantity v across p to m begin v
dc end architecture Bad architecture Good
of Vdc is quantity v across i through p to
m begin v dc end architecture Good
56
Mots clefs (en gras, ceux qui ont été abordés)
abs access across after alias all and
architecture array assert attributebegin block
body break buffer bus case component
configuration constantdisconnect downto else
elsif end entity exitfile for function generate
generic group guardedif 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
57
Exemples simples
  • Porte NAND
  • Bascule D
  • Résistance, Condensateur, Inductance
  • RLC parallèle, RLC série
  • Source sinus parfaite
  • Diode avec comportement thermique
  • Non linéarité modèle par morceaux
  • Modèle mixte (piloté par FSM)

58
Porte NAND
ENTITY nandg IS GENERIC (tplh,tphl time 10
ns) PORT (SIGNAL inp1,inp2 IN std_ulogic,
outp OUT std_ulogic)ENDLIBRARY IEEEuse
ieee.math_real.all ARCHITECTURE beh1 OF nandg
IS BEGIN outp lt inp1 nand inp2 after ( tplh
tphl)/2 END ARCHITECTURE beh2 OF nandg
IS BEGIN process variable loc
std_ulogic begin wait on inp1, inp2
loc inp1 nand inp2 if loc 1
then outp lt loc after tplh else
outp lt loc after tphl end if
end process END
59
Bascule D
ENTITY bascd IS GENERIC (tpd time 10 ns)
PORT (SIGNAL D,CLK IN std_ulogic SIGNAL Q
OUT std_ulogic)ENDLIBRARY IEEEuse
ieee.math_real.all ARCHITECTURE beh1 OF bascd
IS BEGIN Q lt D after tpd when (CLKevent and
CLK1) else unaffected END
ARCHITECTURE beh2 OF bascd IS BEGIN process
begin wait until CLK1 Q lt D
after tpd end process END
60
Résistance
ENTITY R IS generic (R_value real
1_000.0) port (TERMINAL a,belectrical)END A
RCHITECTURE equ OF R IS QUANTITY V ACROSS I
THROUGH a TO b BEGIN V R_value IEND
61
Condensateur
ENTITY C IS generic (C_value real 1.0e-6)
port (TERMINAL vp,vmelectrical)END ARCHITECTU
RE equ OF C IS QUANTITY V ACROSS I THROUGH vp TO
vm BEGIN I C_value V dotEND
62
Inductance
ENTITY L IS generic (L_value real 1.0e-3)
port (TERMINAL vp,vmelectrical)END ARCHITECTU
RE equ OF L IS QUANTITY V ACROSS I THROUGH vp TO
vm BEGIN V L_value I dotEND
63
RLC parallèle
ENTITY RLCp IS generic (R,L,C real) port
(TERMINAL vp,vmelectrical)END ARCHITECTURE
struct OF RLCp IS BEGIN lab_R entity R generic
map (R) port map (b gt vm, a gt vp) lab_C
entity C generic map (C) port map (vp, vm)
lab_L entity L generic map (L) port map (vpgtvp
,vmgtvm) END ARCHITECTURE equ OF RLCp IS
quantity V across I1,I2,I3 through vp to
vm BEGIN V RI1 V LI2dot V
I3integ/C END
64
RLC série
ENTITY RLCs IS generic (R,L,C real) port
(TERMINAL vp,vmelectrical)END ARCHITECTURE
struct OF RLCs IS Terminal RC,CL
electricalBEGIN lab_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 ARCHITEC
TURE equ OF RLCs IS quantity V across I through
vp to vm BEGIN V RI LIdot Iinteg/C
END
65
Source sinus idéale
library Disciplines use Disciplines. electrical_
system. all ENTITY gene_sinus IS generic
(Ampl,freq,phase real) port (TERMINAL
vp,vmelectrical)END library ieeeuse
ieee.math_real.allARCHITECTURE beh OF
gene_sinus IS quantity V across I through vp to
vm BEGIN V Ampl sin( 2.0 math_pi freq
now phase) END
66
Diode paramétrée
ENTITY diode IS generic(Issreal1.0e-14n,afre
al1.0 tt,cjo,vj,rs,kfreal0.0) port
(TERMINAL anode,cathodeelectrical)ENDARCHITE
CTURE level0 OF diode IS quantity Vd across
id,ic through anode to cathode quantity qc
charge constant vt real 0.0258 BEGIN
ic qc dot qc tt id - 2.0 cjo
sqrt( vj2 - vj vd ) id iss exp(( vd -
rsid )/( n vt )) - 1.0) END ARCHITECTURE
level0
67
Diode modèle électro-thermique
ENTITY diodth IS generic(Issreal1.0e-14n,afr
eal1.0 tt,cjo,vj,rs,kfreal0.0) port
(TERMINAL anode,cathodeelectrical
TERMINAL junctionthermal)ENDARCHITECTURE
level0 OF diodth IS quantity Vd across id,ic
through anode to cathode quantity temp across
power through thermal_ref to junction quantity
qc charge quantity vt voltage BEGIN ic
qc dot qc tt id - 2.0 cjo sqrt(
vj2 - vj vd ) id iss exp(( vd - rsid
)/( n vt )) - 1.0) vt temp boltzmann /
elec_charge power vd id END
ARCHITECTURE level0
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 is terminal a, b electrical terminal
j, h thermal begin v0 entity Vdc generic map
(dc gt 1.0) port map (p gt a, m gt
ground) r1 entity Resistor generic map (r gt
1.0e3) port map (p gt a, m gt
b) d1 entity DiodeTh port map (anode gt b,
cathode gt ground, junction gt j) heatres
entity ResistorTh generic map (r gt 0.1)
port map (p gt j, m gt
h) heatsink entity CapacitorTh generic map (c
gt 0.008) port map
(p gt h, m gt thermal_ ref) rad entity
ResistorTh generic map (r gt 10.0)
port map (p gt h, m gt thermal_ ref) end
architecture DiodeWithHeatSink
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 gain port (terminal
ip, im, op, om electrical) end entity
VoltageLimiter architecture Bad of
VoltageLimiter is quantity vin across ip to
im quantity vout across iout through op to
om begin if vin gt vlim use vout
vlim elsif vin lt -vlim use vout
-vlim else vout vin end use end
architecture Bad
C EST MAUVAIS
70
Modèle par morceaux Bonne méthodelimiteur de
tension
library Disciplines use Disciplines. electrical_
system. all architecture Good of VoltageLimiter
is quantity vin across ip to im quantity
vout across iout through op to om begin if
vinAbove( vlim) use vout vlim elsif not
vinAbove(- vlim) use vout
-vlim else vout vin end use -- break
on vinAbove( vlim), vinAbove(- vlim) end
architecture Good
C EST MEILLEUR
71
Modèle mixte piloté par FSM Comparateur à
hystérésis (1)
library IEEE, Disciplines use IEEE. std_ logic_
1164.all use Disciplines. electrical_ system.
all entity ComparatorHyst is generic (vlo, vhi
REAL -- thresholds timeout DELAY_
LENGTH) port (terminal ain, ref electrical
signal dout out std_ logic) end entity
ComparatorHyst architecture Hysteresis of
ComparatorHyst is type states is (unknown, zero,
one, unstable) quantity vin across ain to
ref function level( vin, vlo, vhi REAL) return
states is begin if vin lt vlo then
return zero elsif vin gt vhi then return
one else return unknown end if end
function level begin . . .
72
Modèle mixte piloté par FSM Comparateur à
hystérésis (2)
. . . process variable state states
level( vin, vlo, vhi) begin case state is
when one gt dout lt 1 wait
on vinAbove( vhi) state
unstable when zero gt dout lt 0
wait on vinAbove( vlo)
state unstable when unknown gt dout
lt X wait on vinAbove(
vhi), vinAbove( vlo) state
level( vin, vlo, vhi) when unstable gt
wait on vinAbove( vhi), vinAbove( vlo) for
timeout state level( vin, vlo, vhi)
end case end process end architecture
Hysteresis
Write a Comment
User Comments (0)
About PowerShow.com