%------------------------------------------------------------------------------ % $Id: document-morpheo-vhdl_generation-fr-03_vhdl_body.tex 113 2009-04-14 18:39:12Z rosiere $ %------------------------------------------------------------------------------ \Section{VHDL : comportement}\label{vhdl_body} \subSection{Description du fichier {\it Component\_vhdl\_body.cpp}} Le comportement du composant est défini dans le fichier {\it Component\_vhdl\_body.cpp}. Il n'y a pas de fonction aidant à l'écriture du Vhdl. La méthode {\it set\_body} permet de définir une ligne de code VHDL. Un retour à la ligne est automatiquement inséré. Le premier argument est pour l'indentation. \lstparam{C++} \begin{lstlisting} void set_body (uint32_t depth, std::string text ); void set_body (std::string text ); \end{lstlisting} Pour les commentaires, il y a la fonction {\it set\_comment}. \lstparam{C++} \begin{lstlisting} void set_comment (uint32_t depth, std::string text ); void set_comment (std::string text ); \end{lstlisting} \subSection{Description du fichier {\it Component\_vhdl.cpp}} Nous allons décrire ici le fichier {\it Component\_vhdl.cpp}. \lstparam{C++} \begin{lstlisting}[caption={Component\_vhdl.cpp}, label=component_vhdl.cpp] void component::vhdl (void) { Vhdl * vhdl = new Vhdl (_name); _interfaces->set_port(vhdl); _component->vhdl_instance(vhdl); vhdl_declaration (vhdl); vhdl_body (vhdl); vhdl->generate_file(); delete vhdl; }; \end{lstlisting} La première étape est d'éditer le fichier {\it Component\_vhdl.cpp}. Le listing \ref{component_vhdl.cpp} représente le contenu de ce fichier. \begin{itemize} \item Ligne 3 : Déclaration et construction de la variable {\it vhdl} qui est du type {\it Vhdl}. \item Ligne 5 : Ajout dans le modèle VHDL des interfaces présentes dans le modèle SystemC. (cf fichiers Component.h). \item Ligne 6 : Ajout dans le modèle VHDL des composants internes dans le modèle SystemC. (cf fichiers Component.h et Component\_allocation.cpp). \item Ligne 8 : Ajout dans le modèle VHDL des déclarations définit dans le fichiers Component\_vhdl\_declaration.cpp (cf section \ref{vhdl_declaration}). \item Ligne 9 : Ajout dans le modèle VHDL de la description comportemental définit dans le fichiers Component\_vhdl\_body.cpp (cf section \ref{vhdl_body}). \item Ligne 11 : Génération des fichiers VHDL. Le nom du fichier est construit à partir du nom fourni lors de la construction de la variable {\it vhdl}. \item Ligne 13 : Destruction de l'objet. \end{itemize}