Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Все потоки Разработка Администрирование Дизайн Менеджмент Маркетинг Научпоп Войти Регистрация
Короче, мы этим займемся в 8-26 июля на летней школе в Зеленограде. Часть школы, о плане которой
Мир JavaScript в 2021 году
пойдет речь в этом пост, посвящена основам цифровой схемотехники, первым шагам в архитектуру и
микроархитектуру процессоров, а также (даже скорее в основном) аппаратной компьютерной графике. 12,2k 10
Я попробую привезти в Зеленоград в качестве помощницы свою дочь-студентку Элизабет, если она
Как хабраюзеры сервисами банков
пользовались и остались недовольны
вовремя получит паспорт и российскую визу. Элизабет, будучи русско-украинско-японкой, владеет
Мегапост
только английским. Вот в Зеленограде и выучит основы русского. А заодно научит правильному
английскому произношению инструкторов, которые готовы помочь на школе (необязательно из МИЭТ,
можно из МФТИ, МГУ, МИФИ):
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Электропочта
Сегодня я смастерил один из примеров для школы — игру в танчики. Большую часть кода я взял из
примера в книжке Designing Video Game Hardware in Verilog by Steven Hugg, December 15, 2018. Стивен
Хагг показал код на некоем красивом, но непромышленном симуляторе. Я думаю, что обучаться на
таком симуляторе — это как нюхать цветы в противогазе, поэтому я синтезировал код и залил
получившуюся конфигурацию в реальное железо — дешевую китайскую плату ZEOWAA. Для этого мне
пришлось переписать генерацию развертки VGA, сделать код более синтезируемым и убрать некоторые
методологические непорядки в использовании тактовых сигналов. Выложил результат на GitHub.
Вот как это выглядит у меня в первом приближении, после механического совмещения wrapper-а для
платы, генератора развертки и кода Стивена, а также исправления всяких мелочей, которые не
работают в Intel FPGA Quartus Lite Edition, синтеза и заливки:
Но лагерь будет не только об играх с генерацией развертки VGA, ПЗУ, спрайтах итд. Мы еще и скрестим
это с процессорами. Чтобы сравнить реализацию игр на аппаратных конечных автоматах с аппаратно-
программной реализацией. Для этого мы используем учебное процессорное ядро schoolMIPS, которое
описано в см. постах Станислава Жельнио на Хабре и wiki по schoolMIPS на GitHub.
Можно даже использовать учебное ядро schoolMIPS для демонстрации, как проектировать закладки в
процессоры. Мы не будем спорить, существуют ли закладки в процессоре компьютера на вашем столе,
в вашем телефоне или автомобиле. Мы покажем, как их можно проектировать. Пример закладки:
аппаратный конечный автомат следит за содержимым архитектурных регистров во время выполнения
программы, и когда в них появляется текст «Над всей Испанией безоблачное небо», переключает
процессор в привилегированный режим. Текст может прийти из пользовательской программы,
например емейл-клиента.
Можно ли обнаружить такую закладку софтверным антивирусом? Нет. Софтвер такое вообще не видит,
пока оно не происходит. Можно ли обнаружить, исследуя микросхему под электронным микроскопом?
Тоже нет, в промышленном процессоре миллиарды транзисторов, даже в ардуине — сотни тысяч. Даже
если иметь на руках исходники процессора, спрятать в десятках-сотнях тысяч или миллионах строк на
верилоге можно многое, особенно если разные части процессора выполняют части хитро
продуманного плана.
Можно даже организовать состязание, когда одна команда создает закладку, а другая ее находит.
В летней школе в Зеленограде может участвовать любой школьник, который прошел три модуля
теоретического онлайн-курса от РОСНАНО с профориентационным обзором современных методов
проектирования микросхем (все это бесплатно и даже с выдачей призов):
1. От транзистора до микросхемы
Неделя 2. Процессор
Кстати, многое из материалов Стивена Хагга, из которых я подсматриваю информацию про спрайты итд
— идет из древнего видеопроцессора Texas Instruments TMS9918 который стоял в японском компьютере
Yamaha MSX, который импортировало правительство Горбачева для компьютеризации советских школ.
Когда я сам был школьником, даже управлять этим видеопроцессором из ассемблерной программы
работающей на главном процессоре Zilog Z80 было нетривиально, а уж спроектировать этот
видеопроцессор — вообще. Из-за рывка технологий автоматизации проектирования микросхем
(Electronic Design Automation — EDA) это стало возможно современным школьникам, и даже полезно
для обучению дизайна современных чипов (книга Стивен Хагга — 2018 года).
Насчет Electronic Design Automation. Помимо лагеря для школьников, мы тут с Элизабет помогаем
провести семинар по сходной тематике для взрослых, но не в Зеленограде, а в Лас-Вегасе, на выставке
Design Automation Conference — DAC, и не с учебными, а с промышленными процессорами, и не с
графикой, а с сопроцессором для ИИ. Такой семинар — это естественный следущий шаг для
школьников, которые пройдут школу в Зеленограде и потом поучатся в МИЭТ, МИФИ, МФТИ, ВШЭ
МИЭМ, МГУ, ИТМО, ЛЭТИ, СГАУ, НГТУ и других университетах, в которых преподают элементы
маршрута проектирования микросхем RTL-to-GDSII, компьютерную архитектуру и лабы по синтезу для
ПЛИС/FPGA.
Теги: закладки, fpga, verilog, cmos 4000, vga, железо для игр, плис, летняя школа, зеленоград, миэт
+18 58 7k 6 Поделиться
181,0 0,0
Карма Рейтинг
Турбо
СРЕДНЯЯ ЗАРПЛАТА В IT
Да. Но это лучше делать на семинаре по MIPSfpga для более взрослой аудитории (а-ля bit.ly/mips-open-at- Судьба предателя, угнавшего
dac-2019 ). Там промышленное ядро микроконтроллера, в котором 60,000 строк кода, так что найти новейший МиГ-25 в Японию
нетривиально. В schoolMIPS все быстро находится, он слишком маленький (менее тысячи строк кода).
130k 718
Внимательно слежу за вашими публикациями (в этот раз ваш русский язык немного смущает меня, особенно
«на школе»… должно быть «в школе»). Вы много уделяете внимания образованию и подготовке кадров. Я с
вами полностью согласен — «кадры решают всё»! Но кадры надо готовить, нужны рабочие места для
стажёров, инженеров, программистов. Если взять 10 студентов старших курсов, то половина из них по
окончании ВУЗа не будет работать по специальности. Ещё 2-3 продержаться год-два, а потом или декретный
отпуск или коммерция. Останется 2-3 инженера, которые за лет 5 станут ведущими инженерами, а через 10
лет лишь 1 станет тем локомотивом, который будет тянуть коллектив. И это оптимальный вариант при
наличии соц пакета и плюшек.
Теперь к учебному курсу. Предварительная подготовка и вводный базовый курс — это хорошая идея для
слушателей (летней школы). На этом этапе можно отобрать заинтересованных людей. А программу курса я
бы скорректировал. Мне кажется надо начинать со светодиода и кнопки/выключателя.
1) Знакомим с wire & reg (Verilog). Кнопка нажата — LED горит, а не нажата — не горит.
2) Делаем инвертор (NOT). Делаем 2 кнопки и знакомим с AND, OR, XOR.
3) Используем кнопку №1 для задания состояния (0/1), кнопку №2 — для режима (set/reset), сохраняем/
читаем значение в регистр.
4) Тактирование. Фронты сигнала (нарастание/спад). Мигание светодиодом, делители частоты на 2, 4, 8…
Смотрим результаты лог.анализатором.
5) Умножитель частоты. Основы PLL, фазовые сдвиги. Стабилизация генератора.
6) Семисегментный индикатор, автомат состояний и др.
7) Основы работы VGA, расчёт частот, сигналы, виды ЦАП, заливка экрана, двухпортовая память.
Удачи вам!
Программа обучения кажется слишком насыщенной.
*** 1) Знакомим с wire & reg (Verilog). Кнопка нажата — LED горит, а не нажата — не горит. 2) Делаем
инвертор (NOT). Делаем 2 кнопки и знакомим с AND, OR, XOR. ***
Простой логический элемент в ПЛИС с кнопками на входе у меня есть — см. отчет с прошедшего семинара
— habr.com/ru/post/452872
*** 3) Используем кнопку №1 для задания состояния (0/1), кнопку №2 — для режима (set/reset), сохраняем/
читаем значение в регистр. ***
Я считаю, что D-триггер нужно показывать на микросхемах малой степени интеграции, до упражнений с
ПЛИС. Это по моему опыту нагляднее и доходчивее, чем сразу в ПЛИС:
Что касается делителя частоты на 2,4,… с помощью битов счетчика, то я его хочу из упражнений убрать и
вместо этого везде использовать enable signal. Так принято в design IP для ASIC и так методологически
правильнее, так как это избегает гонок при моделировании и проблем в static timing analysis.
Т.е. вместо:
везде писать:
*** 5) Умножитель частоты. Основы PLL, фазовые сдвиги. Стабилизация генератора. ***
Объяснить аналоговую часть PLL детям нереально, а для понимания циклов и микроархитектуры не нужно.
Пусть вначале поделают кучу упражнений с фиксированным clock-ом на 50 MHz или 100 MHz на плате и
просто следят по результатам static timing analysis, что их дизайн в эту частоту вписывается.
7) Основы работы VGA, расчёт частот, сигналы, виды ЦАП, заливка экрана, двухпортовая память.
Если просто показать основы работы VGA, они зевнут, скажут спасибо и об этом забудут. Так как на
летнюю школу есть три недели, пусть сделают полноценную простую игру со спрайтами. Виды ЦАП можно
опустить — это не необходимо для простой игры.
Стоит ли иметь в двухнедельном курсе процессор — это еще неясно, но мы проведем эксперимент. Может
и стоит, а может нет.
САМОЕ ЧИТАЕМОЕ
© 2006 – 2021 «Habr» Настройка языка О сайте Служба поддержки Мобильная версия