Changes between Version 5 and Version 6 of CaoCourseTme7


Ignore:
Timestamp:
Mar 22, 2007, 12:41:30 PM (18 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CaoCourseTme7

    v5 v6  
    5454 * structure représentant le réseau Booléen, c'est à dire le graphe biparti des processus et des signaux,
    5555 * structure représentant l'échéancier, c'est à dire l'ensemble ordonné des événements.
    56  
    57 == A1) Le réseau Booléen ==
    5856
    5957Le réseau Booléen est constitué d'un ensemble de signaux et d'un ensemble de processus.
     
    104102}}}
    105103
    106 == A2) L’échéancier ==
    107 
    108104L'échéancier permet d'enregistrer  et d'ordonner les événements dans le temps.
    109105Ceux-ci sont donc rangés dans une liste doublement chaînée, par dates croissantes.
     
    139135 Dans un deuxième temps, il vous sera demandé d’écrire vous-même le code de ces fonctions.
    140136
    141 == B1) construction réseau Booléen ==
     137'''B1) construction réseau Booléen'''
    142138
    143139{{{
     
    161157et qu'un signal de type OUT ne peut apparaître dans le support d'une fonction.
    162158
    163 == B2) construction échéancier ==
     159'''B2) construction échéancier'''
    164160{{{
    165161scheduler_t * cons_scheduler()
     
    176172les événements portant sur les signaux d’entrée du circuit (stimuli).
    177173
    178 == B3) simulation ==
     174'''B3) simulation'''
    179175{{{
    180176void add_event (scheduler_t * sch, signal_t sig, long delta, unsigned val)
     
    233229Ecrire, compiler et exécuter le programme main() qui construit le réseau Booléen.
    234230Pour vérifier la structure du réseau Booléen, on pourra utiliser la fonction :
    235 
     231{{{
    236232void drive_boolnet(dotfmt_t format, boolnet_t *bn)
    237 
     233}}}
    238234Cette fonction construit une représentation graphique du réseau Booléen, et la sauvegarde dans un fichier au format .gif ou .ps.
    239 
     235{{{
    240236enum dotfmt_t { GIF , PS }
     237}}}
    241238
    242239= D) Construction et initialisation de l’échéancier =
    243240
    244 Complêter le programme main() de la question D1 pour créer l’échéancier et initialiser les événements sur les signaux d’ entrée a0, b0, c0, a1 et b1 de façon à respecter le chronogramme suivant . On utilisera les fonctions cons-scheduler() et add_event(). Attention : le passage de la valeur U (indéfinie) à une valeur 0 ou 1 constitue un événement : Dans ce chronogramme, il y a donc un événement sur tous les signaux d’entrée au temps T = 0.
     241Complêter le programme main() de la question C) pour créer l’échéancier
     242et initialiser les événements sur les signaux d’ entrée a0, b0, c0, a1 et b1 de façon à respecter le chronogramme ci-dessous.
     243On utilisera les fonctions cons-scheduler() et add_event(). Attention : le passage de la valeur U (indéfinie) à une valeur 0 ou 1
     244constitue un événement : Dans ce chronogramme, il y a donc un événement sur tous les signaux d’entrée au temps T = 0.
    245245
    246246
    247247Pour vérifier que l’échéancier est correctement initialisé, on pourra utiliser la fonction:
    248 
     248{{{
    249249void drive_scheduler (boolnet_t * bn, scheduler_t * sch)
    250 
    251 Cette fonction génére un fichier au format .pat que vous pouvez visualiser avec l’outil XPAT que vous connaissez déjà.
    252 
    253 
     250}}}
     251Cette fonction génére un fichier au format .pat que vous pouvez visualiser avec l’outil XPAT.
    254252
    255253= E) Ecriture de la boucle de simulation =