
Del 2 al 5 de octubre, se celebró en Novosibirsk una escuela sobre los conceptos básicos de circuitos digitales, arquitectura y uso de Verilog . El nombre formal del evento: una escuela para estudiantes de pregrado y posgrado, celebrada en la Universidad Técnica Estatal de Novosibirsk en el marco de la XIV Conferencia Científica y Técnica Internacional "Problemas reales de la instrumentación electrónica" APEP-2018, celebrada bajo los auspicios del IEEE.
Este evento estuvo dirigido principalmente a aquellos que:
- lea el libro Digital Circuitry and Computer Architecture, D. Harris, S. Harris (también conocido como H&H o Harris-i-Harris);
- Quiere poner en práctica sus conocimientos, pero no comprende qué equipo y software se necesitan para esto y no sabe cómo usarlo;
- es un estudiante de último año o estudiante de posgrado y, como se esperaba, difundirá el conocimiento adquirido (realizar talleres, trabajos de laboratorio, etc. en la universidad).
Anuncio: Se planea una escuela similar del 6 al 9 de noviembre en el Instituto de Tecnologías Espaciales y de Información de la Universidad Federal de Siberia (IKIT SFU). La escuela estará dirigida por Alina Leskovskaya, una estudiante graduada, ingeniera de diseño de AIS IS que lleva el nombre de M.F.Reshetnev, así como sus colegas: Dmitry Vlasov y Boris Dudkin. Contacto para el registro: leskovskayaav@yandex.ru
Si su posición suena al menos "Junior FPGA Developer", entonces con alta probabilidad no aprenderá nada nuevo para usted en esta publicación. Para todos los demás, bienvenidos a cat.
Porque es necesario
En un momento (en la escuela secundaria), el autor de estas líneas estudió la arquitectura de la computadora sin usar Verilog o VHDL: llegas a una conferencia durante la cual una caja negra llamada "Computadora" se presenta en muchas cajas negras pequeñas: "procesador", " memoria ", etc. Pero siguen siendo cajas negras: no se puede "subir" al interior, no se puede "cambiar" el dispositivo. El curso termina, pero aún tiene la sensación de que está trabajando con "esencias mágicas de una estructura interna oscura". En el mejor de los casos, puede configurarlos (programa). No hay una imagen holística del mundo digital en mi cabeza. No se comprende cómo funciona por dentro. Ese entendimiento que distingue a un buen ingeniero de "pasado por alto".
Para obtener una imagen completa, es necesario poder cambiar los dispositivos estudiados y crear los suyos. Y aquí Verilog (o VHDL) viene al rescate, software de simulación y placas de depuración de bajo costo con FPGA para registrar el hardware. Un procesador simple ( schoolMIPS ) se puede escribir en 1-2 noches. Y esto no es ciencia espacial, no es magia.
Teniendo en cuenta una imagen holística del mundo digital, no es necesario conectar su vida con el desarrollo de microcircuitos. Pero creo que las personas que realmente entienden cómo funciona el "cuadro de lectura mágico" no escribirán programas terriblemente lentos . Dibujaré un paralelo: un martillo y un taladro en un armario no te hacen carpintero. Al mismo tiempo, puede clavar un clavo, comprende por qué se necesitan estas herramientas, en qué casos vale la pena usar un martillo, por qué no debe tomar un microscopio y cuándo contactar a un profesional.
Programa escolar
El trabajo en la escuela estaba orientado a la práctica. Poner todos los problemas descritos en H&H en cuatro días de teoría y práctica es muy difícil. Por lo tanto, este objetivo no se estableció. Toda la teoría se dio exclusivamente en la cantidad necesaria para la práctica. Por lo tanto, no fue fácil para aquellos que no habían abierto el libro antes.
Día 1
• Idioma para la descripción del hardware y por qué es necesario
• ¿Qué es FPGA?
• Conceptos básicos de la lógica combinacional.
• Elementos lógicos básicos y su descripción en Verilog.
• Entorno de prueba (Testbench)
• Verificación del funcionamiento del circuito combinacional utilizando un simulador (Icarus Verilog, Modelsim)
• Síntesis de circuito combinado, Intel Quartus y Xilinx Vivado GUI
• ¿Para qué se sintetiza el esquema de combinación cuando se implementa en FPGA?
• Programando un tablero de depuración
• Verificación del proyecto en el tablero de depuración
• Fundamentos de Makefile y trabajo en modo no proyecto
• Multiplexor y métodos para su descripción en Verilog HDL
• Demultiplexor y métodos para su descripción en Verilog HDL
• Estudio de caso: trabajar con indicadores de 7 segmentos.
• Compilación condicional en Verilog HDL
Día 2
• Circuitos combinados y tiempo de propagación de la señal.
• Reloj y circuitos en serie.
• Varios tipos de tareas en Verilog HDL
• D-trigger y su implementación en Verilog en varias variaciones: restablecimientos asíncronos y síncronos, puerto de permiso de escritura
• ¿Para qué se sintetiza el circuito secuencial cuando se implementa en base a FPGA?
• Registrarse y su implementación
• Counter y su implementación
• Disciplina dinámica y estática.
• Metaestabilidad y sincronizador
• Pestillo no deseado, consecuencias y formas de evitar
• Máquinas de estados finitos (Mura y Miles)
• Presentación de la máquina en forma de diagramas de transición.
• Implementación de la máquina en Verilog HDL
• Enfoque general para el diseño de autómatas complejos.
• Implementación paso a paso del módulo de interfaz del sensor de distancia ultrasónico en Verilog
Día 3
• Trabajo independiente. Implementación del módulo de interfaz de teclado 4x4 para FPGA
• Trabajo independiente. Implementación de calculadora FPGA
Día 4
• Conceptos básicos de la canalización.
• Arquitectura y microarquitectura.
• Fundamentos del desarrollo en ensamblador MIPS
• Trabaja con el simulador MARS
• Diseño del procesador de ciclo único más simple en el ejemplo de schoolMIPS
• Ruta de datos y dispositivo de control
• Compilar el programa, iniciando el procesador en el simulador y en la placa de depuración
• Trabajo independiente. Agregar soporte para nuevas instrucciones al procesador
Materiales
Todos los materiales del curso (diapositivas, guiones, fuentes, literatura) están disponibles en línea ( github , materiales adicionales ). Las diapositivas están diseñadas en un estilo dudoso, cuando hay mucho texto en ellas, con la esperanza de que esto haga que sea más fácil familiarizarse con los materiales fuera de línea.
Las tareas prácticas e independientes se realizaron principalmente en placas base Terasic DE10-Lite con Intel MAX10 FPGA a bordo. También tuvimos Digilent Nexys 4 DDR , que demostró el trabajo con Xilinx Vivado como ejemplo. Con raras excepciones, los ejemplos están preparados de tal manera que puede usar tanto DE10-Lite como Nexys 4 DDR. La elección a favor de trabajar con placas Intel FPGA se debe a los siguientes motivos:
- DE10-Lite es más barato que Nexys 4 DDR, lo que significa que está disponible para más estudiantes si desean continuar experimentando en casa o como parte del proceso de aprendizaje;
- Los mismos proyectos simples en los que se construye el curso se ensamblan con Intel Quartus muchas veces más rápido que con Xilinx Vivado. Con todas mis simpatías por Vivado, solo tuvimos 4 días.
¿Qué hay del video?
Cuando se anunció el evento, comencé a recibir solicitudes para organizar transmisiones o grabaciones de video. Desafortunadamente, esto no encajaba en el formato de la organización escolar que elegí. No tuvimos ninguna conferencia como tal: algunas diapositivas, luego practicamos. Hay preguntas: estamos analizando, un diálogo constante, chistes graciosos y moviéndose alrededor de la audiencia. Al elegir entre trabajar en la cámara y construir un contacto productivo con el público, elegí el segundo. Cómo sucedió esto depende de los estudiantes juzgar. Por favor trate con comprensión.
Yo tambien quiero
¿Eres un profesor que está interesado en dar conocimiento a los estudiantes? ¿O eres un estudiante que quiere obtener este conocimiento, independientemente de si los maestros lo dan o no? En este caso, incluso si no pudo asistir al evento, tiene toda la información necesaria para dominar el tema y / o construir / cambiar el curso de capacitación:
- El libro "Circuitos digitales y arquitectura informática", que está disponible de forma gratuita en formato electrónico ( enlace ), o se puede comprar en papel ( enlace ). Es fácil de leer, se lleva como ficción. Tiene un umbral de entrada bajo: no se necesitan conocimientos especiales para comenzar a leerlo. Recientemente, se ha lanzado una adición en la arquitectura ARM ( enlace );
- Hay ejemplos de código disponibles para el libro, así como diapositivas (versiones en inglés y ruso) que se pueden usar para crear su propio curso ( enlace );
- Tableros de depuración de bajo costo: Terasic DE10-Lite es la mejor opción, en mi opinión , en términos de relación precio / calidad, $ 55 para aquellos que tienen un estado académico comprobado (excluyendo la entrega). Tablero ZEOWAA : cuando tiene que ahorrar en todo. La opción está funcionando, pero puede haber problemas con el firmware debido al cable USB de baja calidad que viene con el kit;
- Materiales de la escuela actual ( github , materiales adicionales ), así como otros eventos organizados por YuriPanchul ( silicon-russia.com , diapositivas y mucho más ).
Por favor, no esperes que alguien venga a ti y te haga "bien". Su conocimiento, si es un estudiante, y el conocimiento de sus estudiantes, si es un maestro, dependen en un 99% de sus esfuerzos.
¿Qué he soportado por mí mismo?
- En 4 días, puede poner cosas básicas (para aquellos que no han leído H&H) o algo más avanzado (para aquellos que ya han leído el libro). Mejor no combinar.
- Para aquellos que no han leído el libro y no tienen experiencia con FPGA, es recomendable comenzar la práctica de trabajar con microcircuitos con un pequeño grado de integración, y solo entonces dar FPGA. Esto es muy importante porque le permite reconstruir rápidamente el cerebro de un modo relativamente familiar de "programación" al modo de "circuito". Esto ya fue escrito por Yuri ( enlace ). Desafortunadamente, nos perdimos esta etapa.
Agradecimientos
- el iniciador del evento y el organizador de NSTU es Vladimir Makukha;
- mantener la escuela en su forma actual hubiera sido imposible si hace unos años un grupo de entusiastas no hubiera comenzado la traducción de circuitos digitales y arquitectura de computadoras;
- mi llegada a Novosibirsk no hubiera sido posible sin el apoyo de iniciativas educativas que existen dentro de IVA Technologies ;
- dirigir una escuela fue una gran pregunta cuando resultó que los fondos asignados a la universidad para la compra de tableros de depuración colgaban en algún lugar de las profundidades de la burocracia. Los tableros finalmente se recolectaron "con el mundo en un hilo". Mikhail Shadrin (NSU) prestó varios Nexys 4 DDR. Algunos tableros fueron comprados por estudiantes graduados que vinieron a estudiar. Alexander Romanov (MIEM NRU HSE) asignó varias placas Terasic. Pero todavía no había suficientes tablas. YuriPanchul ayudó, después de lo cual Mikhail Shupletsov (Universidad Estatal de Moscú) y yo organizamos rápidamente su compra. Y los chicos de Terasic, sin demora, organizaron el envío lo más rápido posible.
- Dmitry Vlasov, Anton Kulichkov y Valery Barmin ayudaron a dirigir la escuela. Nos conocimos hace un año en Tomsk ( enlace ), y este año ayudaron a los estudiantes con teoría y práctica.
- Muchas gracias a los estudiantes. Sin su deseo de aprender cosas nuevas y sin su persistencia, no habríamos tenido éxito.
Revisiones escolares
Anna Kazmina
Durante 4 días <...> nos sumergimos tanto en la tecnología de desarrollo basada en FPGA que cambió por completo mi idea de usar FPGA en el mundo moderno en la producción real. Anteriormente, en el proceso educativo, usábamos FPGA solo para acelerar la solución de problemas, pero ahora hemos aprendido a usar microcontroladores para el desarrollo de microarquitectura <...> Esta escuela realmente me interesó tanto que planeo desarrollarme en esta dirección. Más eventos de este tipo!
Olesya Radchenko
Muchas gracias al equipo, gracias al cual se llevó a cabo una escuela similar en NSTU. Gracias por la oportunidad de "lanzarse de cabeza" a la programación FPGA, aprender cómo otros desarrolladores trabajan con Quartus, ModelSim y también, por ejemplo, conocer Vivado. Durante estos 4 días consolidé mis viejos conocimientos y aprendí muchas cosas nuevas, por ejemplo, sobre MIPS. <...> Puedo aplicar los conocimientos adquiridos en mi trabajo, que recientemente se ha asociado estrechamente con la programación FPGA
Vladislav Mayer
Quizás quiero señalar que debido al tiempo limitado, logró proporcionar suficiente información para la comprensión inicial del material. Yo personalmente tenía algunos conocimientos básicos del lenguaje de programación de hardware. Pero el escape principal para mí es un cambio de perspectiva en la programación en general. Ahora miro cosas anteriormente familiares desde un ángulo diferente y tengo una idea de cómo implementar estos o esos módulos de manera diferente
Anton Yupashevsky
Durante estos cuatro días, miré la programación de FPGA de una manera completamente diferente, en el lenguaje de descripción de hardware de Verilog, y en la actualidad, usando FPGA. El nivel inicial de conocimiento sobre FPGA y circuitos digitales obtuve otros 4 años de estudio en la universidad y con
no hubo problemas con los esquemas combinacionales y secuenciales más simples, pero luego
aparecieron más y más complejos e interesantes y al final nosotros mismos programamos el núcleo
MIPS Una gran ventaja de esta escuela fue una gran cantidad de práctica.
Mikhail Kireev
Durante la escuela "de la física al chip" en APEP-2018, los dogmas se describieron al trabajar con Verilog:
Debes dominar el libro de Harris. Hay muchas dificultades en este tema cuando se escribe código: los bloques absolutamente idénticos (desde el punto de vista de la lógica) se pueden sintetizar de diferentes maneras <...> La simulación dará muchas más posibilidades al desarrollar que la síntesis: preste más atención a la forma de onda. En mi carrera profesional tengo que trabajar con varias líneas FPGA de diferentes fabricantes, <...> Ahorre su tiempo en el futuro (escribiendo guiones y archivos de creación). Desde un punto de vista práctico, se han considerado varios patrones básicos secuenciales y combinacionales; cinta transportadora, teclado 4x4, ejemplos de máquinas de estado, la arquitectura MIPS más simple y otras tareas.
Z.Y. Me enteré de esta escuela y me inscribí 12 horas antes de su inicio, no me arrepentí de asistir a este evento, aunque leer el libro de Harris habría hecho que el rendimiento fuera mucho más alto.