Hadas japonesas muestran gatillo maestro-esclavo en nuevo manga en electrónica digital

Ahora, la editorial de DMK-Press está publicando una traducción al ruso del manga japonés en 2013 sobre circuitos digitales creados por Amano Hideharu y Meguro Koji. A pesar de la forma frívola de presentación, la esencia de este libro es muy sólida. Por ejemplo, parte de microcircuitos antiguos con un pequeño grado de integración y los vincula rápidamente con el lenguaje de descripción de hardware Verilog moderno y los circuitos integrados de lógica programable (FPGA). Además, el manga define claramente por qué se necesitan esquemas combinacionales y secuenciales, y da una idea de los métodos de optimización.

Manga evita los errores de muchos de sus predecesores. Charles Petzold cometió uno de estos errores en el libro "Código", que introdujo la lógica secuencial no en los activadores D controlados por el borde de la señal del reloj (flip-flop D activado por el borde), sino en los activadores D con operación de nivel (pestillos, D-latch sensible al nivel), aunque más tarde cambió a los disparadores correctos. El error probablemente se debió al hecho de que Charles Petzold, que se hizo famoso como autor de libros de texto sobre programación GUI en Microsoft Windows, no era un desarrollador de electrónica en ejercicio y los pestillos eran "más fáciles" para él que los disparadores montados en la parte delantera. El problema es que los pestillos son poco compatibles con el análisis estático de retrasos en la síntesis lógica, la tecnología principal para diseñar circuitos digitales de los últimos 30 años. Los sistemas en un chip dentro de dispositivos como un iPhone usan disparadores D activados por estado en el 99% de los casos como elementos de estado, y los pestillos se usan solo en casos muy especiales. Dar a los principiantes que construyan circuitos en los pestillos, esto significa engañarlos.

En este sentido, el manga es mejor que Petzold. Así es como el manga explica elegantemente el gatillo maestro esclavo D de dos etapas controlado por el frente del reloj. Esto se hace con la ayuda de Fairy Hee Hee Hee y Fairy Ha Ha Ha:



A continuación, destaco mis comentarios en azul para que no se fusionen con citas del manga:

Pero empecemos en orden. El manga sobre circuitos digitales comienza con microcircuitos, e inmediatamente menciona ambos microcircuitos viejos de un pequeño grado de integración, con varios elementos lógicos, y modernos, con millones y miles de millones de transistores:





El manga explica el trabajo de elementos lógicos utilizando analogías simples y agradables para adolescentes:



¿Por qué mencionar microcircuitos de bajo grado de integración, que están obsoletos hace 50 años? El hecho es que a pesar de su edad venerable, los ejercicios en una placa de prueba con tales microcircuitos son la forma más intuitiva de mostrar a los estudiantes cómo funciona un elemento lógico. No necesita instalar software para modelar o sintetizar FPGA. Todo lo que necesita es una placa de pruebas, batería de 9 voltios, microcircuito, cables, LED y botones:



Algunos maestros en los círculos escolares creen que todos estos ejercicios deberían ser reemplazados por Arduino. Esta opinión surgió en la década de 1970-1980, cuando los microcontroladores y procesadores integrados entraron en formación. Un escolar típico en 1988 no podía gastar cientos de miles de dólares para fabricar su propio microcircuito en la fábrica, y cada vez se usaban menos microcircuitos viejos de un pequeño grado de integración en productos industriales reales. Por lo tanto, en ese momento, agitaron su mano en la lógica digital para los escolares y dedicaron toda su energía a la programación de la enseñanza. Aquí hay un comentario de Facebook que describe esta opinión en estos días:



Sin embargo, 30 años después, todo cambió nuevamente:


1. Primero, en el mismo 1988, apareció una tecnología para diseñar microcircuitos utilizando síntesis lógica, a partir del código en los lenguajes de descripción de hardware: Verilog y VHDL.

2. Al mismo tiempo, en la década de 1980, aparecieron los circuitos integrados lógicos programables (FPGA): matrices de elementos lógicos reconfigurables con los que puede costear los circuitos digitales simplemente cambiando el contenido de la memoria de configuración dentro del FPGA.

3. En la década de 1990, la enseñanza de HDL, síntesis lógica y FPGA se incluyó en los programas de todos los departamentos de electrónica de las universidades occidentales, aunque en Rusia y Ucrania, debido al caos posterior a la perestroika, este proceso fue más lento.

4. En la década de 2000, la velocidad de los procesadores tradicionales dejó de crecer, y los vendedores comenzaron a predecir la fragmentación del mercado de procesadores integrados (que sucedió - nube, IoT), así como la aparición de combinaciones de procesadores y computadoras especializadas para diversas tareas (que sucedió - primero, es rápido gráficos móviles, luego chips especializados para minar criptomonedas, visión por computadora y aceleradores de redes neuronales).

5. Ahora, en 2010, los precios de los tableros FPGA cayeron al nivel cuando estuvieron disponibles para los escolares. Al mismo tiempo, la industria requiere una gran cantidad de nuevos ingenieros para crear enormes microcircuitos con redes neuronales. Incluso si va a trabajar toda su vida en la programación, para comprender los nuevos sistemas necesita conocer los principios de operación del equipo: circuitos combinacionales y secuenciales, máquinas de estado, temporización, tuberías, etc. Entonces puede comprender si vale la pena procesar los datos con un programa regular o una unidad de hardware.

Por lo tanto, los microcircuitos de un pequeño grado de integración le permiten "tocar" las primitivas de hardware directamente. E inmediatamente después de explicar acerca de los esquemas de un pequeño grado de integración, el manga presenta tanto los lenguajes de descripción de hardware como el FPGA:





Después de describir los elementos lógicos, el manga muestra cómo construir un esquema combinatorio útil para la votación mayor:







Entonces este esquema está optimizado. En mi opinión, el manga dedica demasiado tiempo a la optimización combinatoria. Pero vale la pena recordar que los japoneses escribieron el manga, y tienen un principio en la cultura 切磋琢磨 (sesión de takuma): pulir algo (como una espada) hasta que se vuelva perfecto. Por lo tanto, en el manga hay optimización basada en el sentido común y optimización basada en diagramas de Carnot. La síntesis lógica de los lenguajes de descripción de hardware hace que tales optimizaciones se realicen automáticamente:





El manga también tiene un esquema romántico, es decir, una escena:




El esquema de votación mayoritaria se puede ensamblar fácilmente en microcircuitos de un pequeño grado de integración. Se puede argumentar que observar los elementos combinatorios AND-OR-NOT / AND-OR-NOT en el tablero no es muy interesante, ya que el álgebra booleana también se explica en la lección de programación habitual. Se puede argumentar que, aunque los niños de 7 años pueden entender Y-O-NO, algunos escolares tropiezan con una barrera mental cuando intentan comprender los desencadenantes D. En este caso, una demostración visual se vuelve más valiosa.

Desafortunadamente, el estudiante no puede "tocar" sus manos directamente con D-triggers dentro del FPGA. Hay decenas de miles de ellos en FPGA. En Arduino, tal objeto no surge en absoluto. Y en una placa con un microcircuito de pequeño grado de integración, el D-trigger puede sentirse así:



Y aquí está cómo explicar los circuitos secuenciales y el manga D-trigger. Tenga en cuenta que el traductor japonés utilizó la palabra "secuencial" para traducir "secuencial", aunque el término "secuencial" se ha establecido en la literatura rusa sobre circuitos digitales:



Aquí sería posible escribir más específicamente que los esquemas secuenciales, a diferencia de los combinacionales, permiten repetir acciones y esperar eventos. En otras palabras, hacen que la computadora sea "inteligente". Sin ellos, usando una computadora, solo podrías calcular los valores de expresiones aritméticas simples:



Es lamentable que el manga no diga nada sobre los retrasos en los circuitos combinacionales y el cálculo de la frecuencia máxima de reloj. Esto podría insertarse aquí en este lugar:



Espero que este manga en Rusia tenga sucesores que hagan algún tipo de caricatura con Ivan Tsarevich y Vasilisa the Beautiful, lo que introduciría retrasos en la distribución y una ruta crítica, por ejemplo, basada en información del libro de texto Harris & Harris. Aquí están las diapositivas apropiadas de materiales adicionales para el libro de texto:







Aquí hay una diapositiva directa que dice que para casi todos los elementos de estado se usa un disparador D [excepto en los casos en que los principiantes no encuentran nada, por ejemplo, un pestillo para recibir un reloj cerrado sin interferencia de pulso en los circuitos de ahorro de energía - D sensible al nivel pestillo para reloj cerrado sin fallas utilizado en diseños de baja potencia].



Recuerde que Petzold usó cierres en D para su presentación, lo cual está mal. Pero no solo Petzold comete errores en este lugar. Una vez hice una publicación en LiveJournal con una imagen del contador debajo del sumador y el disparador D, después de lo cual un programador ruso del estado de Colorado me dijo dos días después que era más fácil construir contadores con disparadores T. Le dije que recordaba correctamente los activadores T de su infancia en la década de 1970, pero ahora, en el siglo XXI, los desarrolladores de iPhone crean contadores a partir de los activadores D, porque la situación del contador está en los activadores T, en los que la señal de datos se utiliza como señal de reloj , no encaja bien con el análisis de sincronización en chips para miles de millones de transistores (si no está de acuerdo conmigo, divida mi opinión con enlaces a las bibliotecas ASIC de TSMC, Synopsys Design Compiler, etc.):



Ahora ya hemos visto una serie de imágenes sobre el trabajo de un gatillo D de dos etapas (maestro-esclavo) con hadas:





Con un gráfico de tiempo fácilmente comprensible: los datos se registran solo en el momento de un borde positivo del disparador D, el resto del tiempo se ignoran:



Ahora el manga continúa con el ejemplo del uso de un disparador D para construir una máquina de estado simple: un dispositivo para lanzar huesos electrónicos. Honestamente, no estoy completamente encantado con esta parte del libro. Diremos esto, una máquina de estados finitos degenerados en la que los estados van en círculo, detenidos en un bit: el botón de parada. Si hubiera varios autómatas en el libro de ejemplos, entonces todo estaría bien, pero establecerlo como el único ejemplo es incorrecto. No muestra toda la clase de problemas que se pueden resolver con máquinas de estados finitos. A continuación, mostraré cómo lo complementaría.



Diagrama de estados 0-1-2-3-4-5:



Estados binarios que se escriben en tres D-flip-flops:



Un esquema combinatorio que recibe un nuevo estado del anterior:



Y finalmente, el manga muestra cómo diseñar el mismo esquema no dibujando con el mouse en la pantalla, sino sintetizando el lenguaje de descripción de hardware Verilog. Aunque este código se parece a un código de lenguaje de programación como Pascal o Java, este código tiene una naturaleza fundamentalmente diferente. El propósito del código en el veril es convertirse en un circuito, con cables y transistores. Y el código en el lenguaje de programación se compila en una cadena de instrucciones, ceros y unos que están almacenados en la memoria [está claro que tanto Verilog como Java pueden interpretarse + el código en Verilog puede convertirse en ceros y unos para la configuración FPGA + Java puede traducirse a Verilog y también se convierte en un diagrama, pero estos son detalles que no contribuyen a la comprensión inicial]:







Ahora, por así decirlo, completé el ejemplo sobre la máquina de estados finitos I. Yo haría un ejemplo más interactivo de una máquina de estados finitos, por ejemplo, usando la analogía con la llamada "sala china". Aquí está mi descripción de la sala china, eliminada por el editor de mi artículo hace una década en The New Times (esta revista no es solo sobre política, también tiene tecnología popular):
En 1980, uno de los críticos de la inteligencia artificial, John Searle, presentó un elegante argumento llamado "habitación china". Supongamos que en el futuro hubiera una versión del programa Eliza que hablara chino tan bien que los chinos no pudieran distinguir una computadora de una persona. Ahora suponga que alguien volvería a escribir este programa en un libro grueso con instrucciones mecánicas para una persona: si ve el carácter A y ha visto el carácter B antes, elimine el carácter C de la caja. Ahora colocamos a una determinada persona que no sabe chino en una habitación cerrada con este libro y lo meterá debajo de los carteles de la puerta con jeroglíficos que contienen preguntas en chino. Siguiendo las instrucciones mecánicas del libro, una persona encontrará en una caja y empujará hacia atrás otros signos con jeroglíficos. Desde la perspectiva de un observador externo, la sala "entenderá" y "hablará" en chino. ¿Pero quién es el portador de esta mente? Después de todo, ¿el intérprete no entiende chino?

John McCarthy y otros veteranos de la inteligencia artificial declararon de inmediato que la razón e incluso la conciencia se manifestarían en una "personalidad virtual" o en un "proceso" llevado a cabo en esta sala. Uno de los elegantes argumentos contra John Searle fue presentado por los filósofos Paul y Patricia Churchland. Como sabemos por la física, argumentó Churchlands, la luz es una onda electromagnética. Suponga que un escéptico comienza a mover un imán con la mano, no ve la luz y comienza a afirmar que la luz es imposible. De hecho, para obtener la luz, debe agitar un imán a una velocidad de 450 mil millones de golpes por segundo. Así, la conciencia racional, argumentó Churchlands, surgiría en la "sala china" si el artista fuera lo suficientemente ágil.

Es interesante que el escritor ucraniano de ciencia ficción Anatoly Dneprov describiera el análogo de "The Chinese Room" en la década de 1950 en la historia "The Game".
Entonces aquí. Para mis propias conferencias y materiales, se me ocurrió un ejemplo en el que una máquina de estados finitos (FSM) en respuesta a una secuencia de cualquier número de caracteres "oso" y "árbol", con el carácter final "ciencia" - produce una secuencia de caracteres "Siberia". Esta es la "habitación china" más simple:



Aquí está su diagrama de estado:



Desde este diagrama puede construir un circuito e implementarlo en una placa con FPGA.

El otro día usé extractos de este manga de Amano Hideharu y Meguro Koji cuando di una conferencia de Skype desde California a 150 estudiantes de Kazan Innopolis. Los estudiantes comienzan a estudiar arquitectura de computadoras y necesitan romper la barrera del malentendido inicial de la lógica digital. Para esto, el manga es muy bueno, especialmente si lo usa en combinación con libros de texto como Harris & Harris "Digital Circuitry and Computer Architecture".

Aquí está el video de esta conferencia:


Las diapositivas para esta y la próxima conferencia se pueden descargar aquí:

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

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

Ahora, muchos lectores de publicaciones sobre FPGA a menudo tienen la pregunta: "¿Por qué es esto necesario, porque hay más trabajos en Java?"

Esto se puede responder: según el sitio de glassdoor en San José, California, los diseñadores de circuitos digitales son más valorados que los desarrolladores de Java:





Y si el lector dice: “¿Y qué necesito para San José? Estoy en Rusia y no amenazo con ir a San José ", puede traer un nuevo ejemplo de que los recién casados ​​de San Petersburgo obtuvieron el primer lugar en la competencia Intel InnovateFPGA en Europa, después de lo cual obtuvieron el segundo lugar en la final mundial en San José. Aquí están sentados en la oficina de Intel en San José hace unos días. Por realizar el proyecto en FPGA. Quizás para un proyecto en Java Intel trajo a alguien a San José con la presentación del premio, pero personalmente no conozco esos ejemplos.



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



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


All Articles