Journal Pinapa: Un parser SystemC open-source

Posté par  (site web personnel) .
Étiquettes : aucune
0
11
avr.
2005
Cher journal,

Je t'écris pour te présenter mon nouveau bébé. Il s'appelle Pinapa (Pinapa Is Not a PArser - faut pas oublier les vieilles traditions d'acronymes récursifs), sa passion dans la vie, c'est de manger du SystemC [1] et de recracher une structure abstraite. Bref, c'est l'équivalent d'un front-end de compilateur pour un langage, sauf que SystemC n'est pas vraiment un langage.

Pinapa a été développé dans le cadre de ma thèse, dans un projet commun entre Verimag [2] et STMicroelectronics [3]. On avait peur qu'il s'ennuie tout seul, alors il fait maintenant partie du projet GreenSoCs [4] et il devrait avoir d'autres copains open-sources d'ici peu.

Ce qui est intéressant, pour ceux qui ne sont pas directement intéressés par un parser SystemC mais qui ont quand même eu le courage de lire jusqu'ici, c'est de voir que l'open source fait son chemin dans le monde du hardware, ou la tradition est plus au secret qu'au partage.

Pourquoi avoir décidé de rendre Pinapa open source ? En partie parce que j'aime bien le logiciel libre, mais aussi parce que Pinapa n'est pas un composant sur lequel on peut espérer faire de l'argent, par contre, on espère récupérer des contributions pour améliorer la qualité du soft pour pas trop cher.

Ah, et si je concluais en vous donnant l'URL ?

http://greensocs.sourceforge.net/pinapa/(...)

[1] : Une bibliothèque pour C++ pour faire de la modélisation hardware, plus ou moins "standard de fait" pour la modélisation de haut niveau. http://www.systemc.org(...)
[2] : Laboratoire d'informatique Grenoblois http://www-verimag.imag.fr/(...)
[3] : http://www.st.com/(...)
[4] : Projet visant a créer une infrastructure open source autour de SystemC http://www.greensocs.com/(...)
  • # cool :)

    Posté par  (site web personnel) . Évalué à 3.

    Question bète, y'a-t-il des projets de le faire cohabiter avec des projets comme ghdl ? (ghdl.free.fr)

    "La première sécurité est la liberté"

    • [^] # Re: cool :)

      Posté par  (site web personnel) . Évalué à 2.

      Pas du tout en ce qui me concerne, et l'intérêt serait limité.

      ghdl permet de compiler du VHDL avec GCC pour faire de la simulation. Vu que SystemC est une bibliothèque pour C++, il n'y a pas besoin de ça pour faire de la simu. g++ -I/path/to/systemc/include -L/path/to/systemc/lib -lsystemc le fait d'office.

      Par ailleurs, Pinapa me sert a faire de l'analyse statique de modèles transactionels (donc d'un niveau d'abstraction plus élevé que le VHDL). On ne traite pas la même catégorie de programmes.
      • [^] # Re: cool :)

        Posté par  (site web personnel) . Évalué à 3.

        mouais. Dans la conception SoC/codesign, personne ne fait du pure top-down.

        L'approche est toujours mixte. Parce que tu veux réutiliser les IP interne que tu n'as pas forcément en modèle transactionnel mais en VHDL. Le modèle top-down vient ensuite pour savoir ce que tu fais sur la partie nouvelle (bloc hardware pure, hard + soft, etc...).

        Donc en gros, systemc c'est bien mais pas tout seul, parce que ton nouveau bloc aura l'air malin si il ne peut parler avec personne.

        En gros pinapa pourrait servir avec les nouvelles normes pour emballer les IP ?

        "La première sécurité est la liberté"

        • [^] # Re: cool :)

          Posté par  (site web personnel) . Évalué à 2.

          De ce point de vue là, oui, ça pourrait être intéressant d'avoir un front-end qui puisse parser du SystemC, du VHDL, du Verilog, et qui crache une représentation commune à la sortie. D'ailleurs, Synopsys a un truc comme ça (sauf qu'ils ont bazardé a peu près toutes leurs activités autour de SystemC :-\ ).

          Par contre, c'est un boulot énorme, et ce n'est clairement pas moi qui le ferait.

          Pour ce qui est de cosimuler du RTL avec du SystemC, pas besoin de Pinapa. Pinapa n'est que le front-end, il ne génère pas de code (Le générateur de code, c'est GCC, sans Pinapa). Je ne connais pas trop GHDL, je suppose qu'il y a une interface avec le C au moins. A partir de la, on doit pouvoir faire une interface VHDL/SystemC, et obtenir un truc qui ressemble a NC-SystemC de Cadence. Bref, y'a des choses intéressantes, mais pas vraiment en relation avec Pinapa.
  • # mmmh pas tout compris.

    Posté par  . Évalué à 3.

    ils sont ou les screenshoots? ;-)

    non, sérieusement, j'ai du mal à voir ce que ca fait vraiment, ou plutot qu'est ce qu'on peut tirer de sa sortie.
    • [^] # Re: mmmh pas tout compris.

      Posté par  (site web personnel) . Évalué à 3.

      La sortie de Pinapa, c'est une structure abstraite. En gros, c'est l'arbre abstrait de GCC, décoré avec des infos sur l'architecutre de la plateforme que tu modélise. Bon, si tu n'a jamais fait de compil et/ou jamais fait de SystemC, ça ne va pas t'intéresser beaucoup. Je me suis permis de mettre ça en première page parce que c'est suffisament rare d'avoir des outils open source dans le monde du hardware que ça mérite d'être signalé (pas seulement Pinapa, mais aussi ses futurs copains de greensocs).

      Ce que j'en tire moi, c'est une connection a des outils de preuve formelle (LusSy, qui lui n'est pas open-source). On prévoit de faire un outil de lint si on trouve la main d'oeuvre pour le faire.
      • [^] # Re: mmmh pas tout compris.

        Posté par  . Évalué à 3.

        Au contraire, ca m'interresse pas mal, justement.
        Même en etant plus ou moins plongé dans les problemes systemC, HW/SW codesign, ton poste n'est pas très explicite sur ce à quoi ca sert vraiment pour le gars qui veux faire un peu plus que de la simu avec ces modeles systemC

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.