Programmes pour la conception de microcircuits programmables altera. Nous maîtrisons les matrices logiques programmables de la société - altera. Installation du pilote du programmateur USB Blaster

INTRODUCTION

Habituellement, quand quelqu'un voit une carte fonctionnelle, il se pose toujours les mêmes questions : - Est-ce un Arduino ? - Comment ça marche sans Arduino ?

Ce n'est pas un microcontrôleur, ce n'est même pas un processeur, c'est un FPGA. FPGA est un circuit intégré à logique programmable, un tel microcircuit est constitué de nombreux blocs ou macrocellules identiques, chaque fabricant les appelle différemment, donc pour Xilinx c'est Slices (tranches) pour Altera - LogicElements (éléments logiques). Ces blocs sont relativement simples, ils peuvent servir de plusieurs éléments logiques, être une petite table de consultation (LUT), contenir un additionneur, un multiplicateur, une unité de traitement du signal numérique (DSP) prêts à l'emploi, en général, tout ce à quoi le fabricant pense. L'utilisateur peut, à sa guise, agencer et configurer ces blocs comme il le souhaite, mettant ainsi en oeuvre des circuits numériques assez complexes. Vous pouvez même implémenter un microcontrôleur sur un FPGA, par exemple, en implémentant le même Arduino ou un processeur de votre propre architecture, par exemple, pas un registre mais un processeur de pile, vous pouvez même implémenter votre propre FPGA sur un FPGA !

Parmi les FPGA à budget abordable, deux principaux fabricants Altera et Xilinx peuvent être distingués, avec leurs produits, vous pouvez commencer votre voyage de maîtrise de ces technologies. À mon avis, il vaut mieux choisir les puces Altera, car leur environnement de développement est constamment mis à jour, et en choisissant une puce Xilinx XC3S500E populaire, vous devrez vous contenter de l'environnement ISE 14.7 obsolète (bien qu'il y ait des avantages).

Dans la littérature étrangère, vous pouvez trouver des abréviations pour les FPGA : FPGA et CPLD. CPLD (Complex Programmable Logic Device) - puces avec un petit nombre de macrocellules, des blocs spécialisés et une faible consommation d'énergie. Un grand projet ne peut pas être synthétisé pour ce type de puces, mais elles sont également utilisées dans la pratique, donc un microcontrôleur rare a, disons, 300 pattes. Ces puces sont souvent utilisées comme systèmes d'interface, préprocesseurs, extenseurs d'E/S. Le FPGA (Field-Programmable Gate Array) est un réseau de portes programmables sur le terrain (FPGA), des puces beaucoup plus puissantes par rapport au CPLD, mais consomme plus d'énergie et coûte beaucoup plus cher. Pour réduire les coûts de surface de puce, les puces FPGA peuvent contenir des fonctionnalités prêtes à l'emploi telles que des blocs de traitement numérique du signal (DSP), des processeurs intégrés et une mémoire intégrée. Les FPGA sont largement utilisés pour la validation et la vérification de la conception, appelée validation pré-silicium, réduisant ainsi les coûts et les délais avant la sortie du produit. Les puces FPGA sont reconfigurables quasiment à tout moment, des développements sont en cours, par exemple chez Intel, pour combiner les architectures d'un processeur classique et d'une puce FPGA. Xilinx a déjà de telles solutions - Zynq, mais nous n'en parlerons pas encore.

La conversation portera sur des choses plus simples, d'autant plus que j'ai un kit de développement entre les mains : Cyclone IV 4 FPGA Core Board et Altera USB Blaster Downloader PLD Development kit pour 35 $, achetés sur AliExpress.

1 Carte de démonstration Cyclone IV 4 FPGA Core Board, brève description

Riz. 1 - Paiement démo Carte mère Cyclone IV 4 FPGA

La carte (Fig. 1) possède une puce EP4CE6E22C8N, ses caractéristiques sont :

Type de ressource Brève description Quantité
Éléments logiques (Les) Le nombre de blocs logiques - cellules, principale caractéristique par laquelle on peut comparer la "puissance" des puces, toute logique synthétisée consommera ces blocs 6,272
Mémoire embarquée (Kbps) La mémoire intégrée n'est pas encore une caractéristique importante pour nous 270
Multiplicateurs 18x18 intégrés Multiplicateurs matériels intégrés, paramètre très important dans le traitement du signal numérique, la pleine puissance du FPGA est révélée lorsque plusieurs multiplicateurs fonctionnent en parallèle 15
PLL à usage général Les nœuds de boucle à verrouillage de phase, bien que n'étant pas une caractéristique importante, simplifient la synchronisation des appareils fonctionnant à différentes fréquences 2
Réseaux d'horloge mondiaux Le nombre de domaines fréquentiels n'est pas encore une caractéristique importante 10
Banques d'E/S utilisateur Nombre de banques d'E/S utilisateur distinctes, pas encore important 8
E/S utilisateur maximum Le nombre de broches d'E / S personnalisées, nous pouvons connecter tous les appareils, tels que Arduino 91

Le conseil a :

  1. Mémoire flash - lors de la mise sous tension, le FPGA sera configuré pour être implémenté dans la mémoire flash. Vous pouvez synthétiser votre projet et écrire sur ce flash
  2. Quartz 25 MHz est un générateur d'horloge de référence, c'est à cette fréquence que tous nos projets fonctionneront, notre FPGA peut supporter jusqu'à 10 de ces canaux.
  3. LED - 10, boutons - 2.
  4. Broches d'E/S 61 + 2 masse, 1 non connectée. Vous pouvez connecter une variété d'appareils. DAC-ADC, accéléromètres et gyroscopes, affichages de caractères et graphiques, comme Arduino.
  5. Alimenté via USB ou 5V externe.

Le kit est également livré avec un programmateur JTAG, Altera USB Blaster.

2. L'environnement Quartus II et notre premier projet

Pour travailler avec ce FPGA, nous devons télécharger l'environnement de développement officiel - Édition Web Quartus II, c'est gratuit. Nous allons sur le site officiel http://dl.altera.com/15.0/?edition=web , au moment de la rédaction, la version 15.0 est la plus récente, si elle est plus récente, téléchargez-la.

Choisir:


Riz. 2 - sélectionner les produits Altera nécessaires

Et cliquez sur le bouton de téléchargement (Télécharger les fichiers sélectionnés). Après cela, nous serons invités à enregistrer, enregistrer, télécharger et installer.

Créons notre premier projet.

Nous démarrons Quartus, sélectionnez le menu principal File -> New Project Wizard, la fenêtre d'introduction apparaît, cliquez sur suivant. Ensuite, vous devez spécifier le répertoire du projet et son nom, le troisième champ est le nom du module supérieur, plus tard vous verrez ce que c'est. Nous sélectionnons le dossier dans lequel nous voulons enregistrer le projet et trouvons un nom, j'ai test1.


Riz. 3 - nouvelle fenêtre de l'assistant de projet

Cliquez sur suivant, on nous demande s'il s'agit d'un projet vide (empty project) ou d'un template (Project template). Laisser vide, suivant. Ensuite, on nous demande d'ajouter fichiers existants, nous n'avons rien, puisque nous commençons tout juste notre voyage, cliquez sur suivant.

Ensuite, nous devons sélectionner notre puce, cela peut être fait à tout moment. Choisissez comme sur la photo, Famille - Cyclone IV E, spécifique appareil sélectionné dans "Appareils disponibles" et sélectionnez notre puce EP4CE6E22C8N, c'est au tout début. Si le vôtre est différent, trouvez le vôtre C'est important. Cliquez sur Suivant.


Riz. quatre -

Une fenêtre apparaîtra - sélectionnez les outils de conception, déboguez, pendant que nous sautons cela, cliquez sur suivant puis sur terminer.


Riz. 5 - Fenêtre "Assinments-Deice"

Dans la fenêtre, sélectionnez l'élément "Pins inutilisés". Ce paramètre détermine ce qu'il advient des broches non connectées. Cela peut être important, dans votre projet, il est peu probable que vous utilisiez toutes les broches, et celles qui ne sont pas connectées peuvent en fait être connectées à la terre ou à l'alimentation (enfin, vous ne savez jamais qui a créé la carte). Si vous en appliquez un sur une broche mise à la terre, il brûlera, vous devez donc surveiller attentivement cela.

Par défaut, les broches inutilisées "As input tri-stated with low pull-up" (les broches d'entrée sont dans le troisième état avec une impédance élevée, avec un faible pull-up de puissance), vous pouvez laisser ou sélectionner "As input tri-stated ". Vous pouvez en savoir plus sur la résistance pull-up sur Wikipedia https://en.wikipedia.org/wiki/Pull-up_resistor. En technologie numérique, il peut y avoir trois états, un un logique est la tension d'alimentation ou un niveau haut, un zéro logique est lorsque la broche est connectée à la masse ou niveau faible et état de haute impédance. État haute impédance- c'est lorsque la broche a une résistance très élevée et n'affecte pratiquement pas le fil auquel elle est connectée, un tel état est nécessaire, par exemple, lors de l'organisation de bus, lorsque de nombreux appareils sont connectés à un fil et que les appareils inactifs ne le font pas gêner le travail.


Riz. 6 - Fenêtre "Options du périphérique et des broches", broches inutilisées

Nous connectons tout dans "l'éditeur d'affectation"


Riz. 7 - Appelez "Editeur d'affectation" à partir d'un menu ou d'un panneau

Dans la fenêtre qui apparaît, nous le faisons comme le mien, ou si c'est tout à fait correct, alors selon le schéma de votre tableau.


Riz. 8- Éditeur d'affectation

Dans la colonne "À", saisissez le nom de l'entrée ou de la sortie. Dans la colonne "Nom de l'affectation", sélectionnez "Emplacement". Dans la colonne "Valeur", le numéro de broche du microcircuit, selon le schéma de la carte (mes numéros de broches sont écrits directement sur la carte).

Il faut aussi préciser quoi faire avec les boutons qui ont un pied relié à la masse et l'autre à l'entrée de la puce. Lorsque vous appuyez sur la jambe, il y aura un niveau bas, mais sans appuyer dessus, ce n'est pas clair, la jambe de la puce va simplement pendre en l'air, ce qui est très mauvais. Il faut remonter l'entrée de la puce pour l'alimenter soit avec une résistance sur la carte, soit de façon plus élégante dans le "Assignments Editor". Dans la colonne "Assignment Name", sélectionnez "Weak Pull Up resistance" pour le groupe key* (le groupe est indiqué par un astérisque).


Riz. 9 - Éditeur de devoirs

Ensuite, vous devez créer une description du module de niveau supérieur qui fonctionnera directement avec les jambes de la puce, tous les autres modules ne fonctionneront qu'avec lui. Dans le menu principal, cliquez sur Nouveau et sélectionnez "Fichiers de conception-> Diagramme de blocs/Fichier schématique".


Riz. 10 - Boîte de dialogue Nouveaux fichiers

Dans la fenêtre qui s'ouvre, sélectionnez l'outil Pin et placez l'entrée et la sortie (broches d'entrée et de sortie) sur le schéma. Nous renommons l'entrée en clé, la sortie en led et les connectons avec un conducteur. Enregistrez et cliquez sur "Démarrer la compilation".


Riz. 11 - Fenêtre de description graphique, Pin Tool et Start Compilation en surbrillance

Après compilation, nous avons eu des avertissements, tout en les ignorant, ils concernent des broches non connectées, l'absence de signal d'horloge et la description de "Timing Analyzer".

Nous connectons la carte de démonstration et le programmeur, sélectionnons l'outil «Programmeur». La fenêtre devrait indiquer " USB-Blaster", Si ce n'est pas le cas, cliquez sur "Configuration du matériel" et essayez de comprendre pourquoi, les pilotes ne sont probablement pas installés, regardez dans Appareils Windows, nous recherchons des appareils non définis, il peut y avoir un problème avec le câble. Si tout va bien, appuyez sur "Détection automatique" et sélectionnez notre puce.


Riz. 12 - Fenêtre du programmeur

Double-cliquez dans le champ "Fichier" et sélectionnez le fichier à écrire sur le FPGA (situé dans le dossier output_files de notre projet), cochez le champ "Program / Configure", et cliquez sur le bouton "Start".


Riz. 13 - Fenêtre du programmeur, notre puce est déjà configurée

Félicitations pour votre première configuration FPGA ! La diode D1 doit s'allumer, lorsque la touche 1 est enfoncée, elle doit s'éteindre (puisque le bouton ferme la jambe avec le sol), alors nous ferons quelque chose avec cela)

Circuits intégrés à logique programmable ALTERA et système de conception assistée par ordinateur MAX+PLUS II

Les circuits intégrés logiques programmables (FPGA), et dans la littérature étrangère appelés PLD (dispositifs logiques programmables), sont des LSI numériques semi-personnalisés qui, en raison de caractéristiques architecturales et technologiques, peuvent être développés et fabriqués sans un spécialiste. Equipement technique. Les FPGA sont apparus sur le marché mondial au milieu des années 80. Et s'est immédiatement généralisé, déplaçant le processus de création d'un LSI spécialisé de l'usine à lieu de travail designer. Le cycle de développement du LSI a été réduit à quelques heures et les coûts correspondants ont été considérablement réduits.

Depuis le début des années 90. Les FPGA les plus populaires sont :

intégration logique élevée basée sur les technologies CMOS ;

vitesse jusqu'à 80 -100 MHz et plus;

la possibilité de programmer (charger la configuration interne) sans programmeur.

Toutes ces exigences sont remplies par les FPGA d'ALTERA (USA), le leader mondial dans le domaine des FPGA. Actuellement, ALTERA produit sept familles de FPGA de différentes architectures [14].

En Russie, les plus connus sont les FPGA de la famille Classic, produits depuis un certain temps par INTEL. Les principaux avantages de ces microcircuits sont la simplicité, le faible coût, les boîtiers DIP faciles à monter, la microconsommation en mode statique et la possibilité de prise en charge par des moyens domestiques (CAD FORS +, programmeurs Blitz, Sterkh, Forsys). Le FPGA EP220 remplace n'importe quelle puce de la série 1556 (XP4, HP6, HP8, HL8).

Tous les FPGA sont fabriqués à l'aide de la technologie CMOS avec effacement ultraviolet (EPROM), fournissant les paramètres de consommation d'énergie suivants :

en mode statique - 10-30 μA ;

à une fréquence de 1 MHz - 2-8 mA;

avec une augmentation de la fréquence d'horloge - 1 mA / MHz.

Pour réduire le prix de 30 à 40% dans la production de masse de produits, tous les FPGA sont également produits dans des boîtiers en plastique (DIP et PLCC) avec une programmation unique.

Les inconvénients des FPGA de la famille classique sont un degré d'intégration relativement faible et certaines caractéristiques architecturales : l'absence de déclencheurs d'entrée réglés sur « 1 » (SET), bloquant les contacts lors de la mise en œuvre d'éléments de mémoire interne.

Ces lacunes sont totalement dépourvues de FPGA des familles MAX7000 et FLASHlogic, qui ont une architecture matricielle, c'est-à-dire contiennent des matrices de portes logiques programmables "ET", "OU" et des bascules.

La famille MAX7000 se compose de sept circuits intégrés avec un degré d'intégration de 1200 à 10000 portes logiques équivalentes, contenant de 32 (EPM7032) à 256 (EPM 7256) bascules.

De plus, le FPGA EPM7032V est produit - un analogue fonctionnel de la puce EPM7032 avec une tension d'alimentation de 3,3 V.

La famille MAX7000 de FPGA est fabriquée à l'aide de la technologie d'effacement électrique CMOS (EEPROM). Ils fournissent:

délai minimum de propagation du signal de l'entrée à la sortie 5 ns. ;

maximum fréquence d'horloge 190 MHz ;

jusqu'à 100 cycles de programmation/effacement.

La famille MAX7000 de FPGA a une architecture flexible. Leurs macrocellules contiennent deux lignes de rétroaction indépendantes ; de la gâchette et du contact. Cela vous permet d'utiliser la bascule comme registre interne et la broche comme port d'entrée en même temps. Les ressources FPGA supplémentaires sont des termes d'extension - des conjoncteurs, dont les sorties inverses forment des rétroactions avec la matrice d'éléments «ET». Les termes vous permettent de générer des signaux de contrôle (par exemple, CLK, SET, RESET) sans dépenser de macrocellules. Grâce à la redistribution des termes entre les macrocellules, le nombre d'entrées des éléments "OU" peut être porté à 32.

Chaque macrocellule possède un bit turbo individuel, qui peut être programmé pour réduire la consommation d'énergie avec une légère diminution des performances. A partir de 1996, tous les FPGA de la famille MAX7000 seront disponibles en version ISP (in system programmable). Cela vous permettra de programmer et d'effacer le circuit directement sur la carte de travail via la 4ème interface de signal connectée au port de l'ordinateur. La présence d'un programmeur devient facultative, ce qui simplifie grandement et réduit le coût d'utilisation des FPGA.

Les FPGA de la famille MAX7000 ont faible coût. Par exemple, le prix de la puce EPM7032 est inférieur à 7 et celui de la puce EPM7128 est inférieur à 25.

Avec l'avènement de la famille MAX7000, la valeur pratique des FPGA de la famille MAX5000 précédemment publiés a considérablement diminué, car. des analogues de tous les microcircuits sont apparus (par exemple, EPM5128 - EPM7128) avec La meilleure performance performance et consommation d'énergie à des prix inférieurs.

MAX+PLUS II est un système de conception automatisé de circuits intégrés à logique programmable (FPGA) développé par Altera Corporation, le premier fabricant mondial de FPGA.

MAX+PLUS II est un produit logiciel multifonctionnel qui offre au concepteur la possibilité de compléter la conception du FPGA, depuis l'entrée du circuit que le concepteur va implémenter sur le FPGA jusqu'à la programmation du FPGA lui-même sur le programmeur.

MAX+PLUS II offre les options utilisateur suivantes :

saisie de la structure interne du FPGA par saisie graphique du schéma fonctionnel ;

entrer dans la structure interne du FPGA à l'aide du langage de programmation de haut niveau Altera Hardware Description Language (AHDL), qui est entièrement intégré au shell MAX + PLUS II ;

simulation du fonctionnement du FPGA sous forme de chronogrammes ;

en présence d'un programmeur, écrire la structure conçue sur le FPGA, etc.

Lors de la description de la structure interne d'un FPGA utilisant AHDL, plusieurs options sont possibles.

Dans la première variante, réaliser la description de la structure en primitives, c'est-à-dire en utilisant les fonctions les plus simples telles que RS-trigger, D-trigger, T-trigger, JK-trigger, etc.

Dans la deuxième option, décrivez l'utilisation de primitives et de méga-fonctions.

Les méga fonctions sont complexes fonctions logiques compteur, multiplexeur, décodeur, registre, etc.

L'avantage de la première option est que le traducteur passe moins de temps à convertir les fonctions les plus simples du langage AHDL en codes machine.

Les inconvénients de cette option sont la grande quantité de texte du programme et la nécessité Description détaillée l'ensemble du système.

Dans la deuxième option, lors de l'utilisation de méga-fonctions, il n'y a pas besoin d'une description détaillée des éléments dans le sens où le programmeur ne définit que les paramètres d'une fonction logique complexe. Par exemple, en utilisant la méga-fonction lpm_counter, un compteur peut être décrit en spécifiant uniquement l'entrée cadencée et la largeur du compteur lui-même. Cela réduit considérablement la quantité de texte du programme et vous permet également de réduire quelque peu le temps nécessaire à l'écriture du programme.

L'inconvénient est qu'il faut plus de temps pour traduire le programme en codes machine par rapport à la première option.

Mais au final le résultat est le même, donc le style d'écriture produit logiciel dépend entièrement du concepteur.

Lors du débogage d'un produit logiciel écrit, SIMULATOR MAX + PLUS II vous permet d'examiner en détail le résultat du fonctionnement du FPGA sous forme de chronogrammes. Le concepteur peut choisir diverses sorties et états intermédiaires décrits dans le programme, ainsi que définir diverses actions d'entrée.

Vous attendez un signe ? C'est ici!

Pendant de nombreuses années, j'ai hésité à commencer à programmer des FPGA, car c'est difficile, coûteux et pénible (comme il me semblait). Mais c'est bien d'avoir des amis qui vous aident à faire le premier pas. Et maintenant je ne comprends pas une chose - POURQUOI AI-JE ATTENDU SI LONGTEMPS ?

Maintenant, je vais vous aider à faire le premier pas !

Et pourquoi est-ce pour moi ?

Vous en avez assez de lire constamment les docks de votre MK ou de garder un tas d'informations dans votre tête. Vous avez tout réécrit en asm, mais la vitesse n'est toujours pas suffisante. tu as connecté deux périphériques externesà votre MK, vous connectez le troisième, mais vous n'avez plus d'interruptions, les modules qui ont déjà fonctionné cessent de fonctionner. Vous prenez un autre MK, plus puissant de la même gamme, mais encore des manuels, des registres de drapeau, des bits ... l'enfer. Vous changez de plateforme : vous passez à un autre MK et jetez vos connaissances sur la plateforme précédente à la poubelle. Quoi que vous fassiez, c'est difficile. Vous trouvez une plate-forme populaire dans laquelle vous pouvez facilement assembler un projet à partir de composants, mais vous ne pouvez toujours pas dépasser les limitations matérielles de ce MK ... Quelque part au bord de la conscience, la pensée glisse parfois que sur un FPGA, ce serait certainement travailler rapidement et en parallèle, qu'est-ce que c'est "exactement la tâche qui devrait être résolue sur plis", mais je suis vieux / stupide / occupé / etc pour pouvoir / commencer à faire ça.

Envie de respirer enfin librement ? Poursuivre!

La joie du développement FPGA

J'ai eu une dure journée de travail. D'un travail, je suis passé à un deuxième travail, puis à la datcha, le soir, les tâches ménagères, les cours, puis la famille devant un film, et seulement à 23 heures, j'étais complètement libre! Dire que j'étais fatigué, c'est ne rien dire. Mais dans cet état, je me suis assis devant le portable avec un objectif ferme : fabriquer un générateur d'ondes carrées à 440 Hz. 20 minutes se sont écoulées et je l'ai déjà entendu dans mes écouteurs. Je n'en croyais pas mes oreilles ! Il m'a fallu encore 15 minutes pour faire du PWM et changer le volume. À ce moment-là, je n'avais une carte avec un FPGA que pendant une semaine et avant cela, je n'avais feuilleté que quelques livres sur Verilog.

Ce soir-là, j'ai réalisé C'EST ICI! C'est la plate-forme où je peux rapidement et facilement transformer mes pensées en véritable matériel de travail !

Pourquoi donc?

Je décrirai les avantages qui se trouvent dans l'étude et l'application des FPGA, bien que tout le monde les connaisse déjà :
  • Universalité du savoir- lors du changement de modèle MK, vous devez lire les docks. Lors du changement de fabricant du MK, vous devez lire les docks. Vous devez constamment lire les quais, garder constamment un tas d'informations dans votre tête. Lors d'un développement sur FPGA, si vous connaissez Verilog ou VHDL, alors vous pouvez non seulement programmer n'importe quel FPGA de la gamme d'un fabricant, mais aussi, si vous le souhaitez, passer à un autre (Altera, Xilinx). Bien qu'il y ait des moments avec le développement d'un environnement de développement différent, des moments matériels subtils, l'essence même de l'approche de conception des appareils HDL ne changera pas.
  • De l'idée au matériel- lors du développement d'un projet, s'il vous manque un micro, alors il faut en choisir un autre. En principe, on peut faire des hypothèses sur le fait que ce MK fera face ou non au projet. Ou il y a un MK spécifique et vous essayez d'y intégrer le projet. C'est le plus souvent le cas. Cela me rappelle en quelque sorte l'approche de mon grand-père, qui fabrique une échelle à partir de ce qu'il y a dans le hangar. Bien que vous puissiez concevoir un escalier, achetez des planches qui s'adaptent ... De l'idée au fer, et non l'inverse.
  • Facilité d'utilisation des développements d'autres personnes- vous pouvez prendre le module de quelqu'un d'autre et l'appliquer dans votre projet. Par le code, vous pouvez comprendre comment cela fonctionne. Même si c'est pour xilinx, et que vous le faites sous altera. Parfois, cela ne fonctionne pas bien, mais c'est plus facile que, par exemple, d'ajouter des bibliothèques binaires à un projet c++/Qt
  • bloquer l'indépendance. Les blocs en HDL sont comme des fonctions pures en PL. Ne dépendre que de signaux d'entrée. Le module développé et débogué continuera à fonctionner correctement, quelle que soit la croissance du projet. Rien de l'extérieur n'affectera le bon fonctionnement de celui-ci de l'intérieur. Et en général, vous pouvez oublier comment cela fonctionne - c'est une boîte noire. De plus, les blocs fonctionnent. parallèle.

Problème de choix

Arrêtez fortement les questions de savoir quoi choisir: Altera / Xilinx, Verilog / VHDL, quelle carte de débogage prendre. Mais avant tout.

Fabricant

j'ai choisi Altera. Pourquoi? Eh bien, mon ami et moi avons décidé comme ça, même si le nom Xilinx est plus beau pour moi. MAIS. Si vous ne pouvez pas choisir maintenant, je le ferai pour vous. Vous avez besoin d'Altera ! Pourquoi? Je ne sais pas. Maintenant, il est plus important de franchir une étape : faire un choix. J'ai choisi Altera et je ne l'ai pas regretté jusqu'à présent.



Langue

Nous prenons Verilog - car… Eh bien, vous comprenez.

Carte de débogage

Le choix de la carte de débogage a pris le plus de temps. Il est clair que les cartes diffèrent par la puce FPGA installée. Et les puces FPGA diffèrent les unes des autres par le nombre d'éléments. Mais on ne sait pas du tout combien d'entre eux seront nécessaires pour vos projets de test. Par conséquent, la plupart du temps, j'ai passé la recherche de toutes sortes de projets FPGA afin de savoir combien ils consomment de ressources FPGA.

Dans la famille Altera, pour un prix raisonnable, nous pouvons acheter des cartes avec CPLD MAX II pour 240, 570 et 1270 éléments, ou des puces FPGA plus anciennes, qui sont Cyclone 1, 2, 3, 4 avec jusqu'à 10 000 cellules ou plus. Comment choisir?

Même sur la base de 240 cellules, le projet Mars Rover ne fait qu'un nombre énorme de projets. Je vous recommande vivement de le lire afin d'avoir une idée approximative de la complexité des projets pouvant tenir dans 240 cellules. D'autre part, il existe des projets entièrement programmés pour une copie matérielle d'un PC spécifique, y compris le processeur et toute la logique qui l'entoure (NES, Speccy, Orion, UT-88, etc.). Cela nécessite déjà cinq, dix ou plus de milliers de cellules. De plus, ces cartes contiennent des périphériques externes supplémentaires.

Par conséquent, je conseillerais de prendre quelque chose entre 240 et 10 000 cellules, avec une préférence pour augmenter en fonction des fonds disponibles. Sur la carte de débogage, les cellules supplémentaires ne font pas peur, et s'il n'y en a pas assez, il n'y a rien à faire. Ensuite, lorsque l'appareil est débogué, il deviendra clair combien de cellules vous avez besoin, achetez sous La bonne quantité, sans "kit carrosserie" inutile, moins cher et laissé dans l'appareil fini.

Ce qui différencie vraiment MAX de Cyclones, outre le nombre de cellules, c'est :
1) La série MAX n'a ​​pas de PLL à l'intérieur. Chaque carte de développement possède un oscillateur, généralement à 50 MHz. Cela suffira pour l'essentiel des projets. Toute synchronisation se produira en divisant 50 MHz par une certaine valeur. Ou, vous pouvez prendre un générateur externe et l'appliquer à une entrée FPGA séparée. Mais que se passe-t-il si vous avez besoin d'une fréquence supérieure à 50 MHz ? Je n'ai pas pu trouver de générateurs au-dessus de 50 MHz en déplacement. Mais ici, la PLL vient à la rescousse, qui est intégrée aux Cyclones. Sur celui-ci, vous pouvez multiplier la fréquence, par exemple, jusqu'à 100 MHz.
2) La série Cyclone a des unités de multiplication matérielles intégrées. Leur nombre dépend modèle spécifique- ici, vous pouvez simplement "regarder dans les instructions" pour savoir combien. Si vous avez l'intention de créer une sorte de DSP, ils vous seront utiles: ils économiseront des cellules, augmenteront la vitesse. En revanche, s'il n'y a pas de multiplicateurs, ils peuvent être synthétisés, mais un petit FPGA peut ne pas avoir assez de ressources pour cela.

À tous autres égards, j'ai le critère "fit / not fit". Débogage sur une carte évidemment plus grande que nécessaire, suivi du remplissage du minimum requis pour cela.

Combien d'argent est nécessaire?


programmeur
Je trouve que je n'ai pas le temps de souder des programmeurs lâches.

300 roubles. J'ai eu le mien sur ebay et il ressemble à ça :

Carte de débogage
Le choix est large, selon le montant d'argent.

Premier niveau 350 - 550 roubles. Ce sont des cartes pour MAX II (ou cellules). Ils peuvent convenir pour une première connaissance et une adaptation ultérieure aux appareils finaux. La carte a un générateur, une paire de boutons, une paire de LED, les 80 broches restantes sont à votre discrétion.

Source de courant
Doit être, mais pas toujours inclus. Vous aurez besoin d'une alimentation de 5 volts et d'un courant de 2A.

Niveau moyen de 900 à 1500 roubles. Ce sont des cartes Cyclone 1, 2, 3, 4 se différenciant principalement par le nombre de cellules.
Marqué comme ceci :
PE 2 C 5 T144 - Cyclone 2 environ 5k cellules
PE 4 CE 6 E22C8N - Cyclone 4 environ 6k cellules
PE 2 C 8 Q208C8N - Cyclone 2 environ 8k cellules

Vous remarquerez peut-être que le Cyclone 3 peut avoir plus de cellules que le Cyclone 4.

Voici quelques options :

835 roubles.
ALTERA FPGA CycloneII EP2C5T144 Carte système minimale pour bien apprendre

880 roubles
Altera CycloneII EP2C5T144 FPGA Mini Development Learn Core Board E081

1265 roubles
Carte de base de développement d'évaluation EP2C8 EP2C8Q208C8N ALTERA Cyclone II FPGA

Cartes avancées . Ce sont des cartes sur lesquelles sont installés des modules supplémentaires (UTP, USB, AUDIO), des connecteurs (SD, VGA), des boutons, des commutateurs, des LED, des indicateurs à sept segments, etc. Ou il peut y avoir une carte de base et des cartes d'extension peuvent y être attachées séparément.

J'ai un tel kit - carte + carte d'extension :
Altrea EP4CE10E22 FPGA CORE Board + Device Board USB/Son/Ethernet/Carte SD/VGA
2760 roubles

Voici le tableau principal. Il a 2 LED, 2 boutons, 4 commutateurs, un indicateur à sept segments et une puce RAM.

Carte d'extension. Il dispose de contrôleurs SD, VGA, ainsi que USB (puce USB2.0 haute vitesse : CY7C68013A), AUDIO (carte son jusqu'à 96 kHz/32 bits ADC/DAC : WM8731S), UTP (interface Ethernet 100M : DM9000A) :

Ces planches sont simplement insérées l'une dans l'autre, mais je l'ai toujours dans la boîte. Pour mes travaux manuels, j'ai une planche à pain, avec laquelle je me connecte avec un câble fourni avec le kit. Il est également livré avec une alimentation 5 volts.

La première entreprise à entrer sur le marché des circuits intégrés programmables (FPGA). Altera propose deux systèmes de CAO MAX+PLUS II et Quartus II. Chaque CAO prend en charge toutes les étapes de la conception : entrée de la conception, compilation, vérification et programmation. Chaque CAO a un didacticiel (tutoriel), qui est installé lors de l'installation du package. Le didacticiel se compose de leçons qui vous guident tout au long du cycle de conception, de l'entrée de conception à la programmation de la puce. L'installation installe également des fichiers décrivant le projet afin que, pendant l'étude du didacticiel, vous puissiez ignorer des leçons individuelles et utiliser des fichiers prêts à l'emploi. Par exemple, vous pouvez ignorer « Saisie du projet » et passer à « Compiler » le projet à l'aide de fichiers prédéfinis.

Le système MAX+PLUSII dispose d'algorithmes de synthèse efficaces pour maximiser l'utilisation des ressources cristallines et grand ensemble outils de vérification des dispositifs aux niveaux fonctionnel et temporel de la conception.

La société distribue également des kits de conception spécialisés qui facilitent l'utilisation des FPGA dans des tâches spécifiques. Ces kits contiennent des fonctions logiques compatibles avec la CAO et une méthodologie pour leur utilisation. Les kits de conception dédiés au développement de produits dans la norme de bus PCI et les circuits de traitement du signal numérique sont intéressants. Le premier comprend des fonctions modèles pour la mise en œuvre de contrôleurs (maître/esclave) et de circuits de contrôle de parité. Le second est axé sur la mise en œuvre efficace de schémas tels que les multiplicateurs, les filtres FIR, les opérations en virgule flottante, Transformées de Fourier, Reed-Salomon, etc.

MAX se concentre sur l'interfaçage avec les normes VHDL, EDIF, Verilog. Toute configuration CAO importe des données d'entrée au format EDIF et génère des résultats de conception dans tous les formats répertoriés. À l'aide de programmes de traduction, il est possible d'importer des informations dans le format de description textuelle de CAD MAX à partir de fichiers aux formats PDS (CAD PLDShell, PALASM) et XNF (CAD XACT de Xilinx). Il est possible de convertir des schémas créés dans le système OrCAD en fichiers au format de votre propre éditeur graphique.

Altera propose des versions CAO gratuites MAX+PLUS II BASELINE et Quartus II Web Edition, qui prennent en charge toutes les étapes de la conception, de l'entrée de conception à la programmation. Les limitations sont le nombre de puces prises en charge et certaines fonctionnalités du Quartus II. Versions gratuites CAD peut être téléchargé depuis le site Web d'Altera (https://www.altera.com/support/software/download/sof-download_center.html).

1 Affectation des broches dans le projet Quartus II

au menu Dispositif d'affectations… sélectionnez le FPGA dans lequel vous allez "remplir" le projet. Dans un groupe Famille d'appareils vous devez sélectionner la famille à laquelle appartient votre FPGA. Dans le champ appareils disponibles sélectionnez le modèle de votre FPGA. Par exemple, j'ai un Cyclone II, modèle EP2C5T144C8.

Dans un groupe Afficher dans la liste "Appareils disponibles" Vous pouvez trier les appareils par type de boîtier ( forfait) ou par le nombre de sorties ( Nombre de broches) pour trouver votre modèle FPGA plus rapidement.

Il serait utile de préciser dans quel état seront les branches FPGA non connectées. Cliquez sur le bouton Options de périphérique et de broche…, aller à l'article Broches inutilisées, et indiquer l'état des broches.


Après avoir spécifié le modèle FPGA, fermez la fenêtre appareil en appuyant sur le bouton D'ACCORD.

Si vous voulez que le synthétiseur assigne des fonctions aux broches, vous ne pouvez rien faire d'autre. Et pour attribuer manuellement les broches FPGA, allez dans le menu Planificateur d'épingles de devoirs ou appuyez sur la combinaison de touches Ctrl+Maj+N .


Lancement de l'outil d'affectation de broches Planificateur d'épingles

L'outil d'attribution de broches se lancera. Planificateur d'épingles. Vous trouverez ci-dessous une liste des broches d'E / S utilisées dans votre projet avec les noms correspondants nom du nœud.


Maintenant dans une colonne emplacement les numéros de broches doivent être définis. Double-cliquez sur la cellule correspondante et sélectionnez le numéro de sortie, ou saisissez le numéro à partir du clavier. Les numéros de broches dépendront de votre planche à pain. Par exemple, dans ma carte, l'impulsion d'horloge CLK, selon le manuel, est sur la broche 17, et j'affecterai les broches libres 94, 97, 100, 103 et 93 aux sorties OUT1 ... OUT5.


Une fois toutes les broches définies, la fenêtre du planificateur de broches Planificateur d'épingles peut être fermé. Compilez maintenant le projet : Traitement Démarrer la compilation ou Ctrl+L .


2 Installation du pilote pour programmeur USB Blaster

Connectons le programmateur USB Blaster à l'ordinateur (si vous ne l'avez pas, vous pouvez l'acheter sur Ali-Express). La première fois que vous vous connectez, vous devez installer le pilote. Il s'installe de manière standard, et se trouve dans le répertoire Quartus, dans le dossier Conducteurs: C:\altera\13.0sp1\quartus\drivers


Une fois le pilote installé, le programmeur apparaîtra dans le Gestionnaire de périphériques sous le nom d'Altera USB-Blaster.

par interface JTAG

Les FPGA Altera prennent en charge plusieurs modes de programmation. Tout d'abord, envisagez de télécharger le micrologiciel sur le FPGA via Interface JTAG. Connectez le programmateur au connecteur JTAG sur la carte FPGA.

Commençons l'outil de programmation : Programmeur d'outils.

Ajoutons un programmeur. Pour cela, appuyez sur le bouton Configuration materielle… et sélectionnez l'USB Blaster connecté dans la liste déroulante. Fermons la fenêtre configuration materielle.


Dans la fenêtre du programmeur programmeur appuie sur le bouton Détection automatique pour que Quartus essaie de détecter automatiquement le FPGA connecté et le fichier de firmware *.sof.

Le fichier du firmware est créé par défaut par Quartus lors de la compilation et enregistré dans le répertoire fichiers_sortie, sauf indication contraire.

Dans la fenêtre programmeur sélectionnez le mode JTAG, cochez la case Programmer/Configurer et appuyez sur le bouton début. Le firmware sera écrit dans la mémoire FPGA.


en mode série actif

Pour enregistrer le firmware dans la ROM, écrivez le firmware en mode série actif.

Connectez le câble de programmation au connecteur COMME ou alors Série active. Exécutez le programme du micrologiciel : Programmeur d'outils.

Sélectionnez le mode Mode série actif. D'accord lorsque vous répondez à une question de clarification.

Ajoutez le fichier du firmware en cliquant sur le bouton Ajouter le fichier... Dans le sous-répertoire du projet fichiers_sortie trouver le fichier avec l'extension .pof.


Après avoir ouvert le fichier du firmware, cochez les cases Programmer/Configurer et, si vous le souhaitez, d'autres.


Notez le type de mémoire de configuration dans la colonne appareil: elle doit correspondre au type de mémoire installée sur votre carte.

Cliquez sur le bouton début pour télécharger le firmware dans la mémoire de configuration FPGA.


Pour convertir et personnaliser les fichiers du firmware, il existe un outil disponible depuis le menu Fichier Convertir des fichiers de programmation….

2023 wisemotors.ru. Comment ça fonctionne. Fer. Exploitation minière. Crypto-monnaie.