• Aucun résultat trouvé

Chapitre II. Etude comparative des outils commerciaux de synthèse

V.2. Forme intermédiaire utilisée : COLIF 80

V.4.2. Les parseurs d’interface

Le premier parseur analyse la partie déclarative (i.e. interface au niveau fonctionnel) de

chaque DSP-IP Matlab et fournit une structure COLIF (module COLIF) contenant toutes les

informations caractérisant l’interface. Les informations extraites sont : -- **************************************

-- INTERNAL USE ONLY

-- <company_name> - <division_name> -- ************************************** -- -- Project name : -- Library name : -- Global package : -- -- Entity : <ip_name> -- Architecture : rtl

-- Designer name : <author_name> -- Company name : <company_name> -- Division : <division_name> -- -- Description : TO_BE_DEFINED -- -- Parameters : TO_BE_DEFINED --

-- Input ports : TO_BE_DEFINED --

-- Output ports : TO_BE_DEFINED --

-- Creation date : <date> (<author_name>)

-- Modification : --

-- ******** REVISION HISTORY *********** --

-- Date Modification Initials -- ---- --- --- -- <date> Creation <author_initial> library ieee; use ieee.STD_LOGIC_1164.all; use ieee.STD_LOGIC_unsigned.all; use ieee.STD_LOGIC_signed.all; use ieee.std_logic_misc.all; use ieee.std_logic_arith.all; library UTILS; use UTILS.utils_pkg.all; --- entity <ip_name> is generic ( <param_name1> : <param_datatype1>; ... <param_nameN> : <param_datatypeN-1> ); port ( <in_name1> : in <in_datatype1>; ... <in_nameN> : in <in_datatypeN>; <out_name1> : out <out_datatype1>; ...

<out_nameN> : out <out_datatypeN> );

end <ip_name>;

--- architecture rtl of <ip_name> is -- data type and constant declaration -- --- TO_BE_DEFINED -- component declaration -- --- TO_BE_DEFINED -- signal declaration -- ---

signal <in_name1>_s : <in_datatype1>; ...

signal <in_nameN>_s : <inport_datatypeN>; signal <out_name1>_s : <out_datatype1>; ...

signal <out_nameN>_s : <out_datatypeN>; TO_BE_DEFINED

--- begin

-- connect I/O to signals --- <inport_name1>_s <= <inport_name1>; ... <inport_nameN>_s <= <inport_nameN>; <outport_name1> <= <outport_name1>_s; ... <outport_nameN> <= <outport_nameN>_s; TO_BE_DEFINED end rtl; page 1 page 2

Chapitre V. Implémentation de la méthodologie en un flot de conception

le nom de la fonction (i.e. le nom de l’IP)

une liste de valeurs de retour correspondant aux signaux de sortie.

une liste de paramètres. Ces paramètres peuvent se diviser en trois types : o les paramètres correspondants aux signaux d’entrée traités par l’IP.

o une référence vers un fichier texte contenant la liste des valeurs de paramètre

de l’application.

o un identificateur (entier) permettant de distinguer une instance de l’IP des

autres instances.

Par convention, pour distinguer les différents types de paramètres, nous adoptons la

convention suivante :

− les (N-2) premiers paramètres concernent les signaux d’entrée (N étant le nombre de paramètres de l’IP).

− l’avant-dernier paramètre est la référence sur le fichier de paramètres.

− le dernier paramètre est l’identificateur.

L’interface d’un IP fonctionne l en Matlab est spécifiée par le patron de la figure 23.

Figure 23. Patron de la déclaration de fonction en Matlab

La figure 24 donne un exemple d’IP Matlab et la structure COLIF associée.

function [<outport_list>]

= <IP_name> (<inport_list>,<parameter_file>,<id>) où :

- <outport_list> <outport1_name> , … , <output_portN_name> - <inport_list> <inport1_name> , … , <inportN_name>

Chapitre V. Implémentation de la méthodologie en un flot de conception

91

Figure 24. Exemple d’IP Matlab (haut) et structure COLIF associée (bas)

De même, le second parseur analyse la partie entité au sens VHDL du terme (i.e. interface

au niveau RTL) de chaque IP RTL et fournit une structure COLIF (module COLIF) contenant

les informations relatives à l’interface. Les informations extraites sont :

le nom de l’entité (i.e. nom de l’IP)

une liste de paramètres. Chaque paramètre est défini par un nom, un type de donnée et optionnellement par une valeur par défaut.

une liste de ports. Chaque port est défini par un nom, une direction (IN ou OUT) et un type de donnée (std_logic, std_logic_vector, etc.). Il est important de noter qu’un IP

RTL contient plus de ports qu’un IP fonctionnel. En effet, un IP fonctionnel contient

les ports liés au flot de données alors qu’un IP RTL contient les ports liés au flot de

données ainsi que des ports tels que le port d’horloge, de reset, de contrôle du flot de

données, de tests, etc.

L’interface d’un IP fonctionnel en Matlab est spécifiée par le patron de la figure 25. function [data_out1, data_out2] = IP1(data_in, pkg_file, id)

% corps de la fonction data_in data_out1 data_out2 module : IP1 parameter_list : pkg_file

Chapitre V. Implémentation de la méthodologie en un flot de conception

Figure 25. Patron de la déclaration d’entité en VHDL

La figure 26 donne un exemple d’IP VHDL et la structure COLIF associée.

Figure 26. Exemple d’IP VHDL (haut) et structure COLIF associée (bas)

entity <IP_name> is

generic( <param_list> ); port ( <port_list> ); end <IP_name>;

où :

- <param_list> <param_decl1> ; … ; <param_declN> - <port_list> <port_decl1> ; … ; <port_declN>

- <param_decl> <param_name> : <param_type> := <default_val> - <param_decl> <param_name> : <param_type>

- <port_decl> <port_name> : <direction> <port_type> - <direction> IN | OUT

entity IP1 is generic (

nbit : integer ); port (

data_in : in std_logic_vector(nbit downto 0); data_out1 : out std_logic_vector(nbit downto 0); data_out2 : out std_logic_vector(nbit downto 0); clk : in std_logic; nrst : in std_logic; enable : in std_logic); end IP1; -- architecture module : IP1 parameter_list : nbit data_in* clk** data_out2* data_out1* nrst** enable** *

: le port inclut aussi le type (i.e. std_logic_vector(nbit…) )

** : le port inclut aussi le type (i.e. std_logic)

Chapitre V. Implémentation de la méthodologie en un flot de conception

93

Ces analyses des interfaces des IP sont faites une fois et une seule fois pour toute lors de

l’insertion d’un nouvel IP dans la librairie. Ces informations seront utilisées pour les

différents outils de la partie « conception par assemblage d’IP ».

Documents relatifs