?

Log in

No account? Create an account
Между транзистором и Ардуиной: семинары по электронике для школьников в Киеве и Новосибирске - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Между транзистором и Ардуиной: семинары по электронике для школьников в Киеве и Новосибирске [Mar. 29th, 2017|07:15 am]
Yuri Panchul
Более 30 лет назад, в 1986 году, я участвовал во Всесоюзной Новосибирской Летней Школе Юных Программистов, где получил диплом 1 степени за разработку поддержки многозадачности в языке Си на компьютере MSX Yamaha. Тогда я написал на ассемблере Z80 обработчик прерывания по таймеру, в котором переключал контекст задач. Для времени и возраста было вполне. И вот теперь, в 2017 году, я решил поехать на ЛШЮП снова, но уже в качестве инструктора, и уже согласовал программу с организаторами. В процессе я познакомлю слушателей с некоторым инсайдом индустриальных проектов, в которых я участвую в Silicon Valley, в частности проекта чипа EyeQ5 для самоуправляемого автомобиля, который планируется для выпуска в 2020 году.

А еще до Новосибирска я решил съездить в Киев, где в том же 1986 году учился в физматшколе номер 145 (откуда меня собственно и отправили в Новосибирск). Но план 2017 года в Киеве еще не утвержден, он на стадии обсуждения, которое я предлагаю провести в комментариях.



Кратко:

1. Недельный семинар для школьников в Киеве, с возможной датой в конце апреля. Введение школьников в электронику, используя микросхемы малой степени интеграции на макетной плате, с переходом на FPGA, микроконтроллеры и встроенные процессоры для IoT, все в виде breadboardable модулей. От младших школьников (для них только комбинационная логика на микросхемах малой степени интеграции) до старших школьников (для них последовательностная логика, языки описания аппаратуры и синтез). И для обычных школ, и для физматшкол. Работа с украинской компанией-партнером для создания наборов для школьников.

Табличка с проектом программы

2. Двухнедельная «мастерская» для школьников на знаменитой Летней Школе Юных Программистов в Новосибирске в второй половине июля. Предполагаемый материал включает материал, который готовится для семинара в Киеве, но с вариациями, например вместо FPGA Xilinx видимо будут FPGA Altera, а вместо набора от украинской компании будет использоваться похожий набор от российской компании. Кроме этого, так как в Новосибирске будет больше специально отобранных детей и вдвое больше времени, мы попробуем ввести некоторый продвинутый материал, в частности концепцию конвейерной обработки и конструирование простого процессора на FPGA.


Анонс: http://school.iis.nsk.su/lshyup-2017/masterskie-6

Сначала анонс в Новосибиоске:


http://school.iis.nsk.su/lshyup-2017/masterskie-6

Мастерская №1 "Мастерская архитекторов микросхем"
Мастер: Юрий Панчул

Цифровое железо, от логических элементов до собственного процессора

Хотите узнать, как проектируют микросхемы в современных устройствах - от телефона до космического корабля? Последние 25 лет это делают с помощью методологии логического синтеза кода на языках описания аппаратуры. Именно эту технологию мы выучим в нашей мастерской и применим для проектирования собственных устройств.

Мы начнем с трех ключевых кирпичиков цифровой электроники - логического элемента, тактового сигнала и D-триггера, памяти для одного бита информации. Для наглядности мы освоим их старомодным способом, соединяя проводами микросхемы малой степени интеграции на макетной плате.

Затем мы повторим построенные схемы на языке описания аппаратуры SystemVerilog и промоделируем их на программе-симуляторе. Но как мы можем воплотить их в микросхемы? Ведь заказ коммерческой микросхемы на фабрике очень дорогой? К счастью, существуют “перестраиваемые” программируемые логические интегральные схемы (ПЛИС), платы с которыми которые мы и будем использовать для наших занятий.

Помимо упражнений с арифметическими блоками и конечными автоматами, мы попробуем построить простой процессор, похожий по микроархитектуре на процессор Mongoose-V внутри космического корабля New Horizons, который год назад пролетел мимо Плутона.

Заодно мы изучим немного программирования на ассемблере, концепцию прерываний, сравним свой процессор с промышленными микроконтроллерами и встроенными микропроцессора, вплоть до микропроцессора EyeQ5 для самоуправляемого автомобиля, который планируется для выпуска в 2020 году.




Идея организовать мероприятие в Киеве пришла в голову профессору Светлане Владимировне Хуткой, которая до этого три года преподавала в Стенфорде (тематика: демократические преобразования в Украине) и насмотрелась на преподавательсткие традиции титанов калибра Джона Хеннесси, бывшего президента Стенфорда, изобретателя процессорной архитектуры MIPS и соавтора двух самых популярных учебников компьютерной архитектуры: Computer Architecture: A Quantitative Approach и Computer Organization and Design: the Hardware/Software Interface. Профессор Светлана Владимировна в центре, мужчина в галстуке — Джон Хеннесси:


Теперь может возникнуть вопрос: а почему мастерская начинается с микросхем малой степени интеграции?

Именно это спросил у меня на днях Владислав Халамов из Российская ассоциация образовательной робототехники. Он посмотрел вот на такое видео, которое я снял у себя в саду:



и задал вопрос, на который я расписал Владиславу ответ:



Теперь пройдем шаг за шагом по программе возможного киевского мероприятия, которая является подмножеством мероприятия в Новосибирске. Начинается с транзисторов:





На фотографии слева доцент киевского университета КНУ Александр Барабанов, он расскажет про транзистор и физику. Справа Евгений Короткий, руководитель лаборатории Лампа киевского политеха КПИ, он расскажет про таймер 555:



Теперь переходим к комбинационной логике и арифметике:



Школьники получат индивидуальные задания со следующими микросхемами:



И поэкспериментируют с логикой каждой, втыкая входы в 0 или 9V и рассматривая горит ли светодиод, подключенный к выходу:



Это упражнение можно усложнить, подсоединив кнопки. Заодно можно рассказать про подтягивающие резисторы (про резисторы для ограничения тока через светодиоды мы расскажем раньше):



После этого участники освоят двоичную арифметику и построят сумматор с микросхемами CMOS 4008:



Теперь иы вернемся в XXI век и сделаем те же упражнения с логикой и арифметикой, но с микросхемами ПЛИС / FPGA. Для этого существует вот такой вставляемый в макетную плату модуль:





Вот пара примеров кода на Verilog и синтезированного из него схем, которые прошиваются в ПЛИС. Из контрольных, которые будут использоваться во время семинаров (как минимум в Новосибирске, где будет больше времени для контрольных):

module top1
(
    input      a,
    input      b,
    input      carry_in,
    output reg sum,
    output reg carry_out
);

    reg p, q;

    always @*
    begin
        p = a ^ b;
        q = a & b;

        sum       = p ^ carry_in;
        carry_out = q | (p & carry_in);
    end

endmodule




Если в Киеве возникнет N преподавателей, которые готовы совместно сделать обучающие материалы для школьников на основе этих FPGA модулей, то я готов им после семинара эти модули оставить. Но с условием, что они потом напишут статьи на Хабре и (если идет речь про образовательный пакет MIPSfpga) статью на сайте Imagination Technologies (пример 1, пример 2, пример 3, пример 4, пример 5):



С последовательностной логикой важный момент - объяснение что такое и зачем нужен D-триггер. Это нагляднее делать с микросхемами малой степени интеграции:



Потом можно сделать сдвиговый регистр и счетчик - сначала с микросхемами малой степени интеграции, а потом на ПЛИС:



module shift_register
(
    input             clock,
    input             resetn,
    input             in,
    input             enable,
    output            out,
    output reg [15:0] data
);

    always @ (posedge clock or negedge resetn)
    begin
        if (! resetn)
            data <= 16'b0;
        else if (enable)
            data <= { in, data [15:1] };
            // data <= (data >> 1) | (in << 15);
    end
    
    assign out = data [0];

endmodule




Наконец, после схемотехники можно поговорить, как это те же самые действия (бегающие огоньки, работу с датчиками освещения) сделать не в схемотехнике / реконфигурируемом хардвере, а с помощью программирования микроконтроллеров / в софтвере:



Для этого я использую вставляемый в макетную плату модуль с микроконтроллером Microchip PIC32MX, про который я расскажу в отдельном посте:



Например бегающие огоньки, реализованные на нем программным образом, выглядят так:

void main (void)
{
    int n;
    
    TRISC = 0;  // Setting LEDs on breadboard as outputs connected to port C
    n     = 0x23;

    for (;;)
    {
        n = (n >> 1) | ((n & 1) << 7);
        PORTC = n << 2;
        delay (1000);
    }
}


Тоже вроде и код, но код на Верилоге и код на Си имеют разную природу - первый описывает схему, а второй - цепочку команд, инструкций процессора в парадигме машины фон-Неймана.

Также планируется использовать модуль LinkIt Smart 7688 с чипом от MediaTek, который может исполнять встроенный вариант Линукса под названием OpenWRT. К внешним устройствам с него можно обращаться как в стандартной Unix-овой парадигме open/read/write/close/ioctl, так и через библиотеку MRAA, которая пришла от Intel Edison и Galileo, и на Питоне:



Наконец можно провести и Хакатон:



На нем младшие школьники могут делать проекты с микросхемами малой степени интеграции, а старшие - подсоединять к микроконтроллерам, ПЛИС и встроенным процессорам различные периферийные устройства, например сенсоры:




Кстати, Владислав Халамов из образовательно-роботической ассоциации с важностью внедрения ПЛИС согласился:



Итого, что скажете, господа? Особенно интересует мнение преподавателей из Киева, так как план этого мероприятия еще не устаканился.
LinkReply

Comments:
[User Picture]From: kamarado_anton
2017-03-29 03:15 pm (UTC)
считаю это диверсия, направленная против отечественной элементной базы
(Reply) (Thread)
[User Picture]From: panchul
2017-03-29 04:00 pm (UTC)
Почему?
(Reply) (Parent) (Thread)
[User Picture]From: slava68
2017-03-29 04:14 pm (UTC)
на компьютере MSX-2 Yamaha я в 1988 только в игры играл и на Бэйсике школьное расписание писал, когда от наличия учителей на работе менялось расписание уроков.
Получил "отлично" за год, в октябре :-)))
(Reply) (Thread)
[User Picture]From: craftwr
2017-03-29 05:32 pm (UTC)
Собираетесь в Куеве ваять "хуйборгов"?
(Reply) (Thread)
[User Picture]From: ottonturk_g
2017-03-29 07:23 pm (UTC)
Молодцы вы. Я планирую как раз расбери взял скоро ардуинку возьму.ю Вот разберусь с основными проблекмками....
(Reply) (Thread)
[User Picture]From: move2winnipeg
2017-03-29 08:13 pm (UTC)
Не зря я за вами подглядывал и про хризантемы читал ;)
Я как раз сейчас плотно заинтересовался контроллерами и логикой. Пока играюсь, паяю схемы, читаю код и мануалы. Мне кажется, для кодера вообще полезно знать, как потроха работают, а в процессе можно напаять полезных мелочей для дома для семьи :)
У меня в планах проект с контроллерами, IoT и пр. У нас был в команде паяльник, но сбежал, не захотел бесплатно работать почему-то. На самом деле, он хороший человек, оставил свои наработки, под обещание поделиться будущими прибылями.
Статью прочёл с интересом, структура занятий на мой взгляд разумная и ровная. Детишков учить вообще дело хорошее и тема перспективная.
(Reply) (Thread)
[User Picture]From: pappadeux
2017-03-29 08:32 pm (UTC)
А профессор вполне ничего - я бы с ней Хуткой познакомился, исключительно для разговора о схемах больший степени интеграции
(Reply) (Thread)
[User Picture]From: panchul
2017-03-29 09:04 pm (UTC)
Дык приежайте в Киев, она незамужняя кстати
(Reply) (Parent) (Thread)
[User Picture]From: pappadeux
2017-03-29 08:50 pm (UTC)
я, конечно, мало о железе знаю, но что, мне кажется, отсутствует это простенький визуальный редактор с всеми этими AND, NAND, OR, чтоб можно просто мышкой без кода комбинировать

скаже, сделал сумматор, потом обвел мышкой и сказал что пусть это будет новый элемент "сумматор" и редактор присвоит символ, сделает как подпрограмму etc

т.е. пусть схемы малой интеграции собирают и пробуют на лаптопе
(Reply) (Thread)
[User Picture]From: panchul
2017-03-29 09:02 pm (UTC)
*** скаже, сделал сумматор, потом обвел мышкой и сказал что пусть это будет новый элемент "сумматор" и редактор присвоит символ, сделает как подпрограмму etc ***

Всем кто это дело пробует в первый раз, кажется, что вводить схемы мышкой проще, чем писать код и потом его визуализировать в schematic viewer. На самом деле после пары часов практики становится очевидно, что писать код гораздо (на порядок) проще, а с небольшим усложнением дизайна водить мышкой становится просто нереально.

Этот графический редактор - это лишний шаг на самом деле. Как программы блок-схемами рисовать, но еще хуже. Очень много возни по сравнению с HDL entry. Вот вы попробуйте.
(Reply) (Parent) (Thread)
[User Picture]From: pappadeux
2017-03-29 09:17 pm (UTC)
> Вот вы попробуйте

а есть такое в свободном доступе?

и попроще, а не полный тул от Каденс с 30-тидневным периодом
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2017-03-29 09:51 pm (UTC)
В том же Altera Quartus II (бесплатной версии) такое есть, насколько я помню
(Reply) (Parent) (Thread)
[User Picture]From: holyboyarishnik
2017-04-19 09:41 pm (UTC)
САПР OrCAD Lite является полнофункциональным продуктом и предлагает каждую функциональную возможность полного OrCAD, с ограничениями только по размеру и сложности проекта. В нем нет ограничений по времени, вы можете использовать его так долго, как пожелаете.

http://www.orcad.com/ru/buy/try-orcad-for-free
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2017-04-19 09:45 pm (UTC)
Я думал, что OrCAD - это для печатных плат. Там есть что-то еще ? (HDL simulation и синтез, FPGA итд ?)
(Reply) (Parent) (Thread)
[User Picture]From: holyboyarishnik
2017-04-19 11:07 pm (UTC)
// Там есть что-то еще?

из документации cadence 17.0

OrCAD Capture User Guide
Designing for FPGA

In this section:

Overview of FPGA Projects
Creating a FPGA project
Compiling vendor simulation libraries
Introducing NC VHDL simulations
Performing functional simulation
Performing Synthesis and Place-and-Route
Performing Timing Simulation
Generating a part for FPGA projects
Simulating the Board
NC VHDL in Batch Mode
VHDL and Verilog reserved words
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2017-04-19 11:16 pm (UTC)
Подождите, а что NC VHDL - это часть OrCAD? Что они используют для синтеза? Если OrCAD совместим с другими пакетами, это не обязательно значит, что они в него входят. Или OrCAD просто позволяет делать schematic capture а потом export Verilog описание схемы?
(Reply) (Parent) (Thread)
[User Picture]From: holyboyarishnik
2017-04-20 09:36 am (UTC)
вот так глубоко не вникал. программируемая логика и синтез пока не входят в область моих интересов. здесь процитировал прочтенный по диагонали раздел документации. возможно оркад в этой части подобен visual studio для сторонних тулчейнов - выполняет только функции UI, а для компиляции, сборки, отладки запускается внешний модуль.
(Reply) (Parent) (Thread)
From: micbsv
2017-03-30 04:28 pm (UTC)
Вот здесь о вреде редакторов, простым и доступным языком :)
http://andrey-yurin.livejournal.com/21054.html
(Reply) (Parent) (Thread)
From: creacl
2017-04-03 08:47 pm (UTC)
Apple уведомила британского разработчика Imagination Technologies, что ведет работу над собственным видеоядром, и через два года не будет нуждаться в его технологиях. Благодаря собственной разработке Apple сможет "контролировать свои продукты и уменьшить свою будущую зависимость от технологии Imagination", говорится в уведомлении, направленном в британскую компанию.

Начиная с 2009 года Apple использует в своих мобильных гаджетах графические ускорители PowerVR, произведённые Imagination Technologies. Таким образом яблочной компании приходится выплачивать последней лицензионные платежи с каждого проданного iPhone и iPad (в 2016 году платежи составили порядка 61 миллиона фунтов стерлингов).

Решение Apple будет серьезным ударом для Imagination, который получает за счет американской компании примерно половину своей выручки. Отчисления в пользу британской компании могут прекратиться через 15-24 месяца. В настоящее время Apple владеет более 8% акций британского разработчика. Газета Financial Times сообщала, что год назад Apple вела переговоры о приобретении Imagination, но решила отказаться от полного поглощения.



Вот интересные новости. Надеюсь, хотя бы Вакуленко уволят и он поедет в АТО к любимым с недавних пор хохлам.
(Reply) (Thread)
From: rogir
2017-04-07 03:42 am (UTC)

article about the news

(Reply) (Parent) (Thread)
[User Picture]From: mesays
2017-04-05 09:02 am (UTC)
Напрасно Вы с ними возитесь, Юра. Не оценят и спасибо не скажут эти люди.
(Reply) (Thread)
[User Picture]From: holyboyarishnik
2017-04-19 09:36 pm (UTC)
// на ассемблере Z80 обработчик прерывания по таймеру

в чем нетривиальность задачи? сохранить регистры на стеке, затем восстановить их?

такая "задача с переключением контекста" содержится в биосе спектрума. обработчик маскируемого аппаратного прерывания опрашивает клавиатуру с удвоенной частотой кадровой развертки.
(Reply) (Thread)
[User Picture]From: panchul
2017-04-19 09:46 pm (UTC)
Для советского школьника 15 лет в 1986 году это было ново. Другие школьники программировали на Бейсике рисование случайных квадратов.
(Reply) (Parent) (Thread)
[User Picture]From: ismolnik
2017-04-25 05:03 pm (UTC)
И?
(Reply) (Parent) (Thread)