En avril, il y a eu un séminaire Rosnanov sur les circuits modernes pour les écoliers du type olympiade . Après lui, un groupe d'organisateurs s'est réuni dans le hall et s'est longtemps demandé comment rendre le sujet plus intéressant et utile en même temps. Pour entrer Verilog et FPGA par exemple au format des NTI Olympics. Il a été décidé d'abandonner ce qui est mathématiquement intéressant, mais quelque peu abstrait pour les tâches des étudiants telles que les protocoles de cohérence de cache dans les systèmes multiprocesseurs. De plus, l'idée d'une serre automatique avec capteurs n'était pas très enthousiaste, car elle a été mise en œuvre cent fois sur Arduino et STM32, et les FPGA n'ajoutent rien d'intéressant aux serres.
Et tout à coup - Eureka! Et si nous organisons des compétitions de jeux graphiques sur circuits purs, sans programmation, comme nos ancêtres faisaient des jeux comme Pin-Pong à l'époque de Brejnev et Carter. Et pour conduire non pas sur les anciennes puces K561, mais sur les Xilinx et Altera modernes (c'est-à-dire Intel FPGA) et en utilisant les mêmes technologies de conception au niveau des transferts de registres que les concepteurs utilisent dans Apple, Intel et SpaceX.
En bref, nous nous en occuperons
du 8 au 26 juillet dans une école d'été à Zelenograd . Une partie de l'école, dont le plan sera discuté dans cet article, est consacrée aux bases des circuits numériques, aux premières étapes de l'architecture et de la microarchitecture des processeurs, ainsi que (même assez majoritairement) à l'infographie matérielle.
J'essaierai d'amener ma fille étudiante Elizabeth à Zelenograd en tant qu'assistante si elle reçoit son passeport et son visa russe à temps. Elizabeth, étant russo-ukrainienne-japonaise, ne parle que l'anglais. Ici à Zelenograd et apprenez les rudiments du russe. Et en même temps, il enseignera la prononciation anglaise correcte des instructeurs qui sont prêts à aider à l'école (facultatif de MIET, il est possible de MIPT, MSU, MEPhI):

Aujourd'hui, j'ai fait un exemple pour l'école - le jeu de tanchiki. J'ai pris la plupart du code d'un
exemple dans le livre Designing Video Game Hardware in Verilog de Steven Hugg, 15 décembre 2018 . Stephen Hugg a montré le code sur un simulateur magnifique, mais non industriel. Je pense qu'apprendre sur un tel simulateur, c'est comme sentir des fleurs dans un masque à gaz, j'ai donc synthétisé le code et versé la configuration résultante dans du vrai fer - une
carte ZEOWAA chinoise bon marché . Pour ce faire, j'ai dû réécrire la génération de numérisation VGA, rendre le code plus synthétisé et supprimer certaines irrégularités méthodologiques dans l'utilisation des signaux d'horloge.
J'ai posté le résultat sur GitHub .
Voici à quoi cela ressemble dans le simulateur Steven Hugg:

Voici à quoi cela ressemble dans ma première approximation, après avoir combiné mécaniquement le wrapper pour la carte, le générateur de scan et le code Stephen, ainsi que corrigé toutes les petites choses qui ne fonctionnent pas dans Intel FPGA Quartus Lite Edition, synthétisé et rempli:
Mais le camp ne sera pas seulement consacré aux jeux avec génération de scan VGA, ROM, sprites, etc. Nous allons également croiser cela avec les processeurs. Comparer l'implémentation de jeux sur des machines à états finis matériels avec l'implémentation matérielle-logicielle Pour ce faire, nous utilisons le noyau du processeur éducatif schoolMIPS, qui est décrit dans les
articles de Stanislav Zhelnio sur Habr et le
wiki schoolMIPS sur GitHub .
Vous pouvez même utiliser le noyau de formation schoolMIPS pour montrer comment concevoir des signets dans les processeurs. Nous ne discuterons pas de l'existence de signets dans le processeur de l'ordinateur sur votre bureau, dans votre téléphone ou dans votre voiture. Nous montrerons comment ils peuvent être conçus. Exemple de signet: une machine d'état matérielle surveille le contenu des registres architecturaux pendant l'exécution du programme et lorsque le texte «Cloudless Sky Above All Spain» y apparaît, fait passer le processeur en mode privilégié. Le texte peut provenir d'un programme utilisateur, tel qu'un client de messagerie.
Est-il possible de détecter un tel signet avec un logiciel antivirus? Non. Le logiciel ne le voit pas du tout jusqu'à ce que cela se produise. Est-il possible de détecter en examinant le microcircuit au microscope électronique? Non, il y a des milliards de transistors dans un processeur industriel, même en arduino - des centaines de milliers. Même si vous avez la source du processeur sous la main, vous pouvez cacher beaucoup de dizaines, de centaines de milliers ou de millions de lignes sur le veril, surtout si différentes parties du processeur remplissent des parties d'un plan intelligemment pensé.
Vous pouvez même organiser un concours lorsqu'une équipe crée un signet et que l'autre le trouve.

Tout étudiant qui a suivi trois modules du cours théorique en ligne de RUSNANO avec un aperçu professionnel des méthodes modernes de conception de microcircuits (tout cela est gratuit et même avec l'attribution de prix) peut participer à l'université d'été de Zelenograd:
- Du transistor au microcircuit
- Le côté logique des circuits numériques
- Le côté physique des circuits numériques
Programme de cours préliminaire - la discussion à ce sujet est la bienvenue:
Semaine 1. Bases de la logique numérique.
Jour 1. Microcircuits à faible degré d'intégration, exercices à logique combinatoire.
Jour 2. Microcircuits à faible degré d'intégration, exercices à logique séquentielle.
Jour 3. FPGA, exercices avec boutons, interrupteurs, LED, indicateur à sept segments.
Jour 4. FPGA, sortie de formes géométriques en VGA.
Jour 5. FPGA, une machine d'état pour jouer aux tanks, aux courses ou aux Angry Birds.
Semaine 2. Processeur
Jour 1. Programmation en langage assembleur.
Jour 2. Processeur scolaire MIPS en un cycle.
Jour 3. Intégration du processeur avec la conclusion des formes géométriques sur VGA.
Jour 4. Conférence sur les interruptions et le multitâche. Projet individuel - un jeu vidéo programmé sur le processeur avec sortie en VGA.
Jour 5. Conférence sur le convoyeur. Concours de projets individuels.
Semaine 3. Radio programmable. Le programme de blocs se compose de trois parties principales:
- Les bases de l'électrodynamique et de la propagation des ondes radio (partie théorique);
- Le principe de fonctionnement du trajet émetteur-récepteur (théorie et pratique);
- Les bases du traitement numérique du signal - filtrage, analyse spectrale (théorie et pratique).
Jour 1. Fondements théoriques de l'électrodynamique et de la propagation des ondes radio. Le schéma structurel du chemin de transmission, les fonctions des composants. Signaux (harmoniques, rectangulaires). Pratique du signal avec NI Elvis.
Jour 2. Transfert de signaux vers une haute fréquence. Justification mathématique du transfert de fréquence à l'aide de Matlab. Exercice pratique de transfert de fréquence avec NI Datex.
Jour 3. Amplification et émission de signaux. Entraînez-vous à utiliser NI Datex. Démonstration de la directivité des antennes.
Jour 4. Filtrage du signal. Entraînez-vous à utiliser NI Datex. Filtrage des signaux numériques dans Matlab
Jour 5. Transfert de signaux vers une basse fréquence. Entraînez-vous à utiliser NI Datex. Résumer le matériel couvert, résumer.
Soit dit en passant, une grande partie des documents de Stephen Hugg, à partir desquels je regarde des informations sur les sprites, etc., proviennent de l'ancien processeur vidéo Texas Instruments TMS9918, qui se trouvait dans l'ordinateur japonais Yamaha MSX, que le gouvernement Gorbachev a importé pour informatiser les écoles soviétiques. Quand j'étais moi-même écolier, il n'était pas trivial de gérer ce processeur vidéo à partir du programme d'assemblage exécuté sur le processeur Zilog Z80 principal, et de concevoir ce processeur vidéo en général. En raison de la percée de la technologie d'automatisation de la conception électronique (EDA), cela est devenu possible pour les étudiants modernes, et est même utile pour enseigner la conception de puces modernes (livre de Stephen Hugg - 2018).
Mais pour les écoliers soviétiques aux cheveux gris - vous souvenez-vous de ce jeu chez Yamaha?
À propos de Electronic Design Automation. En plus du camp pour les écoliers, ici Elizabeth et moi aidons à organiser un séminaire sur des sujets similaires pour les adultes,
mais pas à Zelenograd, mais à Las Vegas, à la Design Automation Conference - DAC , et non avec des formations, mais avec des processeurs industriels, et non avec graphiques, et avec un coprocesseur pour l'IA. Un tel séminaire est une prochaine étape naturelle pour les étudiants qui iront à l'école à Zelenograd et étudieront ensuite au MIET, MEPhI, l'Institut de physique et de technologie de Moscou, HSE MIEM, l'Université d'État de Moscou, ITMO, LETI, SSAU, NSTU et d'autres universités qui enseignent des éléments de route de conception de microcircuits RTL to-GDSII, laboratoires d'architecture informatique et de synthèse pour FPGA / FPGA.
