Les fées japonaises montrent un déclencheur maître-esclave dans un nouveau manga sur l'électronique numérique

Maintenant, la maison d'édition de DMK-Press publie une traduction russe du manga japonais en 2013 sur les circuits numériques créés par Amano Hideharu et Meguro Koji. Malgré la forme frivole de la présentation, l'essence de ce livre est très solide. Par exemple, il part d'anciens microcircuits avec un faible degré d'intégration et les relie rapidement au langage de description matérielle Verilog moderne et aux circuits intégrés logiques programmables (FPGA). De plus, le manga définit clairement pourquoi les schémas combinatoires et séquentiels sont nécessaires et donne une idée des méthodes d'optimisation.

Manga évite les erreurs de beaucoup de ses prédécesseurs. L'une de ces erreurs a été commise par Charles Petzold dans le livre "Code", qui introduisait une logique séquentielle non pas sur les déclencheurs D contrôlés par le bord du signal d'horloge (bascule D déclenchée par front), mais sur les déclencheurs D avec opération de niveau (verrous, D-latch sensible au niveau), bien que plus tard, il soit passé aux déclencheurs appropriés. L'erreur était probablement due au fait que Charles Petzold, qui est devenu célèbre en tant qu'auteur de manuels sur la programmation d'interface graphique dans Microsoft Windows, n'était pas un développeur d'électronique pratiquant, et les verrous étaient pour lui "plus faciles" que les déclencheurs montés à l'avant. Le problème est que les verrous sont peu compatibles avec l'analyse statique des retards de synthèse logique, principale technologie de conception des circuits numériques des 30 dernières années. Les systèmes sur puce à l'intérieur de gadgets comme un iPhone utilisent des déclencheurs D déclenchés par l'état dans 99% des cas comme éléments d'état, et les verrous ne sont utilisés que dans des cas très spéciaux. Donner aux débutants la possibilité de construire des circuits sur des loquets - cela signifie les induire en erreur.

En ce sens, le manga est meilleur que Petzold. C'est ainsi que le manga explique avec élégance le déclencheur maître esclave D à deux étages contrôlé par le front d'horloge. Cela se fait avec l'aide des fées «Hee hee hee» et des fées «Ha ha ha»:



Ensuite, je souligne mes commentaires en bleu afin qu'ils ne fusionnent pas avec les citations du manga:

Mais commençons dans l'ordre. Le manga sur les circuits numériques commence par les microcircuits, et elle mentionne immédiatement à la fois les anciens microcircuits d'un petit degré d'intégration, avec plusieurs éléments logiques, et les modernes, avec des millions et des milliards de transistors:





Le manga explique le travail des éléments logiques à l'aide d'analogies simples et agréables pour les adolescents:



Pourquoi même mentionner des microcircuits de faible degré d'intégration, obsolètes il y a 50 ans? Le fait est que malgré leur âge vénérable, les exercices sur une planche à pain avec de tels microcircuits sont le moyen le plus intuitif de montrer aux élèves comment fonctionne un élément logique. Vous n'avez pas besoin d'installer de logiciel de modélisation ou de synthèse pour les FPGA. Tout ce dont vous avez besoin est une planche à pain, une batterie de 9 volts, un microcircuit, des fils, des LED et des boutons:



Certains enseignants des milieux scolaires pensent que tous ces exercices devraient être remplacés par Arduino. Cette opinion est apparue dans les années 1970-1980, lorsque des microcontrôleurs et des processeurs intégrés sont entrés dans la formation. Un écolier typique en 1988 ne pouvait pas dépenser des centaines de milliers de dollars pour fabriquer son propre microcircuit à l'usine, et de vieux microcircuits d'un faible degré d'intégration dans de vrais produits industriels étaient de moins en moins utilisés. Par conséquent, à l'époque, ils ont agité la logique numérique pour les écoliers et ont investi toute leur énergie dans l'enseignement de la programmation. Voici un commentaire Facebook décrivant cette opinion ces jours-ci:



Cependant, 30 ans plus tard, tout a encore changé:


1. Tout d'abord, dans le même 1988, une technologie de conception de microcircuits utilisant la synthèse logique est apparue, à partir du code dans les langages de description du matériel - Verilog et VHDL.

2. Dans le même temps, dans les années 80, des circuits intégrés logiques programmables (FPGA) sont apparus - des matrices d'éléments logiques reconfigurables avec lesquels vous pouvez évaluer les circuits numériques en changeant simplement le contenu de la mémoire de configuration à l'intérieur du FPGA.

3. Dans les années 90, l'enseignement du HDL, de la synthèse logique et des FPGA a été inclus dans les programmes de tous les départements d'électronique des universités occidentales, bien qu'en Russie et en Ukraine, en raison du chaos post-perestroïka, ce processus ait été plus lent.

4. Dans les années 2000, la vitesse des processeurs traditionnels a cessé de croître et les spécialistes du marketing ont commencé à prédire la fragmentation du marché des processeurs embarqués (qui s'est produite - cloud, IoT), ainsi que l'apparition de combinaisons de processeurs et d'ordinateurs spécialisés pour diverses tâches (ce qui s'est produit - d'abord, c'est rapide graphiques mobiles, puis puces spécialisées pour l'exploitation de crypto-monnaies, vision par ordinateur et accélérateurs de réseaux de neurones).

5. Maintenant, en 2010, les prix des cartes FPGA sont tombés au niveau où ils sont devenus accessibles aux écoliers. Dans le même temps, l'industrie a besoin d'un grand nombre de nouveaux ingénieurs pour créer d'énormes microcircuits avec des réseaux de neurones. Même si vous allez travailler toute votre vie en programmation, pour comprendre les nouveaux systèmes, vous devez connaître les principes de fonctionnement des équipements: circuits combinatoires et séquentiels, machines d'état, synchronisation, pipelining, etc. Ensuite, vous pouvez comprendre s'il vaut la peine de traiter les données avec un programme ordinaire ou une unité matérielle.

Les microcircuits à faible degré d'intégration vous permettent de "toucher" directement les primitives matérielles. Et immédiatement après avoir expliqué les schémas d'un petit degré d'intégration, le manga présente à la fois les langages de description du matériel et le FPGA:





Après avoir décrit les éléments logiques, le manga montre comment construire un schéma combinatoire utile pour le vote majeur:







Ensuite, ce schéma est optimisé. À mon avis, le manga consacre trop de temps à l'optimisation combinatoire. Mais il convient de rappeler que les Japonais ont écrit le manga, et ils ont un principe dans la culture 切磋琢磨 (session takuma) - polir quelque chose (comme une épée) jusqu'à ce qu'il devienne parfait. Par conséquent, dans le manga, il y a à la fois une optimisation basée sur le bon sens et une optimisation basée sur des diagrammes de Carnot. La synthèse logique des langages de description du matériel effectue automatiquement ces optimisations:





Le manga a également un schéma romantique, c'est-à-dire une scène:




Le système de vote majoritaire peut être facilement assemblé sur des microcircuits d'un faible degré d'intégration. On peut faire valoir que l'observation des éléments combinatoires ET-OU-NON / ET-OU-NON sur la planche à pain n'est pas très intéressante, car l'algèbre booléenne est également expliquée dans la leçon de programmation habituelle. On peut affirmer que même si les enfants de 7 ans peuvent comprendre ET-OU-NON, certains écoliers tombent sur une barrière mentale lorsqu'ils tentent de comprendre les déclencheurs D. Dans ce cas, une démonstration visuelle devient plus précieuse.

Malheureusement, l'élève ne peut pas «toucher» ses mains directement avec les déclencheurs D à l'intérieur du FPGA. Il y en a des dizaines de milliers dans les FPGA. Sur Arduino, un tel objet ne se pose pas du tout. Et sur une carte avec un microcircuit de faible degré d'intégration, le déclencheur D peut être ressenti comme ceci:



Et voici comment expliquer les circuits séquentiels et le manga D-trigger. Notez que le traducteur japonais a utilisé le mot «séquentiel» pour traduire «séquentiel», bien que le terme «séquentiel» ait été établi dans la littérature russe sur les circuits numériques:



Ici, il serait possible d'écrire plus spécifiquement que les schémas séquentiels, contrairement aux combinaisons, permettent de répéter des actions et d'attendre des événements. En d'autres termes, ils rendent l'ordinateur «intelligent». Sans eux, à l'aide d'un ordinateur, vous ne pourriez calculer que les valeurs d'expressions arithmétiques simples:



Il est regrettable que le manga ne dit rien sur les retards dans les circuits combinatoires et le calcul de la fréquence d'horloge maximale. Cela pourrait être inséré ici à cet endroit:



J'espère que ce manga en Russie aura des successeurs qui feront une sorte de dessin animé avec Ivan Tsarevich et Vasilisa the Beautiful, ce qui introduirait des retards de distribution et un chemin critique, par exemple, basé sur les informations du manuel Harris & Harris. Voici les diapositives appropriées à partir de documents supplémentaires pour le manuel:







Voici une diapositive directe qui dit que pour presque tous les éléments d'état, un déclencheur D est utilisé [sauf pour les cas que les débutants ne rencontrent pas du tout, par exemple, un verrou pour recevoir une horloge fermée sans interférence d'impulsion dans les circuits d'économie d'énergie - D sensible au niveau- loquet pour horloge fermée sans problème utilisé dans les conceptions à faible puissance].



Rappelons que Petzold a utilisé des verrous D pour son introduction, ce qui est faux. Mais non seulement Petzold fait des erreurs à cet endroit. Une fois, j'ai fait un post dans LiveJournal avec une telle image du compteur ci-dessous de l'additionneur et du déclencheur D, après quoi un programmeur russe de l'État du Colorado m'a dit deux jours plus tard qu'il était plus facile de construire des compteurs sur les déclencheurs T. Je lui ai dit qu'il se souvenait correctement des déclencheurs T de son enfance dans les années 1970, mais maintenant, au 21e siècle, les développeurs d'iPhone construisent des compteurs à partir des déclencheurs D, car la situation du compteur est sur les déclencheurs T, dans lesquels le signal de données est utilisé comme signal d'horloge. , ne correspond pas bien à l'analyse de la synchronisation dans les puces pour des milliards de transistors (si vous n'êtes pas d'accord avec moi, veuillez partager mon opinion avec des liens vers les bibliothèques ASIC de TSMC, Synopsys Design Compiler, etc.):



Maintenant, nous avons déjà vu une série d'images sur le travail d'un déclencheur D à deux étages (maître-esclave) avec des fées:





Avec un chronogramme facilement compréhensible - les données sont enregistrées uniquement au moment d'un front positif du déclencheur D, le reste du temps, elles sont ignorées:



Maintenant, le manga passe à l'exemple de l'utilisation d'un déclencheur D pour construire une machine à états simple - un dispositif pour lancer des os électroniques. Honnêtement, je ne suis pas complètement ravi de cette partie du livre. Nous dirons ceci, une machine à états finis dégénérée dans laquelle les états vont en cercle, arrêtés d'un bit - le bouton d'arrêt. S'il y avait plusieurs automates dans le livre d'exemples, alors tout irait bien, mais le définir comme le seul exemple est faux. Il ne montre pas toute la classe des problèmes qui peuvent être résolus à l'aide de machines à états finis. Ci-dessous, je montrerai comment je le compléterais.



Diagramme d'état 0-1-2-3-4-5:



États binaires écrits en trois bascules D:



Un schéma combinatoire qui reçoit un nouvel état de l'ancien:



Et enfin, le manga montre comment concevoir le même schéma non pas en dessinant avec la souris sur l'écran, mais en synthétisant le langage de description du matériel Verilog. Bien que ce code ressemble à un code de langage de programmation comme Pascal ou Java, ce code a une nature fondamentalement différente. Le but du code sur le veril est de se transformer en circuit, avec des fils et des transistors. Et le code dans le langage de programmation est compilé dans une chaîne d'instructions, de zéros et de ceux qui sont stockés en mémoire [il est clair que Verilog et Java peuvent être interprétés + le code dans Verilog peut se transformer en zéros et ceux pour la configuration FPGA + Java peut être traduit en Verilog et deviennent également un diagramme, mais ce sont des détails qui ne contribuent pas à la compréhension initiale]:







Maintenant, pour ainsi dire, j'ai complété l'exemple de la machine à états finis I. Je ferais un exemple plus interactif d'une machine à états finis, par exemple, en utilisant l'analogie avec la soi-disant «salle chinoise». Voici ma description de la salle chinoise, supprimée par l'éditeur de mon article il y a dix ans dans The New Times (ce magazine n'est pas seulement sur la politique, il a aussi une technologie populaire):
En 1980, l'un des détracteurs de l'intelligence artificielle, John Searle, a avancé un élégant argument appelé la «salle chinoise». Supposons qu'à l'avenir il y ait une version du programme Eliza qui parle si bien le chinois que les Chinois ne puissent pas distinguer un ordinateur d'une personne. Supposons maintenant que quelqu'un copie ce programme dans un livre épais avec des instructions mécaniques pour une personne - si vous voyez le caractère A et avant cela, vous avez vu le caractère B, puis retirez le caractère C de la boîte. Maintenant, nous mettons une certaine personne qui ne connaît pas le chinois dans une pièce fermée avec ce livre et le piquer sous les panneaux de porte avec des hiéroglyphes contenant des questions en chinois. En suivant les instructions mécaniques du livre, une personne trouvera dans une boîte et repoussera d'autres signes avec des hiéroglyphes. Du point de vue d'un observateur extérieur, la salle "comprendra" et "parlera" en chinois. Mais qui est porteur de cet esprit? Après tout, l'interprète ne comprend pas le chinois?

John McCarthy et d'autres vétérans de l'intelligence artificielle ont immédiatement déclaré que la raison et même la conscience se manifesteraient dans une «personnalité virtuelle» ou dans un «processus» exécuté dans cette salle. L'un des arguments élégants contre John Searle a été avancé par les philosophes Paul et Patricia Churchland. Comme nous le savons par la physique, a soutenu Churchlands, la lumière est une onde électromagnétique. Supposons qu'un sceptique commence à déplacer un aimant avec sa main, ne voit pas la lumière et commence à affirmer que la lumière est impossible. En fait, pour obtenir la lumière, vous devez agiter un aimant à une vitesse de 450 milliards de coups par seconde. Ainsi, la conscience rationnelle, a soutenu Churchlands, surgirait dans la «salle chinoise» si l'artiste était suffisamment agile.

Il est intéressant de noter que l'écrivain ukrainien de science-fiction Anatoly Dneprov a décrit l'analogue de "The Chinese Room" dans les années 1950 dans l'histoire "The Game".
Alors voilà. Pour mes propres cours et documents, j'ai trouvé un exemple dans lequel une machine à états finis (FSM) en réponse à une séquence de n'importe quel nombre de caractères "ours" et "arbre", avec le caractère final "science" - produit une séquence de caractères "Sibérie". C'est la "chambre chinoise" la plus simple:



Voici son diagramme d'état:



A partir de ce schéma, vous pouvez construire un circuit et l'implémenter sur une carte avec FPGA.

L'autre jour, j'ai utilisé des extraits de ce manga d'Amano Hideharu et Meguro Koji lorsque j'ai donné une conférence Skype en Californie à 150 étudiants de Kazan Innopolis. Les étudiants commencent à étudier l'architecture informatique et ils doivent franchir la barrière de l'incompréhension initiale de la logique numérique. Pour cela, le manga est très bon, surtout si vous l'utilisez en combinaison avec des manuels tels que Harris & Harris "Digital Circuitry and Computer Architecture".

Voici la vidéo de cette conférence:


Les diapositives pour cela et la prochaine conférence peuvent être téléchargées ici:

http://bit.ly/2018-01-25-verilog-1-innopolis-yuri-panchul

http://bit.ly/2018-02-01-verilog-2-innopolis-yuri-panchul

Maintenant, de nombreux lecteurs de publications sur les FPGA se posent souvent la question: "Pourquoi est-ce nécessaire, car il y a plus de travaux sur Java?"

Cela peut être répondu: selon le site de la porte vitrée à San Jose, en Californie, les concepteurs de circuits numériques sont plus appréciés que les développeurs Java:





Et si le lecteur dit: «Et de quoi ai-je besoin à San Jose? Je suis en Russie et je ne menace pas d'aller à San Jose », vous pouvez apporter un nouvel exemple que les jeunes mariés de Saint-Pétersbourg ont pris la première place au concours Intel InnovateFPGA en Europe, après quoi ils ont pris la deuxième place lors de la finale mondiale à San Jose. Les voici assis au bureau d'Intel à San Jose il y a quelques jours. Pour avoir réalisé le projet sur FPGA. Peut-être que pour un projet sur Java, Intel a amené quelqu'un à San Jose avec la remise du prix, mais personnellement, je ne connais pas de tels exemples.



Vladislav Sharshin, Andrey Papushin, Yelena Kirichenko - www.innovatefpga.com/cgi-bin/innovate/teams.pl?Id=EM076



Source: https://habr.com/ru/post/fr422431/


All Articles