Ceci est une ancienne révision du document !
Table des matières
Description du problème
L'utilisation des fichiers HEX avec quartus 9.0 pose de gros problèmes:
- quartus perd les réglages de “Read or Write hex file…” ce qui oblige à quitter quartus, effacer db et incremental db, ( bug connu: https://www.altera.com/support/support-resources/knowledge-base/solutions/rd11302011_28.html ) rouvrir quartus, refaire toute la synthèse…. et cela après avoir perdu du temps à diagnostiquer le problème.
- Altera déconseille l'usage des fichiers hex importés ( http://quartushelp.altera.com/14.1/mergedProjects/reference/glossary/def_hexfile.htm ): Important: Due to the complexity of the Hexadecimal (Intel-Format) File type, Altera recommends that you use the Quartus II Memory Editor to create .hex files.
Nous allons donc générer des fichiers MIF
Pour effacer les db, il est apparament possible de le faire sans quitter quartus: p23 de https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/qts/archives/quartusii_handbook_archive_130.pdf
To clean the project database and remove all prior compilation results, follow these steps: 1. Click Project > Clean Project 2. Select All revisions to remove the databases for all revisions of the current project, or specify a Revision name to remove only that revision’s database. 3. Click OK . A message indicates when the database is clean.
Pour désactiver la compilation incrementale: (p 73 de https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/manual/tclscriptrefmnl.pdf)
- -incremental_compilation=<off|full_incremental_compilation>
Outils de conversion de fichier de contenus mémoire: SRecord
Linux
Installation depuis les paquets:
sudo apt-get install srecord
ou depuis les sources
wget http://freefr.dl.sourceforge.net/project/srecord/srecord/1.64/srecord-1.64.tar.gz tar xvf srecord-1.64.tar.gz cd srecord-1.64/ ./configure make ./bin/srec_info etc....
Windows
Télécharger depuis http://srecord.sourceforge.net/download.html le fichier: http://sourceforge.net/projects/srecord/files/srecord-win32/1.64/srecord-1.63-win32.zip
Documentation
Ouvrir le fichier reference.pdf : http://srecord.sourceforge.net/srecord-1.64.pdf
Applications aux fichiers mémoire de l'automate IUT GEII
Utilisation de l'outils
Le fichier programme est vu comme 256 cases de 8 bits (option -intel pour spécifier le format):
srec_info ./contenu_mem_prog.hex -intel Format: Intel Hexadecimal (MCS-86) Data: 0000 - 00FF
Conversion en MIF, pour spécifier taille des données sur 16 bits:
srec_cat contenu_mem_prog.hex -intel -fill 0x00 0x00 0xFF -Output contenu_mem_prog.mif -Memory_Initialization_File 8
Le fichier microcode est vu comme 512 cases de 8 bits: (option guess pour trouver le format intel tout seul si possible…)
srec_info contenu_mem_code.hex --guess Format: Intel Hexadecimal (MCS-86) Data: 0000 - 0009 0010 - 0019 0020 - 0029 0030 - 0039 0040 - 0049 0050 - 0059 0060 - 0069 0070 - 0079 0080 - 0089 0090 - 0097 00A0 - 00A9 00B0 - 00B7 00C0 - 00C7 00D0 - 00D7 00E0 - 00E7 00F0 - 00F7 0100 - 0107 0110 - 0117 0120 - 0129 0130 - 0137 0140 - 0149 0150 - 0157 0160 - 0167 0170 - 017D 0180 - 0187 0190 - 0199 01A0 - 01FF
Conversion en MIF, pour spécifier taille des données sur 16 bits:
srec_cat contenu_mem_code.hex -intel -fill 0x00 0x00 0x1FF -Output contenu_mem_code.mif -Memory_Initialization_File 16
pour régénerer le fichier db à partir du .hex
srec_cat contenu_mem_code.hex -intel -Output contenu_mem_code.asm -ASM
utiliser le filtre fill qui permet de remplir les trous et donc d'éviter des org dans le fichier généré…
srec_cat contenu_mem_code.hex -intel -fill 0x00 0x00 0x1FF -Output contenu_mem_code.asm -ASM
Pour générer des fichier vhdl:
srec_cat contenu_mem_code.hex -intel -fill 0x00 0x00 0x1FF -o contenu_mem_code.vhd -VHdl 2 srec_cat contenu_mem_prog.hex -intel -o contenu_mem_code.vhd -VHdl 1
Pour découper en 2 fichiers codant chacun soit les octets pairs soit les impairs: (Splitting an Image: If you have a 16-bit data bus, but you are using two 8-bit EPROMs to hold your firmware, you can generate the even and odd images by using the −SPlit filter. Assuming your firmware is in the firmware.hex file, use the following: )
srec_cat contenu_mem_code.hex -intel -split 2 0 -o firmware.even.mif -MIF srec_cat contenu_mem_code.hex -intel -split 2 1 -o firmware.odd.mif -MIF
−SPlit multiple [ offset [ width ] ] This filter may be used to split the input into a subset of the data, and compress the address range so as to leave no gaps. This useful for wide data buses and memory striping. The multiple is the bytes multiple to split over, the offset is the byte offset into this range (defaults to 0), the width is the number of bytes to extract (defaults to 1) within the multiple. In order to leave no gaps, the output addresses are (width / multiple) times the input addresses.
−Un_SPlit multiple [ offset [ width ] ] This filter may be used to reverse the effects of the split filter. The arguments are identical. Note that the address range is expanded (multiple / width) times, leaving holes between the stripes.
gère aussi le format -C‐Array [ identifier ][ -option… ] pour générer des tableaux de constantes
−HEX_Dump
super exemples:
http://srecord.sourceforge.net/man/man1/srec_examples.html
https://www-alt.gsi.de/documents/DOC-2012-Mar-2-1.pdf
Ancien contenu de la page
fichier quartus.exe version ancienne pour support Flex10k et simulateur graphique
expliquer les comptes etudiants, NE PAS TRAVAILLER SUR LEUR HOME, sinon impossible de récuperer les fichiers pour le binome
récuperer projets (travail et platine) expliquer l'imbrication → copier sur leur dossier, zipper le dossier à chaque fin de seance pour créer des composants: dans le projet/dossier travail
creer un fichier composant (nom du fichier=nom du composant) sauver dans le dossier travail (.tdf) regler top level entity compiler (regler le dossier de librairie et ajouter les fichiers au projet) corriger erreur creer un fichier simulation (.vwf) generer les stimuli lancer la simu et valider/corriger/recompiler une fois validé, créer le composant: file ->create ahdl include file (.inc)
une fois le test en simu réalisé, on fait le test sur site (maquette ou platine)
ouvrir le projet platine analyse du composant platine....tdf expliquer les liens avec la maquette
ajouter les fichiers/ librairie régler TOUJOURS en top level entity le composant platine (connexion aux broches du boitier) on pourra faire des copies de sauvegarde des differents composants platines en changeant le nom, mais le nom du fichier platine en cours de developpent doit correspondre à celui du composant platine instancier le composant à tester dans le fichier platine et établir les connexions compiler / corriger les erreurs telecharger sur la carte mémoire test sur la maquette