Changes between Version 9 and Version 10 of SoclibCourseTp7


Ignore:
Timestamp:
Jan 3, 2014, 8:57:37 PM (11 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp7

    v9 v10  
    5757 * Les signaux correspondant à des lignes d'interruption sont également des signaux point-à-point.
    5858
    59 Tous les ports d'un module doivent être explicitement connectés. En CABA, les entrées inutilisées d'un composant
    60 sont généralement connectées à un même signal possédant la valeur constante ''false''.
     59Tous les ports d'un module doivent être explicitement connectés.
     60
     61En CABA, les entrées inutilisées d'un composant sont généralement connectées à un même signal possédant la valeur constante ''false''.
    6162Dans l'architecture quadri-processeurs qui nous intéresse, ceci concerne par exemple les ports IRQ[1] à IRQ[5] des
    6263processeurs MIPS, qui ne sont pas utilisés. Ceci concerne également les ports IRQ_IN[3:1] du composant ICU puisque
     
    6970 * IRQ_IN[15:12] : TYY[3:0]
    7071
    71 Puisqu'en TLM-DT, les connexions multi-points sont interdites, on instancie deux pseudo-composants matériels
    72 '''!VciBlackhole''' possédant le nombre de ports nécéssaires pour connecter les ports inutilisés des composants processeurs et ICU:
     72Puisqu'en TLM-DT, les connexions multi-points sont interdites, on instancie des pseudo-composants matériels
     73'''!VciBlackhole''' possédant le nombre de ports nécessaires pour connecter les ports inutilisés.
     74
     75Pour ce qui concerne les 3 ports inutilisés du composant ICU IRQ_IN[3:1], on instancie donc un composant de type '''!VciBlackHole''' , nommé ''fake_irq_in'',
     76possédant 3 ports de sortie '''p_socket[k]''':
    7377
    7478{{{
    75      VciBlackhole<tlm::tlm_initiator_socket<> >*  fake;
    76      fake[0] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_0", 6);
    77      fake[1] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_1", 6);     
    78      fake[2] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_2", 7);     
    79      fake[3] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_3", 7);
     79     VciBlackhole<tlm::tlm_initiator_socket<> >*  fake_irq_in;
     80     fake_irq_in = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_irq_in", 3);
    8081}}}
    8182
    82 Dans l'exemple ci-dessous, la variable ''fake'' est un tableau de 4 pointeurs. Chacun de ces pointeurs fake[i] pointe  sur un module de type ''VciBlakhole'' possédant le nom ''fake_i'', et possédant soit 6 ports, soit 7 ports.
    83 On connecte ensuite ces ports '''p_socket[i]''' de ces pseudo-composants aux ports inutilisés  du processeur ou de l'ICU:
     83Pour ce qui concerne Les 5 ports inutilisés de chacun des 4 processeurs, on instancie, pour chaque processeur P[i], un composant de type
     84'''!VciBlackHole''', nommé '''fake_irq_out[i]''', possédant 5 ports de sortie p_socket[k]'':
    8485
    8586{{{
    86     for( size_t n = 0 ; n <5 ; n++) (*mips0.p_irq[n+1])(*fake0.p_socket[n]);
     87     VciBlackhole<tlm::tlm_initiator_socket<> >*  fake_irq_out[4];
     88     fake_irq_out[0] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_irq_out_0", 5);         
     89     fake_irq_out[1] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_irq_out_1", 5);     
     90     fake_irq_out[2] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_irq_out_2", 5);         
     91     fake_irq_out[3] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_irq_out_3", 5);     
    8792}}}
     93
     94On connecte ensuite ces ports '''p_socket[k]''' de ces pseudo-composants aux ports inutilisés  des processeurs ou de l'ICU.
    8895
    8996Il ne faut pas oublier d'inclure le fichier '''vci_blackhole.h''' dans la top-cell, et de compléter le fichier de description de la top-cell en conséquence.
    9097
    91 Enfin le lancement de la simulation se réduit à la ligne suivante :
     98Enfin le lancement de la simulation dans la top-cell se réduit à la ligne suivante :
    9299{{{
    93100     sc_start();
     
    98105Créez un répertoire TP7 pour ce TP, et placez-vous dans ce répertoire.
    99106
    100 En prenant comme point de départ les fichiers décrivant la top-cell de l'architecture quadri-clusters du TP5, écrivez les fichier '''tp7_tlmdt_top.cpp''', et '''tp7_tlmdt_top.desc'''.  Vous trouverez ci-dessous le fichier '''tp7_tlmdt_top.desc''':
     107En prenant comme point de départ les fichiers décrivant la top-cell de l'architecture quadri-clusters du TP4, écrivez les fichier '''tp7_tlmdt_top.cpp''', et '''tp7_tlmdt_top.desc'''.  Vous trouverez ci-dessous le fichier '''tp7_tlmdt_top.desc''':
    101108
    102109{{{