Precision: Guide de démarrage

Guide de démarrage pour Mentor Precision Synthesis

Precision Synthesis est un outil de synthèse RTL vendu par Mentor Graphics. Il peut cibler plusieurs familles de FPGA et sait appeler les outils des fabricants pour le placement et le routage.

Vous pouvez utiliser ce logiciel pour vérifier la synthèse de votre code.

Il est disponible sur les machines de l'école et peut être lancé dans un terminal avec la commande:

    precision <options>

Cette page n'est qu'un guide de démarrage qui décrit les manipulations et commandes simples dont vous aurez besoin dans l'UE. Pour plus d'information, voir la doc accessible à partir du menu Help

En utilisant l'interface graphique

Sans option, l'outil se lance en version graphique (gui). Cette interface se présente sous la forme d'une fenêtre unique comme le montre la capture suivante.

Fenêtre principale

Créer un projet:

La première chose à faire est de créer un projet. Un projet permet de conserver des paramètres de configuration et la liste des fichiers sur lesquels on travail. Une fois créé et sauvegardé un projet peut être rechargé.

Ceci peut se faire soit en appuyant sur le bouton New Project ou à partir du menu Project.

Une fenêtre apparait dans laquelle vous pouvez donner un nom au projet.

Nouveau Projet

Pour le reste, nous gardons les options par défaut.

Configurer le projet:

Une fois le projet créé, vous devez le configurer. Deux nouveaux bouton apparaissent vous permettant d'ajouter des fichiers et de configurer la cible.

Configuration du projet

Vous pouvez ajouter des fichiers sources (SystemVerilog, Verilog ou VHDL) en cliquant sur le bouton Add Input Files. Les fichiers sont reconnus en fonction de leur extension (.sv,.v,.vhd).

Une fenêtre s'ouvre vous permettant de rechercher les fichiers.

Ajout des fichiers

En suite, il faut préciser la cible (le modèle de FPGA) ainsi que certaines contraintes de synthèse. Pour cela, il suffit de cliquer sur le bouton Setup Design.

La fenêtre suivante apparait:

Configuration de la cible et des contraintes

Ici, nous avons les contraintes suivante:

  • FRGA Altera Cyclone V (5CSEMA5F31C-6)
  • Une fréquence d'horloge désirée de 100MHz pour la logique synchrone
  • des délais nuls (par rapport au front d'horloge) pour les signaux en entrée et sortie.

A la fin de cette étape sauvegardez le projet pour pouvoir retrouver cette configuration dans une nouvelle session. Utilisez l'item Save Project du menu Project.

Dans une nouvelle session vous pourrez retrouvez votre projet en rouvrant le projet déjà créé (Open Project).

Par défaut, Precision, considère que le projet est destiné à configurer tout le FPGA. Il ajoute donc des cellules particulières (PADs) pour les entrées/sorties du circuit. De plus, il faudrait normalement préciser vers quelles pins ces signaux seront routés.

Quand vous voulez seulement tester un sous bloc, il faut demander à l'outil de ne pas ajouter ces cellules. Pour cela il faut aller dans les options d'optimisation du menu outils (Tools -> Optimization Settings...).

Options d'optimisation

Puis décocher l'option Add IO Pads.

Ne pas ajouter de cellules pour les PADs

Synthèse:

Une fois la configuration du projet effectuée, apparaissent les boutons Compile et Synthesize qui permettent de lancer la compilation générique et la synthèse.

Compilation et synthèse

L'appui sur le bouton Synthesize déclenchera, si nécessaire, les deux opérations.

Analyse des résultats:

Une fois la synthèse effectuée, vous pouvez analyser les résultats. Vous pouvez demander les rapports de surface (Report Area) ou de timing (Report Timing).

Les boutons permettant cela apparaissent sous l'onglet Design Analysis.

Analyse des résultats

Vous pouvez aussi demander à voir les schémas représentant le résultat de la synthèse soit au niveau RTL soit au niveau technologique.

Les boutons permettant de lancer ces visualisations apparaissent dans l'onglet Schematics.

Visualiser le résultat

En ligne de commande:

Pour lancer Precision en ligne de commande, utilisez l'option -shell:

   precision -shell

Vous vous retrouvez dans l'interpréteur de commandes Tcl de Precision.

Pour finir une session Tcl vous pouvez utiliser la commande exit.

Voici la liste des commandes qui permettent de créer un projet, le configurer et lancer la synthèse.

   # Créer le projet bar_project avec une implémentation dans le dossier actuel
   new_project -name bar_project -createimpl -folder .
   # Ajouter un ficher source (les chemins sont relatifs au dossier courant)
   add_input_file ../bar.sv
   # Configurer la cible
   setup_design -manufacturer Altera -family "Cyclone V" -part 5CSEMA5F31C -speed 6
   # Configurer les timings
   setup_design -frequency="100"
   setup_design -input_delay="0"
   setup_design -output_delay="0"
   # Ne pas ajouter d'IO pads
   setup_design -addio=false
   # sauvegarder le projet
   save_project

Pour lancer la compilation et la synthèse:

   compile
   synthesize

Pour générer les rapports:

   report_area
   report_timing

Pour recharger le projet dans une nouvelle session:

   open_project <nom_du_projet>.psp

Automatiser les choses:

La liste des commandes utilisée peut être regroupée dans un fichier (comme c'est des instruction Tcl, on utilisera l'extension .tcl). Precision peut ensuite être lancé pour exécuter toutes les commandes de ce fichier.

   # Avec Gui
   precision -file <script>.tcl
   # Sans Gui
   precision -shell -file <script>.tcl