Vous êtes sur la page 1sur 3

TP - Introdu

tion aux m anismes du langage SystemC


Universit de Cergy-Pontoise
Benot Miramond

Dure : 4 heures

2 novembre 2006

1 Con eption au niveau RTL


Les obje tifs de ette prise en main du langage SystemC tudi en ours est la on eption de quelques
omposants matriels d rits au niveau RTL.
Contexte [15 minutes
En tout premier lieu, en addition du ours que vous retrouverez sur
http ://www-etis.ensea.fr/Members/bmiramond/Cours/Enseignement.html
re her her sous wikipedia(.org) la signi ation de RTL de manire situer votre travail dans le pro essus
global de on eption. Aner ette dnition en visitant la page :
http ://www. omele .enst.fr/hdl/hdl_niveaux.html
Faire un s hma reprsentant les dirents niveaux d'abstra tion possibles en SystemC.

1.1 Bibliothque de portes standards [30 minutes

Durant les exer i es le tableau suivant vous indiquera quelles notions de SystemC sont ibles durant
l'exer i e.
COO Module Interfa e Event Canaux
- Constru teur D laration Sensibilit des modules -
Le premier omposant raliser est un additionneur binaire travaillant sur des mots de 8 bits. Nous
allons on evoir e omposant binaire partir des portes logiques lmentaires :
 And2,
 Or2,
 Nand2,
 Nor2,
 Not,
 gnrateur de valeur binaires,
 moniteur d'a hage
Choisissez une porte raliser en SystemC et pla er les dans votre librairie de omposants.
Tester le omposant re en l'insrrant dans un environnement de test : gnrateur de stimuli +
moniteur ( f. ours).

1.2 Assemblage [30 minutes

COO Module Interfa e Event Canaux


Instan iation Connexion -
Proposer une quation de la porte Xor 2 entres en fon tion des portes de base. Retrouver les quations
logiques de la sortie de l'additionneur et de sa retenue sortante en fon tion de ses 2 entres binaires et
de sa retenue entrante.

1
Assembler les omposants pour raliser l'additionneur binaire orrespondant et insrrer le nouveau
dans la stru ture de test.
Nous instan ierons les additionneurs ainsi rs dans la se tion 1.5.

1.3 Validation [20 minutes

Ajouter votre omposant de plus haut niveau (top module), les instru tions SystemC n essaires
pour un a hage graphique de l'volution des signaux durant le temps de la simulation ( f. ours).
Vrier l'a ssibilit l'ex utable situ :
/home/profs/miramond/lib/gtkWave/gtkwave/bin/gtkwave
Sinon, tl harger le visualisateur de Waveforms l'adresse suivante
http ://home.n .rr. om/gtkwave/
Installer l'ar hive en lo al sur votre ompte.
Dans les deux as, utiliser le binaire gtkwave pour lire le  hier VCD produit l'tape pr dente.

1.4 Bas ules D [30 minutes

COO Module Interfa e Event Canaux


Sensibilit multiple s _ lo k

Vous allez maintenant raliser deux ir uits squentiels simples qui sont les bas ules D. Vous raliserez
tout d'abord une bas ule D lassique ayant sur son interfa e :
 en entre, un boolen din,
 et l'horloge,
 en sortie un boolen dout.
Puis une bas ule D RESET asyn hrone ave sur son interfa e :
 en entre, un boolen din,
 l'horloge,
 et un signal boolen de RESET,
 en sortie un boolen dout.
Raliser es 2 omposants puis valider les.

1.5 Modules paramtrs [2 heures

COO Module Interfa e Event Canaux


Paramtrage d'objets Constru teurs

SystemC utilise de manire intensive une appro he de on eption logi ielle oriente objet. Un des besoins
pour a lrer la on eption et l'exploration de nouveaux blo s matriels est de raliser des modules
paramtrables en terme de :
 valeurs de paramtres, omme les valeurs des o ients d'un FIR par exemple,
 en termes de types de ses attributs : virgule ottante ou xe, taille d'un ve teur binaire ... ,
 jusqu' la stru ture mme d'un module qui peut tre paramtrable : additionneur travaillant sur
des tailles de mots variables ...
Le langage SystemC et sa base C++ permettent de rpondre e besoin dirents niveaux de
modularit (ou de onguration) :
 la ompilation,
 lors de l'laboration,
 l'ex ution (i i simulation).
Le paramtrage qui nous intresse onsiste pouvoir instan ier le nombre n essaire de omposants
lmentaires : additionneurs et bas ules pour pouvoir raliser trois omposants niveau mot :
 un additionneur sur mot dont la taille est un paramtre,
 un d aleur sur mot dont la taille est un paramtre,
 un multiplieur squentiel sur mot dont la taille est un paramtre.

2
Clairement, e paramtrage est un paramtrage d'laboration qui sera ralis par l'intermdiaire du
paramtre du onstru teur de es modules ainsi que par des pointeurs de modules. La stru ture du
onstru teur est la suivante :
// 1) de laration of a signal named prev onne ted to the output
// of the previous instan e of the elementary module

// 2) Loop to reate and onne t the elementary modules a ording to their order
// (Side effe t)
// a) instan iation of a pointeur on a module
// b) onne t it signals
Pour la validation de es omposants modier les omposants stimuli et monitor pour avoir un nombre
de stimuli adquat.
A votre avis, est-il possible de raliser le mme paramtrage la simulation ?

1.6 Du RTL au ir uit physique

(Pour eux qui ne s'arrtent pas au sujet de TP), pour omprendre omment transformer les des rip-
tions que vous venez d' rire au ir uit physique, vous pouvez visiter les sites suivants :
http ://en.wikipedia.org/wiki/Ele troni _design_automation
http ://en.wikipedia.org/wiki/Integrated_ ir uit_design