
Du 2 au 5 octobre, une école sur les bases des circuits numériques, de l'architecture et de l'utilisation de Verilog s'est tenue à Novossibirsk. Le nom officiel de l'événement: une école pour étudiants de premier cycle et étudiants diplômés, tenue à l'Université technique d'État de Novossibirsk dans le cadre de la XIVe Conférence scientifique et technique internationale "Problèmes réels de l'instrumentation électronique" APEP-2018, tenue sous les auspices de l'IEEE.
Cet événement était principalement destiné à ceux qui:
- lire le livre Digital Circuitry and Computer Architecture, D. Harris, S. Harris (également connu sous le nom de H&H ou Harris-i-Harris);
- Il veut mettre ses connaissances en pratique, mais ne comprend pas quels équipements et logiciels sont nécessaires pour cela et ne sait pas comment les utiliser;
- est un étudiant senior ou diplômé et doit diffuser les connaissances acquises (conduire des ateliers, des travaux de laboratoire, etc. à l'université).
Annonce: Une école similaire est prévue du 6 au 9 novembre à l'Institut des technologies spatiales et de l'information de l'Université fédérale de Sibérie (IKIT SFU). L'école sera dirigée par Alina Leskovskaya, une étudiante diplômée, ingénieur de conception d'AIS IS nommée d'après M.F.Reshetnev, ainsi que ses collègues: Dmitry Vlasov et Boris Dudkin. Contact pour l'inscription: leskovskayaav@yandex.ru
Si votre position semble au moins "Développeur FPGA Junior", alors avec une forte probabilité, vous n'apprendrez rien de nouveau pour vous-même dans ce post. Pour tout le monde, bienvenue au chat.
Pourquoi est-ce nécessaire
À une certaine époque (de retour à l'université), l'auteur de ces lignes a étudié l'architecture informatique sans utiliser Verilog ou VHDL: vous venez à une conférence au cours de laquelle une boîte noire appelée "Ordinateur" est disposée sur de nombreuses petites boîtes noires: "processeur", " mémoire ”, etc. Mais ils restent des boîtes noires: vous ne pouvez pas "grimper" à l'intérieur, vous ne pouvez pas "changer" l'appareil. Le cours se termine, mais vous avez toujours le sentiment que vous travaillez avec «des essences magiques d'une structure interne obscure». Dans le meilleur des cas, vous pouvez les configurer (programme). Il n'y a aucune image holistique du monde numérique dans ma tête. Il n'y a aucune compréhension de la façon dont cela fonctionne à l'intérieur. Cette compréhension qui distingue un bon ingénieur de «passé».
Afin d'obtenir une image complète, il est nécessaire de pouvoir changer les appareils étudiés et créer le vôtre. Et ici Verilog (ou VHDL) vient au secours, au logiciel de simulation et aux cartes de débogage peu coûteuses avec FPGA pour vérifier le matériel. Un simple processeur ( schoolMIPS ) peut être écrit en 1-2 soirs. Et ce n'est pas du tout sorcier, pas de magie.
Gardant à l'esprit une image holistique du monde numérique, il n'est pas nécessaire de relier votre vie au développement de microcircuits. Mais je crois que les gens qui comprennent vraiment le fonctionnement de la «boîte de lecture magique» n'écriront pas des programmes terriblement lents . Je vais faire un parallèle: un marteau et une perceuse dans un placard ne font pas de vous un charpentier. En même temps, vous pouvez enfoncer un clou, vous comprenez pourquoi ces outils sont nécessaires, dans quels cas cela vaut la peine d'utiliser un marteau, pourquoi vous ne devriez pas prendre un microscope à la place et quand contacter un professionnel.
Programme scolaire
Le travail à l'école était axé sur la pratique. Mettre tous les problèmes décrits dans H&H en quatre jours de théorie et de pratique est très difficile. Par conséquent, cet objectif n'a pas été fixé. Toute la théorie a été donnée exclusivement dans la quantité nécessaire à la pratique. Par conséquent, ce n'était pas facile pour ceux qui n'avaient pas ouvert le livre auparavant.
Jour 1
• Langue pour la description du matériel et pourquoi il est nécessaire
• Qu'est-ce que le FPGA
• Bases de la logique combinatoire
• Éléments logiques de base et leur description sur Verilog
• Environnement de test (Testbench)
• Vérification du fonctionnement du circuit combinatoire à l'aide d'un simulateur (Icarus Verilog, Modelsim)
• Synthèse de circuits combinés, Intel Quartus et Xilinx Vivado GUI
• À quoi sert le schéma de combinaison lorsqu'il est implémenté sur des FPGA?
• Programmation d'une carte de débogage
• Vérification du projet sur la carte de débogage
• Fondamentaux de Makefile et travail en mode non-projet
• Multiplexeur et méthodes pour sa description sur Verilog HDL
• Démultiplexeur et méthodes pour sa description sur Verilog HDL
• Étude de cas: travailler avec des indicateurs à 7 segments
• Compilation conditionnelle dans Verilog HDL
2e jour
• Circuits combinés et temps de propagation du signal
• Circuits d'horloge et de série
• Différents types de missions dans Verilog HDL
• D-trigger et son implémentation sur Verilog dans diverses variantes: réinitialisations asynchrones et synchrones, port d'autorisation d'écriture
• À quoi sert le circuit séquentiel synthétisé lors de la mise en œuvre sur la base du FPGA
• Registre et sa mise en œuvre
• Compteur et sa mise en œuvre
• Discipline dynamique et statique
• Métastabilité et synchroniseur
• Verrou indésirable, conséquences et moyens d’éviter
• Machines à états finis (Mura et Miles)
• Présentation de la machine sous forme de diagrammes de transition
• Implémentation de la machine sur Verilog HDL
• Approche générale de la conception d'automates complexes
• Implémentation pas à pas du module d'interface du capteur de distance à ultrasons sur Verilog
3e jour
• Travail indépendant. Implémentation d'un module d'interface clavier 4x4 pour FPGA
• Travail indépendant. Implémentation d'une calculatrice FPGA
Jour 4
• Bases du pipelining
• Architecture et microarchitecture
• Bases du développement sur l'assembleur MIPS
• Travailler avec le simulateur MARS
• Conception du processeur simple cycle le plus simple sur l'exemple de schoolMIPS
• Chemin de données et dispositif de contrôle
• Compilation du programme, démarrage du processeur dans le simulateur et sur la carte de débogage
• Travail indépendant. Ajout de la prise en charge de nouvelles instructions au processeur
Matériaux
Tous les supports de cours (diapositives, scripts, sources, littérature) sont disponibles en ligne ( github , supports supplémentaires ). Les diapositives sont conçues dans un style douteux, lorsqu'elles contiennent beaucoup de texte, dans l'espoir que cela facilitera la familiarisation avec les documents hors ligne.
Des tâches pratiques et indépendantes ont été effectuées principalement sur les cartes mères Terasic DE10-Lite avec Intel MAX10 FPGA à bord. Nous avions également Digilent Nexys 4 DDR , qui a démontré le travail avec Xilinx Vivado comme exemple. À de rares exceptions près, les exemples sont préparés de manière à ce que vous puissiez utiliser le DE10-Lite et le Nexys 4 DDR. Le choix en faveur de travailler avec des cartes Intel FPGA est dû aux raisons suivantes:
- DE10-Lite est moins cher que Nexys 4 DDR, ce qui signifie qu'il est disponible pour plus d'étudiants s'ils veulent continuer à expérimenter à la maison ou dans le cadre du processus d'apprentissage;
- Les mêmes projets simples sur lesquels le cours est construit sont assemblés à l'aide d'Intel Quartus plusieurs fois plus rapidement qu'avec Xilinx Vivado. Avec toutes mes sympathies pour Vivado, nous n'avons eu que 4 jours.
Et la vidéo
Lorsque l'événement a été annoncé, j'ai commencé à recevoir des demandes d'organisation de diffusion ou d'enregistrement vidéo. Malheureusement, cela ne correspondait pas au format de l'organisation scolaire que j'ai choisie. Nous n'avons pas eu de cours en tant que tels: quelques diapositives, puis pratique. Il y a des questions - nous analysons, un dialogue constant, blagues drôles et se déplacer dans le public. En choisissant entre travailler sur la caméra et nouer un contact productif avec le public, j'ai choisi la seconde. La façon dont cela s'est produit est à l'appréciation des étudiants. Veuillez traiter avec compréhension.
Je veux aussi
Êtes-vous un enseignant qui souhaite transmettre des connaissances aux élèves? Ou êtes-vous un élève qui souhaite acquérir ces connaissances, que les enseignants les donnent ou non? Dans ce cas, même si vous ne pouviez pas assister à l'événement, vous disposez de toutes les informations nécessaires au développement autonome du sujet et / ou à la construction / modification du stage:
- Le livre "Circuit numérique et architecture informatique", qui est disponible gratuitement sous forme électronique ( lien ), ou peut être acheté sur papier ( lien ). Il est facile à lire, emporte comme une fiction. Il a un seuil d'entrée bas - certaines connaissances spéciales ne sont pas nécessaires pour commencer à le lire. Récemment, un ajout sur l'architecture ARM a été publié ( lien );
- Des exemples de code sont disponibles pour le livre, ainsi que des diapositives (versions anglaise et russe) qui peuvent être utilisées pour créer votre propre cours ( lien );
- Cartes de débogage peu coûteuses: Terasic DE10-Lite est le meilleur choix, selon moi, en termes de rapport qualité / prix, 55 $ pour ceux qui ont un statut académique prouvé (hors livraison). Carte ZEOWAA - quand vous devez économiser sur tout. L'option fonctionne, mais il peut y avoir des problèmes avec le firmware en raison du câble USB de mauvaise qualité fourni avec le kit;
- Matériel de l'école actuelle ( github , matériel supplémentaire ), ainsi que d'autres événements organisés par YuriPanchul ( silicon-russia.com , slides et bien plus ).
S'il vous plaît, ne vous attendez pas à ce que quelqu'un vienne à vous et fasse du "bien". Vos connaissances, si vous êtes étudiant, et celles de vos élèves, si vous êtes enseignant, dépendent à 99% de vos efforts.
Qu'est-ce que j'ai enduré pour moi
- En 4 jours, vous pouvez mettre soit des choses basiques (pour ceux qui n'ont pas lu H&H), soit quelque chose de plus avancé (pour ceux qui ont déjà lu le livre). Mieux vaut ne pas combiner.
- Pour ceux qui n'ont pas lu le livre et qui n'ont pas d'expérience avec les FPGA, il est conseillé de commencer la pratique de travailler avec des microcircuits avec un faible degré d'intégration, et ensuite de donner des FPGA. Ceci est très important car vous permet de reconstruire rapidement le cerveau d'un mode de "programmation" relativement familier au mode de "circuits". Cela a déjà été écrit par Yuri ( lien ). Malheureusement, nous avons raté cette étape.
Remerciements
- l'initiateur de l'événement et l'organisateur du NSTU est Vladimir Makukha;
- maintenir l'école dans sa forme actuelle aurait été impossible s'il y a quelques années, un groupe de passionnés n'avait pas entrepris la traduction des circuits numériques et de l'architecture informatique;
- mon arrivée à Novossibirsk n'aurait pas été possible sans le soutien des initiatives pédagogiques qui existent au sein d' IVA Technologies ;
- diriger une école était une grande question quand il s'est avéré que les fonds alloués à l'université pour l'achat de tableaux de débogage étaient suspendus quelque part dans les profondeurs de la bureaucratie. Les planches ont finalement été collectées «avec le monde sur un fil». Mikhail Shadrin (NSU) a prêté plusieurs Nexys 4 DDR. Certaines planches ont été achetées par des étudiants diplômés venus étudier. Plusieurs planches Terasic ont été attribuées par Alexander Romanov (MIEM NRU HSE). Mais il n'y avait toujours pas assez de planches. YuriPanchul a aidé, après quoi Mikhail Shupletsov (Université d'État de Moscou) et moi avons rapidement organisé leur achat. Et les gars de Terasic, sans aucun retard, ont organisé l'expédition le plus rapidement possible.
- Dmitry Vlasov, Anton Kulichkov et Valery Barmin ont contribué à la direction de l'école - nous nous sommes rencontrés il y a un an à Tomsk ( lien ), et cette année, ils ont aidé les étudiants avec la théorie et la pratique.
- merci aux étudiants - sans votre désir d'apprendre de nouvelles choses et sans votre persévérance, nous n'aurions pas réussi.
Avis sur l'école
Anna Kazmina
Pendant 4 jours <...> nous avons tellement plongé dans la technologie de développement basée sur FPGA que cela a complètement changé mon idée d'utiliser les FPGA dans le monde moderne en production réelle. Auparavant, dans le processus éducatif, nous utilisions les FPGA uniquement pour accélérer la résolution des problèmes, mais maintenant nous avons appris à utiliser les microcontrôleurs pour le développement de la microarchitecture <...> Cette école m'a vraiment intéressé tellement que je prévois de développer dans cette direction. Plus de tels événements!
Olesya Radchenko
Un grand merci à l'équipe, grâce à laquelle une école similaire a eu lieu au NSTU. Merci de m'avoir donné l'occasion de "plonger tête baissée" dans la programmation FPGA, d'apprendre comment d'autres développeurs travaillent avec Quartus, ModelSim, et aussi de se familiariser, par exemple, avec Vivado. Pendant ces 4 jours, j'ai consolidé mes anciennes connaissances et appris beaucoup de nouvelles choses, par exemple sur MIPS. <...> Je peux appliquer les connaissances acquises dans mon travail, qui a récemment été étroitement associé à la programmation FPGA
Vladislav Mayer
Je voudrais peut-être noter qu'en raison du temps limité, vous avez réussi à fournir suffisamment d'informations pour la compréhension initiale du matériel. Personnellement, j'avais une connaissance de base du langage de programmation matérielle. Mais le principal échappement pour moi est un changement de perspective sur la programmation en général. Maintenant, je regarde les choses précédemment familières sous un angle différent et j'ai une idée de la façon de mettre en œuvre différemment ces modules
Anton Yupashevsky
Au cours de ces quatre jours, j'ai regardé la programmation FPGA d'une manière complètement différente, au langage de description du matériel Verilog, et à l'heure actuelle, à l'aide de FPGA. Le niveau initial de connaissances sur les FPGA et les circuits numériques J'ai encore 4 ans d'études à l'université et avec
il n'y avait aucun problème avec les schémas combinatoires et séquentiels les plus simples, mais
de plus en plus complexes et intéressants sont apparus et finalement nous avons nous-mêmes programmé le noyau
MIPS Un énorme avantage de cette école était une énorme quantité de pratique.
Mikhail Kireev
Au cours de l'école «de la physique à la puce» à APEP-2018, les dogmes ont été définis lors de la collaboration avec Verilog:
Vous devez maîtriser le livre Harris. Il y a de nombreux pièges dans ce sujet lors de l'écriture de code - des blocs absolument identiques (du point de vue de la logique) peuvent être synthétisés de différentes manières <...> La simulation offrira beaucoup plus de possibilités lors du développement que la synthèse - accordez plus d'attention à Waveform. Dans les activités professionnelles, vous devez travailler avec différentes lignes FPGA de différents fabricants, <...> Gagnez du temps à l'avenir (écriture de scripts et création de fichiers). D'un point de vue pratique, un certain nombre de modèles de base séquentiels et combinatoires ont été envisagés; convoyeur, clavier 4x4, exemples de machines à états, architecture MIPS la plus simple et autres tâches.
Z.Y. J'ai découvert cette école et je me suis inscrite 12 heures avant sa rentrée, je n'ai pas regretté d'avoir assisté à cet événement, même si la lecture du livre Harris aurait rendu les performances beaucoup plus élevées.