Changes between Version 13 and Version 14 of SoclibCourseTp6


Ignore:
Timestamp:
Jan 5, 2011, 7:39:24 PM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp6

    v13 v14  
    11{{{
    22#!html
    3 <h1>TP6 : Modélisation TLM-DT </h1>
     3<h1>TP7 : Modélisation TLM-DT </h1>
    44}}}
    55[[PageOutline]]
     
    1313grand nombre de processeurs, puisque
    1414le temps de simulation augmente proportionnellement au nombre de processeurs.
    15 0n va donc modéliser en TLM-DT l'architecture quadri-clusters du TP5.
     15
     16Le but de ce TP est donc de modéliser, et de simuler en TLM-DT l'architecture quadri-clusters du TP5.
    1617
    1718= 2 Top-Cell TLM-DT =
     
    5354}}}
    5455
    55  * Les signaux CK et RESETN sont des signaux multi-points. Ces deux signaux ne sont plus représentés explicitement dans la modélisation TLM-DT.
     56 * Les signaux CK et RESETN des modèles CABA sont des signaux multi-points, mais ces deux signaux ne sont plus représentés explicitement dans la modélisation TLM-DT.
    5657 * Les signaux VCI sont des connexions point-à-points, qui s'expriment très simplement en TLM-DT.
    5758 * Les signaux correspondant à des lignes d'interruption sont également des signaux point-à-point.
    5859
    59 Les entrée IRQ[1] à IRQ[5] des processeurs posent un problème particulier, car, seule l'enrée IRQ[0] est utilisée, et les 5 autres entrées doivent être connectées à un signal ayant la valeur ''false''.
     60Tous les ports d'un module doivent être explicitement connectés. En 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''. Dans l'architecture à 4 clusters qui nous intéresse, ceci concerne par exemple les ports IRQ[1] à IRQ[5] des
     61processeurs MIPS, ou certaines entrées des composants ICU, puisque le vecteur d'interruption comporte 4 entrées (TIMER, TTY, IOC et DMA), mais les
     62clusters 2 et 3 n'utilisent que deux ligne d'interruption (TIMER et TTY).
     63clusters ne contiennent que   
    6064
    61 Pour modéliser un signal (ou plusieurs signaux) possédant une valeur constante false, on instancie dans chaque cluster un pseudo-composant matériel '''!VciBlackhole''' possédant le nombre de ports de sortie nécéssaires :
     65Puisqu'en TLM-DT, les connexions multi-points sont interdites, , on instancie dans chaque cluster un pseudo-composant matériel '''!VciBlackhole''' possédant le nombre de ports nécéssaires pour connecter les ports inutilisés des composants processeurs et ICU:
    6266
    6367{{{
    64      VciBlackhole<tlm::tlm_initiator_socket<> > fake0("fake0", 5);
    65      VciBlackhole<tlm::tlm_initiator_socket<> > fake1("fake1", 5);
    66      VciBlackhole<tlm::tlm_initiator_socket<> > fake2("fake2", 5);
    67      VciBlackhole<tlm::tlm_initiator_socket<> > fake3("fake3", 5);
     68     VciBlackhole<tlm::tlm_initiator_socket<> >*  fake[4];
     69     fake[0] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_0", 6);
     70     fake[1] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_1", 6);     
     71     fake[2] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_2", 7);     
     72     fake[3] = new VciBlackhole<tlm::tlm_initiator_socket<> >("fake_3", 7);
    6873}}}
    6974
    70 On connecte ensuite les ports '''p_socket[i]''' de ces pseudo-composants aux ports '''irq[i+1]'''  des processeurs :
     75Dans 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.
     76On connecte ensuite ces ports '''p_socket[i]''' de ces pseudo-composants aux ports inutilisés  du processeur ou de l'ICU:
     77
    7178{{{
    7279    for( size_t n = 0 ; n <5 ; n++) (*mips0.p_irq[n+1])(*fake0.p_socket[n]);
    73     for( size_t n = 0 ; n <5 ; n++) (*mips1.p_irq[n+1])(*fake1.p_socket[n]);
    74     for( size_t n = 0 ; n <5 ; n++) (*mips2.p_irq[n+1])(*fake2.p_socket[n]);
    75     for( size_t n = 0 ; n <5 ; n++) (*mips3.p_irq[n+1])(*fake3.p_socket[n]);
    7680}}}
    77 Il ne faut pas oublier d'inclure le fichier '''vci_blackhole.h''' dans la top-cell, et de compléter
    78 le fichier '''tp6.desc''' en conséquence.
     81
     82Il 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.
    7983
    8084Enfin le lancement de la simulation se réduit à la ligne suivante :
     
    8589= 3 Travail à réaliser =
    8690
    87 Créez un répertoire TP6 pour ce TP, et placez-vous dans ce répertoire.
     91Créez un répertoire TP7 pour ce TP, et placez-vous dans ce répertoire.
    8892
    89 Modifiez la top-cell de l'architecture quadri-clusters du TP5, que vous renommerez '''tp6_top.cpp''', ainsi que le fichier
    90 de description utilisé par soclib-cc, que vous renommerez '''tp6.desc'''.
     93Modifiez la top-cell de l'architecture quadri-clusters du TP5, que vous renommerez '''tp7_tlmdt_top.cpp''', ainsi que le fichier
     94de description utilisé par soclib-cc, que vous renommerez '''tp7_tlmdt_top.desc'''.
    9195
    92 Vous pouvez conserver sans modifications les différents fichiers définissant le code binaire du logiciel embarqué utilisés
    93 (et validés) dans le TP5. Recopiez donc ces fichiers dans un  sous-répertoire '''soft''', et regénérez le code binaire.
     96Vous pouvez conserver sans modifications les différents répertoires et fichiers définissant le code binaire du logiciel embarqué utilisés
     97(et validés) dans le TP5. Recopiez donc ces répertoires dans le répertoire TP7, et regénérez le code binaire.
    9498
    9599Générez le simulateur TLM-DT en utilisant soclib-cc, et lancez la simulation.