La cloche.

Il y a ceux qui ont lu cette nouvelle devant vous.
Abonnez-vous pour recevoir des articles frais.
E-mail
Nom
Nom de famille
Comment voulez-vous lire la cloche
Sans spam

Imaginez que le processeur au lieu d'effectuer un ensemble d'instructions spécifique, sera reconstruit sous chaque programme et transformera l'algorithme directement sur le "fer". Voici comment fonctionne FPG. Dans l'article d'aujourd'hui, je vais vous dire combien cela est possible et vous présentera différentes méthodes de conception de FPGA.

Tout d'abord, vous devez comprendre un peu dans la logique numérique de la puce ASIC, mais il est très difficile de commencer avec eux et cher, et il vaut mieux commencer par le FPGA.

Qu'est-ce que FPGA?

FPGA. Déchiffré en tant que tableau de portes programmables sur le terrain (matrices de vannes programmables par l'utilisateur, PPVM). Dans un cas plus général, ils s'appellent FPGA - Circuits intégrés logiques programmables programmables.

Avec l'aide de FPGA, vous pouvez dans le sens littéral du mot, concevoir des copeaux numériques, assis à la maison avec un tableau de débogage abordable sur la table et le développeur pendant plusieurs milliers de roubles verts. Mais il y a des options libres. AVIS: Il est de concevoir et de ne pas programmer, car à la sortie, nous recevrons un circuit numérique physique qui effectue un algorithme de certains algorithmes au niveau matériel et non un PROG pour un projet.

Cela fonctionne comme suit. Il existe une carte de circuit imprimé prêt à l'emploi avec un ensemble d'interfaces connectées au microcircuit FPGA installé sur la carte, comme une taxe aussi cool pour le centre de données ou cette carte de débogage pour apprendre.

Bien que nous ne configurions pas FPGA, il n'y a tout simplement aucune logique à l'intérieur de la puce pour traiter les données des interfaces et ne fonctionnera donc pas. Mais à la suite de la conception, le micrologiciel sera créé, qui, après le chargement de FPGA, créera le circuit numérique dont nous avons besoin. De cette manière, vous pouvez créer un contrôleur Ethernet de 100g qui recevra et traitera des paquets réseau.

Une caractéristique importante de FPGA est la possibilité de reconfiguration. Disons maintenant que nous avons besoin d'un contrôleur Ethernet de 100g et une semaine plus tard, le même tableau peut être utilisé pour implémenter les quatre interfaces Ethernet indépendantes 25G.

Le marché emploie deux dirigeants du fabricant de puces FPGA: tous les célèbres Intel et Xilinx. Ils contrôlent 58 et 42% du marché. Les premiers fondateurs de puce FPGA de Xilinx ont inventé en 1985. Intel est venu sur le marché tout récemment - en 2015, absorbant Altera, fondé en même temps que Xilinx. Les technologies d'Altera et de Xilinx sont en grande partie semblables à l'environnement de développement. Plus souvent, j'ai travaillé avec des produits Xilinx, donc ne pas être surpris par sa mention constante de l'article.

Le FPGA est répandu dans différentes zones: électronique de consommation, équipement de télécommunication, accélérateurs de rappel d'appoint à utiliser dans des centres de données, robotique, prototypage microcircets ASIC. Quelques exemples que je vais comprendre juste ci-dessous.

Nous examinerons également la technologie qui fournit une reconfiguration matérielle, nous vous familiariserons avec le processus de conception et nous analyserons un exemple simple de mise en œuvre du compteur matériel dans la langue Verilog. Si vous avez une carte de débogage FPGA, vous pouvez le répéter vous-même. S'il n'y a pas de frais, vous pouvez toujours vous familiariser avec Verilog en simulant le travail du schéma sur votre ordinateur.

Principe de fonctionnement FPGA

La puce FPGA est la même puce ASIC personnalisée, constituée des mêmes transistors à partir desquels des déclencheurs, des registres, des multiplexeurs et d'autres éléments logiques sont collectés pour des régimes classiques. Pour modifier l'ordre de la connexion de ces transistors, bien sûr, il est impossible. Mais le microcircuit architectural est construit de manière aussi secrète que vous pouvez modifier la commutation de signaux entre des blocs plus importants: ils sont appelés blocages logiques programmables CLB.

Vous pouvez également modifier la fonction logique que CLB exécute. Ceci est obtenu en raison du fait que toute la puce est imprégnée des cellules de la mémoire de configuration de la RAM statique. Chaque morceau de cette mémoire gère une partie de la touche de commutation de signal ou fait partie du tableau de vérité de la fonction logique que la CLB implémente.

Étant donné que la mémoire de configuration est construite à l'aide de la technologie de RAM statique, d'abord, lorsque la puissance FPGA est allumée, la puce doit être configurée et, d'autre part, le microcircuit peut être reconfiguré presque un nombre infini de fois.

Structure 2D très simplifiée de la puce sans mémoire de configuration

Les blocs CLB sont situés dans une matrice de commutation qui définit les entrées et les sorties des blocs CLB.

Schéma Matrix de commutation

À chaque intersection des conducteurs, il y a six clés de commutation gérés par ses cellules de mémoire de configuration. Ouverture de certains autres, vous pouvez fournir une commutation différente de signaux entre CLB.

CLB.

CLB très simpliste consiste en un bloc définissant une fonction booléenne à partir de plusieurs arguments (il s'appelle la table assortie - regarder la table, lut) et la gâchette (bascule, FF). Dans Modern FPGA Lut, il y a six entrées, mais trois sont illustrées dans la figure de simplicité. La sortie de lut est introduite sur la sortie de la CLB ou de manière asynchrone (directement), ou de manière synchrone (à travers la gâchette FF fonctionnant sur la fréquence d'horloge système).

Principe de mise en œuvre de LUT.

Il est intéressant de regarder le principe de la mise en œuvre de LUNT. Ayons une fonction booléenne Y \u003d (A & B) | ~ C. Son circuit et sa table de vérité sont montrés sur la figure. La fonction a trois arguments, il faut donc 2 ^ 3 \u003d 8 valeurs. Chacun d'entre eux correspond à sa combinaison de signaux d'entrée. Ces valeurs sont calculées par le programme pour développer un micrologiciel FPGA et enregistrer dans des cellules de mémoire de configuration spécifiques.

La valeur de chaque cellule est fournie à son entrée de multiplexeur de sortie LUT et les arguments d'entrée de la fonction Bull sont utilisés pour sélectionner une seule ou une autre valeur de fonction. La CLB est la plus importante ressource matérielle FPGA. La quantité de CLB dans des cristaux de FPGA modernes peut être différente et dépend du type et du conteneur du cristal. Xilinx a des cristaux avec le nombre de CLB dans environ quatre mille à trois millions.

En plus de la CLB, l'intérieur du FPGA a un certain nombre de ressources matérielles importantes. Par exemple, des blocs de multiplication matériels avec des blocs d'accumulation ou de DSP. Chacun d'entre eux peut effectuer des opérations de multiplication et d'addition de nombres de 18 bits chaque battement. Dans les cristaux supérieurs, le nombre de blocs DSP peut dépasser 6000.

Une autre ressource est les blocs de mémoire internes (bloc de bélier, bram). Chaque unité peut stocker 2 Ko. La capacité complète de cette mémoire en fonction du cristal peut atteindre 20 kb à 20 Mo. Comme les blocs CLB, Bram et DSP sont reliés par une matrice de commutation et imprègnent tout le cristal. Les blocs de liaison CLB, DSP et Bram, vous pouvez obtenir des schémas de traitement de données très efficaces.

Avantages de FPGA.

La première puce FPGA créée par Xilinx en 1985 ne contenait que 64 CLB. A cette époque, l'intégration des transistors sur les puces était beaucoup plus basse qu'aujourd'hui et dans des appareils numériques utilisaient souvent des puces "Exécution de la logique". Il y avait des registres de puces séparés, des comptoirs, des multiplexeurs, des multiplatteurs. Le périphérique spécifique a créé sa propre carte de circuit imprimé sur laquelle ces puces d'intégration ont été installées.

L'utilisation de FPGA a permis d'abandonner cette approche. Même FPGA sur 64 CLB permet d'économiser de manière significative une place sur une carte de circuit imprimé et la disponibilité de la reconfiguration a ajouté la possibilité de mettre à jour la fonctionnalité des périphériques après la fabrication pendant le fonctionnement, comme on dit "dans le champ" (d'où le champ Nom - Arragrammable Gate Array).

En raison du fait que l'intérieur du FPGA vous permet de créer n'importe quel diagramme numérique matériel (l'essentiel est d'avoir suffisamment de ressources), l'une des applications importantes de FPGA est la puce ASIC prototypage.

Le développement de l'ASIC est très complexe et coûteux, le prix d'erreur est très élevé et la question de la logique de test est essentielle. Par conséquent, l'une des étapes du développement avant même que le début du travail sur la topologie physique du schéma était son prototypage sur un ou plusieurs cristaux de FPGA.

Le développement de l'ASIC produit des frais spéciaux contenant beaucoup de FPGA interconnecté. Le prototype du microcircuit fonctionne à des fréquences nettement inférieures (peut-être des dizaines de Megahertz), mais permet d'économiser des problèmes et des bugs pour économiser des problèmes et des bugs.

Cependant, à mon avis, il existe des applications plus intéressantes des FPGS. La structure FPGA flexible vous permet de mettre en œuvre des systèmes matériels pour un traitement de données à grande vitesse et parallèle avec la possibilité de changer l'algorithme.


Comparaison des plates-formes matérielles

Pensons à la CPU, GPU, FPGA et ASIC fondamentalement différents. Le processeur est universel, vous pouvez exécuter n'importe quel algorithme, il est très flexible et il est plus facile de l'utiliser grâce à l'énorme nombre de langages de programmation et d'environnements de développement.

Dans ce cas, en raison de la polyvalence et de l'exécution cohérente des instructions de la CPU, la performance diminue et la consommation d'énergie du régime augmente. Cela se produit car pour chaque opération d'opération arithmétique utile, de nombreuses opérations supplémentaires sont liées à des instructions de lecture, en déplaçant des données entre registres et encaissement, et autres télévisions.

De l'autre côté est l'asic. Sur cette plate-forme, l'algorithme requis est mis en œuvre par matériel dû à la connexion directe des transistors, toutes les opérations ne sont connectées qu'avec l'exécution de l'algorithme et il n'est pas possible de le changer. D'où la performance maximale et la plus petite consommation d'énergie de la plate-forme. Mais reprogrammer l'ASIC est impossible.

À la droite de la CPU, c'est le GPU. Initialement, ces puces ont été conçues pour gérer des graphiques, mais maintenant utilisées pour des calculs à usage général minier. Ils se composent de milliers de noyaux informatiques de petite taille et de fonctionnalités parallèles sur la matrice de données.

Si l'algorithme peut être parallèle, le GPU atteindra une accélération significative par rapport à la CPU. D'autre part, des algorithmes consécutifs seront pires, la plate-forme est donc moins flexible que la CPU. En outre, pour le développement de GPU, il est nécessaire d'avoir des compétences particulières, de connaître Ocencl ou Cuda.

Enfin, FPGA. Cette plate-forme combine l'efficacité de l'ASIC avec la possibilité de changer le programme. Les FLA ne sont pas universelles, mais il existe une classe d'algorithmes et de tâches qui représenteront une meilleure performance sur eux que sur la CPU et même le GPU. La complexité du développement sous FPGA est plus élevée, mais les nouveaux développements rendent cette lacune moins.

L'avantage décisif de FPGA est la possibilité de traiter les données au rythme de leur réception avec le délai de réaction minimum. Par exemple, vous pouvez imaginer un routeur de réseau intelligent avec un grand nombre de ports: lorsque l'emballage Ethernet arrive à l'un de ses ports, vous devez vérifier les multiples règles avant de sélectionner le port de sortie. Il peut être nécessaire de modifier certains champs de paquets ou d'ajouter de nouveaux.

L'utilisation de FPGA vous permet de résoudre cette tâche instantanément: les octets de paquets viennent de commencer à entrer dans la puce de l'interface réseau et que sa position est déjà analysée. L'utilisation de processeurs ici peut ralentir de manière significative la vitesse de traitement du trafic réseau. Il est clair que pour les routeurs, vous pouvez faire la puce enregistrée ASIC, qui fonctionnera le plus efficacement, mais que si les règles de traitement des paquets devraient changer? Tous les FPGA contribueront à atteindre la flexibilité requise en combinaison avec des performances élevées.

Ainsi, les FPGA sont utilisés lorsqu'il existe une performance élevée de traitement de données, le plus petit temps de réaction, ainsi que la faible consommation d'énergie.

FPGA dans le nuage

Dans le cloud computing FPGA, appliquez sur un compte rapide, accélérez le trafic réseau et l'accès aux tableaux de données. Cela inclut l'utilisation de FPGA pour le commerce de haute fréquence sur les bourses. Les serveurs sont insérés de cartes FPGA avec PCI Express et l'interface de réseau optique Intel (Altera) ou Xilinx.

Les algorithmes cryptographiques sont parfaitement bas sur FPGA, une comparaison des séquences d'ADN et des tâches scientifiques telles que la dynamique moléculaire. Microsoft utilise depuis longtemps FPGA pour accélérer le service de recherche Bing, ainsi que pour organiser la mise en réseau définie par logiciel dans le cloud Azure.

Le boom d'apprentissage de la machine n'a également pas contourner le FPGA. Xilinx et Intel proposent des fonds basés sur la FPGA pour travailler avec des réseaux de neurones profonds. Ils vous permettent de recevoir du firmware FPGA qui implémente un ou plusieurs réseaux directement à partir de cadres tels que Caffe et Tensorflow.

Et c'est tout ce que vous pouvez essayer sans quitter la maison et utiliser des services cloud. Par exemple, Amazon peut louer une machine virtuelle avec accès à une carte FPGA et à tout outil de développement, y compris l'apprentissage de la machine.

FPGA sur le bord

Quoi d'autre est intéressant sur le FPGA? Mais pourquoi ne pas le faire! Robotiques, voitures sans pilote, drones, appareils scientifiques, appareils médicaux, appareils mobiles personnalisés, caméras de surveillance vidéo intelligente, etc.

Traditionnellement, FPGA a été utilisée pour le traitement numérique des signaux unidimensionnels (et concurrencé avec les processeurs DSP) dans des appareils radar, des émetteurs-récepteurs de signaux radio. Avec une intégration croissante des microcircuits et une augmentation de la performance de la plate-forme FPGA, elle est devenue de plus en plus utilisée pour l'informatique hautes performances, par exemple pour traiter des signaux bidimensionnels "sur le bord du nuage" (calcul de bord).

Ce concept est le plus facile de comprendre l'exemple du caméscope pour analyser le trafic de voitures avec la fonctionnalité de reconnaissance des fonctions des numéros de machine. Vous pouvez prendre la caméra avec la possibilité de transférer via Ethernet et traiter le fil sur le serveur distant. Avec le nombre croissant de caméras, la charge sur le réseau augmentera, ce qui peut entraîner des échecs du système.

Au lieu de cela, il est préférable de réaliser la reconnaissance des chiffres sur la calculatrice installée directement sur le boîtier du caméscope et de transférer les machines dans le cloud du format de la machine. Pour ce faire, vous pouvez même prendre un FPGA relativement peu coûteux avec une faible consommation d'énergie pour effectuer la batterie. Il reste la possibilité de modifier la logique de l'opération FPGA, par exemple lors de la modification de la norme des numéros de voiture.

Quoi de robotique et de drones, puis dans cette région, est tout simplement particulièrement important pour effectuer deux conditions - une consommation de haute performance et de faible puissance. La plate-forme FPGA convient car elle est impossible et peut être utilisée notamment pour créer des contrôleurs de vol pour les contrôleurs de drones. Déjà maintenant à faire des ubls qui peuvent prendre des décisions à la volée.

Développement de projet sur FPGA

Il existe différents niveaux de conception: faible, bloc et élevé. Un niveau bas implique l'utilisation de langues du Verilog ou de la VHDL, où vous gérez le développement au niveau de l'engin de registre (niveau de transfert de registre RTL). Dans ce cas, vous formez les registres comme dans le processeur et déterminez les fonctions logiques qui modifient les données entre elles.

Les schémas FPGA fonctionnent toujours sur certaines fréquences d'horloge (généralement 100 à 300 MHz) et au niveau RTL, vous déterminez le comportement du circuit avec une précision du tact de fréquence du système. Ce travail laborieux conduit à la création des régimes les plus efficaces en termes de performance, de consommation de ressources en cristaux de FPGA et de consommation d'énergie. Mais il y a de sérieuses compétences en circuit et le processus est sans précédent avec eux.

Au niveau des blocs, vous êtes principalement engagé dans la connexion de gros blocs déjà fabriqués qui effectuent certaines fonctions pour obtenir la fonctionnalité du système sur le cristal (système sur puce).

À un niveau de conception élevé, vous ne contrôlerez plus les données sur chaque horloge, nous vous concentrerez plutôt sur l'algorithme. Il existe des compilateurs ou des traducteurs avec des langues C et C ++ au niveau RTL, par exemple Vivado HLS. Il est assez intelligent et vous permet de diffuser une large classe d'algorithmes au niveau du matériel.

Le principal avantage de cette approche des langues RTL est d'accélérer le développement et en particulier des tests de l'algorithme: C ++ Code peut être exécuté et vérifié sur un ordinateur, et il sera beaucoup plus rapide que de tester les changements d'algorithme à la Niveau RTL. Pour une commodité, bien sûr, vous devrez payer - le programme peut ne pas être aussi rapide et prendra plus de ressources matérielles.

Souvent, nous sommes prêts à payer ce prix: Si vous utilisez avec compétence le traducteur, l'efficacité n'est pas très blessée et les ressources de la FPGA moderne suffisent. Dans notre monde, avec un délai critique de l'indicateur de marché, cela s'avère justifié.

Souvent, dans un design, vous devez combiner les trois styles de conception. Supposons que nous puissions faire un appareil que nous pourrions intégrer dans un robot et la mettre avec la possibilité de reconnaître des objets dans le flux vidéo - par exemple, des panneaux de signalisation. Prenez la puce d'essieu vidéo et connectez-la directement à FPGA. Pour le débogage, nous pouvons utiliser le moniteur HDMI, également connecté au FPGA.

Les cadres de la caméra seront transmis au FPGA sur l'interface qui est évidemment définie par le fabricant du capteur (USB ne roule pas ici), traitée et affichée sur le moniteur. Pour le traitement de la trame, vous aurez besoin d'une tramette, qui est généralement dans la mémoire DDR externe installée sur la carte de circuit imprimé à côté du microcircuit FPGA.


Diagramme de bloc de projet FPGA typique

Si le fabricant de la vidéo SEENSOR ne fournit pas d'IP d'interface pour notre puce FPGA, nous devrons vous écrire vous-même dans la langue RTL, compter des tacts, des bits et des octets conformément à la spécification du protocole de transfert de données. Prérocession, contrôleur DDR et blocs IP HDMI, prêts probablement et connectent simplement leurs interfaces. Et le bloc HLS qui recherche et traite les données entrantes, nous pouvons écrire sur C ++ et diffuser avec Vivado HLS.

Très probablement, nous avons toujours besoin de certaines bibliothèques de détection et de classificateur de panneaux de signalisation de signalisation adaptés à la FPGA. Dans cet exemple, je cite bien sûr un schéma de conception fortement simplifié, mais cela reflète la logique du travail correctement.

Considérez le chemin de conception de la rédaction du code RTL avant de recevoir un fichier de configuration à télécharger sur FPGA.

Chemin de conception

Donc, vous écrivez le code RTL qui implémente le schéma dont vous avez besoin. Avant de le vérifier sur la vraie glande, vous devez vous assurer qu'il est correct et résout correctement la tâche requise. Cela utilise la modélisation RTL dans le simulateur de l'ordinateur.

Vous prenez votre schéma, présenté jusqu'à présent uniquement dans le code RTL et placez-le sur le support virtuel, où la séquence de signaux numériques aux entrées du circuit consiste à enregistrer les graphiques de sortie, en fonction du temps des signaux de sortie et de la comparaison avec les résultats attendus. Habituellement, vous trouvez des erreurs et revenez à l'écriture RTL.

Ensuite, le code vérifié logiquement est soumis à l'entrée du programme de synthétiseur. Il convertit une description de texte du circuit en une liste liée des éléments numériques de la bibliothèque disponible pour ce cristal FPGA. Dans cette liste, des éléments tels que LUT, les déclencheurs et les relations entre eux seront affichés. À ce stade, les éléments ne sont toujours pas liés à des ressources matérielles spécifiques. Pour ce faire, vous devez imposer sur le schéma de restriction (contraintes) - en particulier, pour spécifier quels contacts physiques des puces d'E / S FPGA sont connectés par des entrées logiques et des sorties de votre schéma.

Dans ces restrictions, vous devez également spécifier, sur les fréquences d'horloge que le régime devrait fonctionner. La sortie de synthétiseur et le fichier limite sont donnés au processeur de mise en œuvre, qui, entre autres choses, est engagée dans l'hébergement et la traçage (lieu et voie).

Le processus de lieu est toujours un élément indépendant de Netlist Lié à un élément spécifique à l'intérieur de la puce FPGA. Ensuite, démarre le processus de route, qui tente de trouver la connexion optimale de ces éléments pour la configuration appropriée de la matrice de commutation Plit.

Location de lieu et d'itinéraire sur la base des restrictions imposées par nous sur le schéma: contact avec les contacts d'E / S et la fréquence d'horloge. La période de fréquence de temps est très influencée par la mise en œuvre: elle ne doit pas être inférieure au délai de délai sur les éléments logiques de la chaîne critique entre les deux déclencheurs consécutifs.

Souvent satisfaire immédiatement cette exigence n'est pas possible, puis vous devez revenir à la phase initiale et modifier le code RTL: par exemple, essayez de réduire la logique dans la chaîne critique. Après avoir terminé avec succès la mise en œuvre, nous savons quels éléments où ils sont et comment ils sont connectés.

Ce n'est qu'après que le processus de création d'un fichier de micrologiciel de FPGA binaire est lancé. Il reste à le télécharger sur le vrai fer et à vérifier si cela fonctionne comme prévu. Si des problèmes surviennent à ce stade, cela signifie que la simulation était incomplète et que toutes les erreurs et toutes les lacunes n'ont pas été éliminées à ce stade.

Vous pouvez revenir au stade de la simulation et simuler une situation anormale, et si cela ne fonctionne pas, le mécanisme de débogage est fourni au cas extrême directement dans le matériel de travail. Vous pouvez spécifier quels signaux veulent suivre à temps et que l'environnement de développement générera un schéma d'analyseur logique supplémentaire, qui est placé sur un cristal à côté de votre circuit développé, se connecte aux signaux qui vous intéressent et enregistre leurs valeurs sur temps. Des diagrammes temporaires enregistrés des signaux souhaités peuvent être déchargés sur l'ordinateur et analyser.

Mise en œuvre du projet sur plis

Après avoir travaillé sur un schéma logique à l'aide de la modélisation fonctionnelle, il est nécessaire de le mettre sur le cristal. Ensuite, effectuez la simulation du schéma, en tenant compte des retards réels des éléments obtenus après avoir placé le diagramme sur le cristal. Si nécessaire, ajustez les solutions obtenues. Après cela, le diagramme est chargé dans le plis et son travail sur le stand.

Figure. 82.Étapes de conception de dispositif numérique sur plis

Les principales étapes de la conception sur plis (des conférences):

    Un diagramme de périphérique est en cours de développement et entré dans Xilinx.

    La mise en œuvre est effectuée (diffusion, formation de diagramme en extrayant les éléments de la bibliothèque, l'optimisation, la mise sur un cristal).

    Programmation.

  1. Mémoire associative. Organisation, méthode d'échantillonnage, différences de la mémoire d'adresses.

Accès associatifimplémente la recherche d'informations sur certaines fonctionnalités et non par son emplacement en mémoire (adresse ou lieu de la file d'attente). Dans la version la plus complète, tous les mots stockés en mémoire sont simultanément contrôlés pour la conformité avec la fonctionnalité, par exemple, sur la coïncidence de certains champs de mots (balises - à partir de la balise Word anglais) avec un signe défini par le mot d'entrée ( Adresse de tag). La sortie est émise des mots qui satisfont au panneau. La discipline du mot émission, si la balise est satisfaite de plusieurs mots, ainsi que la discipline de l'enregistrement de nouvelles données peuvent être différentes. La principale zone d'application de la mémoire associative dans les ordinateurs modernes - mise en cache de données.

Dans des périphériques mémorables associatifs, la recherche d'informations est faite en fonction de la fonctionnalité associative enregistrée dans chaque cellule de mémoire.

Un mot qui permet une demande de tous ou uniquement des décharges d'une fonctionnalité associative, l'application du masque vous permet de réduire ou de développer la zone de recherche.

La recherche d'informations est effectuée en parallèle avec toutes les cellules en comparant une requête avec une caractéristique associative de chaque cellule.

Le résultat de la recherche génère un circuit combinant spécial qui produit des signaux notifiant l'absence de mots qui répondent aux conditions de recherche, de la présence d'un seul mot, de la présence de plusieurs mots ayant une telle caractéristique associative.

Après la formation et le traitement des signaux de notification, le circuit de contrôle est lu par les informations nécessaires. Lors de l'enregistrement, une cellule libre se trouve en fonction de la valeur de la décharge de l'emploi, les informations sont enregistrées dans la première cellule trouvée.

Vérification de la décharge de l'emploi est effectuée sur l'installation du masque de décharge N-TH (décharge de l'emploi). Lors de l'utilisation de circuits de combinaison supplémentaires dans la mémoire associative, diverses opérations logiques peuvent être effectuées, déterminant le nombre maximum ou minimum, le nombre de mots ayant la même fonctionnalité associative, etc. Les cellules de mémoire du dispositif de stockage associatif doivent être des éléments de mémoire statique, dans la mémoire associative, l'appel est apporté à toutes les cellules en même temps et ne doit pas être interrompu par les cycles de régénération. La mémoire associative est la plus rapide, mais très coûteuse, car elle nécessite un schéma de comparaison supplémentaire qui vous permet de rechercher chaque cellule de mémoire. Par conséquent, cette mémoire n'est généralement pas utilisée sous forme pure et les dispositifs de mémoire de mémoire de cache à grande vitesse sont généralement effectués comme partiellement associatifs.

DANSentièrement associatif mémoire cache (Mémoire de cache FACM, entièrement associée), chaque cellule stocke des données et dans le champ "Tag" - une adresse physique complète des informations, dont une copie est enregistrée. Avec tous les échanges, l'adresse physique des informations demandées est comparée aux champs "Tag" de toutes les cellules et, lorsqu'ils coïncident, le signal HIT est installé dans n'importe quelle cellule.

Lors de la lecture et de la valeur du signal HIT \u003d 1, les données sont affichées dans le bus de données, s'il n'y a pas de coïncidences (HIT \u003d 0), puis lorsque vous lisez à partir de la mémoire principale, les données avec l'adresse sont placées dans le cellule de mémoire cache gratuite ou nouvellement utilisée.

Lors de l'écriture, les données avec l'adresse sont d'abord, en règle générale, sont placées dans le cache (dans la cellule détectée avec HIT \u003d 1 et gratuit avec HIT \u003d 0). Copier les données dans la mémoire de base est effectuée en exécutant un contrôleur spécial lorsqu'il n'y a pas d'appels de mémoire.

La mémoire du type facm est un appareil très complexe et n'est utilisé que dans des réservoirs bas, principalement dans des applications spéciales. Dans le même temps, ce type de cache offre la plus grande flexibilité fonctionnelle et conflit d'adresses, car toute unité d'information peut être téléchargée sur n'importe quelle cellule de la mémoire cache.

Des conférences:

Appareils mémorables associatifs

Une différence fondamentale est que le système d'échantillonnage de l'information d'entre eux n'est pas effectué à l'adresse unique de la recherche d'informations, mais pour un certain signe, qui fait essentiellement partie des informations de recherche.

Informations

La balise est une caractéristique distinctive, en coïncidence avec laquelle une information va.

Schéma simplifié de la mémoire associative:

Zone de stockage - Mémoire d'adresses avec cellules numérotées, conserve des informations et des étiquettes.

Pour faire appel à la mémoire associative, un échantillon de la balise souhaité est placé sur le registre des Apros. Le schéma de comparaison compare la demande. Il y a une coïncidence sur le registre de coïncidence, où la balise a été coïncidée de la mémoire avec l'échantillon. Les réactions sont possibles (il n'y a pas de coïncidences; il y a au moins une coïncidence - dans ce cas, la cellule trouvée est placée dans le registre de données; coïncidence multiple - la COP devrait prendre une décision que des cellules à obtenir pour le traitement).

Application: base de données, base de connaissances, PC comme cache.

L'article tente de déterminer la composition de la documentation annexée sur les modules numériques développés pour les puces intégrées logiques programmables (FPGS). Cette documentation ci-jointe devrait fournir aux développeurs au consommateur / client pour une utilisation accrue d'une utilisation accrue du module numérique développé dans leurs projets à la phase de conception des dispositifs numériques sur FPGA.

introduction

Ainsi, quel type de documentation de conception devrait demander au développeur si la société ou le client d'entreprise ou un autre développeur sera utilisé dans le futur "Alien" Dispositif développé dans ses projets? Cet article peut servir de «berceau» afin d'initier correctement une tâche technique sur le développement d'un périphérique numérique pour FPGA, puis demander à la documentation de conception du développeur pour un appareil numérique déjà développé. Sur la base de l'expérience précédente de la documentation de conception, l'entreprise ou l'entreprise est utilisée par les normes et documents réglementaires suivants:

  • GOST 2.102-68 ECCD. Types et complétude des documents de conception.
  • GOST 15.101-98. Système de développement et de production pour la production. La procédure d'exécution de travaux de recherche scientifique.
  • GOST R 15.201-20-00. Système de développement et de production pour la production. Production de production et objectifs techniques. La procédure de développement et de production de produits pour la production.

En règle générale, il s'agissait d'un fichier de firmware et d'un programme (description du périphérique numérique sur le VHDL / Verilog ou un ensemble de circuits numériques développés dans l'éditeur de circuit à l'aide d'éléments de bibliothèque de la logique numérique, tels que des déclencheurs, des registres, des compteurs, des décodeurs , etc.) sur CD ou DVD et instructions de programmation. Et c'est tout.

L'auteur, par exemple, est entré en collision avec le problème suivant. Un employé a mis au point un dispositif numérique multi-modulaires complexe. Tous les modules décrits dans la langue VHDL et le cyclogramme du fonctionnement de ces modules et de l'appareil numérique dans son ensemble ont regardé un oscilloscope bon et coûteux. Il ne connaissait pas les fichiers sur le banc d'essai ou ne savait pas s'il faut les écrire, à la manière, les commentaires au projet et les descriptions de module étaient également absentes. La situation peut être encore pire si les modules sont présentés par des circuits numériques développés dans l'éditeur de circuit à l'aide d'éléments de bibliothèque. Voici l'un des principaux défauts: à l'exception du développeur lui-même, il est peu probable que quelqu'un d'autre comprendra cet appareil numérique, en particulier si le projet est multi-modulaire et que la description de chaque module est supérieure à 100 rangées ou plus d'un écran. Donc, si un autre développeur est souhaité, il est nécessaire d'introduire dans un nouveau développement ou un projet qui a déjà développé un dispositif numérique pour FPGA, il est à nouveau nécessaire de passer du temps sur le développement de cet appareil numérique.

Historique des questions de conception pour le plis

Actuellement, le marché de la FPGA est l'un des développements les plus dynamiques. Plis s'applique dans de nombreuses industries. À l'heure actuelle, il n'y a pas non ambiguïté, satisfaisant tous les développeurs de la méthodologie d'obtention de la configuration des FPGS par le modèle fonctionnel de l'appareil au niveau du système. L'approche la plus populaire pour résoudre ce problème est l'utilisation de la technologie IP-CORE (Consommateurs de propriété intellectuelle). Les noyaux IP sont des composants prêts à leur permettre de les inclure facilement dans leur propre projet pour créer un système plus complexe. Cette approche présente un désavantage significatif - la fixation du nuclei IP à une base d'élément. Chaque noyau IP est optimisé pour une série de microchips spécifique d'un fabricant particulier, qui aggrave de manière significative la possibilité de transférer des périphériques déjà créés d'une base d'élément à une autre. La proximité des architectures de la CAD commerciale empêche d'ajouter ses propres modèles fonctionnels d'appareils au niveau du système pour obtenir sur leurs modèles de base de l'appareil au niveau de la vitesse de registre (RTL). Le développement d'un module numérique est effectué sous la forme d'un circuit numérique dessiné dans l'éditeur de circuit à l'aide des éléments de circuit de base intégrés au fabricant de la bibliothèque intégrée du fabricant, tels que des déclencheurs, des décodeurs, des compteurs, des advecteurs, etc.

Une autre approche populaire qui nous permet de passer à partir du modèle fonctionnel au niveau du système au modèle de périphérique de niveau de registre - en appliquant les langues de description du système au niveau du système (langages de conception de niveau système, SLDLS). Ces langues incluent SystemC, Handel-C, VHDL, Verilog, System Verilog. L'avantage principal est l'indépendance de la base matérielle, dans laquelle le dispositif sera mis en œuvre.

Ainsi, d'une part, lors de l'application de la technologie IP-NUCLEI, le développeur de périphérique reçoit une solution qualitative, mais bien attachée à la base matérielle, dans laquelle le périphérique est mis en œuvre. D'autre part, lors de l'application des langues de description du périphérique au niveau du système, la mise en œuvre du périphérique est indépendante du matériel. De ce qui précède, il suit que le partage actuellement pour accélérer la conception de modules numériques dans la langue description de l'équipement et les principales entreprises IP-CORE (Xilinx, Alteral, etc.) et des Développeurs tiers. Lors de l'utilisation de modules tiers numériques, il peut parfois se produire dans l'informativement de la documentation annexée.

Fournir des informations sur le module numérique développé pour FPGA

Selon la méthodologie d'obtention de la configuration FPGA le long du modèle fonctionnel de l'appareil au niveau du système, le développeur peut sélectionner les types de module numérique suivants pour FPGA:

  • Logiciel. - Module numérique développé transmis par le consommateur comme une description dans la langue de description de l'équipement (VHDL, Verilog) ou / et développé dans l'éditeur de traitement de schéma Schématique pour une utilisation supplémentaire dans la synthèse automatisée de circuits logiques et optimisé par des paramètres fonctionnels.
  • Firmware. - Développé par une tierce partie, un module numérique, appelé un noyau IR transmis par le consommateur en tant que circuit logique (liste de circuit) sur la base des éléments logiques du fabricant FPGA et optimisé sur des paramètres fonctionnels et électriques.

Au stade de la documentation en développement, sur la base de l'expérience personnelle, il est nécessaire d'émettre en plus du CD habituel et de la TU effectuée conformément au GOST 15.101, GOST 15.201, GOST 2.102, GOST 2.114, Documentation pour tous types de modèles (système , logique, circuit) créé par les étapes de conception des appareils numériques sur PLIS.

En d'autres termes, la documentation de conception pour le dispositif numérique pour FPGA, à l'exception du fichier de micrologiciel, des instructions de programmation et du projet enregistré sur CD / DVD, devrait également inclure une documentation accompagnée.

Tableau. Liste des documents d'accompagnement

Nom de la section Vue
Logiciel. Firmware.
Général
But et portée À PROPOS DE R
Caractéristiques À PROPOS DE À PROPOS DE
Description des signaux de réinitialisation À PROPOS DE À PROPOS DE
Description des signaux de synchronisation À PROPOS DE À PROPOS DE
Description des interfaces À PROPOS DE R
Diagrammes temporaires R À PROPOS DE
Description des registres de contrôle À PROPOS DE À PROPOS DE
Schéma structurel (fonctionnel) R R
Guide de programmation À PROPOS DE À PROPOS DE
Modèle ou famille Farce,
entreprise de fabrication
R À PROPOS DE
Présentation d'un module numérique
Pour la conception logique sur plis
Modèle RTL À PROPOS DE Pas
Modèle logique Pas À PROPOS DE
Restrictions de projet À PROPOS DE À PROPOS DE

Voici une liste de sections (tableau), qui devraient être incluses dans la documentation du projet de module numérique annexé pour le FPGA. Pour chaque section, les signes de la nécessité d'activer la section dans le document sont affichés:

  • "O" - une section nécessairement fournie;
  • "P" - Recommandé pour la livraison.

Formats de fichier recommandés pour le transfert de documentation d'accompagnement - MS Word, PDF (meilleur format), HTML. Description de la description Langue de l'équipement (VHDL, Verilog) ou / et Développée dans l'éditeur Schématique Schematic Schematic est fournie dans ce formulaire, comme nécessite un logiciel tristes de développement. Une exception peut être une disposition supplémentaire en format graphique (JPEG, BMP) de fichiers de circuit numérique développé dans le processus de schéma de l'éditeur schématique.

Général

Cette section décrit les informations générales sur le module numérique conçu comme une description:

  • circuit fonctionnel et ses blocs composites / pièces;
  • signaux de secours, synchronisation;
  • interfaces utilisées;
  • registres de contrôle;
  • diagramme temporaire;
  • programmation.

But et portée

L'objectif du module numérique, la zone de son application est déterminée.

Caractéristiques

Une description de ses caractéristiques techniques de base, telles que la performance, la consommation d'énergie pour un cristal spécifique de FPGA, le nombre de vannes occupées, le type de cristal utilisé de FPGA a été fourni. De plus, spécifié lors de la mise en place d'un module de CAO numérique et d'un logiciel de FPGA du fabricant utilisé pour la modélisation et la vérification. Pour tous les programmes utilisés, la version et les mises à jour installées sont spécifiées. Une représentation graphique du module numérique est donnée sous la forme d'une "boîte noire" avec la désignation d'entrées / sorties externes et une brève description de leur destination est donnée.

Description des signaux de réinitialisation

Calculez des informations détaillées sur les signaux de réinitialisation:

  • Liste des signaux de décharge externes et internes.
  • Paramètres de temps et signaux de décharge temporaires.
  • Schémas pour la formation de signaux de réinitialisation interne, si tels sont inclus dans le module numérique.
  • Ratios avec d'autres signaux (en particulier avec des signaux de synchronisation).

Description des signaux de synchronisation

Conduit des informations détaillées sur les signaux de synchronisation:

  • description des signaux de synchronisation externes;
  • signaux de synchronisation temporelle;
  • description des signaux de synchronisation internes et des schémas de formation;
  • ratios temporaires entre les signaux de synchronisation provenant de diverses sources;

Description des interfaces

Les caractéristiques de l'utilisation de toutes les interfaces faisant partie du module numérique développé, souhaitable d'organiser l'interaction avec d'autres nœuds du système sur le cristal, sont présentés. De plus, le lien Internet vers la description complète de l'interface standard est fourni ou la description de l'interface elle-même est fournie. Pour le moment, les interfaces à l'AMBA, PLB, autobus WISHBONE sont acceptés comme interfaces unifiées de modules numériques.

Diagrammes temporaires

Informations requises pour organiser l'échange de données via des interfaces et d'autres entrées / sorties de module numérique: représentation graphique des diagrammes temporaires, description des protocoles de transmission de données, exigences relatives aux signaux externes fournis au module numérique (durée, fréquence, etc.) et d'autres informations.

Description des registres de contrôle

Une description de tous les registres de contrôle du module numérique est donné. Une description typique du registre de contrôle comprend le nom du registre, l'adresse du registre dans l'espace d'adresses interne, la valeur initiale après avoir retiré le signal de réinitialisation, le type d'accès (lecture / écriture), la description des champs internes.

Schéma structurel (fonctionnel)

Une image de la structure interne des composés des nœuds / blocs internes principaux du module numérique, ainsi que leur une description de texte courte est donnée. De plus, une description des principaux blocs internes du module numérique est donné. Le présent document a pour objectif de fournir les informations de consommation nécessaires pour comprendre les principes du module numérique.

Le nombre de blocs décrits et la description de la description définit le développeur du module numérique. De préférence, la correspondance du nombre minimum de modules décrits décrits par le nombre d'éléments du circuit de module numérique structurel (fonctionnel).

Une description typique de l'unité intérieure contient:

  • but du bloc;
  • diagramme de blocs structurels (fonctionnel) (si nécessaire);
  • modes et algorithmes de travail;
  • tableaux de travail temporaires;
  • unité de gestion de l'organisation;
  • organisation de la communication avec d'autres blocs;
  • toute autre information.

Guide de programmation

Fournit toutes les informations nécessaires sur le processus de programmation à l'aide d'un fabricant de module numérique CAPR dans les outils de développement et de débogage des logiciels, des bibliothèques de logiciels.

Modèle ou famille Farce, fabricant

Pour le module numérique du micrologiciel indique le fabricant, le modèle ou la famille FPGA FPGA et ses caractéristiques de vitesse. Pour le logiciel du module numérique, des informations sur le nombre de ressources occupées, les exigences relatives à l'UPS utilisés sont données.

Présentation d'un module numérique pour la conception logique

L'article a couvert les difficultés à utiliser le projet "Alien" sur VHDL - une pénurie d'instructions d'orientation appropriées et de règles de rédaction de programme. Des instructions générales sur les noms, les règles "bonnes tonalités" pour la rédaction de programmes et de manuels de synthèse ont également été données. Ces questions devraient être promues autant que possible avec le développeur, si vous envisagez de continuer à développer ou à la mise à niveau par vous-même avant de procéder au développement du modèle RTL du module numérique sur le FPGA. Ceci est particulièrement vrai du logiciel de module numérique logiciel sur PLIS. Dans la même partie de l'article, les exigences générales relatives à l'ensemble du projet du module numérique développé sur FPGA sont décrits. Voici les questions pour lesquelles vous devez faire attention à la préparation d'une tâche technique sur le développement d'un module numérique sur le FPGA et concerne généralement la transmission des résultats des travaux.

Modèle RTL

Le module numérique décrit sur le sous-ensemble synthétisé de la langue Verilog ou de la VHDL ou / et est développé dans l'éditeur de traitement de schéma de schéma Schématique est destiné à être utilisé à la phase de synthèse de la logique Plit. Vient pour logiciel sous la forme d'un projet assemblé d'un module numérique dans le fabricant FPGA CAPR. Pour un module numérique, le modèle du micrologiciel RTL est fourni conformément à un accord distinct.

En plus des fichiers de modèle RTL, sont transmis:

  • Instructions pour utiliser le modèle.
  • Description des blocs de mémoire inclus dans le modèle, y compris le type de mémoire, la taille, le nombre de blocs de mémoire, le nom hiérarchique du bloc de mémoire.
  • Description du processus de création de cœurs prêts à l'emploi lors de l'utilisation de programmes pour les créer (par exemple, CoreGenerator pour Xilinx ISE). En l'absence de descriptions, les restrictions peuvent survenir pour la ré-conception et la demande en raison de la dépendance à la technologie et au fabricant.
  • Dans le cas de l'utilisation du microprocesseur du fabricant (par exemple, d'Altera - Processeur NIOS; à partir de microprocrocesseurs Xilinx - micro-éclat, microprocesseurs PowerPC, une description du processeur de configuration du noyau de processeur et de sa périphérie est requise.
  • Ensembles de banc de test (banc d'essai) pour vérification et modélisation d'un module numérique écrit dans Verilog ou / et VHDL, ou / et System Verilog.
  • Toute autre information supplémentaire.

Modèle logique

Le modèle est une liste de circuit décrite à l'aide des langues Verilog ou VHDL de la base de la bibliothèque du fabricant FPGA et est livré avec un micrologiciel du module numérique.

En plus des fichiers de modèle logique, sont transmis:

  • Instructions pour utiliser ce modèle.
  • Ensembles de banc de test (banc d'essai) pour vérification et modélisation d'un module numérique écrit dans Verilog ou / et VHDL, ou / et System Verilog.
  • Guide pour travailler avec un ensemble de tests pour la modélisation et la vérification d'un module numérique.
  • Toute autre information supplémentaire.

Restrictions de projet

Les restrictions de projet sont fournies en tant que fichier avec une description d'un ensemble de restrictions imposées au module numérique lorsqu'il est allumé sur un modèle logique du système sur un cristal. Cet ensemble comprend des limitations pour les signaux de synchronisation (contraintes d'horloge), les délais (limites), les restrictions sur l'interaction d'un module numérique avec d'autres modules et les conditions de fonctionnement du module numérique. Le format Description des restrictions de conception des contraintes de conception de synopsis (SDC) ou de format pour le fabricant de CAO FPGA a été préférée.

Exemple de liste de limites pour les signaux de synchronisation:

  • diagramme temporaire (forme d'onde d'horloge);
  • stabilité de la fréquence d'horloge (gigue);
  • changer la phase de fréquence d'horloge;
  • temps de transition des temps de transition;
  • diagrammes temporaires de signaux de synchronisation (formes d'onde d'horloge générées);
  • toute autre information supplémentaire.

Un ensemble de limitations pour les signaux de synchronisation est requis pour les modules logiciels et le micrologiciel.

Une liste exemplaire de restrictions temporaires:

  • heures d'arrivée aux entrées (heures d'arrivée aux intrants);
  • fois requis aux sorties (temps requis aux sorties);
  • plusieurs chemins (chemins multi-cycle);
  • faux chemins (faux chemins);
  • durée du temps de commutation du signal de données (temps de transition du signal de données);
  • toute autre information supplémentaire.

Conclusion

La composition de la documentation annexée sur les modules numériques développés pour FPGA est fournie par accord entre le consommateur et le développeur. Le plus souvent, le développeur fournit simplement un module numérique décrit dans la langue VHDL, Verilog, Verilog Systemog et / ou conçu dans l'éditeur de circuit. En ce qui concerne la documentation supplémentaire, la réponse du développeur se produit le plus souvent: «Le module numérique fonctionne, alors prenez et utilisez. Dans la description du schéma dans la langue d'instrument, rien n'est difficile: vous le comprenez. "

De l'avis de l'auteur, il est possible de traiter quoi que ce soit, tout dépend de la volonté et le temps passé et le temps passé pour comprendre le projet sur le module numérique déjà développé, directement proportionnel à l'expérience de la description de la l' équipement en VHDL, Verilog et connaissances numériques et des équipements de circuit à microprocesseur. Cela peut être évité si initialement convenu avec le promoteur au sujet de la composition de la documentation qui l'accompagne, l'utilisation d'un module numérique dans son projet devient plus facile, et sa mise en œuvre se produira plus rapidement.

En résumé, l'auteur tient à souligner que lors de la formulation de la tâche pour le développement d'un dispositif numérique sur FPGA devrait suivre les recommandations données dans l'article, puis les problèmes de réutilisation ou pendant les mises à niveau de l'appareil numérique précédemment développé ne surgir.

Littérature

  1. Denisov A. Plusieurs conseils pour la conception de dispositifs numériques sur VHDL pour FPGA // Composants et technologies. 2009. 12 №.
  2. GOST 2,102 à 68 PEPE. Types et complétude des documents de conception.
  3. GOST 2.114-95 ECCD. Conditions techniques.
  4. GOST 15.101-98. Système de développement et de production pour la production. La procédure de mise en œuvre de la recherche et de Telski travaille.
  5. GOST R 15.201-20-00. Système de développement et de production pour la production. Production de production et objectifs techniques. La procédure de développement et de production de produits pour la production.

Alors qu'il y avait des vacances, a fait un petit projet sur Verilog, que j'ai longtemps voulu essayer.

L'essence du projet est la suivante: FPGA est connecté à grande vitesse (relativement bien sûr) ADC avec deux canaux et une interface parallèle (14-16 bits par canal). FPGA lit les données de l'ADC et des plis dans le tampon (son brame de mémoire interne). Lorsque le tampon est rempli, la lecture des arrêts et le périphérique externe (microcontrôleur) peut lire les données de la mémoire tampon via l'interface SPI. Vous pouvez également configurer certains paramètres par SPI (cela sera écrit dans le prochain message).

Test de projet (image cliquable).

résultat de synthèse pour CYCLONE IVE

Le résultat que j'ai synthétisé dans Quartus II, pour la FPGA de la famille Cyclone Ive (EP4CE6E22A7). C'est l'un des plus faciles et plus FPGA à faible coût dans l'enceinte de QFP144 sur 6272 éléments logiques. Le microcircuit a une mémoire de 30k * 9 bits. Pins sur mesure - 92.

microcircuit EP4CE6E22A7
éléments logiques - 301 (5%)
pins - 41 (45%)
mémoire - 65536 bits (24%)
fréquence pour le pire des cas (125 s) - 151 MHz.

Mémoire de 8 Ko, c'est le tampon réel où les données sont enregistrées. Avec deux canaux de 16 bits, 32 bits sur le compte à rebours et 2048 références. J'ai décidé que cela suffit, bien que le tampon puisse être étendu au moins sur tout le volume.

La fréquence est tout à fait appropriée, je m'attendais à ce qu'il y aurait une fréquence d'horloge de 50 MHz et 25 MHz ADC. C'est-à-dire qu'un stock à trois voies de fréquence est obtenu.

Le nombre d'éléments logiques est complètement légèrement pour un tel FPGA, c'est-à-dire Si vous le souhaitez, vous pouvez faire beaucoup de choses même là-bas, surtout que les broches restent jusqu'à 51.

Il y a un nouveau cyclone familial 10.

Résultat de la synthèse pour le cyclone 10

Choisissez une puce 10CL006YE144G8G. Il a autant d'éléments logiques (6272) que l'option sur le cyclone 4 et la même mémoire (30K x 9). Le boîtier est le même, QFP144, des broches personnalisées encore moins - 89.

puce 10cl006ye144c8g.
Éléments logiques - 289 (5%)
pINS - 41 (46%)
mémoire - 65536 bits (24%)
fréquence pour le pire des cas (85 s) - 145,5 MHz.

Il est curieux que le projet soit devenu plus compact dans des éléments logiques. C'est-à-dire que la même capacité de la logique dans le cyclone 10, un projet plus complexe va correspondre. Tout le reste est à peu près au même niveau.

Une question raisonnable se pose: est-il possible d'enregistrer, mettre un autre FPGA ou CPLD?

Essayons FPGA MAX10.

Résultat de synthèse pour max 10

Ici, le lecteur (s'il est dans le sujet) peut exclamer: Non, tout est faux! La famille Max est CPLD, pas FPGA et confondre ces concepts - flagrant non professionnalisme!

Cependant, par les efforts des spécialistes du marketing d'Intel (tout est conscient que le discours sur les chips Intel?) La famille Max10 s'est transformée en FPGA, bien qu'elle dispose d'une mémoire de configuration interne non volatile, comme n'importe quel CPLD.

Alors, choisissez une puce, par exemple, 10M02SCE144A7G (2304 LE, 101 GPIO, 12KX9 BRAM), boîtier QFP144.

chip 10m02SCE144A7G.
Éléments logiques - 298 (13%)
pINS - 41 (41%)
mémoire - 65536 bits (59%)
fréquence pour le pire des cas (125 s) - 153 MHz.

Nous voyons que les indicateurs absolus sont restés pratiquement les mêmes, seul le degré de remplissage de cristal est augmenté, ce qui est compréhensible - 2304le contre 6272 LE.

Peut-on utiliser Max II?

Maintenant, la question est la suivante: est-il possible d'utiliser un CPLD très bon marché, tel que Max II? Tout est plus compliqué ici. Ils n'ont pas de mémoire Bram, c'est-à-dire Besoin d'être aussi un SRAM rapide externe.

Pour connecter le SRAM, vous aurez besoin d'une logique supplémentaire, bien sûr. Si nous utilisons la mémoire 4K x 16, nous avons besoin de 16 goupilles supplémentaires pour les données, 12 pour l'adresse et 3 pour contrôler (/ cs, / nous, / oe), seulement 31 goupilles supplémentaires.

La logique augmentera également de taille. En ce qui est précis, il est difficile de dire, mais dans le CPLD sur le 240 le, il ne conviendra pas initialement et, à 570, peut-être, il ira.

Sélectionnez CPLD EPM570 dans le boîtier QFP100. Nous n'avons besoin que de 72 broches, le logement contient 76 goupilles pour GPIO, c'est-à-dire Cela devrait suffire à tout, mais il y a déjà très peu de place pour l'expansion.

Avantages d'une telle solution: peut-être un prix inférieur (même en tenant compte de la puce SRAM supplémentaire), des inconvénients: une grande complexité du circuit et de la zone de la carte.

Prix \u200b\u200bde la question

C'est ce que j'ai trouvé avec Efind. Les microcirices sont peu nombreux, mais le chiffre et la lettre à la fin sont l'indice de vitesse et la plage de température (commerciale). Depuis que nous avons une fréquence de trois fois de fréquence, ces chiffres ne sont absolument pas importants pour nous.

EP4CE6E22C8N - 456.55 P (promelectronique, EKB, ROS)
10CL006YE144C - 754.71 (cinquième élément, SPB, Vente en gros)
10M02SCE144C8G - 456 P (Elitan, EKB, Grossiste)
EPM570F100C5N - 368 P (Hightec, SPB) + Mémoire (CY7C1021DV33-10ZSXI, SRAM 1MBIT 10NS 44TSOP) - 92,51 p (promelectronique, EKB, ROS)

Bien sûr, vous pouvez trouver et moins cher, ce sont juste des prix de détail dans le magasin, mais le ratio sera à peu près la même chose.

On peut voir que l'option avec CPLD ne gagne pas au prix, tout en ayant de nombreux défauts. Le reste des options est approximativement égal, sauf que le cyclone 10 reste un peu plus cher et peu de gens ont en stock. Cependant, il s'agit d'une famille complètement nouvelle, jusqu'à présent, tous les distributeurs ne l'ont pas apporté.

Personnellement, j'ai le plus comme l'option sur max 10. Il a un avantage: vous n'avez pas besoin de télécharger la configuration FPGA lors du démarrage. Dans la variante sur Cyclone 4, vous devrez télécharger la configuration FPGA, qui peut être effectuée soit à l'aide de la puce de mémoire de configuration supplémentaire, soit à l'aide d'un microcontrôleur. Il y a une autre troisième option: Flash via JTAG et ne jamais retirer la puissance de la puce. J'ai entendu dire que quelqu'un l'a fait, je ne sais pas, c'est une blague ou non, mais je ne ferai pas exactement.

Toutefois, l'option avec le microcontrôleur du microcontrôleur 4 à travers le microcontrôleur: la possibilité de mettre à jour le micrologiciel FPGA via des interfaces utilisateur: USB, Ethernet, etc.

Une autre option non provisoire est possible: ne pas mettre un microcontrôleur du tout, mais pour clignoter n'importe quel processeur intégré en FPGA. Mais ce n'est pas une très bonne option, éventuellement parce que Dans le même temps, il aura certainement besoin d'une ROM externe et de RAM, ainsi que au moins un pont USB. Il n'est pas nécessaire de refuser cette option, bien sûr, mais il me semble plus compliqué dans la mise en œuvre qu'avec un microcontrôleur.

À propos des fonctions de ce micrologiciel effectue, je vais écrire dans le prochain message.

introduction

LanguageVHDL est en fait une norme internationale dans le domaine de l'automatisation des conceptions du système numérique, il s'agit de la langue d'entrée de nombreux systèmes de conception automatisés modernes (CAPR) des circuits intégrés logiques personnalisés et programmables et programmables. VHDL est conçu principalement pour la description précise des systèmes conçus et de sa simulation aux étapes initiales de la conception - algorithmique et logique. En utilisant VHDL, vous pouvez simuler les circuits électroniques en tenant compte des retards en temps réel.

Récemment, les systèmes de synthèse de synthèse de cette langue sont développés très avec succès. Par exemple, à l'aide de Capr Xilinx Foundation Series 2.1i, vous pouvez simuler la description originale du diagramme dans la langue VHDL, puis synthétiser le schéma et obtenir le fichier de configuration (configuration) de la puce de type FPGA Xilinx. L'utilisation de CAPR Max + Plusieurs vous permet de résoudre des problèmes similaires pour les microcircuits programmables produits par Altera.

VHDL est une langue puissante, il vous permet de décrire le comportement, c'est-à-dire Algorithmes pour le fonctionnement des systèmes numériques, ainsi qu'une description hiérarchique de structure fonctionnelle des systèmes, dispose d'un moyen de décrire des processus asynchrones parallèles, des structures régulières (systoliques) et, en même temps, contient tous les signes d'un langage de programmation de haut niveau - permet. Vous devez créer vos types de données, dispose d'une vaste gamme d'opérations arithmétiques et logiques, etc.

3 4
Le langage VHDL est en développement, les conférences internationales sont dédiées à lui et des revues scientifiques sont émises dans lesquelles des problèmes d'utilisation de VHDL sont étudiés. Il est devenu la langue du développement de projets internationaux, y compris ceux mis en œuvre à l'aide de l'Internet ordinaire mondial. La connaissance de cette langue est nécessaire pour des travaux efficaces sur la création des équipements électroniques les plus divers sur la base élémentaire moderne de circuits intégrés super-élevés.

Travail de laboratoire numéro 1

FPGA Express Debugger

1. Description générale

1.1. L'objectif du travail est d'obtenir les compétences nécessaires pour travailler avec le débogueur FPGA Express.

Les travaux de laboratoire sont constitués de tâches domestiques et de laboratoire. Les devoirs se situent dans le développement indépendant des opportunités les plus faciles du débogueur et se familiarisent dans son but. La tâche de laboratoire inclut la saisie de votre version du programme écrit sur VHDL et de maîtriser les principes de travailler avec le débogueur FPGA Express sur son exemple.

Selon le guide méthodologique, il est familier avec la nomination et les capacités du débogueur des modèles d'appareils numériques dans la langue VHDL.

3. partie théorique

FPGA Express diffuse et optimise les descriptions de VHDL dans un format interne équivalent au niveau d'éléments logiques primitifs. Ce format est ensuite compilé dans la technologie FPGA.

Pour travailler avec VHDL, vous devez vous familiariser avec les concepts suivants:

Description du matériel Langues.

En utilisant FPGA Express.

Modèle de processus de conception.

Le département de la défense des États-Unis en 1982 s'est développé VHSIC HDL(VHDL) dans le cadre du programme de développement IP ultra-haut débit (VHSIC). VHDL décrit le comportement, les fonctions, les entrées et les sorties de circuit numérique. VHDL Dans le style et la syntaxe sont similaires aux langages de programmation modernes, cependant, il comprend de nombreuses structures matérielles spécifiques. FPGA Express lit et analyse la syntaxe VHDL prise en charge.

Description du matériel Langues

Description du matériel Langues (HDL) sont utilisées pour décrire l'architecture et le comportement des systèmes électroniques distincts. Ces langues sont conçues pour créer des projets complexes. Une analogie historique est souvent réalisée sur la manière dont les descriptions de la description peuvent être appelées, à partir de codes de machine (transistors et soudure) à assemblageblas (listes de circuit) et à des langues de haut niveau (HDL).

Les systèmes orientés par HDL sont utiles lors du développement de grands projets, lorsque plusieurs développeurs ou même plusieurs commandes fonctionnent ensemble. HDL fournit une programmation structurelle. Une fois que les principales solutions architecturales sont adoptées et que les principales composantes et relations entre elles sont identifiées, des travaux sur les sous-projets peuvent survenir de manière totalement indépendante.

Applications typiques HDL.

5 6
HDL prennent généralement en charge des descriptions mixtes dans lesquelles des conceptions structurelles ou des listes de chaînes peuvent être connectées aux descriptions algorithmiques et aux descriptions de comportement. S'il existe de telles descriptions de niveau mixte, il est possible d'afficher l'architecture du système au plus haut niveau d'abstraction; Le projet est ensuite détaillé en augmentant pour l'exécution privée au niveau des composants. Alternativement, une description du projet HDL dans FPGA Express est utilisée, puis rend le compilateur synthétisant automatiquement l'exécution au niveau des primitives logiques.

Avantages de HDL.

La méthodologie du projet utilisant HDL présente plusieurs avantages fondamentaux par rapport à la méthodologie de conception de la composante traditionnelle. Parmi ces avantages, il convient de noter comme suit:

Vous pouvez beaucoup vérifier la fonctionnalité du projet et la modifier immédiatement. La modélisation du projet à un tel sommet avant la diffusion à la version élémentaire vous permet de tester de nombreuses solutions d'architecture et de conception.

FPGA Express fournit une synthèse logique et une optimisation, il est donc possible de convertir automatiquement une description de VHDL au niveau élémentaire pour la technologie sélectionnée. Cette méthodologie élimine les goulots d'étranglement du niveau de composant et réduit le temps de conception, ainsi que le nombre d'erreurs effectuées par diffusion manuelle du programme VHDL dans des éléments spécifiques. Passant par optimisation logique FPGA Express Il est possible de convertir automatiquement un projet synthétisé en schéma le plus petit et de défi. De plus, il est autorisé à attribuer des informations obtenues dans la synthèse et l'optimisation des schémas, à nouveau à la description existante de la VHDL, ce qui conduit à un ajustement plus précis des solutions architecturales.

Les descriptions de HDL fournissent une documentation de projet technologiquement indépendante et ses fonctionnalités. Ces programmes sont lus et compris beaucoup plus facilement que les listes de chaînes ou de programmes. En raison du fait que la description initiale du projet HDL est technologiquement indépendante, elle est autorisée à l'utiliser pour générer des projets avec diverses technologies sans affecter l'original.

VHDL, comme la plupart des langues de haut niveau, produisent durement chèque de type. Les composants dont le type est déclaré un signal à quatre lits ne peut pas être connecté à un signal à trois ou cinq lits; Un tel désaccord entraînera une erreur de compilation. Si la plage de variables est définie de 1 à 15, l'erreur se produira lorsque la valeur 0 est attribuée. L'utilisation incorrecte des types est la principale source d'erreurs dans l'élaboration des descriptions. Type Vérification détecte de telles erreurs avant même de générer le projet.

Débogage dans FPGA Express

Pour le débogage, vous devez mettre en œuvre les actions suivantes:

7 8
Créez une description du périphérique conçu (composant) dans la langue VHDL dans n'importe quel éditeur de texte. Dans ce cas, la condition préalable est que l'extension de ce fichier doit être: * .vhd. (Par exemple, pour créer un fichier, vous pouvez utiliser l'éditeur de commander Norton intégré à l'aide de la combinaison de touches SHIFT-F4.)

2. Connectez le fichier créé au projet dans FPGA Express.

Pour connecter un fichier au projet, vous devez créer un projet lui-même:

Sélectionnez le menu Fichier / Nouveau.

Entrez le nom du projet.

Lorsque vous demandez aux fichiers de projet, vous devez rechercher le ou les fichiers créé en 1 point avec une description déjà prête du périphérique (composant).

Lorsque le projet est correctement connecté (s), une fenêtre apparaît, divisée en deux parties: des sources de conception et des copeaux (Fig. 1). Lorsque des sources de conception - Fenêtre pour fonctionner avec des fichiers de projet, des puces - Fenêtre pour fonctionner avec des appareils synthétisés.


Fig. 1. Fenêtre de projet

Pour faciliter le fonctionnement avec le ou les fichiers du projet dans la fenêtre Sources de conception, le (s) nom (s) est affiché, l'emplacement (s) du ou des fichiers (s), ainsi que la présence d'erreurs syntaxiques et lexicales ou inexactitudes.

Lorsque vous planifiez le curseur et appuyez simultanément sur le bouton droit de la souris sur l'un des noms de cette fenêtre, le menu contextuel suivant apparaît (Fig. 2):

Mise à jour du projet - Analyse de projet pour des inexactitudes ou des erreurs.

Le projet de mise à jour de la force est une analyse complète de tous les projets Falats pour des erreurs ou des inexactitudes.

Créer une implémentation - Création d'un modèle de périphérique.

Modifier le fichier - Modification du fichier.

Identifier les sources - Connexion d'un fichier au projet.

Nouvelle bibliothèque - Connexion de votre propre bibliothèque au projet.

Rapport de projet - Rapport de projet (brève description sous la forme d'un fichier texte externe).

Supprimer - Supprimer un fichier ou une bibliothèque du projet.


Comme dans toutes les applications avec une interface amicale, chaque élément de menu contextuel est dupliqué par un simple menu et des boutons du panneau.
Fig.3. Partie du fichier avec une erreur

L'édition de fichiers survient de la même manière aux éditeurs de texte et la seule différence est que suppression de caractères ou de lignes ne peut être effectuée qu'à l'aide de la clé d'espace arrière.

Après la réparation de rechercher d'autres erreurs existantes dans cette fenêtre, vous devez appuyer sur le bouton droit de la souris et sélectionner Analyser l'élément de fichier dans le menu contextuel actif (rechercher des inexactuciements ou des erreurs). Ensuite après avoir réussi l'édition est souhaitable d'enregistrer les modifications de courant.

S'il n'y a pas d'erreur, le fichier correspondant aura sa propre version synthétisée (c'est-à-dire que le modèle de périphérique décrit dans le format interne FPGA Express est illustré à la Fig. 4).

Fig.4. Version synthétisée du périphérique de codeur

La version synthétisée est un lien intermédiaire pour créer avec succès un modèle de périphérique numérique.

4. Procédures

4.1 Utilisation de tout éditeur de texte, composez une description d'un périphérique numérique en fonction de votre option. Pour prévenir les erreurs, il est nécessaire que le fichier ait une extension * .vhd.

4.2 Créez un projet dans le débogueur FPGA Express et connectez-le un fichier déposé.

4.3 Après la description correcte du fichier de description, créez un rapport sur votre projet à l'aide de FPGA Express.

Nom;

But du travail;

Matériel usagé;

Partie théorique;

Description de la séquence d'actions lors du débogage de votre option;

Impression du rapport de projet;

1. Quelle est l'application FPGA Express et quelles sont ses fonctions principales?

2. Quels sont vos avantages et vos inconvénients de la langue HDL comme langue de la description du matériel?

3. Quelle est la séquence des actions lors du débogage des descriptions VHDL de votre appareil?

11 12

Numéro de travail de laboratoire 2

Opportunités de base de débogueur de FPGA Express de base

1. Description générale

1.1. Le travail est d'étudier les capacités de la synthèse et de l'optimisation du débogueur FPGA Express.

Les travaux de laboratoire sont constitués de tâches domestiques et de laboratoire. Les devoirs sont de répéter les principes de débogage des descriptions de VHDL. La tâche de laboratoire inclut la saisie de votre mode de réalisation d'un programme écrit dans VHDL et étudie les principes de synthèse et d'optimiser le dispositif conçu à l'aide du débogueur FPGA Express.

1.3. Matériel usagé

Pour effectuer un travail de laboratoire, un PEVM de type PC IBM est utilisé, un moniteur de couleur avec un adaptateur graphique VGA et supérieur à l'imprimante.

2. Devoirs et directives pour sa mise en œuvre

Selon le guide méthodologique, il connaît et répète la destination et la possibilité de débogger modèles d'appareils numériques dans la langue VHDL.

3. partie théorique

Méthodologie de conception

En figue. 5 montre une procédure de conception typique utilisant FPGA Express et VHDL Simulator. Chaque étape d'un tel modèle de conception est décrite en détail.



Figure. 5. Conception structurelle des étapes de conception

13 14
1. Enregistrez la description du projet dans la langue VHDL. Cette description peut être une combinaison d'éléments structurels et fonctionnels. Cette description est utilisée par les simulateurs FPGA Express et Synopsys VHDL.

2. Fournir des pilotes de test de langage VHDL pour le simulateur. Les pilotes fournissent un vecteur de test pour la modélisation et la collecte de la production.

3. Modélisation du projet à l'aide du simulateur VHDL. Vérifiez l'exactitude de la description du projet.

4. Utilisation de FPGA Express pour synthétiser et optimiser la description du projet VHDL à la liste élémentaire des chaînes. FPGA Express génère des listes de chaînes optimisées qui répondent aux délais de l'architecture de FPGA sélectionnée.

5. À l'aide du système de conception FPGA (Conception Manager) pour communiquer une version technologique spécifique FPGA avec un simulateur VHDL. Le système de conception comprend des modèles de simulation et des interfaces nécessaires à la conception de bout en bout.

6. Modélisation d'une version de processus spécifique du projet à l'aide du simulateur VHDL. Il est permis d'utiliser les pilotes de modélisation VHDL d'origine du paragraphe 2, car les définitions de modules et de ports sont enregistrées dans le processus de transmission et d'optimisation.

7. Comparaison de la sortie de modélisation au niveau élémentaire (clause 6) avec la sortie de la modélisation de la description originale de VHDL (clause 3) pour vérifier que l'exécution est correcte.

Hiérarchie du projet

FPGA Express prend en charge les limites hiérarchiques définies lors de l'utilisation des conceptions structurelles structurelles VHDL. Ces frontières conduisent à deux résultats principaux:

1. Chaque objet de projet défini dans la description VHDL est synthétisé séparément et maintenu en tant que projet indépendant. Dans le même temps, des restrictions de projet sont prises en compte et chaque objet peut être optimisé séparément dans FPGA Express.

2. Les implémentations de composants à l'intérieur des descriptions de VHDL sont prises en charge lors de l'entrée. Le nom de la mise en œuvre affectée à chaque objet utilisateur est enregistré à l'exécution du niveau d'élément.

Noter. FPGA Express ne prend pas en charge et ne crée pas une hiérarchie automatiquement d'autres structures VHDL non structurées, telles que des blocs, des processus, des cycles, des fonctions et des procédures. Ces éléments de description VHDL sont diffusés dans le contexte de leurs projets. Après avoir lu le projet VHDL, vous pouvez regrouper la logique du processus, des fonctionnalités ou des procédures à l'intérieur de la FPGA Express (Fenêtre de mise en œuvre).

Le choix des frontières hiérarchiques a un impact significatif sur la qualité du projet synthétisé. Avec FPGA Express, vous pouvez optimiser le projet, en conservant ses frontières hiérarchiques. FPGA Express optimise uniquement partiellement la logique sur les modules hiérarchiques. L'optimisation complète est possible dans ces parties de la hiérarchie de projet, qui sont compressées dans FPGA Express.

Un exemple de structure hiérarchique d'un dispositif complexe est illustré à la Fig. 6

Figure. 6. Structure hiérarchique

Types de données

Dans VHDL, vous devez affecter le type de tous les ports, signaux et variables. Le type de données d'objet est déterminé par l'opération qui peut être assignée. Par exemple, l'opérateur et est déterminé pour les objets de type Bit,mais pas pour les objets d'objet Entier. Les types de données sont importants et dans la synthèse du projet. Le type de données d'objet détermine sa taille (largeur dans les bits) et son organisation de bits. La sélection correcte des types de données améliore considérablement la qualité du projet et aide à minimiser le nombre d'erreurs.

Restrictions de projet

Il est nécessaire de décrire les limitations qualitatives du module de projet à l'intérieur de la fenêtre de mise en œuvre FPGA Express.

Sélectionnez un registre

La mise en place de registres et de tacts est une solution architecturale très importante. Il existe deux façons de définir des registres de votre description VHDL. Chacune de ces méthodes présente certains avantages:

1. Mettre en œuvre des registres directement dans la description de la VHDL en sélectionnant n'importe quel élément souhaité de la bibliothèque FPGA. Les régimes de billetterie peuvent être une complexité arbitraire. Sélectionne l'architecture basée sur des déclencheurs ou des loquets. Les principaux inconvénients de cette approche sont les suivants:

La description de la VHDL est maintenant liée à une technologie spécifique, car vous avez choisi des éléments structurels de la bibliothèque technologique. Cependant, il est possible d'isoler cette section du projet sous la forme d'un objet distinct, qui sera ensuite associé au reste du projet.

Le programme est écrit plus difficile.

15 16
2. Utilisez des structures siet attendez.Apporter la gâchette et les verrous de la description. Les avantages de cette approche sont directement opposés aux lacunes de la précédente. Lorsque vous utilisez une description logique du registre, le programme VHDL devient technologiquement indépendant et plus facile à écrire. Cette méthode permet à FPGA Express de choisir le type de composant décrit en fonction des limitations. Ainsi, si une composante spécifique est nécessaire, sa mise en œuvre doit être utilisée. Cependant, certains types de registres et de loquets ne peuvent pas être décrits logiquement.

Projets asynchrones

Il est possible d'utiliser FPGA Express pour construire des projets asynchrones avec des impulsions de synchronisation multiples et contrôlées. Toutefois, bien que ces projets soient logiquement (statistiquement) corrects, ils peuvent être incorrectement simulés ou opérant en relation avec les termes du concours.

Structures de langue

Une autre composante des politiques de synthèse VHDL est un ensemble de conceptions décrivant le projet, ils définissent leur architecture et donnent des résultats réguliers. Les registres sont mis en œuvre à l'aide de structures de composants.

Travail de laboratoire numéro 3

Modèles VHDL simulateur ModèlesIm

1. Description générale

1.1. Le travail est de se familiariser avec les modèles Simulator VHDL de Modelim.

Les travaux de laboratoire sont constitués de tâches domestiques et de laboratoire. Les devoirs sont de répéter les principes de débogage, la synthèse et l'optimisation des descriptions de VHDL à l'aide de FPGA Express Debugger. La tâche de laboratoire inclut la saisie d'un exemple de version du programme écrit sur VHDL et de la modélisation et de l'analyse de votre appareil à l'aide du simulateur de modèlesIm.

1.3. Matériel usagé

Pour effectuer un travail de laboratoire, un PEVM de type PC IBM est utilisé, un moniteur de couleur avec un adaptateur graphique VGA et supérieur à l'imprimante.

2. Devoirs et directives pour sa mise en œuvre

Selon le guide méthodologique, il est familier avec et répéter la destination et toutes les caractéristiques principales du débogueur des modèles d'appareils numériques dans la langue VHDL.

3. partie théorique

21 22
Modelim est un système de simulation qui vous permet de simuler des descriptions présentées dans les langages VHDL et HDL. Dans ce cas, une condition préalable à une modélisation simple est la présence d'une description du modèle de modèle actif, c'est-à-dire Au cours d'une certaine période de temps à l'entrée et, en conséquence, à la sortie de ce modèle, des modifications des états logiques devraient se produire. Par exemple: il existe une description de l'élément élémentaire du lecteur (Fig. 10).

Figure. 10. Schéma d'appareil numérique actif

En plus de décrire la structure et la fonction de l'élément lui-même, il est nécessaire de créer un dispositif supplémentaire générant une séquence spécifique d'états logiques d'entrées (éventuellement la partie d'entrée de la table de vérité) de l'élément de lecteur.

Modélisation dans les modèlesIm

En l'absence d'erreurs sur les étapes de connexion de fichier avec le périphérique actif source, le processus de modélisation peut être démarré.

Selon les objectifs de modélisation du système de modèlesIm, il est fourni: un convoi pour la discrétion temporaire de la modélisation, ainsi que la possibilité d'observation directe dans presque tous les processus clés survenant dans l'appareil (ce dernier sera pris en compte dans le prochain laboratoire. travail).

Considérez les moyens de contrôler la modélisation. En ce sens, pour un contrôle total sur le processus de modélisation, le menu principal et les options sont nécessaires. Tous les éléments sont conçus pour contrôler le menu d'exécution et dans le menu Options - l'élément Simuler les options (Installation des paramètres de modélisation privés).

Lorsque vous activez l'élément d'options Simuler, le panneau de saisie du paramètre de modélisation apparaît (Figure 14).

Ce panneau contient trois onglets:

Vsim - Modélisation directe des paramètres. Les paramètres suivants sont installés ici:

Longueur d'exécution par défaut - Réglage de l'échantillonnage temporel minimum du processus de simulation.

27 28
Limite d'itération - Durée maximale de l'itération.

Supprimer les avertissements - éteindre / transformer le système de réaction pour des avertissements associés à divers types d'inexactitudes.

Organisation de la force par défaut - Réglage de la modélisation du processus de modélisation (gel / lecteur) / dépôt (entièrement sous contrôle)).

Radix par défaut est la vue signal par défaut (symbolique / binaire / binaire) / octale (octale) / décimale (décimale) / hexagonale (hexadécimale)).

Figure 14 - Simuler le panneau d'options

Assesystème d'action système sur diverses erreurs (Fig. 15):

distinguer.- casser la modélisation. (Remarque (commentaire) / AVERTISSEMENT (ERREUR)).

Ignorer les assertions pour - définir les limites du système de protection de défense. (Remarque / Commentaire) / AVERTISSEMENT (Incacacité) / Erreur (- Définit les paramètres de sortie du fichier source dans la fenêtre d'erreur source) / échec ("échec")).

actions du système


4. Procédures

5. Instructions

Partie théorique;

Description de la séquence d'actions avec des descriptions d'installation de l'appareil pour la modélisation;

Conclusions sur le travail effectué.

5.2. Questions de contrôle des travaux de laboratoire

1. Quelle est la nécessité d'utiliser des systèmes de modélisation de modèles similaires.

2. Quelles sont les lacunes du système, le cas échéant?

3. Quelle est votre vision de l'application du système de modèles?

29 30

Travail de laboratoire numéro 4

Modèles de simulateur

1. Description générale

1.1. Le travail est d'obtenir des compétences pour simuler les périphériques de conception du système de modèlesIm.

Les travaux de laboratoire sont constitués de tâches domestiques et de laboratoire. Les devoirs sont de répéter les principes de travailler avec ModelSim Simulator, maîtrisé dans les travaux de laboratoire précédents. La tâche de laboratoire consiste à connecter votre version du programme écrit sur VHDL et à effectuer la modélisation complète et à analyser le périphérique conçu à l'aide de Modelim.

1.3. Matériel usagé

Pour effectuer un travail de laboratoire, un PEVM de type PC IBM est utilisé, un moniteur de couleur avec un adaptateur graphique VGA et supérieur à l'imprimante.

2. Devoirs et directives pour sa mise en œuvre

Répétez le matériel maîtrisé dans les classes précédentes.

3. partie théorique


et la sortie) / signaux internes (signaux internes)).

Pour ce faire, dans Modelim, un système d'informations et de fenêtres d'informations fonctionnelles a été créé (la vue principale du menu). L'état principal de toutes les fenêtres est le fichier source correctement connecté avec une description VHDL du périphérique simulé.

Considérez les principes de travailler avec cela:

1. Source - Fenêtre avec un fichier VHDL source (Fig. 16). Vous permet d'installer le point d'arrêt (pour cela, vous devez appuyer sur le bouton gauche de la souris sur le numéro de ligne). Pour modifier la fenêtre Contenu, vous devez activer le fichier Select Source ... Menu de fichier principal (modifier le fichier source ne peut figurer que sur le fichier connecté au projet) ou double-cliquer sur le bouton gauche de la souris dans la fenêtre du rapport et Vérifier les questions

5.1. Le rapport de rapport de laboratoire doit contenir:

Nom;

But du travail;

Équipement utilisé; structure sur le nom du fichier requis. Remarque: la fenêtre ne vous permet pas d'éditer des fichiers source.


Fig.16. Fenêtre source

2. Structure. - Fenêtre contenant la structure et la subordination des fichiers de projet (Fig. 17). Porte fonction auxiliaire pour la fenêtre source.

Figure. 17. Fenêtre de structure


3. Variables. - La fenêtre contient toute la conception variable interne du langage VHDL utilisé pour décrire le modèle connecté actuel (Fig. 18). Seule la fonction d'information porte.

4. Signaux. - une fenêtre contenant une liste et des valeurs de tous les ports et signaux d'E / S (Fig. 19). La fenêtre capture les modifications apportées au contenu de tous les ports et signaux d'E / S. Il est possible de supprimer, d'ajouter ou d'installer un nombre limité de signaux ou de ports dans cette fenêtre en fonction

Valeur. - la valeur du signal actuel.

Figure. 21. Force Signal Fenêtre

RETARD. - Taille du temps de la valeur du signal actuel (la valeur de la valeur est spécifiée à droite du champ de saisie).

Deuxième valeur La valeur est l'état suivant de ce signal ou du port d'E / S.

: Pour entrer exactement le type de retard avant de modifier le flux sur la valeur que la note est la préavis d'erreurs d'avertissement associées à la modélisation de l'appareil, Retard pour la deuxième valeur - La valeur est fournie pour le périphérique conçu.

son statut sur la suite (deuxième valeur). Remarque: la valeur de ce champ doit être nécessairement les retards de signal.


Répéter chaque -ce champ est un paramètre facultatif pour la modélisation, car Cela implique une période de répétition des modifications de l'état du port d'entrée / sortie ou de la valeur du signal. Le champ est activé dans les paramètres de base des modifications avec le drapeau activé en face de celui-ci.

Remarque: la valeur de ce champ doit être nécessairement supérieure à la valeur dans le délai de deuxième valeur, car le point de départ du processus de modélisation est commun à tous les retards de signal.

Gentil. - définir le degré d'autonomie des modifications apportées. (Gel (système contrôle de manière autonome de manière autonome) / lecteur (capacité à contrôler) / dépôt (gestion des concepteurs incontrôlés)).

Pour confirmer les paramètres de changement de signal entrées ou le port d'E / S, cliquez sur le bouton Appliquer.

Pour définir les paramètres des modifications d'un autre signal, il doit être sélectionné dans la fenêtre Signaux.

Il est possible d'installer une liste limitée de signaux à l'aide de la fenêtre Signal, où vous pouvez sélectionner le plus nécessaire d'entre eux et l'élément Ajouter à la liste (signaux sélectionnés sous-clause (exécute le groupe sélectionné dans la fenêtre de la liste)). De plus, tous les signaux du projet en cours peuvent être apportés à la liste (en utilisant des signaux dans la conception), tous des signaux actifs au moment de la simulation (à l'aide des signaux dans la région) ou des signaux impliqués dans n'importe quel flux d'informations (à l'aide de la fenêtre Dataflow (sélectionnant Les signaux de flux requis) et de sous-paragraphes de Dataflow ...).

Noter.

L'étape d'enregistrement des modifications apportées aux valeurs de signal est définie dans les paramètres de processus de simulation (options ... / simulez les options ...). La fenêtre fournit diverses options associées à la correction des modifications apportées aux signaux et enregistrez la table résultante dans un fichier séparé.

6. Traiter. - une fenêtre contenant le nom et l'état de VHDL -Processions du dispositif simulé actuel (figure 23). La possibilité de sortie limitée des processus lors de l'utilisation de l'élément de processus dans le menu principal Options (il est possible de produire tous les processus actifs (processus actifs) ou des processus actifs à l'étape actuelle (simulation)).

Figure. 23. Fenêtre de processus

7. Vague - la fenêtre requise pour produire des schémas temporaires d'un ensemble spécifique de signaux ou de ports d'E / S (Fig. 24).

Figure. 24. Fenêtre vague

La fenêtre présente toutes les propriétés d'un outil flexible pour la surveillance des signaux dans le délai du processus de modélisation lui-même. Dans l'agrégat avec la fenêtre Signaux et l'ajout au point de formulaire d'onde du menu des signaux principaux, cette fenêtre permet de définir une liste limitée de signaux sous-éléments signaux sélectionnés (installation dans la liste de travail des signaux sélectionnés dans la fenêtre des signaux) , Sous-clause Signifie dans la région (surveillance des signaux actifs sur l'itération de la simulation actuelle), signaux de sous-paragraphes dans la conception (définir tous les signaux de projet), signaux de sous-clause de Dataflow (signaux de réglage impliqués dans le flux d'informations sélectionné de la fenêtre Dataflow)) . Comme toutes les fenêtres fonctionnelles, cette fenêtre a la possibilité de fonctionner avec la liste des signaux de sortie (le menu du curseur et de la fenêtre d'édition), vous permet de contrôler la sortie des diagrammes horaires (zoom du menu et options). Un moyen auxiliaire supplémentaire est le curseur (installé à tout moment sur le diagramme à l'aide de la souris), ce qui corrige le temps de modélisation dans la position actuelle. De plus, lors du changement de position du coureur, si les valeurs de tout signal sont modifiées dans la position suivante, les modifications correspondantes sont enregistrées dans la liste des images des signaux (à gauche des diagrammes, comme indiqué à la Fig. 24).

8. Dataflow - une fenêtre qui affiche l'organisation de toutes les flux d'informations présentes dans le dispositif de modélisation (Fig. 25).

Figure. 25. Fenêtre Dataflow

Comme la plupart des fenêtres fonctionnelles, cela fonctionne conjointement avec d'autres fenêtres:

Signaux (cette fenêtre vous permet de sélectionner le (s) signal (s) suivant) pour visualiser davantage les flux d'informations associés dans la fenêtre Dataflow).

Processus (avec cette fenêtre, vous pouvez choisir un processus permettant de démontrer davantage ses flux d'informations).

4. Procédures

4.1. Utilisation de n'importe quel éditeur de texte, composez une description d'un périphérique numérique en fonction de votre option. Pour prévenir les erreurs, il est nécessaire que le fichier ait une extension * .vhd.

4.2. Créez un projet dans le système de modélisation des modèles et connectez-le saisi et déposé dans le fichier FPGA Express.

4.3. Après avoir correctement connecté le fichier de description, installez le système pour tester votre appareil.

4.4. Test et analyse complète de votre appareil numérique en fonction de votre option.

5. Instructions d'enregistrement du rapport et des problèmes de contrôle

5.1. Le rapport de rapport de laboratoire doit contenir:

Nom;

But du travail;

Matériel usagé;

Partie théorique;

Description de la séquence d'actions dans le processus d'analyse et de modélisation de votre option;

Impression de tous les états, tous les signaux;

Imprimer votre fichier source;

Impression de diagrammes temporaires et de processus;

Conclusions sur le travail effectué.

5.2. Questions de contrôle des travaux de laboratoire

1. Quelles sont les fonctions principales des signaux et des vitres d'ondes?

2. Quelle est l'importance de la visualisation de la structure des flux d'informations dans la conception pendant la conception?

37 38
3. Dispositifs Avec quels types de signaux, à votre avis, peuvent être testés dans le simulateur de modèles?

Numéro de travail de laboratoire 5

Connaissance avec la langue VHDL

1. Description générale

La cloche.

Il y a ceux qui ont lu cette nouvelle devant vous.
Abonnez-vous pour recevoir des articles frais.
E-mail
Nom
Nom de famille
Comment voulez-vous lire la cloche
Sans spam