La photo ci-dessous représente une carte électronique conçue dans les années 90.  

  • Les différents composants électroniques sont connectés ensembles sur une grand circuit imprimé.
  • La taille de la carte électronique était par conséquent impactée par le nombre de circuit à assembler d'où la nécessiter d'optimiser les fonctions numériques durant l'étude de la carte.
  • L'identification d'une panne était réalisée à partir de la vérification des sorties des composants électroniques et à partir des tables de vérité de ces composants.

 

Electronique numérique avant l'arrivée des circuits programmables

  1. Calcul des tables de vérité des fonctions numériques développées (Cela reste toujours obligatoire.)
  2. Conception des fonctions numériques à partir des semiconducteurs de base les "transistors". NPN/PNP, FET.
  3. Conception des fonctions numériques à partir des circuits logiques de base disponibles chez les premiers fondeurs de composants.
  4. Conception One-Shot, après l'assemblage des composants sur le circuit-imprimé, il ne sera plus possible de modifier la carte électronique, notamment  en cas défaut de fonctionnement ou d'un mauvais calcul des tables de vérité.
  5. Cycles itératifs de routage et test des cartes pour corriger les défauts détectés, effectuer l'analyses des temps de réponse et déterminer les limitations du circuit.
  6. Validation de la conception et routage définitif des cartes électroniques.

Base des connaissances techniques

Lorsqu'une conception était validée, elle était archivée dans la base de connaissances techniques de l'entreprise pour pouvoir être réutilisée ou servir de base de travail pour une nouvelle conception. Le dossier technique archivé devait comporter au minimum, les schémas de conception, la nomenclature des composants, la technologie des composants ainsi que tous les documents d'étude accompagnés des résultats de test.   

 

L' électronique numérique avec l'arrivée des circuits logiques programmables

Les premiers brevets pour de tels composants datent des années 1980 à 1990 mais c'est au début des années 1990 qu'ils se sont généralisés. 

Aujourd'hui les énormes progrès dans la technologie des circuits intégrés font qu'il est possible de créer des composants d'une complexité extraordinaire.

Les circuits logiques programmables (CPLD, FPGA), font qu'il est maintenant possible de créer des circuits logiques assez complexes pour un coût initial fortement moins élevé (des milliers d'euros) qu'auparavant. Les FPGA sont d'ailleurs souvent utilisés pour prototyper les circuits intégrés avant leur fabrication finale.

Les techniques de conception numériques ont aussi fortement évoluées. Autrefois, des schémas étaient dessinés à la main, puis par ordinateur. Maintenant, on utilise des langages de description de matériel tels que Verilog ou VHDL, qui sont digérés par des compilateurs appelés synthétiseurs, qui génèrent des netlist, c'est-à-dire des fichiers décrivant la connectivité entre des portes logiques.

Logiciel de conception FPGA

Notre plateforme de développement  BEMICROMAX10 contient le FPGA SOC MAX10 10M08DAF484 de intel (Ex. ALTERA) ainsi qu' un programmateur débuggeur USB-BLASTER.

Nous utiliserons dans le cadre de la formation "VHDL" le logiciel QUARTUS PRIME Lite Edition (Version 18.0 téléchargeable gratuitement). Elle contient l'IDE Eclipse ainsi que tous les drivers nécessaires pour interfacer la plateforme BeM10. 

Les projets décrits sur ce site ont été développés avec les versions 16.0 et 18.0. En effet à partir de la version 19.1, il sera nécessaire d'installer manuellement en plus de Quartus Prime, Windows Subsystem for Linux (WSL) ainsi que l'IDE Eclipse.

 

Les points fort du logiciel Quartus Prime Lite Edition

  • La version gratuite est suffisante pour développer des projets très complexes.
  • Mise à jour régulière des versions 
  • Le logiciel est relativement simple à prendre en main et relativement bien documenté.
  • Plateforme de développement complète (Compilation, Simulation, Editeur, QSYS

 Les points faibles  :

  • Nécessite d'avoir un PC relativement récent pour réduire les temps de compilation, je conseille au minimum un i7, SSD, RAM 12Go,  2.5GHZ, Multi-coeur x4.
  • IDE Eclipse est proposée exclusivement.

BEMICROMAX10

Carte d'évaluation intel MAX10 BEMICROMAX10

La carte d'évaluation BEMICROMAX10

Nous avons sélectionné la carte d'évaluation BEMICROMAX10 d'Arrow pour la réalisation des travaux pratiques effectués dans le cadre de nos formations VHDL.  Cette carte a été choisie principalement pour ses caractéristiques techniques ainsi que pour la mise à disposition de quelques projets de démarrage en téléchargement libre depuis le site de intel ALTERA.

La prise en main rapide de cette carte, de conception relativement simple permet de débuter progressivement dans le monde des Soc FPGA. Vous ne serez pas noyé par des performances trop souvent mis en avant par les fabricants de semi-conducteurs. Ces performances que je considère parfois avoir été un frein pour un novice de cette technologie.

Les caractéristiques de la carte.

 

BEMICROMAX diagramme bloc

Comme vous pouvez-vous le voir sur la photo ci-dessus, cette carte contient :

  • SOC MAX10 10M08DAF484 de intel (Ex. ALTERA). La variante proposée est largement suffisante pour réaliser des projets plus ou moins complexes.
  • Cette carte intègre un programmateur débuggeur USB-BLASTER.
  • Concernant les GPIO, 80 sont disponibles via une interface edge en plus des interfaces classiques PMOD. 
  • Composants additionnels (Accéléromètre, DAC, ADC, Capteur de température, Leds, Boutons poussoirs ,etc...)
  • FPGA à mémoire Flash ainsi qu'une SDRAM de 8MBits.
  • Environnement de développement Quartus Prime  téléchargeable gratuitement depuis le site de intel ALTERA.

Le Kit idéal avec notre carte d'extension AUPAZE-BEMICROMAX

AUPAZE Technologie a développé une carte d'extension pour la carte BEMICROMAX. Cette carte d'extension permet d'utiliser les 80 I/O disponibles via le connecteur Edge MEC6 SAMTEC. Cette carte d'interface est utilisée pour la réalisation des travaux pratiques.

  • Chaque équipotentielle de la carte à pain est contrôlée par une I/O de la carte BEMICROMAX. 
  • La carte à pain est entièrement programmable.
  • Réduction voir suppression totale des fils de câblage.
  • Simplification du prototypage.

 

Carte  d'extension AUPAZE-BEMICROMAX

 

 

 

Un circuit logique programmable ou PLD (Programmable Logical Device), est un circuit intégré logique qui peut être programmé après sa fabrication.

Il se compose de nombreuses cellules logiques élémentaires contenant des bascules logiques librement connectables. L'utilisateur doit donc programmer le circuit avant de l'utiliser. Les différentes logiques de programmation (unique, reprogrammable, etc.) et d'architecture ont conduit à la création de sous-familles dont les plus connues sont les FPGA et les CPLD.

Matrice FPGA. © Eduardo Sanchez, École polytechnique fédérale de Lausanne

source :futura-sciences

Note : La notion de programmation des PLD revient à définir une table de connexion et d'interconnexion des portes logiques. Ce n'est donc pas une programmation algorithmique (ie. une série d'instructions faite pour tourner sur un processeur) mais une programmation matérielle.

Quels sont les principaux types de dispositifs logiques programmables ?

SPLD ou dispositif logique programmable simple : ces composants sont le plus petit et le plus simple dispositif logique programmable. Les SPLD sont divisés en deux types principaux : les circuits logiques fixes (FLD) et les circuits logiques programmables (PLD).

CLPD ou dispositifs logiques programmables complexes : utilisés pour mettre en place des circuits combinés ou séquentiels complexes. Les dispositifs sont composés de blocs de matrice logiques, d'interconnexions programmables et de blocs d'E/S.

FPGA ou réseau de porte programmable par l'utilisateur : utilisés pour le prototypage de CI spécifiques à une application. Ces dispositifs se composent de blocs logiques, d'une matrice de commutation programmable, de blocs d'E/S et d'interconnexions.

 

 

Les FPGA en bref

FPGA est l'abréviation de « Field-programmable gate array ».

Ce qui peut être traduit en français par « réseau de portes programmables sur site ». C'est un circuit intégré fait pour être (re)programmé par l'utilisateur après sa fabrication en utilisant un langage informatique spécifique, donc sans modifier le matériel.

Contrairement aux microprocesseurs traditionnels, un FPGA peut exécuter plusieurs opérations en parallèle. Le premier dispositif reprogrammable fut construit en 1984 par Altera. L'année suivante, les cofondateurs de Xilinx inventèrent le premier FPGA. Depuis les années 1990, les FPGA sont de plus en plus utilisés, notamment par de grandes compagnies comme Microsoft. Récemment Altera et Xilinx ont été respectivement rachetées par Intel et AMD.

Étant reprogrammable, un FPGA a l'utilité qu'on lui donne. Les FPGA sont notamment utilisés pour concevoir des prototypes de circuits intégrés, interfacer des systèmes ou le temps de réponse joue un rôle crucial et dans des projets où la configuration du matériel est susceptible d'être modifiée.

 Comment fonctionne un FPGA ?

L'architecture d'un FPGA est composée : Exemple intel MAX10

  • d'un ensemble de blocs logiques configurables ;
  • d'un canal de routage programmable contenant des commutateurs ;
  • de blocs I/O transportant les signaux à l'intérieur ou à l'extérieur du FPGA ;
  • de blocs de mémoire (UFM, CFM).
  • de blocs matériels (ADC, PLLs, I/O)
  • de blocs IP ( Phy Ethernet, Driver SPI, MCU etc... )

Ces blocs créent un réseau physique de portes logiques qui peuvent être personnalisées pour effectuer des tâches informatiques spécifiques. De nombreux autres éléments peuvent être ajoutés, comme des CPU (processeurs), des contrôleurs de mémoire, des contrôleurs USB ou des cartes réseau. On parlera dans ce dernier cas de figure de SOC (Sytem On Chip).

Les blocs logiques configurables constituent le cœur d'un FPGA. Ils contiennent différents éléments selon le constructeur. Xilinx utilise des CLB (Configurable logic block), bloc logique configurable, en français. Altera utilise des LAB (Logic array module), ce qui signifie « module de réseau logique ». Toutefois, un bloc logique configurable contient toujours une ou plusieurs tables de conversion (des LUT) à trois ou quatre entrées, un D Flip-Flop (un circuit électronique numérique utilisé pour retarder le changement d'état de son signal de sortie) et une sortie.

Comment est configuré un FPGA ?

Un FPGA est configuré en utilisant un langage de description matériel comme VHDL ou Verilog, des langages informatiques qui permettent de décrire un circuit électronique et son comportement. On crée ainsi des configurations matérielles appelées circuits numériques. On utilise au préalable un simulateur HDL pour concevoir un circuit et vérifier son fonctionnement. Une fois le processus de conception et de validation terminé, un fichier binaire est généré à l'aide du logiciel propriétaire du fabricant de FPGA puis implémenté dans le FPGA.

Afficher l’image source