55 | | qui s'expriment très simplement en TLM-DT. |
| 55 | qui s'expriment très simplement en TLM-DT... sauf les signaux connectées aux ports d'entrée IRQ[1] à IRQ[5] |
| 56 | des processeurs. En effet, seule l'enrée IRQ[0] est urilisée, et les 5 autres entrées doivent être connectées à un ''signal'' ayant la valeur '''false'''. |
| 57 | |
| 58 | 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 : |
| 59 | Le nom de ces ports est '''p_socket[i]'''. |
| 60 | {{{ |
| 61 | VciBlackhole<tlm::tlm_initiator_socket<> > fake0("fake0", 5); |
| 62 | VciBlackhole<tlm::tlm_initiator_socket<> > fake1("fake1", 5); |
| 63 | VciBlackhole<tlm::tlm_initiator_socket<> > fake2("fake2", 5); |
| 64 | VciBlackhole<tlm::tlm_initiator_socket<> > fake3("fake3", 5); |
| 65 | }}} |
| 66 | |
| 67 | On connecte ensuite les ports '''p_socket[i]''' de ces pseudo-composants aux ports '''irq[i+1]''' des processeurs : |
| 68 | {{{ |
| 69 | for( size_t n = 0 ; n <5 ; n++) (*mips0.p_irq[n+1])(*fake0.p_socket[n]); |
| 70 | for( size_t n = 0 ; n <5 ; n++) (*mips1.p_irq[n+1])(*fake1.p_socket[n]); |
| 71 | for( size_t n = 0 ; n <5 ; n++) (*mips2.p_irq[n+1])(*fake2.p_socket[n]); |
| 72 | for( size_t n = 0 ; n <5 ; n++) (*mips3.p_irq[n+1])(*fake3.p_socket[n]); |
| 73 | }}} |
| 74 | Il ne faut pas oublier d'inclure le fichier '''vci_blachole.h''' dans la top-cell, et de compléter |
| 75 | le fichier '''tp6.desc''' en conséquence. |