Techniques and Tools for the Verification of Systems-on-a-Chip at the Transaction Level - Archive ouverte HAL Access content directly
Theses Year : 2005

Techniques and Tools for the Verification of Systems-on-a-Chip at the Transaction Level

Techniques et outils pour la vérification de Systèmes-sur-Puce au niveau transaction

(1)
1
Matthieu Moy

Abstract

The work presented in this document deals with the formal
verification models of Systems-on-a-Chip at the transaction level
(TLM). We present the transaction level and its variants, and remind
how this new level of abstraction is today necessary in addition to
the register transfer level (RTL) to accommodate the growing
constraints of productivity and quality, and how it integrates in
the design flow.

We present a new tool, called \lussy, that allows property-checking
on transactional models written in SystemC. Its structure is similar
to the one of a compiler: A front-end, Pinapa, that reads the
source program, a semantic extractor, bise, into our intermediate
formalism HPIOM, a number of optimizations in the component \birth,
and code generators for provers like Lustre and SMV.
Lussy has been designed to have as few limitation as possible
regarding the way the input program is written. \pinapa uses a novel
approach to extract the information from the SystemC program, and
the semantic extraction implements several TLM constructs that have
not been implemented in any other SystemC verification tool as of
now. It doesn't require any manual annotation. The tool chain is
completely automated.

Lussy is currently able to prove properties on small platforms. Its
components are reusable to build compositional verification tools,
or static code analyzers using techniques other than model-checking
that can scale up more efficiently.
We present the theoretical principles for each step of the
transformation, as well as our implementation. The results are given
for small examples, and for a medium size case-study called EASY.
Experimenting with Lussy allowed us to compare the various tools we
used as provers, and to evaluate the effects of the optimizations we
implemented.
Les travaux présentés dans ce document portent sur la vérification
de modèles de systèmes sur puce, au niveau transactionnel (TLM).
Nous présentons le niveau transactionnel et ses variantes, et
rappelons en quoi ce nouveau niveau d'abstraction est aujourd'hui
nécessaire en plus du niveau de transfert de registre (RTL) pour
répondre aux contraintes de productivités et de qualités de plus en
plus fortes, et comment il s'intègre dans le flot de conception.

Nous présentons un nouvel outil, LusSy, permettant la vérification
formelle de modèles transactionnels écrits en SystemC. Sa structure
interne s'apparente à celle d'un compilateur: Une partie frontale,
Pinapa, qui lit le programme source, une extraction de la
sémantique, Bise, dans notre formalisme intermédiaire \hpiom, une
série d'optimisations dans le composant Birth, et des générateurs
de code pour les outils de preuves pour Lustre et SMV.

Lussy est conçu et écrit de manière à avoir aussi peu de limitation
que possible sur la forme du code SystemC accepté en entrée. \pinapa
utilise une approche innovante qui lui permet de s'affranchir de la
plupart des limitations dont souffrent les outils similaires.
L'extraction de la sémantique implémente plusieurs constructions TLM
qu'aucun autre outil disponible aujourd'hui ne gère. Il ne demande
pas d'annotation manuelle du code source, toute la chaîne étant
entièrement automatisée.

Lussy est capable de prouver formellement des propriétés sur des
modèles de petites taille, et ses composants sont réutilisables pour
des outils de preuve compositionnelle, ou d'analyse de code autre
que le model-checking qui passeront mieux à l'échelle que l'approche
actuelle.

Nous présentons les principes de chaque étape de la transformation,
ainsi que notre implémentation. Les résultats sont donnés pour des
exemples simples et petits, et pour une étude de cas de taille
moyenne, EASY. Les expérimentations avec Lussy nous ont permis de
comparer les différents outils de preuves que nous avons utilisés,
et d'évaluer l'efficacité des optimisations que nous avons
implémentées.
Fichier principal
Vignette du fichier
these-en.pdf (1.42 Mo) Télécharger le fichier
Vignette du fichier
slides-these.pdf (1.2 Mo) Télécharger le fichier
Vignette du fichier
these-fr.pdf (1.44 Mo) Télécharger le fichier
Format : Other

Dates and versions

tel-00311033 , version 1 (12-08-2008)

Identifiers

  • HAL Id : tel-00311033 , version 1

Cite

Matthieu Moy. Techniques and Tools for the Verification of Systems-on-a-Chip at the Transaction Level. Computer Science [cs]. Institut National Polytechnique de Grenoble - INPG, 2005. English. ⟨NNT : ⟩. ⟨tel-00311033⟩
219 View
1264 Download

Share

Gmail Facebook Twitter LinkedIn More