Prise en main du Logiciel MAX+2

Simulation et synthèse logique.

 

  

Sommaire

page

1 - Vue D’ensemble :

1

2 - Saisie du processus à Synthétiser :

2

2.1 - Editeur graphique :

2

2.2 - Edition d’un fichier " HDL " :

4

2.3 - Editeur de chronogrammes :

4

3 - Saisie d’un processus hiérarchisé :

5

4 - Compilation du projet :

6

5 - Affectation des entrées sorties :

6

6 - Simulation :

8

6.1 - Edition du Simulator Channel File :

8

6.2 - Lancement du simulateur :

10

6.3 - Fichiers *.cmd et *.vec :

10

6.4 - Analyse des timings :

12

7 - Programmation :

13

Annexe : Extension usuelles

14

 

 

1 - Description d’ensemble :

 

MAX+PLUS II est un logiciel de CAO qui offre les fonctionnalités suivantes:

Saisie, de differentes manières possibles, d’un processus à intégrer dans un CPLD; traitement rapide (compilation, synthèse…) et programmation immédiate de la puce cible. Le logiciel peut fonctionner sur PC ou station de travail.

Ce logiciel constitue un environnement intégré destiné à la conception de circuits logiques mettant en œuvre des composants programmables du constructeur Altera : MAX® 5000, MAX 7000, MAX 9000, FLEX® 6000, FLEX 8000 et FLEX 10K (MAX+PLUS II permet également de programmer des composants FLASHlogic™).

Pour les familles plus récentes (et de densités supérieures: Mercury, ApexII… ) il faut utiliser le Logiciel Quartus II.

Parmi les possibilités de MAX+PLUS II : Trois modes de saisie possibles pour le source du projet : Graphique, Texte ou formes d’ondes ; partitionnement possible entre deux composants cibles ; simulation niveau fonctionnel ou composant ; analyse détaillée des timings ; recherche et identification automatique des erreurs ; programmation et vérification des composants depuis le PC. MAX+PLUS II reconnaît également les netlites au standard EDIF , VHDL , Verilog HDL , OrCAD Schematic Files, et Xilinx Netlist Format Files, et génère les formats EDIF, VHDL, Verilog HDL et VITAL assurant ainsi une interface aisée vers d’autres outils d’IAO.

La compatibilité avec les précédents logiciels d’Altera est assurée ce qui permet d’intégrer des conceptions précédentes. D’autre part le compilateur de MAX+PLUS II garanti une implantation optimale vers le composant cible.

Le fichier source (texte ou graphique par exemple…) est indépendant de l’architecture du composant cible. Il est donc possible d’intégrer dans un même projet hiérarchisé des fichiers sources de natures différentes et de choisir, pour chaque bloc fonctionnel, le mode de description le mieux adapté. Plus de 300 primitives ou méga-fonctions sont prêtes à l’emploi.

 

 

 

2 - Saisie du processus à synthétiser :

 

La saisie du processus à synthétiser peut se faire de trois manières différentes : sous forme de schémas à l’aide de l’éditeur graphique de max+2, sous forme de fichier texte ( vhdl entre autre ) à l’aide de n’importe quel éditeur de texte ou encore sous forme de chronogramme à l’aide du Waveform editor.

2.1 - Editeur graphique :

Ce chapitre est consacré à la saisie de schéma ( éditeur graphique )

Gestion de fichier : Création d’un nouveau fichier :

1 - Choisir New (menu File)

2 - Choisir Graphic editor file dans la boite de dialogue.

3 - Sélectionner l’extension .gdf dans la liste proposée.

4 - Valider par OK

Explorer les différentes commandes proposées par les boutons de l’environnement. La fonction réalisée est décrite dans la barre de message en bas de l’écran.

5 - Sauver et renommer votre fichier en utilisant la commande save as dans le menu file. (Vérifier que la sauvegarde s’effectue dans le bon répertoire, au besoin sélectionner le chemin dans la fenêtre directories). Utiliser des noms de moins de 8 caractères.

6 - Spécifier le nom de projet :

Sélectionner " set project to current file " dans le menu file\project.

Saisie de schéma :

1 - Pour entrer un symbole : choisir enter symbol dans le menu symbol.

Choisir le composant dans les bibliothèques disponibles.

2 - Pour les entrées sorties taper input ( respectivement output ) dans l’emplacement Symbol name du même menu.

3 - Nommer les entrées sorties dans les champs prévus à cet effet

Remarques importantes :

Pour les bus on utilisera la notation suivante :

Par exemple compte[7..0] pour la sortie d’un compteur 8 bits ou Adresses[15..0] pour un bus d’adresse.

La sélection " ligne ou bus " se fait par la fenêtre prévue à cet effet en haut à droite de l’écran ou par le menu option / line style.

La connexion des bus et des Nœuds se fait par nom :

Par exemple pour affecter les sorties qa, qb,... qh d’un compteur 8 bits à un vecteur compte[7..0] il suffit de cliquer sur Qa et de nommer l’équipotentielle compte1, respectivement compte2 pour qb et ainsi de suite...

4 - Connections entre composants :

Placer la souris sur l’extrémité à connecter.

Garder le bouton gauche enfoncé.

Tracer

Relâcher le bouton sur la broche à connecter.

Sauvegarder et vérifier le schéma :

1 - Projet save&check dans le menu file.

2 - Créer un symbole pour représenter l’ensemble du schéma. Ce symbole pourra être utilisé pour d’autres entrées sous formes graphiques ultérieurement : Create default symbol (menu file)

3 - Fermer le fichier : Close(menu file)

2.2 - Edition du processus sous forme d’un fichier " Hardware Description Language ":

L’environnement Max+2 permet de faire la saisie sous différents formats de fichier texte. Ce Chapitre est consacré à la saisie de fichiers VHDL.

Gestion de fichier : Création d’un nouveau fichier :

1 - Choisir New (menu File)

2 - Choisir Text editor file dans la boite de dialogue.

3 - Sélectionner l’extension.vhd dans la liste proposée.

4 - Valider par OK

5 - Sauver et renommer votre fichier en utilisant la commande save as dans le menu file. (vérifier que la sauvegarde s’effectue dans le bon répertoire, au besoin sélectionner le chemin dans la fenêtre directories)

6 - Spécifier le nom de projet : sélectionner " set project to current file " dans le menu file\project.

Saisie du texte:

Valider le choix Syntax coloring dans le menu option.

Explorer la possibilité d’importer des modules de description prédéfinis par le menu Templates - VHDL template.

Sauvegarder et vérifier le texte :

1 - Projet save&check dans le menu file.

2 - Créer un symbole pour représenter l’ensemble de la description ainsi réalisée. Ce symbole pourra être utilisé pour d’autres entrées sous formes graphiques ultérieurement : Create default symbol (menu file)

3 - Fermer le fichier : Close(menu file)

2.3 - Editeur de chronogrammes : Waveform editor :

Le Waveform editor peut être utilisé pour créer un ensemble de fonctions logiques (par définition des entrées / sorties sous forme de chronogrammes ) dans ce cas le fichier généré devra être sauvegardé avec l’extension.wdf (Waveform Design File).

Il est également employé pour l’édition des stimulis et la lecture des résultats produits dans le cas d’une simulation. Il s’agira alors d’un fichier Simulation channel File qui sera sauvegardé avec l’extension.scf. ( Voir chapitre sur la simulation ).

Création d’un fichier chronogramme *.wdf :

1 - Choisir New (menu File)

2 - Choisir Waveform design file dans la boite de dialogue.

3 - Sélectionner l’extension .wdf dans la liste proposée.

4 - Valider par OK

5 - Sauver et renommer votre fichier en utilisant la commande save as dans le menu file. (vérifier que la sauvegarde s’effectue dans le bon répertoire, au besoin sélectionner le chemin dans la fenêtre directories)

6 - Spécifier le nom de projet :

Sélectionner " set project to current file " dans le menu file\project.

Cet outil permet de définir les formes d’ondes des entrées / sorties ou points intermédiaires (buried nodes) du processus à simuler ou à synthétiser.

La démarche est proche de celle utilisée lors de la création des stimulis, Voir chapitre concerné page 8.

Pour une description détaillée de la démarche consulter l’aide en ligne de Max+2 (menu help\ table of content...), ou la documentation originale.

 

 

3 - Saisie d’un processus hiérarchisé :

Dès que le projet à synthétiser prend de l’ampleur il est conseillé de le hiérarchiser :

Pour cela il faut créer un schéma de niveau supérieur (Top-Level Design Graphic File) qui intègre des fichiers qui ont déjà été validés par simulation ou dans des projets précédents.

La saisie du processus " top Level " se fait sous forme de schémas à l’aide de l’éditeur graphique de max+2. L’édition consiste à associer entre eux les symboles des fichiers de niveaux inférieurs créés précédemment.

Gestion de fichier : Création d’un nouveau fichier :

1 - Créer un nouveau fichier .gdf et le sauver avec un nouveau nom dans votre répertoire de travail

2 - Spécifier le nom de projet : Sélectionner " set project to current file " dans le menu file\project.

Saisie de schéma :

1 - Pour entrer un symbole : choisir enter symbol dans le menu symbol.

Choisir le symbole d’une composition de niveau inférieur dans la liste proposée. (par exemple ctrdec7seg).

On retrouve les fonctionnalités précédentes de l’éditeur graphique :

2 - Pour les entrées sorties taper input ( respectivement output ) dans l’emplacement Symbol name du même menu.

3 - Nommer les entrées sorties dans les champs prévus à cet effet

4 - Les connexions entre symboles se font à l’aide de la souris.

Voici un exemple de schéma qui utilise 3 dessins de niveaux inférieurs:

Remarques :

Il est possible d’accéder et de modifier le contenu (texte ou schéma) d’un symbole en double-cliquant sur celui-ci.

Si la modification effectuée entraîne une modification du nombre des entrées / sorties, il est indispensable de recréer le symbole.

Le module clk1hz est un diviseur de fréquence qui peut être utilisé lors de l’essai sur la platine Altera DLP. ( son rôle est de produire une horloge de 1hz à partir du quartz 25.175Mhz disponible sur la carte. Dans le cas d’une simulation uniquement il est conseillé de supprimer ce module et de rentrer directement une horloge de 1hz sur le premier compteur

Sauvegarder et vérifier le schéma : Projet save&check dans le menu file.

 

 

4 - Compilation du projet

 

La démarche est la même quel que soit le niveau ou l’on se place dans la hiérarchie du projet.

Ouvrir la fenêtre du compilateur :

1 - Choisir Compiler dans le menu Max+2 :

2 - Choisir la cible en ouvrant la fenêtre Device dans le menu assign. Dans la boite de dialogue choisir

Fenêtre Device Family : Max7000S

Fenêtre Device : EPM7128SLC84-6.

Valider par OK

3 - Valider l’option Smart recompile dans le menu processing.

4 - Ouvrir la fenêtre Global Project Logic Synthésis du menu Assign. Vérifier que Normal est sélectionné dans la fenêtre Global Project Synthésis Style.

5 - Valider l’option Timing SNF extractor dans le menu processing.

6 - Ouvrir la fenêtre Report File Setting du menu Processing. Vérifier que toutes les options sont validées.

7 - Démarrer la compilation : Bouton start.

Remarques :

Il est possible de stopper la compilation en cours et de la reprendre ultérieurement.

Un double clic sur un message d’erreur permet de localiser celui-ci (de même que le bouton Locate).

Voir également les possibilités offertes par le bouton Get Help on message.

 

 

5 - Affectation des entrées sorties :

 

Le Floorplan editor permet d’obtenir deux vues du résultat de la compilation au niveau du composant cible :

" Device view " visualise l’affectation des broches utilisées sur le boîtier du composant.

" Lab view " représente l’affectation des broches utilisées et des cellules logiques internes au composant.

On passe d’une vue à l’autre par un double clic de souris dans la zone concernée ( partie centrale de l’écran).

Cet outil est particulièrement utile pour " router " une carte :

Lors de la première compilation le compilateur affecte les entrées / sorties au hasard en fonction de leurs disponibilités mais l’implantation sur une carte nécessite un choix judicieux de l’affectation des broches. Par exemple sur la platine DLP les liaisons entre le Max7128 et les segments des afficheurs sont déjà câblées via le circuit imprimé...

 

Démarche à partir de l’outil graphique " floorplan editor ":

- Ouvrir le floorplan editor

- Choisir la Labview

- Valider l’option Last compilation floorplan du menu Layout (ou bouton équivalent).

- Ouvrir la fenêtre back-Annotate du menu Assign.

- Dans cette fenêtre valider le choix Chips, Logics Cells, Pin & Devices.

- Valider l’option Current assignement floorplan du menu Layout (ou bouton équivalent).

- Valider l’option Show moved Nodes in Gray du menu Option.

- L’édition de l’assignation des broches se fait simplement par un Drag & Drop de souris :Cliquer sur la broche à déplacer, maintenir le bouton enfoncé lors du déplacement et relâcher sur la broche destination (qui doit être libre de toute affectation...).

remarque :

Certaines broches ne sont pas affectées pour des entrées / sorties mais ne sont pas pour autant disponibles car elles correspondent à un module logique qui est utilisé de manière interne (couleur Jaune ). Les broches disponibles pour une réaffectation sont blanches.

- Lorsque toutes les modifications sont effectuées il faut recompiler le projet :

- Lancer le compilateur et vérifier à l’aide du Foorplan editor que le résultat de la dernière compilation a pris en compte les dernières modifications.

 

Démarche similaire à partir du fichier texte *.acf:

Il est possible de ré exploiter une assignation de broches déjà réalisée dans un projet précédent :

- Dans l’environnement MAX+2 : Ouvrir le fichier *.acf du projet dont on souhaite utiliser l’assignation.(celui ci doit avoir été rétro - annoté). Copier dans le presse papier (CTRL-C) la partie du fichier relative à l’affectation des e/s .

- Ouvrir le fichier projet_en_cours.acf.(celui ci doit également avoir été rétro – annoté) et remplacer la zone d’affectation des e/s par le contenu du presse papier (CTRL-V) , au besoin corriger le nom des variables.

- Ouvrir le floorplan éditor dans le mode Current Assignements Floorplan du menu Layout, vérifier la cohérence des assignations en sélectionnant, au besoin effectuer des modifications. (ne pas rétro - annoter)

- Recompiler le projet. (En cours de compilation valider OK to ignore Logic Cells)

 

6 - Simulation

 

Avant de Lancer le simulateur il faut créer un Simulator Channel File : *.scf qui contient les signaux de sorties à analyser et les stimulis. L’édition de ces derniers se fait à l’aide du Waveform editor.

6.1 - Edition du Simulator Channel File.

Création du fichier chronogramme *.scf :

Il s’agit de créer un fichier *.scf par défaut qui contient les équipotentielles utiles au

simulateur :

1 - Choisir New (menu File) puis Waveform editor file avec l’extension .scf dans la boite de dialogue, valider par OK

2 - Fixer la durée de la simulation par end time ( menu File).

3 - Sélectionner le pas de simulation par grid size ( menu Option).

4 - Choisir Enter Nodes from snf(menu Node) la boite de dialogue correspondante s’ouvre.

- Choisir list afin de lister les nœuds d’entrées / sorties ou groupes disponibles (Lorsque la liste est importante il est recommandé de procéder par étape en sélectionnant alternativement les options Group, Input et Outputs ).

- Utiliser les boutons => et <= pour sélectionner les équipotentielles à visualiser.

- Après la sélection par OK on voit apparaître les signaux sélectionnés dans la fenêtre d’édition : les signaux d’entées sont par défaut positionnés à 1 logique et les sorties sont indéfinies.

- Sauver et nommer ou renommer votre fichier.scf en utilisant la commande save as dans le menu file.

 

Addition de nœuds supplémentaires au fichier .scf :

Faire apparaître la boite de dialogue pour l’insertion des noeuds :

 

Pour cela double cliquer sous la dernière des traces dans la fenêtre de l’éditeur de forme d’onde, ou choisissez Insert Node dans le menu Node.

De la même manière que précédemment il est possible de choisir les nœuds à ajouter parmis ceux disponibles.

Remarque :

Il est possible d’arranger les noeuds dans un ordre voulu directement à l’aide de la souris ( drag and drop)

Edition des formes d’ondes :

Il est nécessaire d’éditer les signaux d’entrées car ceux ci constituent les stimulus indispensables au simulateur. Après lancement d’une simulation les sorties et les nœuds intermédiaires ( indéterminés avant la simulation ) sont écrasés par les résultats produits.

L’édition des formes d’ondes se fait rapidement à l’aide de la souris et de la barre de boutons situés dans la partie gauche de l’écran (verticalement) :

- Sélectionner la zone à éditer à l’aide de la souris.

- Affecter un état à la zone sélectionnée à l’aide des boutons (clk, 1, 0, High Z, nb pour les bus...)

Sauvegarder et fermer le fichier *.SCF.

 

6.2 - Lancement du simulateur.

- Ouvrir le simulateur dans le menu Max+2

- Dans la fenêtre End Time entrer la durée de la simulation (qui doit correspondre à la durée des stimulis saisie lors de l’édition du Simulation Channel File dans End Time du menu File)

- Lancer la simulation par le bouton Start

- Analyser les résultats de simulation.

 

6.3 - Simulation par l’utilisation de fichiers commande et Vector File : *.cmd et *.vec.

Ces fichiers *.cmd et *.vec peuvent être directement édités par l’éditeur de texte de max+2

1 - Choisir New ou Open (menu File)

2 - Choisir Text editor file dans la boite de dialogue.

3 - Sélectionner l’extension .cmd (respectivement .vec) dans la liste proposée.

4 - Valider par OK

Voici à titre d’exemple les fichiers pour la simulation du compteur binaire ct_8_bits.vhd

Fichier de commande : Contient le paramétrage du simulateur .

HISTORY CREATE c:\MAX2WORK\stage\debut\ct_8_bits.HST

CHANNEL c:\MAX2WORK\stage\debut\ct_8_bits.SCF

NODE LIST clk enable rst load

GROUP LIST Preset output

SIMULATE 0 TO 20us

TABLE c:\MAX2WORK\stage\debut\ct_8_bits.tbl

QUIT

Vector File : Contient les stimulis utiles au simulateur.

% units default to ns %

START 0 ;

STOP 20000 ;

INTERVAL 50 ;

INPUTS CLK ;

PATTERN

0 1 ; % relative vector values CLOCK ticks every 50 ns %

INPUTS load enable ;

PATTERN

0> 0 0

220> 0 1 %validation%

320> 1 1 %prechargement%

570> 0 1

;

INPUTS rst ;

PATTERN

0> 0

150> 1

;

INPUTS preset ;

PATTERN

0> c0

;

OUTPUTS output ;

PATTERN % check output at every Clock pulse %

= XX

;

Table File : Le fichier table *.tbl est un report ASCII des informations contenues dans le fichier *.scf . Il peut également être créé depuis l’environnement graphique en validant l’option Create Table File du menu File. Il peut être utilisé pour créer un fichier *.vec.

GROUP CREATE preset = preset7 preset6 preset5 preset4 preset3 preset2 preset1 preset0 ;

GROUP CREATE output = output7 output6 output5 output4 output3 output2 output1 output0 ;

INPUTS CLK load enable rst preset ;

OUTPUTS output ;

UNIT ns ;

RADIX HEX ;

PATTERN

% e p o %

% n r u %

% l a e t %

% C o b r s p %

% L a l s e u %

% K d e t t t %

0.0> 0 0 0 0 C0 = 00

50.0> 1 0 0 0 C0 = 00

100.0> 0 0 0 0 C0 = 00

150.0> 1 0 0 1 C0 = 00

200.0> 0 0 0 1 C0 = 00

220.0> 0 0 1 1 C0 = 00

250.0> 1 0 1 1 C0 = 00

254.0> 1 0 1 1 C0 = 01

300.0> 0 0 1 1 C0 = 01

320.0> 0 1 1 1 C0 = 01

350.0> 1 1 1 1 C0 = 01

354.0> 1 1 1 1 C0 = C0

400.0> 0 1 1 1 C0 = C0

450.0> 1 1 1 1 C0 = C0

500.0> 0 1 1 1 C0 = C0

550.0> 1 1 1 1 C0 = C0

570.0> 1 0 1 1 C0 = C0

600.0> 0 0 1 1 C0 = C0

650.0> 1 0 1 1 C0 = C0

654.0> 1 0 1 1 C0 = C1

...

Démarche :

Editer les fichiers *.cmd et *.vec.

Créer un " simulation Channel file " *.scf

Importer les stimulis depuis *.vec

Ouvrir la fenêtre du simulateur

Lancer la simulation par " Execute commande file " dans le menu file

6.4 - Analyse des timing.

L’analyse des timings peut être effectuée depuis les chronogrammes du fichier *.scf ou par lecture du fichier *.tbl mais aussi à partir d’un utilitaire spécifique : Ouvrir le timing analyser dans le menu Max+2.

Menu Analysis Delay Matrix

Menu Option Valider Cut off I/O pin Feedback

Desactiver Cut off clear&preset Paths

Lancer l’analyse par le bouton Start

7 - Programmation :

Deux composants sont disponibles sur la platine DLP le Max7128 et le Flex 10K. Le choix du composant sélectionné se fait par positionnement des jumpers TDI, TDO, DEVICE et BOARD (voir notice de la platine)

Programmation dans le cas du Max7128.

- Sélectionner programmer dans le menu MAX+2

- Menu Option / Select Device : Vérifier que la cible sélectionnée est correcte.

- Menu Option / Hardware Setup : Vérifier que la sélection est en mode Byte Blaster sur LPT1.

- Programmer le composant par action sur le bouton Program.

- Tester le fonctionnement sur la platine DLP ou sur prototype.

Remarque :

Sur la platine DLP seul les afficheurs sont câblés sur le Max7128, pour les autres entrées / sorties il est nécessaire de réaliser les connexions à l’aide de fils (Voir documentation).

Programmation dans le cas du Flex 10K

1- Valider le Multi-Device JTAG Chain (JTAG menu) dans le Programmer.

2- Choisir Multi-Device JTAG Chain Setup (JTAG menu).

3- Dans le Multi-Device JTAG Chain Setup dialog box créer le " JTAG chain " :

Choisir le composant à programmer

Sélectionner et ajouter dans la liste les fichiers à télécharger.

 

 

Annexe : Extensions usuelles

(Liste non exhaustive)

 

Edition :

*.vhd

*.sch *.acf : assignation & configuration file : contient les

*.gdf informations relatives au projet

*.wdf

Compilation :

Netlist Extractor :

*.hif : Hexa Intel Format.

*.mmf : Max +2 Message file.

*.sym : Symbole.

Synthèse :

*.ndb Node DataBase file.

Fitter :

*.pin : Brochage.

*.rpt : RePorT file.

*.fit : Assignation résultant de la dernière compilation.

Timing snf extractor, Vhdl Netlist Writer :

*.snf : Simulator Netlist File.

*.vho : Vhdl output file (description avec timings).

Assembleur :

*.pof : Programmer Object File.

Simulation :

*.cmd : Fichier de commande : Contient le paramétrage du simulateur .

*.hst : Fichier historique de la simulation.

*.tbl : Table file : Report des informations du scf courant (utilisable pour créer un *.vec).

*.vec : Vector File : Contient les stimulis utiles au simulateur.

 

Pour plus de détails faire une recherche sur le mot " extension " dans l’aide en ligne de MAX+2