350 likes | 604 Views
Implantation de processeurs dans les FPGA et ASIC Processeur « softcore » (SoPC : System on Programmable Chip). Quelques processeurs « softcore ». Propriétaires: Picoblaze (8bits) Microblaze (Xilinx) NIOS (Altera) Arm CortexM1 (Arm) implantable sur FPGA Actel, Altera et Xilinx
E N D
Implantation de processeurs dans les FPGA et ASIC Processeur « softcore» (SoPC : System on Programmable Chip)
Quelques processeurs « softcore » • Propriétaires: • Picoblaze(8bits) Microblaze (Xilinx) • NIOS (Altera) • Arm CortexM1 (Arm) implantable sur FPGA Actel, Altera et Xilinx • Open Source: • Micro8 Micro32 (Lattice) • LEON (Gaisler Research) • OpenRISC (opencores.org) • Autres: • Z80, 8051, 6502, 68xx…
Bibliographie • Datasheets et notes d’applications des fabricants de FPGA et des concepteurs de systèmes sur silicium • www.actel.com • www.xilinx.com • www.altera.com • www.lattice.com. • www.arm.com • www.opencore.org etc…
Conception du circuit et Conception du programme Conception du circuit • Langage HDL, schéma ou interface graphique spécifique • Choix des périphériques (UART, Timers, ADC..) • Bloc IP dans le FPGA (softcore) • Circuits externes à connecter au FPGA (matériel) • Compatibilité des signaux et des vitesses des bus • Câblage du processeur et des périphériques • Choix du plan mémoire • Interfaçage des bus si les périphériques ne sont pas compatibles avec le processeur.
Conception du programme • Développé en général avec des outils traditionnels (assembleur,compilateur, linkeur…) • Le plan mémoire doit être pris en compte • Importance du fichier de linkage • Implantation du programme • Dans le FPGA • Bloc HDL simulant une ROM et son contenu à connecter • Fichier binaire dans un bloc de mémoire FLAH interne • Transfert éventuel et exécution en RAM interne • À l’extérieur du FPGA • mémoire FLASH externe connectée au FPGA • Transfert éventuel en RAM pour le débogage ou exécution plus rapide
Le FPGA AFS600 (Actel) • Configuration non volatile grâce à la technologie FLASH • 600000 portes logiques 13824 bascules • 2 blocs de mémoire FLASH de 2Mbits • 1 FlashROM de 1kbits • 24 blocs de SRAM/FIFO de 4kbits • Blocs de gestions d’horloges (PLL…) fmax =350MHz • Convertisseur ADC intégré 12bits 600kech/s • Nombreuses entrées/sorties configurables • Supporte les Cœurs processeurs « ARM Cortex M1 et M7 » • Outils de développement gratuits et téléchargeables
Blocs « Versatiles » configurés en fonctions combinatoires
Les interfaces de saisie • • ViewDraw : Schéma électronique • On place et on relie des composants • Le fichier HDL est créé automatiquement • HDL Editor :Editeur de texteVHDL ou Verilog • Description structurelle • Description comportementale • CoreConsole: • Pour assembler les cœurs processeurs et les périphériques • SmartDesign: • Pour interconnecter les coeurs IP, les composants HDL… • peut remplacer coreconsole • Autre : Saisie graphique de diagramme d ’états
La synthèse logique • • Logiciel Synplify, Leonardo Spectrum… • Traduit en «blocs logiques élémentaires interconnectés » • les fichiers du projet • Génère un fichier au format EDIF. • Le résultat de la synthèse peut être affiché sous forme : • - classique ne tenant pas compte de l ’architecture du FPGA • - ou de schémas adapté à l ’architecture du FPGA
La simulation fonctionnelle • • Logiciel ModelSim • Simule le fonctionnement du circuit avant son implantation • Utile pour détecter des erreurs de conception • Ne tient pas compte des contraintes et aléa de fonctionnement liées au composant ciblé: • fréquences maximales d ’horloge • possibilités de routage • ressources insuffisantes • temps de transfert réel dans les circuits logiques • …etc...
Le placement - routage • Logiciel : Actel Designer • Affecte les pattes d ’entrées/sorties • Génère le fichier de configuration à télécharger dans la cible • Produit un rapport avec les ressources utilisées et les temps de propagation de broche à broche.
La simulation « post-routage » • • Logiciel ModelSim • La simulation tient compte de l ’implantation dans le composant. • Elle permet de vérifier si le circuit répond au cahier des charges
Configuration de la cible • Avec le logiciel « FlashPro » par l ’interface USB/JTAG dans la mémoire flash de configuration du composant
Développement soft pour le cortexM1 • SoftConsole repose sur Eclipse et sert d’environnement de développement. • Les outils de compilation pour le cortex M1 sont fournis par • CodeSourcery • FlashPro est utilisé pour charger et le programme dans la cible.
Tests sur la cible • • On effectue des tests avec des signaux réels sur la cible pour valider le circuit créé. • L ’interface JTAG est utile pour sonder l ’état logique des broches du circuit en fonctionnement
Les TP sur FPGA M1AFS600 • Prise en main de outils ACTEL sur des exemples simples • en VHDL • en mode schéma (TP1) • Mise en place et programmation du Cortex M1 • à l’aide des exemples fournis avec le didacticiel (TP2) • Développer un système CorteABC simple qui n’utilise • que les ressources internes du FPGA (TP3) • Mettre en œuvre le core8051s (TP4)
Datasheets pour les T.P. • Carte de développement • M1AFS Shematics.pdf (schémas) • M1AFS User guide v1.1.pdf (Tutorial) • Datasheet du circuit « Fusion AFS600 » • Fusion_HB.pdf • Librairies de composants standards • Pa3libguide_ug.pdf • Gen_refguide_ug.pdf • Cœurs microcontrôleurs • CoreABC_HB.pdf • Core8051s_HB.pdf • CortexM1_HB.pdf