Ignore:
Timestamp:
Apr 14, 2009, 8:39:12 PM (16 years ago)
Author:
rosiere
Message:

1) Add modelsim simulation systemC
2) Modelsim cosimulation systemC / VHDL is not finish !!!! (cf execute_queue and write_unit)
3) Add multi architecture
5) Add template for comparator, multiplier and divider
6) Change Message
Warning) Various test macro have change, many selftest can't compile

Location:
trunk/IPs/systemC/processor/Morpheo/Documentation/doc/document-morpheo-vhdl_generation/tex
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Documentation/doc/document-morpheo-vhdl_generation/tex/document-morpheo-vhdl_generation-fr-03_vhdl_body.tex

    r100 r113  
    44
    55\Section{VHDL : comportement}\label{vhdl_body}
     6
     7\subSection{Description du fichier {\it Component\_vhdl\_body.cpp}}
    68
    79Le comportement du composant est défini dans le fichier  {\it Component\_vhdl\_body.cpp}.
     
    2325void set_comment (std::string text );
    2426\end{lstlisting}
     27
     28\subSection{Description du fichier {\it Component\_vhdl.cpp}}
     29Nous allons décrire ici le fichier {\it Component\_vhdl.cpp}.
     30
     31\lstparam{C++}
     32\begin{lstlisting}[caption={Component\_vhdl.cpp}, label=component_vhdl.cpp]
     33  void component::vhdl (void)
     34  {
     35    Vhdl * vhdl = new Vhdl (_name);
     36
     37    _interfaces->set_port(vhdl);
     38    _component->vhdl_instance(vhdl);
     39
     40    vhdl_declaration (vhdl);
     41    vhdl_body        (vhdl);
     42
     43    vhdl->generate_file();
     44
     45    delete vhdl;
     46  };
     47\end{lstlisting}
     48
     49
     50La 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.
     51\begin{itemize}
     52\item Ligne 3 : Déclaration et construction de la variable {\it vhdl} qui est du  type {\it Vhdl}.
     53\item Ligne 5 : Ajout dans le modèle VHDL des interfaces présentes dans le modèle SystemC. (cf fichiers Component.h).
     54\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).
     55\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}).
     56\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}).
     57\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}.
     58\item Ligne 13 : Destruction de l'objet.
     59\end{itemize}
  • trunk/IPs/systemC/processor/Morpheo/Documentation/doc/document-morpheo-vhdl_generation/tex/document-morpheo-vhdl_generation-fr-04_vhdl_structural.tex

    r100 r113  
    55\Section{VHDL : structurelle}\label{vhdl_structural}
    66
    7 \subSection{Description du fichier {\it Component\_vhdl.cpp}}
     7%\subSection{Description du fichier {\it Component\_vhdl.cpp}}
    88Les modèles systemC structurels sont des modèles qui instancient d'autres modèles. Il n'y a pas de description comportementale. Ces modèles sont générés automatiquement.
    99Par contre, les modèles systemC comportementaux peuvent être décrit par un modèle VHDL mixte (incluant une description comportementale et des instances d'autre composant).
     
    1111Les modèles génériques sont dans le répertoire {\it IPs/systemC/processor/Morpheo/Behavioural/Generic}.
    1212
    13 \lstparam{C++}
    14 \begin{lstlisting}[caption={Component\_vhdl.cpp}, label=component_vhdl.cpp]
    15   void component::vhdl (void)
    16   {
    17     Vhdl * vhdl = new Vhdl (_name);
    18 
    19     _interfaces->set_port(vhdl);
    20     _component->vhdl_instance(vhdl);
    21 
    22     vhdl_declaration (vhdl);
    23     vhdl_body        (vhdl);
    24 
    25     vhdl->generate_file();
    26 
    27     delete vhdl;
    28   };
    29 \end{lstlisting}
    30 
    31 
    32 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.
    33 \begin{itemize}
    34 \item Ligne 3 : Déclaration et construction de la variable {\it vhdl} qui est du  type {\it Vhdl}.
    35 \item Ligne 5 : Ajout dans le modèle VHDL des interfaces présentes dans le modèle SystemC. (cf fichiers Component.h).
    36 \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).
    37 \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}).
    38 \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}).
    39 \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}.
    40 \item Ligne 13 : Destruction de l'objet.
    41 \end{itemize}
    42 
    4313Pour la suite, nous allons supposer l'instanciation d'une FIFO.
    4414
    4515\subSection{Ajout d'une instance}
    4616
    47 Dans le fichier Component\_vhdl.cpp :
    4817\begin{enumerate}
    49 \item Inclure la définition de la classe désirée.
     18\item Dans le fichier Component.h : inclure la définition de la classe désirée.
    5019\lstparam{C++}
    5120\begin{lstlisting}
    5221#include "Behavioural/Generic/Queue/include/Queue.h"
    5322\end{lstlisting}
    54 \item Creer les paramètres du modèle.
     23
     24\item Dans le fichier Component.h : déclaré les paramètres et le component
    5525\lstparam{C++}
    5626\begin{lstlisting}
    57     morpheo::behavioural::generic::queue::Parameters * param_queue;
    58     param_queue = new morpheo::behavioural::generic::queue::Parameters
     27  morpheo::behavioural::generic::queue::Parameters * _param_queue;
     28  morpheo::behavioural::generic::queue::Queue      * _component_queue;
     29\end{lstlisting}
     30
     31\item Dans le fichier Component\_allocation.cpp : creer les paramètres du modèle.
     32\lstparam{C++}
     33\begin{lstlisting}
     34  _param_queue = new morpheo::behavioural::generic::queue::Parameters
    5935      (16, //size_queue
    6036       32);//size_data
    6137\end{lstlisting}
    62 \item Creer le modèle
     38\item Dans le fichier Component\_allocation.cpp : creer le modèle
    6339\lstparam{C++}
    6440\begin{lstlisting}
    65     morpheo::behavioural::generic::queue::Queue      * queue;
    6641    std::string queue_name = _name + "_queue";
    6742
    68     queue = new morpheo::behavioural::generic::queue::Queue
     43    _component_queue = new morpheo::behavioural::generic::queue::Queue
    6944      (queue_name.c_str() // nom du modèle
    7045#ifdef STATISTICS
    7146       ,NULL              // Pas paramètres pour les statistiques
    7247#endif
    73        ,param_queue       // Paramètres de la file
     48       ,_param_queue      // Paramètres de la file
    7449       ,USE_VHDL);        // Utilisation du modèle VHDL
    7550\end{lstlisting}
    76 \item Inclure le modèle dans la liste des composants internes
     51\item Dans le fichier Component\_allocation.cpp : inclure le modèle dans la liste des composants internes
    7752\lstparam{C++}
    7853\begin{lstlisting}
    79     _component->set_component(queue->_component
     54    _component->set_component(_component_queue->_component
    8055#ifdef POSITION
    8156                              , 20, 20, 20, 20   
     
    8661                              );
    8762\end{lstlisting}
    88 \item indiquer dans le fichier Makefile.deps que le composant dépend de ce modèle.
     63\item Dans le fichier Makefile.deps : ajouter les dépendances du modèle.
    8964\lstparam{make}
    9065\begin{lstlisting}
     
    11489                        $(MAKE) --directory=$(Component_DIR) --makefile=Makefile clean;
    11590\end{lstlisting}
     91\item Dans le fichier Component\_deallocation.cpp : détruire les modèles et leurs paramètres.
     92\lstparam{C++}
     93\begin{lstlisting}
     94  delete _component_queue;
     95  delete _param_queue;
     96\end{lstlisting}
    11697\end{enumerate}
    11798
     
    138119    vhdl->set_body   (0,");");
    139120\end{lstlisting}
     121
Note: See TracChangeset for help on using the changeset viewer.