Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Цифровая микроэлектроника для математиков и про...

Anton
September 19, 2017

Цифровая микроэлектроника для математиков и программистов, абстракт для NGC-2017

Цифровая микроэлектроника для математиков и программистов, абстракт для NGC-2017
https://nanoandgiga.com/ngc2017/digital-design

Anton

September 19, 2017
Tweet

More Decks by Anton

Other Decks in Education

Transcript

  1. Цифровая микроэлектроника для математиков и программистов А.Е.Моисеев Клуб изобретательства и

    робототехники регионального отделения ДОСААФ Нижегородской области, 603140, Нижний Новгород, проспект Ленина, д. 16 «б». НГТУ им. Алексеева, 603950, Нижний Новгород, ул Минина, д. 24. Традиционно, студенты и выпускники «программистских» специальностей таких, как «прикладная математика и информатика», в качестве точки приложения своих знаний имеют дело с «чистым» программным обеспечением: виртуальные машины, математические пакеты, веб-приложения, настольные системы, облачные сервисы, мобильные приложения. В среде преподавателей и инженеров таких специальностей часто принято считать, что области разработки аппаратного обеспечения и микроэлектронных устройств выходят за рамки их компетенций, т. к. требуют глубоких знаний и навыков в области физики и электроники. Однако, современные технологии разработки микроэлектронных устройств и аппаратного обеспечения такие, как популярные микроэлектронные платформы (Arduino, Raspberry Pi, отладочные платы PIC32, STM), ПЛИС и языки описания аппаратного обеспечения, позволяют расширить «ареал обитания» математиков и программистов, дать в их руки новые инструменты без необходимости значительной корректировки фундамента образовательной программы. Например, некоторые внешние аспекты процесса разработки аппаратного обеспечения на языке описания аппаратного обеспечения Verilog и отладкой на ПЛИС можно рассматривать, как процесс разработки приложения на языке «программирования» с еще одной, хотя и очень специфической, парадигмой. Вместе с этим, низкоуровневые аппаратные платформы могут оказаться благодатной почвой для применения специальных знаний и практических навыков из таких областей, как дискретная математика, алгоритмы машинного зрения, искусственного интеллекта, математическое моделирование, параллельные алгоритмы, которые могут быть в большей степени развиты у студентов «математических» специальностей, чем у традиционных «электронщиков». В первой части доклада описывается опыт преподавания специального экспериментального курса «Цифровая микроэлектроника для математиков и программистов» для студентов специальности «Прикладная математика и информатика» в НГТУ им. Р.Е. Алексеева. Курс представляет собой серию обзорных лабораторных работ, шаг за шагом проводящих студентов от понимания фундаментальных принципов работы цифровых микроэлектронных устройств с реализацией операторов булевой алгебры на дискретных логических элементах до реализации простого однотактового процессора с подмножеством команд из архитектуры MIPS на языке Verilog с демонстрацией работы на ПЛИС и низкоуровневого программирования промышленной реализации процессора MIPS — микроконтроллера PIC32. Теоретический материал и практическая часть лабораторных работ подобраны таким образом, чтобы базироваться на знаниях и умениях образовательной программы указанной специальности, не углубляясь или уходя в сторону специальной физики и электроники. Затронуты такие темы, как дискретная математика и булева алгебра как основа воплощения аппаратных вычислителей, конечные автоматы, понимание «истинного» параллелизма на ПЛИС, описательная парадигма языков описания аппаратного обеспечения, понятия архитектуры и микроархитектуры процессора, системное программирование. Во второй части доклада рассказывается об опыте преподавания курса популярной микроэлектроники и робототехники «Сами делайте своих роботов» в Клубе изобретательства и робототехники РО ДОСААФ России Нижегородской области в формате занятий дополнительного образования для школьников 5-11 классов (от 12 лет). Курс включает обзорные практические занятия по 3д-моделированию и 3д- печати, персональному цифровому производству, основам электроники, микроэлектроники, программированию, проектированию электронных устройств, работе над проектами. В качестве аппаратной платформы для микроэлектронной части занятий выбрана платформа ChipKIT — семейство отладочных плат на базе микроконтроллеров PIC32, совместимых на аппаратном и программном уровне с экосистемой Arduino. Опыт занятий показал, что, во- первых, многие школьники, действительно, способны пройти основы и выполнять задания в перечисленных областях, чаще при наличии исходного интереса к техническим знаниям и определенного уровня внутренней мотивации. Во-вторых, что для удержания интереса после серии вводных уроков может потребоваться охватить довольно широкий круг смежных технологий, совокупным набором которых может владеть далеко не каждый студент или инженер. Даже для простейшего электронного устройства на первых этапах разработки может потребоваться организация пульта беспроводного управления с планшета, управление через провод с настольного компьютера, обмен сообщениями между группой устройств напрямую или через облако. Другие задачи потребуют углубленных знаний программируемого контроллера — таких, как управление подключенными устройствами через аппаратный или программный ШИМ, организация простой многопоточности на прерываниях таймера. Каждый преподаватель может сформировать собственный список задач и решений, в согласии с собственным опытом, компетенциями, представлениями. Однако формирование библиотеки типовых задач и решений, шаблонов проектирования, программных библиотек может позволить пройти затянувшуюся стадию первоначального знакомства к стадии создания новых интересных проектов, продуктов и устройств. [1] Как пересечь пропасть от физики к программированию http://1i7.livejournal.com/17550.html [2] Сами делайте своих роботов http://1i7.livejournal.com/32676.html
  2. Digital electronics for mathematicians and programmers A.E.Moiseev Inventiveness and robotics

    club in DOSAAF Nizhny Novgorod, 603140, Nizhny Novgorod, Lenina avenue, h.16 «b». NNTU Alekseeva, 603950, Nizhny Novgorod, Minina st, h. 24. Traditionally, students and graduates of “programmer” specialities like “applied math and informatics” deal with “pure” software: virtual machines, math software, web applications, desktop systems, clouds, mobile applications etc. Teachers and engineers often think, that hardware and microelectronic devices development go beyond the bounds of their competence because they would require deeper knowledge in physics and electronics. However, modern hardware design and microelectronic devices development tools like popular microelectronics platforms (Arduino, Raspberry Pi, PIC32 and STM devboards), FPGA and hardware definition languages allow to broaden “habitat” of mathematicians and programmers without fundamental changes in their educational program. For example, some visual aspects of hardware design process with hardware definition language with FPGA could be treated as software development process with a kind of “programming” language, though with quite specific paradigm. At the same time low level hardware platforms could become quite fertile ground to apply special knowledge and practical skills from such areas as discrete math, computer vision and AI algorithms, math modeling, parallel computing algorithms which would be highly developed for “mathematician” specialization students rather than traditional “electronicians”. The first part of the report describes experimental course “Digital microelectronics for mathematicians and programmers” for “Applied math and informatics” specialization students at NNTU Alekseeva. The course represents a series of overview practical studies step by step leading students from fundamental principles of digital devices with boolean algebra implementation on discrete logical elements to simple single cycle processor implementing subset of MIPS architecture commands written in Verilog language running on FPGA. Theoretical materials and practical part are picked in the way, that they are based on knowledge and skills coming from educational program of the stated specialization, trying not to go deep to special physics or electronics areas. Some included topics are discrete math and boolean algebra as hardware computer basis, finite state machines, “true” parallelism on FPGA, descriptive paradigm of hardware definition languages, architecture and microarchitecture , system programming. The second part of the report describes the course of popular microelectronics and robotics “Make your robots yourself” in the Inventiveness and robotics club in DOSAAF Nizhny Novgorod for schoolers 5-11 class (12+ years old). The course includes practical lessons on 3d- modeling and 3d-printing, personal digital manufacturing, electronics, microelectronics, programming, digital device engineering and development, work on projects. For the hardware platform for microelectronic part of the course was chosen ChipKIT platform – a set of development boards based on PIC32 microcontroller compatible with Arduino ecosystem. The classes have shown that even for basic toy robotics projects wide range of technologies required from the whole start. Each teacher would compose his own list of typical tasks and solutions according to his skills and expertize. But making a common library of typical tasks and solutions, design patterns, program libraries would be helpful to move educational microelectronics and robotics projects forward. [1] How to jump over the abyss from physics to programming http://1i7.livejournal.com/17550.html [2] Make your robots yourself http://1i7.livejournal.com/32676.html