wiki:tutorielSocLib
Last modified 3 years ago Last modified on 11/20/2009 12:34:08

Tutoriaux SoCLib

Ce document regroupe les observations que nous nous sommes faites en suivant les tutoriaux présents sur le LiveCD de SocLib. Il permet d'entrer dans le code de SocLib et de comprendre la simulation en pratique.

Tutorial 0

SoCLib fonctionne uniquement en utilisant de la mémoire partagée, pas en utilisant des messages. La mapping table représente le partitionnement de cette mémoire partagée. Chaque composant lit et écrit dans la mémoire partagée pour communiquer.

Fichiers

  • Makefile ;
  • platform_desc : description en python des composants utilisés par la plateforme ;
  • segmentation.h : fichier d'en-têtes C indiquant les segments d'adressage :
  • reset, except, text et data seront des espaces mémoire utilisés par le processeur mips ;
  • tty sera utilisé pour le tty (console) ;
  • top.cpp : Spécification en C du comportement de la plateforme :
  • Partie 1 : inclut la définition d'une mapping table, ainsi que les définitions de chaque composant, puis le fichier segmentation.h ;
  • Partie 2 : mapping table selon segmentation.h ;
  • Partie 3 : instanciation de tous les signaux rendus disponibles par les différents composants ;
  • Partie 4 : instanciation des composants ;
  • Partie 5 : les signaux sont liés aux ports (entrants/sortants) des composants, puis sc_start est appelé, tout en modifiant le signal de reset – Pourquoi ?
  • Partie 6 : lancement de la simulation (les parties 2 à 6 sont dans le main, qui est appelé dans la fonction nécessaire à SoCLib main_sc) ;
  • top/Makefile ;
  • top/main.c : partie applicative :
  • inclut segmentation.h et des system.h et stdio.h spécifique ;
  • Simple main qui fait un Hello World puis attend indéfiniment.

Changement de processeur

Pour passer d'un processeur MIPS à un processeur ppc405, les seuls fichiers modifiées sont les fichiers de description de la plateforme :

  • dans platform_desc, le nom du processeur est modifié
  • dans la mapping table, reset et except sont remplacés par ppc_special et ppc_boot ;
  • dans top.cpp, on utilise la librairie du nouveau processeur.

Fichiers communs

Tous les tutoriaux utilisent dans la partie soft les mêmes fichiers communs du répertoire /opt/soclib/soclib/platform/topcells/common, en particulier le fichier system.h. Ces fichiers sont écrits pour chaque processeur (lm32, mips, ppc) et permettent d'utiliser les fonctions de base de C sur ces processeurs.

Tutorial 1

Utilisation de 4 MIPS indépendants écoutant les interruptions d'un timer à 4 sorties.

  • Le fichier platform_desc ne précise pas quand on utilise plusieurs fois le même composant, il décrit juste chaque composant ;
  • utilisation des signaux signal_mipsX_itX pour les interruptions provoquées par les timers ;
  • comment décide-t-on de la mapping table ?