Changeset 16 for trunk/src/processor.cpp


Ignore:
Timestamp:
Jun 24, 2009, 4:56:12 PM (15 years ago)
Author:
guillaumeb
Message:

localisation du problème

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/processor.cpp

    r5 r16  
    11#include "processor.h"
    22
     3
     4// Pilote du simulateur
     5// lit une addresse dans un fichier si il y a encore des addresses
     6// à lire et si la file d'attente n'est pas pleine
    37void Processor::driver()
    48{
     9    out_activate = false;
     10
    511    // Si il y a encore des addresses à envoyer
    612    if (!file.eof()) {
    7 
    8         // On active le composant recepteur
    9         out_activate = true;
    1013
    1114        // Et que la file n'est pas pleine, alors on les envoie
     
    2225           
    2326            if (file.eof()){
    24                 out_activate = false;
    2527                return;
    2628            }
     
    3638            queue->insert(*addr);
    3739
     40            // Lecture :
     41            out_data = address;
     42            out_activate = true;
    3843            read(*addr, &data);
     44
    3945        }
     46        //
    4047        // Si la file est pleine, il faudra attendre un cycle dans la même
    4148        // position
    4249    }
    43     // Si il n'y a plus d'addresses à envoyer, on désactive la réception du
    44     // coté cache l1.
    45     else {
    46         // FIXME normalement, c'est superflu
    47         // on désactive la reception du coté du cache L1
    48         out_activate = false;
    49     }
    5050}
    5151
     52// Est appelée lorsqu'une réponse depuis le cache L1 est envoyée.
    5253void Processor::completed()
    5354{
    5455    if (in_activate) {
     56        cout << "processeur activé" << endl;
    5557        cout << sc_time_stamp() << " Processor : la donnée " << in_data << " est arrivée" << endl;
    5658        //queue->print();
    5759        RawAddress address = in_data;
    5860        queue->remove(address);
     61        cout << "--------------- processeur : état de la queue : " << endl;
     62        queue->print();
    5963    }
    6064}
     
    6468    // ici, if ready
    6569    out_data = address;
     70    out_activate = true;
    6671}
    6772
Note: See TracChangeset for help on using the changeset viewer.