Хабрахабр

Как я не готовился и провел роснановский семинар по ПЛИС-ам в Москве. Планы сделать то же в Лас-Вегасе и Зеленограде

У вас бывает такой сон: вы оказываетесь на экзамене или выступаете перед некоторой аудиторией, и вдруг осознаете, что вы вообще не готовились и сейчас прийдется импровизировать. Именно в такой ситуации, но не во сне, а в реале, я оказался перед майскими праздниками в Москве, куда прилетел из Калифорнии, чтобы провести трехдневный семинар для тщательно отобранных школьников ведущих московских физматшкол. Под эгидой РОСНАНО, в гимназии РУТ (МИИТ) и в присутствии преподавателей из МИЭТ, МИРЭА, МИФИ, МЭИ и ВШЭ МИЭМ.

Реально у меня была куча каких-то примеров для других плат, из которых я в суматохе перелетов и других мероприятий ничего не построил. Московские коллеги на меня понадеялись, и теоретически я должен был бы привезти с собой пошаговые инструкции и примеры разнообразных упражнений на плате с микросхемой реконфигурируемой логики.

И как ни странно — это получилось. Поэтому я взял некий универсальный пример, который написал полтора года назад, сидя в самолете Алма-Ата — Астана, выкинул из примера все внутренности и начал со школьниками его наполнять, без жесткого плана чем. В процессе наполнения возникли поучительные моменты цифровой схемотехники и языка описания аппаратуры Verilog, которые при планировании бы не возникли.

Планы этих мероприятий (не окончательные, а для обсуждения в группе преподавателей и инженеров, в том числе здесь, на Хабре) — в конце поста. 4 июня я с коллегами по Wave Computing провожу похожий семинар в Лас-Вегасе, но только для взрослых, а 8-19 июля помогаю МИЭТ провести летнюю школу в Зеленограде.

Программируемые логические интегральные схемы (ПЛИС-ы или FPGA — Field Programmable Gate Arrays) — это традиционный способ закрепления знаний практикой при изучении проектирования цифровых схем на уровне регистровых передач, с использованием языков описания аппаратуры.
Зачем нужен семинар по ПЛИС-ам школьникам? Отставание России по айфонам произошло в том числе потому, что лабы по ПЛИС-ам, микроархитектуре и языкам описания аппаратуры внедрили в Беркли и MIT еще в начале 1990-х, а в России из-за коллапса СССР — сильно позже. Иными словами, ключевой технологии для разработки айфонов — микросхемы внутри айфонов спроектированы именно так.

Онлайн курс предназначен для продвинутых школьников олимпиадного типа и состоит из трех модулей: «От транзистора до микросхемы», «Логическая сторона цифровой схемотехники» и «Физическая сторона цифровой схемотехники». Последний роснановский семинар прошел на удивление гладко прежде всего потому, что школьники, которые на него пришли, предварительно прошли теоретический онлайн-курс с профориентационным обзором современных методов проектирования микросхем. ПЛИС/FPGA используются для прототипирования ASIC-ов, в том числе в таких компаниях как Intel, Apple и NVidia. В этом курсе школьники знакомятся с так называемым маршрутом RTL2GDSII — группой технологий, которые используют инженеры в электронных компаниях для проектирования массовых чипов, Application Specific Integrated Circuits — ASIC.

Язык описания аппаратуры они тоже видели в онлайн-курсе. Так как школьники прошли онлайн-курс, они уже выучили, что такое D-триггер, конечный автомат, логический синтез и трассировка. Теперь эти знания, которые лежали в пассивном виде в их памяти, нужно было только оживить.

Кроме этого, онлайн-курс привязывает всю эту деятельность к взрослым профессиям, следующему этапу, рисует дальнюю цель. Я теперь буду всегда для любых семинаров в странах СНГ (помимо уже запланированных семинаров, у меня есть предложения провести это в Минске, Сочи и Якутске) ставить условие, чтобы принимающая сторона предварительно пропускала школьников или студентов через три модуля онлайн-курса, так как после него остаются только мотивированные люди, которые все нудные аспекты уже прошли, и для подкрепления остается чистое творчество, последний момент, типа падение яблока, ударившего Ньютона по голове.

Код примера: Итого, до полета в Москву я запустил универсальный пример у себя дома в Саннивейл, Калифорния.

В первый день практического семинара мы попрактиковались с микросхемами малой степени интеграции на макетной плате. Этой технологии 50 лет, но никто не придумал лучше, как наглядно, в реале, а не в симуляции, показать работу например D-триггеров. Хотя многим современным учителям технологии в школах кажется, что это устарело и ненужно, но в курсе 6.111 Массачусетского Технологического Института сейчас, в 2018/2019 учебном году, первая лаба по цифровой схемотехнике проходит именно так, с микросхемами малой степени интеграции — см. http://web.mit.edu/6.111/volume2/www/f2018/index.html.

И почему они при ненажатой кнопке дают потенциал 0, и как это связано с делителем напряжения. Кроме этого, на примере соединения микросхем малой степени интеграции с кнопками удобно объяснять, что такое, зачем нужны и как работают подтягивающие резисторы.

Если же они увидят это на экране компьютера в софтверном симуляторе макетной платы, они такого жизненного опыта не получат, так как на экране можно нарисовать все что угодно и школьники не будут уверены, что перегорание — это правда. Еще когда на примере с микросхемой малой степени интеграции перегорает светодиод, то школьники получают жизненный опыт, что ставить резистор туда — обязательно.

Вот как наглядно на микросхемах малой степени интеграции видна функция D-триггера:

Второй день начался с исторического эскурса: как проектировали микросхемы 50 лет назад и как это дважды революционно изменилось с тех пор. Одна из революций наложилась на коллапс СССР и это главная техническая причина, почему в России нет своих айфонов.

45 история, как в мировом океане выловили советский буй-шпион, который следил за движением американских кораблей, и к чему это привело. На 8.

03 история о том, как одна публикация блогера Джона Кули сместила всю мировую индустрию с VHDL на Verilog. На 13.

10 история о том, как Microsoft Windows проиграла Линуксу как платформе для работы проектировщиков микросхем. На 16.

В этой части — демонстрация, как запустить программу для синтеза цифровой логики и прошивке конфигурации в ПЛИС. Двумя способами — с помощью запуска скрипта под Линуксом и в интегрированной графической оболочке. Также краткое описание содержания демонстрационного примера. После этого галопа по Европам школьники усаживаются за графическую оболочку и делать простые упражнения, начиная с логических элементов И-ИЛИ-НЕ, входы которых подсоединены к кнопкам, а выходы к светодиодам. Примерно в таком духе:

module top (input [2:0] key, output [7:0] led); wire a = ~ key [0]; // Кнопка выдает 0, когда нажата, поэтому ее нужно инвертировать wire b = ~ key [1]; wire c = a & b; assign led [0] = ~ c; // Светодиод тоже горит, когда на входе 0 и его тоже нужно инвертировать
endmodule

По ходу дела возникли сразу два интересных вопроса. Во-первых, поначалу я сам забыл, что на этой плате и кнопки, и светодиоды инвертированы. То бишь когда кнопка нажата, то на проводе 0, а когда не нажата — то 1. И когда на светодиод подать 0, он горит, а когда 1 — не горит. Если про инвертированность не знать, то логический элемент И (led [0] = key [0] & key [1]) начинает вести себя как ИЛИ, а ИЛИ — как И. Законы де Моргана в действии! ~ (a & b) == ~ a | ~ b, а также ~ (a | b) == ~ a & ~ b.

Тогда я посмотрел в их код и обнаружил, что когда они переписывали код, который я написал на доске, то они подумали, что "~" (тильда) — это "-" (минус). Но даже после поправки у некоторых школьников это дело все равно работало наоборот. А также что чтобы для многобитных чисел в дополнительном коде вычислить его отрицание, достаточно его побитово инвертировать и прибавить единицу: — a == ((~ a) + 1). Это дало мне отличный повод рассказать по различие между прямым и дополнительным кодом, а также почему для однобитных чисел (- 0) == 0 и (- 1) == 1, в то время как (~ 0) == 1 и (~ 1) == 0.

Продолжение — части 2.3, 2.4, 2.5.

04 с установленным на нем Intel FPGA Quartus II. Все занятие проходило под Линуксом, точнее под Lubuntu 18. 1. Lubuntu грузился с SSD, на которых также был установлен Intel FPGA Quartus II Lite Edition 18. 0 порт, включить компьютер и нажать F12. Для загрузки с SSD нужно просто воткнуть его в USB 3. Потом войти в меню и сказать «грузить с USB».

Хотя софтвер для синтеза для FPGA есть и под Windows, но Линукс хорош по двум причинам:

Линукс работает на более слабомощных компьютерах, чем Windows. 1. Например у меня есть ноут с 2 гигабайтами памяти, так Intel FPGA / Altera Quartus II под Windows на нем ложится, а под Linux нормально работает.

Все взрослые разработчики массовых чипов в Apple, NVidia и других электронных компаниях используют Линукс, на котором работают программы Synopsys Design Compiler, Synopsys IC Compiler, Synopsys VCS, Cadence IES итд. 2.

Потому что установка софтвера от FPGA компаний — это довольно муторный процесс, и вокруг Altera Quartus или Xilinx Vivado нужно бегать с бубном, менять файлы в /etc и устанавливать старые 32-битные библиотеки для некоторых компонент, в частности для бесплатной версии Mentor ModelSim. Почему лучше все делать на загружаемых SSD, а не ставить на компьютеры в учебный класс? Есть скрипты от Станислава Жельнио, которые это все делают автоматически, но даже и с этим скриптом установка всего на компьютер займет пару часов. Некоторые библиотеки приходится вообще собирать из исходников.

Например с VirtualBox? Почему бы не делать все на виртуальных машинах? Загружаемые SSD с Lubuntu выглядит как оптимальный вариант. Мы пробовали это в МГУ и других местах, но там могут возникнуть глюки с протаскиванием USB.

Чтобы подготовить набор SSD для семинара, нужно поставить все на один SSD, после чего клонировать его вот такой командой, которая позволяет сразу писать на три SSD с одного:

time sudo dcfldd if=/dev/sdb bs=1M of=/dev/sdc of=/dev/sdd of=/dev/sde

Тут нужно знать, что не все SSD enclosures поддерживают Линукс, например Kingwin Data Star портит диски. Правильные enclosures — Orico и Eluteng.

Хотя на USB флэшках оно тоже работает, но некоторые операции невероятно тормозят, вызывает дискомфорт и раздражение. Также я не рекомендую пытаться заменить SSD простыми загружаемыми USB флэшками. 0 все летает быстрее, чем Линукс на внутреннем хард-драйве. А вот на загружаемых SSD драйвах с USB 3.

Ни через USB 3. Я также пробовал втыкать загружаемый SSD-драйв в Apple Mac, нажимая при загрузке клавишу Option, но у меня не получилось. 0. 1 порт, ни через 3. Если ли среди моих читателей маководы и при этом линуксоиды? Похоже, Mac при загрузке не хочет понимать то ли Ext4 file system, то ли partition table. Было бы интересно узнать, что делать (помимо опции использования VirtualBox или других виртуальных машин).

Для меня это очень странно, так как на месте российского Минобра я бы пересадил все школы России на Линукс еще 10 лет назад, когда Ubuntu стал user-friendly. Интересно, что только 2 школьника из всей группы использовали Linux до семинара. Виндоус засоряется вирусами, за него нужно платить лицензионные отчисления, чем Windows лучше Linux для скажем школьных курсов программирования на Питоне? Помимо Ubuntu можно было бы сделать специальную российскую версию Линукса для образования. Я просто не понимаю. Или школьникам не хватит Google docs, а нужен именно Microsoft Word?

Даже южнокорейское правительство решило в 2020 году переключиться на Линукс.

В любом случае, на моем семинаре никаких проблем с Линуксом у школьников не было, хотя, как я уже сказал, большинства школьников использовали его впервые.

На начало третьего дня я опоздал, потому что меня пригласили прочитать лекцию в российское отделение Samsung и мероприятие затянулось на 3 часа (вы можете скачать слайды лекции: 1, 2, 3 и статью о части содержания), после чего я проголодался и только во время поедания гречки и оливье в Муму (этого мне сильно не хватает в Калифорнии) обнаружил, что мое занятие в гимназии начнется через 5 минут.

Еще в предыдущий день школьники начали упражняться с семисегментным индикатором, выводя одну букву. Тогда я позвонил Александру Силантьеву из МИЭТ и попросил начать занятие без меня. Теперь, если скрестить вывод одной буквы с сдвиговым регистром, то можно реализовать вывод на многоразрядный динамический семисегментный индикатор, и заодно школьники выучат, как кодировать на верилоге последовательностную логику.

План удался на славу — когда я вошел в класс, у некоторых школьников по динамическому индикатору уже медленно бегали буквы, и чтобы они слились в слова, достаточно было только поднять частоту генерации разрешающего сигнала (enable) для сдвигового регистра:

Потом я передал слово Станиславу Жельнио sparf из IVA Technologies, и он кратко обрисовал, как перейти от простых блоков логики с крохотному, но совершенно настоящему процессору (см. посты Станислава на Хабре и schoolMIPS на GitHub):

Продолжение лекции Станислава Жельнио

На семинаре и до него помогли Ирина Груничева и Глеб Романов (еНано); Алексей Переверзев, Александр Силантьев и Евгений Примаков из МИЭТ, Александр Романов из ВШЭ МИЭМ и его студенты, Алексей Кочнов из НИИСИ, Лига Роботов (obraz.pro), Павел Кириченко (МЦСТ, Интел, автор книг bhv.ru/books/book.php?id=201192 ), Егор Кузмин из ИППМ РАН, Дарья Криворучко, школьница из СУНЦ, была в ЛШЮП, Тимофей Черкасов (Академия цифровых технологий Санкт-Петербурга, Школа инженерного мышления ЛНМО), Александр Бакеренков и Юлия Шалтаева из Предуниверситария МИФИ, Владимир Воронцов из МЭИ, Евгений Певцов из МИРЭА, Виталий Кравченко из Наутеха, Аркадий Поляков и Сергей Певченко из МЭИ. Семинар проводился в Гимназии Российского университета транспорта (МИИТ).

Руслан Тихонов из Амперки принес компоненты для упражнений с микросхемами малой степени интеграции.

Хидэхару, Занимательная электроника. Издатель Дмитрий Мовчан, из ДМК Пресс, подарил каждому участнику полезные книжки — толстый всеобъемлющий учебник Дэвид Харрис и Сара Харрис, Цифровая схемотехника и архитектура компьютера, и легкое чтение от А. Манга. Цифровые схемы.

Максим Маслов, связанный с МФТИ, пришел на семинар и пожертвовал FPGA плат на летние школы (а раньше говорили, что в России мало благотворительности на нужды образования).

А дальше будет два мероприятия, которые расширят и углубят то, что мы делали на Гимназии РУТ. Что же будет дальше? Вот предложение по ее программе. 8-26 июля будет летняя школа МИЭТ в Зеленограде. Ее первые две недели состоит из пяти частей:

  1. Основы цифровых схем на микросхемах малой степени интеграции.
  2. Простые упражнения с комбинационной и последовательностной логикой на плате ПЛИС.
  3. Использование ПЛИС для контроля графического дисплея.
  4. Устройство и реализация на ПЛИС простейшего микропроцессора.
  5. Индивидуальные проекты создания игр а-ля упрощенной Angry Birds, как на основе конечного автомата чисто в хардвере ПЛИС, так и с программным управлением от простейшего процессора, синтезированного в ПЛИС.

Но еще до школы 4 июня будет семинар в Лас-Вегасе, на котором мы будем разбираться не со школьным процессором, а и индустриальным.

Более подробная программа в Зеленограде:

Основы цифровой логики. Неделя 1.

Микросхемы малой степени интеграции, упражнения с комбинаторной логикой
День 2. День 1. ПЛИС, упражнения с кнопками, переключателями, LED, семисегментным индикатором
День 4. Микросхемы малой степени интеграции, упражнения с последовательностной логикой
День 3. ПЛИС, конечный автомат для Angry Birds ПЛИС, вывод геометрических фигур на VGA
День 5.

Процессор Неделя 2.

Программирование на языке ассемблера.
День 2. День 1. Интерация процессора с выводом геометрических фигур на VGA.
День 4. Однотактовый процессор schoolMIPS.
День 3. Индивидуальный проект — программируемая на процессоре видео игра с выводом на VGA.
День 5. Лекция про прерывания и многозадачность. Конкурс индивидуальных проектов. Лекция про конвейер.

День 1. Неделя 1. Микросхемы малой степени интеграции.

1. 1. Упражнения с комбинаторной логикой.

1. 1. Логический элемент XOR на CD4070, без кнопок и подтягивающих регистров — повторить демонстрацию. 1.

1. 1. Логический элемент XOR, добавить кнопки и подтягивающие регистров — повторить демонстрацию. 2.

1. 1. Индивидуальное задание — по datashit построить демонстрацию одного из логических элементов AND/OR/NOT/XOR/NOR/NAND/XNOR, с двумя, тремя, четырьмя или восемью входами: 3.

1. 1. 1. 3. 1. CD4081, Quad 2-Input AND
1. 2. 3. 1. CD4071, Quad 2-Input OR
1. 3. 3. 1. CD4011, Quad 2-Input NAND
1. 4. 3. 1. CD4001, Quad 2-Input NOR
1. 5. 3. 1. CD4073, Triple 3-Input AND
1. 6. 3. 1. CD4025, Triple 3-Input NOR
1. 7. 3. 1. CD4082, Dual 4-Input AND
1. 8. 3. 1. CD4072, Dual 4-Input OR
1. 9. 3. 1. CD4012, Dual 4-Input NAND
1. 10. 3. 1. CD4002, 4-Input NOR
1. 11. 3. 1. CD4068, 8-input AND NAND
1. 12. 3. CD4078, 8-Input NOR

2. 1. 7-сегментный индикатор с общим катодом.

2. 1. Собрать на макетной плате с резисторами, попробовать индивидуальные сегменты.
1. 1. 2. 2. 2. Комбинация с драйвером 7-сегментного индикатора, CD4511, BCD to 7-Segment Latch Decoder.
1. Вариант — индикатор с общим анодом. 3. 2. Скомбинировать с инвертором CD4069, Inverter.
1. Вариант — добавить 4 кнопки с подтягивающими резисторами на вход CD4511. 4.

3. 1. Блоки комбинационной логики — индивидуальное задание в конце дня или в виде домашнего задания:

3. 1. CD4532, 8-Bit Priority Encoder
1. 1. 2. 3. 3. CD4051, Single 8-Channel Analog Switch, used as digital decoder
1. CD4051, Single 8-Channel Analog Switch, used as digital multiplexer
1. 3. 4. 3. 3. CD4052, Dual 4-Channel Analog Switch, used as digital multiplexer
1. CD4053, Triple 2-Channel Analog Switch, used as digital multiplexer
1. 5. 6. 3. 3. CD4008, 4-Bit Combinational Adder
1. CD4063, 4-Bit Digital Comparator
1. 7. 8. 3. CD4585, 4-Bit Digital Comparator

В конце дня все показывают, кто что сделал.

День 2. Неделя 1. Упражнения с последовательностной логикой.

2. 1. Собрать генератор тактового сигнала на основе микросхемы 555. 1. Попробовать разные конденсаторы и сопротивления.

2. 1. D-триггер на микросхеме CD4013, Dual D-Flip-Flop With Set-Reset. 2.

2. 1. Индивидуальный проект: 3.

2. 1. 1. 3. Сдвиговый регистр на основе CD4015, Dual 4 Bit Static Shift Register, serial-in, parallel-out.

2. 1. 2. 3. Сдвиговый регистр на основе CD4035, 4-Stage Shift Register, parallel-in, parallel-out.

2. 1. 3. 3. Сдвиговый регистр на основе CD4014, 8-Stage Shift Register, parallel-in, serial-out.

2. 1. 4. 3. Счетчик с выводом на светодиоды CD4029, Binary Decimal Up Down Counter.

2. 1. 5. 3. Счетчик с выводом на 7-сегментный индикатор через драйвер.

2. 1. 6. 3. К нему нужен инвертор CD4069. Более сложный — комбинация из сдвиговых регистров CD4035 (parallel-in, serial-out) c serial adder CD4038. До этого я продемонстрирую serial adder CD4032 без инвертора.

2. 1. 7. 3. К нему нужен инвертор CD4069. Более сложный — комбинация из сдвиговых регистров CD4014 (parallel-in, serial-out) c serial adder CD4038.

День 3. Неделя 1. ПЛИС, упражнения с кнопками, переключателями, LED, семисегментным индикатором

3. 1. Логический элемент на комбинационной логике — ввод с кнопок, вывод на светодиоды. 1.

3. 1. Вывод одной буквы на семисегментный индикатор. 2.

3. 1. Простейший мультиплексор — вывод буквы в зависимости от нажатой клавиши. 3. Реализация с помощью конструкций "?", «if», «case».

3. 1. Сдвиговый регистр. 4.

3. 1. Вывод слова на восьмиразрядный динамический семисегментный индикатор, используя сдвиговый регистр. 5.

3. 1. Индивидуальный проект, возможно домашнее задание на выходные: 6.

3. 1. 1. 6. 3. Фигуры на светодиодной матрице.
1. 2. 6. 3. Змейка, бегающая по семисегментному индикатору.
1. 3. 6. 3. Генерация сигнала звуковой частоты, звуковой орган.
1. 4. 6. 3. Ввод с 16-кнопочной клавиатуры.
1. 5. 6. 3. Кодовый замок — распознавание последовательности клавиш конечным автоматом.
1. 6. 6. 3. Интеграция с сенсором — дальномеркой.
1. 7. 6. Интеграция с угловым кодером.

ПЛИС, вывод геометрических фигур на VGA
День 5. День 4. ПЛИС, конечный автомат для Angry Birds

Процессор Неделя 2.

Программирование на языке ассемблера.
День 2. День 1. Интерация процессора с выводом геометрических фигур на VGA.
День 4. Однотактовый процессор schoolMIPS.
День 3. Индивидуальный проект — программируемая на процессоре видео игра с выводом на VGA.
День 5. Лекция про прерывания и многозадачность. Конкурс индивидуальных проектов. Лекция про конвейер.

Если вы хотите участвовать в летней школе в МИЭТ в Зеленограде (объявления о ней еще нет), в роли школьника или инструктора, вы можете связаться с Александром Силантьевым ( olmer.aod@gmail.com ) или Евгением Примаковым ( conf@confusion.su ). Про остальные дни школы больше деталей будет в отдельном посте, после обсуждения этого в оргкомитете летней школы. Практика будет тяжелая, и мы не имеем возможности останавливаться, чтобы разобраться, в каком цикле какое значение находится на входе или выходе D-триггера. Если вы школьник, то принципиально чтобы вы до июля полностью прошли роснановский онлайн-курс. Это сразу в голову не вмещается, но если вы пройдете онлайн-курс, то вам будет легче.

Немного деталей про семинар в Лас-Вегасе 4 июня:

В России и Украине он назывался «Семинар по MIPSfpga», а на Design Automation Conference он называется «MIPS Open Developer Day». Не так часто бывает, чтобы инженерный семинар, разработанный изначально для России, и опробованный в России (в том числе в МФТИ), Украине и Казахстане, потом начинает проводится в Лас-Вегасе, на конференции автоматизации проектирования электроники. Приходите 4 июня в Embassy Suites by Hilton Convention Center по адресу 3600 Paradise Road, Las Vegas, и вы поучаствуете в шоу, которое уже увидели студенты и преподаватели МГУ, МФТИ, МИФИ, зеленоградского МИЭТ, питерского ИТМО, томского ТГУ, киевского КПИ, алматинского АлмаУ и частично Назарбаевского университета в Астане.

В новом варианте семинара вы добавите к процессору сопроцессор для ускорения алгоритмов искуственного интеллекта. MIPSfpga — это пакет, который содержит процессорное ядро в исходниках на Verilog, которое можно менять, добавлять новые инструкции, наблюдать работу кэша и конвейера, строить многопроцессорные системы, менять одновременно софтвер и хардвер и т.д.

При конфигурации вы можете создавать экзотические варианты процессора, например процессор с 16-ю наборами по 32 регистра. Кроме этого в новом варианте семинара мы покажем, как сконфигурировать ядро из пакета MIPS microAptiv UP и вставить его в обвязку MIPSfpga. Эти наборы вы можете автоматически переключать при входе в прерывание и тем самым быстро менять контекст, без сохранения/восстановления контекста из памяти, что в обычной RTOS занимает порядка тысячи циклов.

Для его плодотворного использования нужно чтобы студент уже знал основы цифровой схемотехники, умел бы программировать на Си и на ассемблере, а также представлял бы концепции микроархитектуры — конвейера, конфликтов конвейера и т.д. MIPSfpga не предназначен для введения в предмет с абсолютного нуля. Именно это изучается в schoolMIPS, который мы используем в Зеленограде.

Вот слайд про механизм добавления инструкций в процессор MIPS microAptiv UP:

Так как Элизабет является полуяпонкой-полурусско/украинкой, она владеет только английским языком. На семинаре в Лас-Вегасе 4 июня и вероятно на летней школе юных электронщиков, которая пройдет 8-26 июля в МИЭТ в Зеленограде, мне будет помогать моя дочь Элизабет Панчул (если она вовремя получит визу). В дополнение к изучению Verilog-а, MIPS, архитектуры, микроархитектуры и организации DMA в память при выводе на графический экран: Поэтому инструкторы-россияне (студенты или аспиранты МФТИ, МГУ итд которые готовы помогать нам с Элизабет и миэтовцами в проведении школы) могут выучить он нее правильный акцент английского, а она от них — основам русского.

Ждем вас на всех семинарах, а также в комитетах по созданию их программ!

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть