33
Implantation de processeurs dans les FPGA et ASIC Processeur « softcore » (SoPC : System on Programmable Chip)

Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Implantation de processeurs dans les FPGA et ASIC

Processeur « softcore »

(SoPC : System on Programmable Chip)

Page 2: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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…

Page 3: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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…

Page 4: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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.

Page 5: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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

Page 6: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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

Page 7: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Description de l’AFS600

Page 8: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Routage en Technologie flash

Page 9: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Un bloc logique configurable« Versatile »

Page 10: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Blocs « Versatiles » configurés en fonctions combinatoires

Page 11: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Blocs « Versatiles » configurés en bascules

Page 12: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Entrées/Sorties

Page 13: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Entrée configurée en « Double Data Rate »

Page 14: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Oscillateur interne/externe

Page 15: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Circuit multiplicateur/diviseur d’horloge à PLL

Page 16: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Interface de configuration

Page 17: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Convertisseur Analogique Numérique

Page 18: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Mesure directe de tension

Page 19: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Atténuation et mesure de tensions

Page 20: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Mesure d’intensité

Page 21: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Mesure de température

Page 22: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Entrées tout ou rien

Page 23: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Les outils de développement

Page 24: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Les interfaces de saisie

• ViewDraw : Schéma électroniqueOn place et on relie des composants Le fichier HDL est créé automatiquement

• HDL Editor :Editeur de texte VHDL ou VerilogDescription 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

Page 25: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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

Page 26: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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...

Page 27: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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.

Page 28: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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

Page 29: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

Configuration de la cible

• Avec le logiciel « FlashPro » par l ’interface USB/JTAG dans la mémoire flash de configuration du composant

Page 30: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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.

Page 31: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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

Page 32: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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)

Page 33: Implantation de processeurs dans les FPGA et ASIC Processeur « softcore »

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