85 | | Outre le registre d'état de l'automate ''r_fsm'', cet automate contrôle quatre autres registres : les registres ''r_opa'', ''r_opb'', et ''r_res'' permettent de stocker respectivement les deux opérandes et le résultat du calcul. Le registre |
86 | | ''r_cyclecount'' est incrémenté à chaque cycle, e permet de gérer une date (en nombre de cycles) depuis l'initialisation |
87 | | du système. |
| 85 | Outre le registre d'état de l'automate ''r_fsm'', cet automate contrôle 5 autres registres : les registres ''r_opa'', ''r_opb'', et ''r_res'' permettent de stocker respectivement les deux opérandes et le résultat du calcul. Le registre |
| 86 | ''r_cyclecount'' est incrémenté à chaque cycle, et contient donc la date (en nombre de cycles) depuis l'initialisation |
| 87 | du système. Le registre ''r_iterationcount'' est incrémenté à chaque itération, et contient donc le numéro de l'itération courante. |
| 154 | * '''arguments''' : On définit dans cette section les arguments qui pourront être passés en lgne de commande lors du lancement de la simulation. On prévoit ici de passer en premier argument le nombre de cycles à simuler, et comme deuxième argument la valeur d'initialisation du générateur aléatoire utilisé dans le composant master. cette section n'a pas besoin d'ëtre modifiée. |
| 155 | |
| 156 | * '''Signals''' : On définit dans cette section les différents signaux qui seront utilisés pour connecter entre eux les ports d'entrée sortie des différents composants. On a besoin de 4 signaux : les deux signaux ''signal_ck'' et ''signal_resetn'' |
| 157 | devront être connectés aux ports correspondants des deux composants matériels. Les deux signaux ''signal_fifo_m2c'' et |
| 158 | ''signal_fifo_c2m'' sont des signaux composites représentant les deux canaux de communication entre les deux composants. On utilise un type générique, en ce sens que le type de la donnée transférée à chaque cycle doit être défini par un paramètre template : dans le cas présent, on transfère un entier 32 bits ''uint32-t''. Le signal ''signal_clk'' est également un objet complexe de type ''sc_core::sc_clock'', dont on peut définir la période (sc_time(1,SC_NS) signifie 1 ns), |
| 159 | ainsi que le rapport cyclique. Vous devez ajouter le signal manquant dans cette section. |
| 160 | |
| 161 | * '''Components''' : Dans cette section on appelle les constructeurs des différents composants instanciés, en définissant |
| 162 | les paramètres. Le nom d'instance est un paramètre obligatoire. Le composant master possède un second paramètre qui est la valeur d'initialisation du générateur aléatoire. Vous devez aouter l'appel au constructeur du composant coprocesseur. |
| 163 | |
| 164 | * '''Net-List'' : On décrit dans cette section les connexions entre les composants. La syntaxe utilisée pour connecter un signal s au port p d'un composant c est : ''c.p(s)''. Vous devez ajouter les connexions concernant les ports du coprocesseur. |
| 165 | |
| 166 | * '''Simulation''' : Cette section décrit les directives de simulation. Le mécanisme de RESET étant synchrone, On commence par exécuter un cycle en forçant ''signal_resetn'' à l'état bas (actif), pour initialiser les registres internes de tous les composants, puis on exécute le nombre de cycles spécifié en forçant ''signal_resetn'' à l'état haut (inactif). |
| 167 | |
| 168 | * section ''Net-List'' |
| 169 | |