%------------------------------------------------------------------------------
% $Id$
%------------------------------------------------------------------------------

\Section{Fichier de configuration de la simulation}

\subSection{Description}
Ce fichier permet de paramétrer les exécutions d'une simulation du générateur \cpu.
Comme tous les autres fichiers, il est écrit au format XML.

\subSection{Syntaxe}

\verbatiminput{\dirroot/syntax.sim}

\begin{description}
\item [balise parameters : ] {\it (Obligatoire et unique)} Balise englobante.
  \begin{description}
  \item [balise parameter : ] {\it (Nombre quelconque d'occurrences)} Un paramètre du simulateur.
    \begin{description}
    \item [attribut name  : ] {\it (Obligatoire)} Nom du paramètre.
    \item [attribut value : ] {\it (Obligatoire)} Valeur de ce paramètre.
    \end{description}
  \end{description}
\end{description}

\subSection{Paramètres}

\begin{description}
\item[use\_systemc                 ] \{0,1\} Autorise la simulation d'un modèle cycle accurate bit accurate systemC d'une instance de \cpu.

\item[use\_vhdl                    ] \{0,1\} Lors de la génération d'une instance de \cpu, le modèle VHDL de chaque composant interne est généré.

\item[use\_vhdl\_testbench         ] \{0,1\} Lors de la simulation systemC d'une instance de \cpu, les activités sur les entrées/sorties de chaque composant interne sont enregistrées. À l'arrêt de la simulation, un fichier permettant de tester si le modèle VHDL est cycle accurate/ bit accurate par rapport au modèle systemC est généré.

\item[use\_vhdl\_testbench\_assert ] \{0,1\} Le fichier de test du modèle VHDL est agrémenté de commentaire facilitant le débogage de ce modèle.

\item[use\_position                ] \{0,1\} Un fichier de position est généré. Celui-ci est le point d'entrée de l'outil de visualisation architecturale.

\item[use\_statistics              ] \{0,1\} Lors de la simulation systemC d'une instance de \cpu, il y a une surveillance des activités des structures internes de l'instance. Lors de l'arrêt de la simulation, un fichier récapitulatif va être généré.

\item[use\_information             ] \{0,1\} Affiche des informations sur l'instance du modèle (non encore implémentés).

\item[use\_header                  ] \{0,1\} Lors du début d'une simulation, un message introductif est affiché.

\item[nb\_cycle\_before\_begin     ] \{$\ge$0\} Nombre de cycle avant le commencement des statistiques. Ceci permet de faire des statistiques en ne prenant pas en compte le temps de rodage des structures internes du processeur.

\item[period\_save                 ] \{$\ge$0\} Période entre deux statistiques. Ceci permet d'avoir un graphe en fonction du temps sur les utilisations des ressources internes. Ce paramètre représente le nombre de cycles entre chaque période de statistiques. Si le paramètre est à 0 alors il n'aura qu'un seul jeu de statistiques, donc un seul point sur le graphe de statistiques.

\item[simulation\_nb\_cyle         ] \{$\ge$0\} Nombre de cycles à atteindre pour mettre fin à la simulation. Une valeur de 0 indique que la simulation n'est pas limitée au nombre de cycle simulé.

\item[simulation\_nb\_instruction  ] \{$\ge$0\} Nombre instructions que chaque contexte doit valider afin d'arrêter la simulation. Une valeur de 0 indique que la simulation n'est pas limitée au nombre d'instructions validées.
Les deux conditions d'arrêt ({\bf simulation\_nb\_instruction} et {\bf simulation\_nb\_cyle}) fonctionnent en concurrence : la première condition atteinte provoque l'arrêt de la simulation.
\end{description}

\subSection{Exemples}

Ce fichier configure le simulateur pour effectuer une simulation systemC. La simulation s'arrêtera au bout d'un milliard de cycles. Après un million de cycles, les statistiques d'utilisation des ressources interne vont être calculées et enregistrer tous les dix mille cycles.

\verbatiminput{\dirroot/example_1.sim}
