-Поиск по дневнику

Поиск сообщений в lj_panchul

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.01.2013
Записей:
Комментариев:
Написано: 0




Юрий Панчул - LiveJournal.com


Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://panchul.livejournal.com/.
Данный дневник сформирован из открытого RSS-источника по адресу http://panchul.livejournal.com/data/rss/, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

На первом дне Сколковской школы цифрового синтеза выступил бывший вице-президент Sun, MIPS и DEC

Четверг, 17 Сентября 2020 г. 08:06 + в цитатник
Объединенным усилиями русских в Silicon Valley, россиян и украинцев провели первые два дня Школы синтеза цифровых схем на ChipEXPO в Сколково.

В качестве одного из докладчиков выступил один из самых известных бизнесменов в мире микропроцессоров - Арт Свифт. Арт был президентом и вице президентом компаний, которые делали практически все известные высокопроизводительные архитектуры. Он был президентом Transmeta (процессор совместимый с x86, был в ноутах от Toshiba), вице-президентом MIPS, Sun Microsystems и Digital Equipment (технический маркетинг Alpha и StrongARM). Сейчас Арт Свифт -президент Esperanto Technologies, компании, которая строит многоядерные кластеры на основе архитектуры RISC-V, оптимизированные для вычислений искуственного интеллекта.

Арт поприветствовал участников ChipEXPO и прокомметировал покупку компании ARM компанией NVidia.







Больше речей, демонстраций и практики по синтезу процессоров на FPGA платах будет завтра в 15.00:

Релиз кода, который используется на семинаре:

ChipEXPO 2020 Digital Design School package v1.1
Ссылка через bit.ly - http://bit.ly/chipexpo2020dds11
Прямая ссылка

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

https://github.com/DigitalDesignSchool
https://github.com/zhelnio/schoolRISCV

Если вы будете испольовать GitHub, а не загружаемый пакет, то после клонирования вам нужно запустить башевский скрипт scripts/create_run_directories. Под Линукс это прямолинейно, под Windows вы можете попробовать запустить этот скрипт в подсистеме Ubuntu в Windows 10. Этот скрипт создает временные директории run с копиями скриптов для синтеза и симуляции в каждой поддиректории, в которой есть файл top.v. В директориях run потом скапливаются все временные файлы, которые создает Intel FPGA Quartus и другие программы. Сами run директории игнорируются в .gitinfo чтобы случайно не занести временные файлы в github.

Телеграм-канал для обсуждения кода, вопросов и ответов https://t.me/DigitalDesignSchool

Трансляция второго дня



Будущая трансляция третьего дня




Заголовки видео части моих фрагментов:
















https://panchul.livejournal.com/598188.html


Молодожены, которых Интел привез в Калифорнию, дали интервью в лабнике от ВШЭ МИЭМ

Понедельник, 31 Августа 2020 г. 06:08 + в цитатник


Я уже рассказывал про молодоженов Владислава и Елену Шаршиных, который вместе с их коллегой Андреем Папушиным компания Intel привезла в Калифорнию за серебряную победу на конкурсе InnovateFPGA. Их интервью есть в недавно вышедшем лабнике "Цифровой синтез". Этот лабник мы собираемся использовать на семинаре для школьников и младших студентов, который пройдет 15-17 сентября на выставке ChipEXPO в Сколково. Если вы собираетесть повторить (или превысить) достижение Шаршиных и Папушина, или просто стать FPGA или ASIC designer-ом, не выезжая в Санта-Клару, то участие в семинаре, или даже просто просмотр начальных инструкций в этом посте - поможет вам начать.

Многие из зарегистрировавшихся на семинар уже получили FPGA платы (их раздачей занимается образовательное отделение РОСНАНО) за прохождение теоретического пререквизита. Теперь было бы очень желательно, если бы участники семинара заранее установили Intel FPGA Quartus (или, если кто-нибудь не любит Intel / Altera, то Xilinx Vivado), и запустил на нем хотя-бы примитивный тест. Даже не мигание LED, а вообще один логический элемент XOR. Если все это сделают заранее, то на семинаре мы будем обсуждать не тривиальные проблемы типа "у меня драйвер для USB Blaster не находится", а что-нибудь поинтереснее, например что спрашивают на интервью на позицию RTL Logic Designer-а в NVidia, AMD, Apple и другие компании.


Итак, прежде всего у семинара есть организация на гитхабе. Вы можете клонировать отуда репозиторию ce2020labs и использовать файлы из директории before для проверки вашей платы, установки Quartus или Vivado, драйверов и решении проблемм с программатором. В директории есть файлы для семи плат: пять плат с Intel FPGA (два варианта OMDAZZ / rzrd, два варианта ZEOWAA и Terasic DE10-Lite), и две платы с Xilinx (Basys3 и Nexys4).

Если вы не хотите пользоваться GitHub-ом, вы можете просто скачать zip отсюда. Все эти файлы будут работать и с версиями Quartus и Vivado под Windows, и под Linux.



Для установки Quartus-а вы можете посмотреть детальное видео от Сергея Иванца, декана факультета электронных и информационных технологий Черниговского национального технологического университета:



Видео:



И видео по синтезу простейшего примера из описания на языке Verilog:



С детальным описанием что к чему:





Единственная проблема - в этом видео не очень хорошо раскрыто использование программатора (и проблемы с его драйверами). Поэтому вам может оказаться полезным посмотреть другое видео, тоже от Сергея, где он описывает использование USB Blaster после редактора схематики. Тут надо сказать, что schematic entry вышло из употребления проектировщиков цифровой микроэлектроники в начале 1990-х (все перешли на проектирование с помощью языков описания аппаратуры Verilog и VHDL), но Сергей все-таки решил показать это чисто чтобы начинающий заниматься цифровым проектированием студент сразу интуитивно понял, что мы проектируем схемы, а не пишем программы, хоть код на верилоге и похож на код на языке программирования.

Вот видео с schematic entry, в конце которого расписано использование программатора:



До, во время и после семинара на ChipEXPO в Сколково мы будем продолжать выкладывать разные материалы, но чтобы посмотреть все (в том числе например мини-лекцию, как организованы команды по разработке чипов в Silicon Valley) - лучше зарегистрироваться.

https://panchul.livejournal.com/598007.html


Как начать путь к работе по проектированию электроники FPGA космического корабля Blue Origin

Понедельник, 03 Августа 2020 г. 16:10 + в цитатник


Вы хотите узнать, как получить работу по проектированию электроники космического корабля? Мне надавно пришло предложение поинтервьироваться на позицию FPGA designer для Blue Origin (см. выше). Лично мне такая позиция не нужна (у меня уже есть позиция ASIC designer-а в другой компании), но я отметил, что технические требования к претендентам в Blue Origin точно совпадают с содержанием семинара для школьников и младших студентов, который пройдет 15-17 сентября на выставке ChipEXPO в Сколково, с поддержкой от РОСНАНО. Хотя разумеется на семинаре мы коснемся технологий Verilog и FPGA только на самом начальном уровне: базовые концепции и простые, но уже интересные, примеры. Чтобы устроится после этого в Blue Origin, вам все-же потребуется несколько лет учебы и работы.

Из-за короновируса семинар будет удаленный, поэтому принять участие смогут не только школьники и студенты Москвы, но и всей России, Украины, Казахстана, Калифорнии и других стран и регионов. Физически проводить лекции и удаленно помогать участникам будут преподаватели и инженеры МИЭТ, ВШЭ МИЭМ, МФТИ, Черниговского Политеха, Самарского университета, IVA Technologies и fpga-systems.ru.

Для участия сначала, еще до семинара, нужно пройти три части теоретического курса от РОСНАНО, под общим названием "Как работают создатели умных наночипов": «От транзистора до микросхемы», «Логическая сторона цифровой схемотехники», «Физическая сторона цифровой схемотехники». Этот курс необходим, чтобы вы понимали, что вы делаете, по время практического семинара. По получению сертификата окончания теоретического онлайн-курса, вы можете зайти в офис РОСНАНО в Москве и получить бесплатную плату для практического семинара (если они останутся, преимущество имеют школьники). С этой платой вы можете работать дома, до, во время и после семинара в Сколково.


Как получить плату, подготовится к семинару и что на нем будет:

Инструкция как получить плату есть на сайте STEMford. STEMford - это образовательные программы для школьников от eNano, дочернего предприятия Фонда инфраструктурных образовательных программ РОСНАНО. Вот их офис, куда нужно будет зайти:



До практического занития вам нужно будет установить на ваш компьютер среду Intel® Quartus® Prime Lite Edition. Инструкция как это сделать, есть в бесплатном фрагменте книги "Цифровой синтез: практический курс" под общей редакцией А. Ю. Романова, Ю. В. Панчула. ДМК Пресс, 2020.

Вообще "Цифровой синтез" - полезная книжка для семинара, там описываются упражнения, которые будут с некоторыми вариациями представлены и на семинаре, хотя например вместо учебного процессора schoolMIPS будет использоваться более новомодный schoolRISCV:



В конце книжки Цифровой синтез есть довольно занятное интервью пары молодоженов Владислава и Елены Шаршиных, который вместе с их коллегой Андреем Папушиным компания Intel привезла в Калифорнию за победу на конкурсе InnovateFPGA:



Вот одна из плат, которая будет использоваться на семинаре. Если плат на вас не хватит, или если вы не школьник, вы можете заказать плату на AliExpress и в других местах: 1, 2, 3, 4:



Что будет на семинаре? Вот части программы:


15 сентября. Из чего строится современная цифровая схема.
Модератор дня: Александр Михайлович Силантьев, преподаватель Национального исследовательского университета «Московский институт электронной техники» (МИЭТ).

15.00. Открытие мероприятия, приветствие от организаторов.
15.15-15.30. Мини-лекция: От Клода Шеннона до Apple iPhone: как появилось проектирование цифровых схем и как оно выглядит в современных компаниях.
Юрий Владимирович Панчул, проектировщик сетевых микросхем и микропроцессорных ядер. Саннивейл, Калифорния.

15.30-16.00. Лекция: Комбинационная логика и ее описание на языке Verilog. Теоретический материал переплетается с демонстрацией синтеза для ПЛИС/FPGA в среде Intel® Quartus® Prime Lite Edition. Александр Михайлович Силантьев.

16.00-16.30. Упражнение с логическими элементами
И/ИЛИ/НЕ/ИСКЛЮЧАЮЩЕЕ-ИЛИ, входы которых подсоединены к кнопкам, а выходы к светодиодам платы c ПЛИС.
16.30-17.00. Упражнение с выводом буквы на семисегментный индикатор.
17.00-17.30. Лекция: Последовательностная логика, которая вводит в схемы память и повторения.
17.30-18.00. Упражнение со сдвиговым регистром.
18.00-19.00. Упражнение для плат ZEOWAA и OMDAZZ с Intel FPGA Cyclone IV: Комбинируем сдвиговый регистр и вывод на семисегментный индикатор буквы: получаем вывод на многоразрядный динамический семисегментный индикатор слова (например имени ученика). Упражнение для платы Terasic DE10-Lite с Intel FPGA MAX10: Комбинируем сдвиговый регистр и вывод букв на статический семисегментный индикатор: получаем вывод бегущей строки (например имени ученика).
19.00-21.00. Дополнительные упражнения и индивидуальные проекты учеников, с помощью от студентов и аспирантов микроэлектроники от участвующих университетов: МИЭТ, ВШЭ МИЭМ, Черниговского НТУ,
Самарского Университета.


Первый день основан на опыте проведения прошлогоднего семинара в Москве, который описан в статье на Хабре:



Второй день основан на опыте проведения летней школы в Зеленограде в прошлом году и семинарах в Самаре:


16 сентября. Приемы и примеры цифрового проектирования на уровне регистровых передач.
Модератор дня: Сергей Анатольевич Иванец, декан факультета электронных и информационных технологий, Черниговский национальный технологический университет, Украина.

15.00-15.15. Мини-лекция: Как из простых схем строить сложные: параллельность, конвейерность и конечные автоматы.
Юрий Владимирович Панчул.

15.15-15.30. Предисловие к примеру игры: рассказ про генерацию графики на VGA.
Сергей Анатольевич Иванец.

15.30-16.00. Упражнение с рисованием на экране разноцветных квадратов и других статических изображений.

16.00-16.30. Презентация примера графической игры с параллельно вычисляемыми спрайтами и конечными автоматами для сценария игры. Демонстрация запуска игры на плате Digilent Basys3 с Xilinx FPGA Artix-7. Обсуждение модификации игры с помощью добавления новых спрайтов и изменения сценария.
Михаил Коробков, fpga-systems.ru.

16.30-17.00. Упражнение с запуском игры на платах ZEOWAA, OMDAZZ и Terasic DE10-Lite.
Сергей Анатольевич Иванец.

17.00-17.30. Лекция: Использование Linear Feedback Shift Registers (LFSR) для передачи данных и генераторов случайных чисел. Сравнение Verilog и VHDL на основе кода LFSR Фибоначчи и Галуа. Демонстрация использования LFSR для генерации изображения на экране VGA движущегося звездного неба из случайных звезд.
Илья Александрович Кудрявцев, декан Факультета электроники и приборостроения Самарского Университета.

17.30-18.00. Упражнение с запуском примера движущегося звездного неба на платах ZEOWAA, OMDAZZ и Terasic DE10-Lite.
Сергей Анатольевич Иванец.

18.00-19.00. Более подробная лекция про моделирование и использование генераторов случайных чисел для глубоко заинтересовавшихся.
Илья Александрович Кудрявцев.

18.00-21.00. Дополнительные упражнения и индивидуальные проекты учеников по изменению игры, в том числе с помощью добавления в нее фона из движущегося звездного неба. С помощью от студентов и аспирантов микроэлектроники от участвующих университетов.




https://youtu.be/BMOB_6qI1Pk

Третий день будет основан на опыте ликбеза по процессорам от Станислава Жельнио и Александра Романова. Только раньше они разработали и использовали учебный процессор schoolMIPS, а теперь мы будем использовать schoolRISCV. Архитектура RISC-V очень похожа на MIPS и другие RISC-архитектуры (SPARC, ARM, POWER итд), но очищена от их костылей, которые имели смысл на простых процессорах, но мешают на сложных (регистровые окна в SPARC, которые обессмысливаются в софтвере с большим стеком; branch delay slots в MIPS до Rev6, которые хороши на простом статическом конвейере с последовательной выборкой инстркций, но превращаются в головную боль в динамическом конвейере итд).

Так как в России есть минимум три компании, которые проектируют процессоры на архитектуре RISC-V, и это хороший кандидат на будущий high-end российский встроеный и может быть даже десктопный и серверный процессор, и так как RISC-V уверенно заменяет MIPS в качестве рабочей лошадки для архитектурного и микроархитектурного экспериментирования в мировых университетах, то школьников лучше учить на нем.


17 сентября. Первый шаг в архитектуру и микроархитектуру современных процессоров.
Модератор дня - Александр Юрьевич Романов, к.т.н., доцент Московского института электроники и математики им. А.Н. Тихонова (МИЭМ), Национальный исследовательский университет «Высшая школа экономики» (НИУ ВШЭ).

15.00-15.15. Мини-лекция: От ENIAC и МЭСМ, через IBM/360 и Cray-1 до Intel, ARM и RISC-V: как появились, эволюционизировали и к чему пришли программируемые процессоры общего назначения.
Юрий Владимирович Панчул.

15.15-16.30. Архитектура: вид процессора с точки зрения программиста. Лекция об ассемблере RISC-V с одновременными упражнениями на симуляторе процессора на уровне инструкций.
Никита Поляков, проектировщик микропроцессоров и преподаватель Московского физико-технического института.

16.30-17.30. Микроархитектура: вид процессора с точки зрения схемотехника. Лекция по аппаратной организации процессора schoolRISCV, с вариантами одноцикловой и конвейерной микроархитектуры. Демонстрация синтеза процессора и запуск его на платах.
Станислав Жельнио, разработчик микросхем в IVA Technologies.

17.30-17.30. Упражнение по добавлению в процессор инструкции и верификации с помощью программного теста. Измерение максимальной тактовой частоты получившегося варианта процессора.
Станислав Жельнио.

17.30-18.00. Заключительная лекция: Следущие шаги в освоении проектирования цифровых схем, а также применение этих знаний для проектирования встроенных систем и ускорителей вычислений искуственного интеллекта.
Александр Юрьевич Романов.

18.00-21.00. Дополнительные упражнения и индивидуальные проекты учеников по изменению процессора и интеграции его с периферийными устройствами. С помощью от студентов и аспирантов микроэлектроники от участвующих университетов.


Вот Станислав Жельнио обучает школьников прошлым летом в Зеленограде:







До встречи на семинаре на виртуальном ChipEXPO в Сколково! Мы постараемся провести там часть мероприятия и вживую, силами преподавателей МИЭТ, ВШЭ МИЭМ и МФТИ, но если вирус не позволит, проведем распределенно.

https://panchul.livejournal.com/597747.html


У меня взяла интервью "Диаспора", газета русских (и украинцев итд) Сакраменто и всей Калифорнии

Понедельник, 08 Июня 2020 г. 17:17 + в цитатник


У меня взяла интервью Ирина Шендер из газеты "Диаспора", которая издается в Сакраменто для выходцев из стран бывшего СССР / Российской Империи. Газета в оцифрованом виде находится здесь - https://issuu.com/afisha/docs/diaspora_05_10_20/6


Мой исходный неотредактированный текст:

*** Мы бы хотели попросить вас в общих чертах рассказать вашу историю переезда в США - когда, как и почему, а также о том, как вы привыкали к жизни и работе в новой стране. ***

Моя эмиграция была c одной стороны очень типичной, но с другой - произошла из-за удачного стечения обстоятельств. Я родился в Киеве, и после физматшколы уехал учиться в Москву. Одновременно Горбачев разрешил частные предприятия, в которых я стал работать программистом. Одно из совместных предприятий сделало мне американскую визу (business visitor), а в другом предприятии у меня образовался проект для написания симулятора бортового компьютера самолета. Виза принесла мне первую работу в Калифорнии, а проект во втором предприятии - деньги на билет в один конец Москва-Нью-Йорк. Полет через океан был типичной юношеской авантюрой.

Из Нью-Йорка я не выходя из аэропорта переместился в Сан-Франциско, а еще через неделю меня встретил на улице знакомый, который произнес: "Горбачев арестован, в СССР путч". Я получил рабочую визу в стартапе русского физика из Харькова Ефима Щукина. Ефим провел время в Стенфорде, занимаясь искуственным интеллектом, после чего решил привезти из СССР группу программистов для создания программы распознавания текста. Эта программа стала частью известного пакета Corel Draw.

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

*** Сталкивались ли вы с трудностями в работе/карьере, связанными с тем, что вы иммигрант? ***

Я бы не сказал, что у меня были трудности, скорее особенности обстоятельств. Во-первых, мне не раз в течение карьеры пришлось брать курсы и самому изучать много дисциплин, которые родившиеся в США молодые люди просто изучают в университете. Во-вторых, требуются определенные усилия, чтобы понять и вписаться в индустриальные коллективы, в которых есть не только американская социальная культура, но и культуры Индии и Китая.

*** Три плюса/преимущества жизни в США, из-за которых стоило иммигрировать (почему повторили бы этот путь еще раз) ***

Во-первых, в Калифорнии инженер или ученый может работать по гамбургскому счету, то есть найти группу в компании или в университете, которая является одним из мировых лидеров в той или иной нише. Также у нас в Silicon Valley есть инфраструктура и традиции для создания своего бизнеса: в конце 1990-х я был основателем стартапа в области автоматизации электроники. Мы получили инвестиции от Интела, а наши программы использовали проектировщики микросхем в Hitachi и Fujitsu.

Возможности для таких проектов в СССР начала 1990-х были ограничены. Сейчас в России появляется больше интересных работ, и если бы мне было 20 лет сейчас, я бы возможно и не эмигрировал.

Во-вторых, в США более качественная образовательная система, это сильный козырь для эмиграции ради детей. В программах российских университетов много дыр, несбалансированности и оторванности от мировой индустрии. Я в порядке общественной нагрузки помогаю россиянам улучшить эту часть жизни: участвую в переводе и написании учебников и курсов вместе с РОСНАНО, Высшей Школой Экономики, провожу семинары для студентов в Москве, а также летние школы для талантливых российских детей в Зеленограде. Я надеюсь что образование детей как причина для эмиграции из России через 10-20 лет перестанет быть актуальной - в России станет возможным получить твердое по мировым стандартам образование.

3. Наконец, в Калифорнии изумительная и уникальная природа, это одна из так называемых горячих точек биологического разнообразия мира (biodiversity hotspot). У нашего штата интересная история и культура, тут просто приятно жить.

*** Три минуса - какие недостатки жизни в США, с вашей точки зрения, "вырисовались" за эти годы. ***

1. Прежде всего, в Калифорнии мало привычной с детства социальной среды. Первые 10 лет эмиграции это не ощущается, так как все внимание поглощено изучению новой жизни. Но когда я поехал в Москву после 20 лет в Калифорнии, мне там неожиданно понравилось, и я стал испытывать сожаление, что провел столько лет без запаха осенней листвы на Бульварном Кольце и вообще без связи с русской культурой.

2. Другая проблема: вне тихого мира программистов и ученых, которые живут между домом и офисом, в Калифорнии везде, даже в благополучных городах, есть наркомания и связанная с нею мелкая преступность. Полиция смотрит на это сквозь пальцы. Многие иммигранты не верят или игнорируют этот параллельный мир, пока какой-нибудь наркоман их не ограбит или еще чего-нибудь не сделает. Это риск, за которым нужно следить в том числе в школах, где учатся дети.

3. Кроме этого в Америке очень опасная система медицинского страхования. Точнее лоскутное одеяло из страховок от работодателей, страховок для ветеранов, стариков итд. В 90% случаев система работает, но даже мне, при том, что у меня сейчас нет никаких серьезных проблем со здоровьем и всегда было покрытие от работодателей, приходилось разбираться с ошибками страховых компаний и больниц, а также неполным покрытием, когда я делал свой стартап. Проблемы выражались в счетах на много тысяч долларов и утомительными препирательствами со страховками. Я даже не говорю об отвратительном состоянии Emergency Rooms. Сидеть с ушибленным ребенком полночи в приемной госпиталя в очереди из десятков больных людей - это полный неадекват для такой богатой страны как Америка.

*** Вторая группа вопросов - о цветах. Очень неожиданно, что человек, занимающийся электроникой (среди "физиков" и "лириков" глазами обывателя это - "физик"), увлекается цветами и даже настолько серьезно, что выводит новые сорта такой красоты (и это уже переключает на "лирика"). Как возникло ваше увлечение и как вы совмещаете его с работой? Расскажите, пожалуйста, побольше об этом. ***

Мое детство прошло на окраине Киева, в доме с фруктовым садом. Моя бабушка выращивала георгины на продажу, а мама и дедушка интересовались растениями, и у нас дома было много научно-популярных книг и книг по садоводству. Я прочитал в 8 лет книжку Николая Верзилина "Путешествие с домашними растениями", в которой был рассказ про дом Лютера Бербанка в Калифорнии, а также глава про камелии. Я интересовался генетикой, экспериментировал с удобрениями, выращивал кактусы, прививал петунию на помидоры и ходил в ботанический сад.

В 30 лет, в 2001 году, я не очень удачно продал большой компании свой стартап по автоматизации проектирования, после чего купил дом с шестью сотками в Саннивейл. В тот момент у меня был кризис жанра, так как я не совсем понимал как развиваться профессионально дальше. Одновременно я познакомился с питомником камелий семьи Нуччио (Nuccios Nurseries) в южной Калифорнии и увлекся идеей гибридизации.

Выращивать камелии я стал еще до покупки дома. Я однажды пожаловался коллеге по работе, что у меня слишком затененное патио в апартменте, и коллега посоветовала мне попробовать азалии, папоротники и японские камелии (Camellia japonica). Однако при переезде выбор камелий пришлось заменить на камелии горные (Camellia sasanqua), которые по японски называются "сазанка". Это связано с тем, что мой дом стоит на открытом солнечном участке, и японики (Camellia japonica) расти на открытом солне не могут, а вот сазанки могут. Я также обнаружил, что у сазанки гораздо меньше сортов, чем у японики, и совсем мало сортов с правильными махровыми цветками, похожими на розы. Именно такой сорт я вывел и зарегистрировал его через 20 лет под именем 'Silicon Valley'.

Увлечение цветами совсем не редкость для работников технологической промышленности. Президентом общества камелий штата Орегон был мой бывший коллега по компании Mentor Graphics, который тоже занимался автоматизаций проектирования микросхем. Цветоводческие общества Калифорнии проводят ежемесячные встречи с докладами знатоков и обсуждениями, а также организуют выставки. На встречах вы можете встретить людей из самых из самых разных профессий: химиков, юристов, психоаналитиков, бизнесменов и других. Есть разумеется и профессиональный ботаники, как и владельцы питомников. Вообще, если вы приехали в Калифорнию недавно и хотите больше социализироваться с американцами, то участие в работе цветоводческих клубов - это быстрый способ подтянуть язык и интегрироваться в местную культуру.

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

Я перепробовал несколько обществ и сконцентрировался на георгинах и камелиях. В 2009 году я сменил работу, устроился в процессорную компанию MIPS, и у меня стало очень мало времени на хобби. Поэтому я специализировался еще больше: отобрал для скрещивания дюжину сортов камелии сазанки, из семян которых я выращиваю сотни сеянцев, из которых отбираю самые красивые для регистрации новых сортов.

*** Третий - о советах. Многие цветоводы и садоводы-любители приезжают в Америку уверенными, что уже владеют всеми нужными знаниями и смогут выращивать растения на новом месте. Но на этом самом месте они - в шоке: многое по-другому и даже привычное растет не так. Какие ошибки могут ждать в США людей с советско-украинско-российско- и так далее знаниями о цветах и растениях, какие предостережения и советы вы могли бы дать?
И на что ориентироваться, откуда черпать знания, чтобы все-таки успешно выращивать желаемое? ***

В начале 2000-х один из членов общества георгин посоветовал мне пойти на курсы цветоводства в Foothill College. Это очень эффективный способ улучшить свои знания о растениях и получить теоретическую базу для выращивания с учетом местных условий:

* Сначала я пошел на вводный курс, в котором были элементы ботаники: как устроены ткани ксилемы и флоэмы, по которым перемещается вода и питательные вещества; как работает газообмен через поры листьев; как растет почка через деление клеток меристемы. Дальше в курсе были элементы морфологии: многообразие форм листьев и цветов, потом физиология, как работают растительные гормоны. Из всего этого выростает понимание как работает растение и как удовлетворить его нужды. В качестве учебника используется очень хорошо написанная книжка Botany for Gardeners by Brian Capon.

* Потом я пошел на курсы почвоведения. Знания про структуры, горизонты и химию почвы совершенно необходимы, чтобы избежать ошибок при выращивании растений. Интересно, что почвоведение как наука (soil science) была полностью изобретена в России в 19 веке Василием Докучаевым и импортирована в Канаду и США вместе с терминами podzol и chernozem. Эти термины до сих пор используются в Канаде, но в США их заменили в начале 20 века на американские.

У многие садоводов Калифорнии на участке лежит так называемая адоби-почва, от испанского слова "adobe" - "кирпич". У этой почвы - особенный "характер". С одной стороны, вариант адоби-почвы в моем саду относится к сбалансированным почвам, так называемым "loam", в которых одинаковые части песка, глины, и частиц промежуточного размера (silt). Такие почвы обычно считаются лучше, чем супесчанная почва, из которой питательные вещества вымываются, и лучше, чем суглинок, который плохо пропускает воздух. Но к сожалению, пропорция частиц в почве моего сада, в которой также есть мелкий гравий, делают высохшую летом адоби-почву настолько твердой, что ее невозможно копать, оттого ее и сравнивают с кирпичами. Кроме этого, у адоби-почвы плохой дренаж: если выкопать лунку и посадить в нее растение вместе с контейнерной почвой, то во время полива растение будет в "ванной", вода будет уходить вниз очень медленно. Чтобы подружится с адоби-почвой, в нее нужно несколько лет вносить очень много компоста. Потом на ней будет расти отлично все: в ней есть все макро и микроэлементы кроме азота. Азот в адоби-почву можно вносить в виде сульфата аммония.

* На курсах в коледже я узнал, насколько важно перед внесением удобрений сделать анализ почвы в саду в лаборатории, например анализ AO5-2 в лаборатории Waypoint Analytical https://www.waypointanalytical.com/HomeOwners. Кроме понимания механической структуры почвы этот анализ показывает кислотность, засоленность, макроэлементы и микроэлементы. На основе моего опыта я пришел к выводу, что покупать тесты на питательные вещества в садовом магазине бессмысленно, так как они очень неточные. Кроме этого, вносить самые популярные в садовых магазинах комплексные удобрения в наши почвы может быть неоптимальным решением. Например если в вашей почве уже много фосфора, и вы будете продолжать вносить удобрение с фосфатами много лет, то почва может прийдет в состояние, когда в ней ничего не сможет расти, и ее останется только выкопать экскаватором и завезти грузовик новой. Это связано с тем, что фосфаты плохо вымываются водой, особенно на наших почвах.

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

Если у вас нет участка, вы можете выращивать растения в контейнерах, даже на небольшом балконе или патио. Для этого стоит почитать о контейнерных смесях. Смеси в магазине часто неоптимальные - например для камелий магазинная смесь слишком тяжелая, и я "разбавляю" ее торфом и крупнозернистым перлитом номер 3. Очень важно, чтобы контейнеры не стояли в поддонах, заполненных водой - от этого у растений гниют корни. Растения хорошо растут в керамических горшках, но они дорогие и тяжелые. С пластиковыми контейнерами есть проблема - когда на них падают лучи солнца, оно может зажарить корни возле стенок. Поэтому я недавно перещел на выращивание в мешказ из материи (grow bags).

Кроме курсов по приемам выращивания растений, в коледже есть курсы по лэндскейпингу. Для некоторых иммигрантов это может быть интересно не только в качестве хобби, но и как профессия. Выращивание растений удовлетворяет самые разные потребности: наклонность к коллекционированию, желание украсить свой дом, социализация при походах на природу и соревнование в клубах. Для меня растение - это красивый организм, в структурах которого происходят процессы, в каком-то смысле похожие на процессы в микросхемах, которые я проектирую. Только в микросхемах по их дорожкам и транзисторам перемещаются электрические импульсы несущие информацию, а в растениях по их трахеидам и ситовидным элементам перемещаются вода и питательные вещества, в листьях произходит сложный химический синтез, а в цветках сложный танец гамет. Я не могу спроектировать растение напрямую, как я делаю это с блоком сетевой микросхемы, но я могу подтолкнуть природу, скрещивая и отбирая самые красивые сеянцы.


Юрий Панчул
1 мая 2020 года

https://panchul.livejournal.com/597456.html


Новый лабник "Цифровой синтез" продолжает книгу Харрисов и помогает сделать видеоигру на FPGA

Четверг, 14 Мая 2020 г. 17:38 + в цитатник




Новый лабник "Цифровой синтез" продолжает традиции учебника Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», скачивания которого завалили британский сайт. Лабник содержит пошаговые инструкции, как потрогать руками всю теорию из Харрис & Харрис на плате FPGA, от мигания лампочек до процессора. В книге также разобрана концепция конвейерной обработки, которой не хватает в старых учебниках, и без которой вы не пройдете интервью на работу джуниор-проектировщика ни в одну микроэлектронную компанию. В большом приложении показан путь от FPGA до ASIC, массовых микросхем, которые стоят в айфонах, теслах и ИИ-акселераторах от Гугла.

В конце книжки есть интервью команды из Питера, которую Intel привез в свою штаб-квартиру в Silicon Valley, после того, как россияне получили приз на конкурсе Innovate FPGA. Книжку "Цифровой синтез" поддержала ведущая компания в автоматизации пректирования микросхем Cadence Design Systems (на фото выше новосибирская девушка Наташа стоит с FPGA платой перед штаб-квартирой Cadence в Silicon Valley - дальше в посте будет ее видео).

Лабник делался под эгидой Высшая Школа Экономики / МИЭМ (с предисловием от вице-президента ВШЭ Игоря Агамирзяна), при этом разные главы в нем писали преподаватели Московского, Киевского и Самарского университетов, Питерского ИТМО, Черниговского политеха и Университета Калифорнии Санта-Круз (вечернее отделение в Silicon Valley). В создании учебника приняли участие инженеры российских компании IVA Technologies (аппаратный ускоритель ИИ) и ФГУП НПЦАП (отделение Роскосмоса), американских компаний MIPS, Juniper Networks и AMD (предисловие от Тимура Палташева). Издало учебник ДМК-Пресс.

Учебник годится не только для студентов университетов - его можно использовать например для подготовки преподователей для летних лагерей по цифровому проектированию для продвинутых школьников. Разобраться с нуля по тьюториалам в интернете, как работать со средой Intel Quartus II - это нетривиально. А в учебнике это все расписано по шагам. Кроме этого, в нем есть вся теоретическая база, чтобы сделать что-то интересное для школьников, помимо мигания лампочками, которые им быстро надоедают. Интересное - это например видеоигру:







Идея учить верилогу с помощью игр на VGA не нова - такая лаба есть во многих вузах, например в курсе 6.111 Introductory Digital Systems Laboratory Массачусетского Технологического Института (MIT). Также, два года назад вышла книжка Designing Video Game Hardware in Verilog Paperback by Steven Hugg, с довольно развитыми играми с танчиками, гоночными машинками, генератором псевдослучайного звездного неба с помощью LFSR, фрейм-буфером и даже аппаратно-программным интерфейсом. Кроме этого, игры на VGA есть в демонстрациях от производителей ПЛИС Xilinx и Intel/Altera, точнее от их компаний-партнеров - Digilent и Terasic.





В частности в лабе из MIT очень наглядно показано, что все, что нужно сделать для рисования на дисплее - это реализовать в виде схемы функцию, которая в качестве аргумента принимает координаты X и Y точки на экране и возвращает цвет этой точки (RGB). В простейшем случае эта функция - комбинационная, например вот такая функция нарисует шедевр Малевича: "цвет черный (RGB=0,0,0), если x >= 200 и x <= 400 и y >= 200 и y < 400, иначе цвет белый (RGB=1,1,1)". Мы будем далее называть такую схему "миксер", посколько она будет "смешивать" вводы от генераторов разных изображений.

Для генерации самих аргументов миксера X и Y используется простая, построенная на двух счетчиках схема, которая использует тактовый сигнал высокой частоты CLK. Помимо координат X и Y эта схема генерирует сигналы HSYNC и VSYNC для дисплея VGA. Cигналы HSYNC и VSYNC остались со времен электронно-лучевой трубки. Они говорят виртуальному лучу, когда переходить на следующую точку/пиксел на экране по горизонтали, а потом на следующий ряд по вертикали.

В сложном случае миксер использует не только значения своих входов X и Y, но и значения из элементов состояния (D-триггеров и памяти), в которые происходит запись по тактовому сигналу CLK. В этом случае тактовый сигнал тоже входит в миксер. Схемы с тактовыми сигналами и элементами состояния называются последовательностными (эти схемы проходят последовательность состояний, которые четко отделяет друг от друга пульсирующий тактовый сигнал). На последовательностных миксерах можно реализовать движущиеся изображения любой степени сложности.

Вот картинки из MIT-шной лабы (такое же есть в куче других вузов), иллюстрирующие функцию генератора HSYNC/VSYNC, миксера (того самого блока, которые вычисляет RGB как функцию от X/HCOUNT и Y/VCOUNT), а также вывод HSYNC, VSYNC и RGB на экран. На картинке используется переключатель/мультиплексор между тремя миксерами - один рисует полоски, другой прямоугольник, третий - изображение на экране во время игры в пинг-понг:





В коде простейший миксер выглядит так. Он рисует разноцветные квадраты из смесей красного, синего и зеленого, а также линии чистых цветов:





Таким способом можно рисовать разнообразные красочные статические изображения. Вот изображения, которые нарисовали школьники на летней школе в Зеленограде сразу после короткой лекции с объяснением, как это делать:





Ну хорошо, школьники могут закодировать функцию RGB (X, Y) и рисовать статические картинки. Но что делать дальше, какой следущий шаг? Мы рассмотрели возможность использовать материалы от MIT, Digilent+Xilinx, Altera+Terasic и Steven Hugg, после чего пришли к выводу, что в чистом виде использовать их нельзя. Вузовские лабы вписаны в вузовскую программу, а материалы от вендоров ПЛИС недостаточно хорошо написаны, а также не содержат подсказок, как менять код в формате летней школы, чтобы школьники изобретали свои игры. У книжки же Стивена Хагга есть два недостатка, которые являются обратной стороной ее достоинств (живости и красочности):


  • Во-первых, Стивен Хагг по-видимому не работал как Verilog дизайнер в электронной компании, поэтому в его коде есть разные вещи которые бы профессионал верилога так не делал.


  • Во-вторых, Стивен Хагг реализовал очень визуально привлекательную и легкую в использовании среду разработки и моделирования 8bitworkshop, которая, увы, уходит в сторону от средств, которые используют разработчики в промышленности.




Вообще верилог у Стивена Хагга стоит в одном ряду с программированием процессоров старых 8-битных консолей от Атари и Нинтендо. Таким образом Хагг ориентирован не на тренировку будущих супердизайнеров, а на ностальгантов, ретро-компьютерщиков и других реконструкторов. Разница между его средой и профессиональными средствами проектирования еще больше, чем между средой программирования Ардуино и тулкитами для STM32.





Я конечно не предлагаю сваливать на школьников Cadence SimVision и Synopsys Design Compiler за стотысяч долларов, но школьники вполне могут потянуть бесплатные версии профессиональных тулов Xilinx Vivado, Intel/Altera Quartus II, Mentor ModelSim, а также Icarus Verilog, GTKWave и онлайн-площадку edaplayground.com.

Я перечитал предыдущий абзац и подумал: а вот Cadence SimVision для летней школы в Зеленограде можно было бы и использовать. Он имхо сделан лучше и удобнее и своего прямого конкурента Synopsys Design Vision Environment (DVE)*, и средств от Mentor Graphics (бесплатного ModelSim и платного Questa), и всех дешевых и бесплатных тулов (IcarusVerilog и т.д.) Если московское отделение Cadence Design System предоставит нам право и поддержку использования их софтвера на летних школах в Зеленограде, лично я буду за интеграции этого в программу школы.

* У DVE например текст в окне исходников глючит/прыгает, когда я запускаю его под Ubuntu. Приходится делать window resize пока он перестает глючить. У SimVision такого нет.

Вот начало тьюториала по SimVision (всего в него входит 22 видео):





Но вернемся назад к играм. Если не Стивен Хагг, то что? Я написал пример простейшей игры, которую использовал на летней школе в Зеленограде. Исходники игры лежат на гитхабе. Выглядит она так:





За две недели школьники разобрались с основными принципами проектирования на уровне регистровых передач и стали делать свои собственные, причем нетривиальные игры:





Поговорим о технических деталях игры-примера. Платформенно-независимый модуль игры может быть помещен (instantiated) в обвязке (wrapper) любой FPGA платы, на которой есть VGA порт и две кнопки. Если плата совсем голая, то к ней можно подсоединить переходник для VGA и кнопки через провода GPIO (general purpose input/output). Модуль игры состоит из:


  1. Генератора развертки VGA.

  2. Двух параллельно работающих модулей для спрайта торпеды и спрайта цели.

  3. Конечного автомата для сценария игры, с состояниями "начало", "наведение", "летит", "победа/поражение".

  4. Модуля, который определяет, столкнулись ли спрайты.

  5. Таймера для задания длительности визуального эффекта после выигрыша (моргающий малиновый экран) или поражения (желтый экран).









Все эти картинки нужно для следующей школы перерисовать с помощью draw.io или Lucidchart в нормальные микроархитектурные диаграммы:





Еще нужно добавить в материалы школы временные диаграммы, нарисованные с помощью WaveDrom, чтобы показать как работает генератор развертки VGA, а также как вычисляет координаты мини-конвейер тракта данных внутри спрайтов:





И разумеется нужно нарисовать диаграммы конечного автомата. Я сделал дюжину вариантов конечного автомата этой игры, вот на доске - вариант с четырьмя состояниями:





Зачем я сделал много вариантов? Даже с таким простым автоматом можно сравнить разные стили их кодирования на верилоге, а также проиллюстрировать оптимизацию состояний и тайминга. Все это спрашивают на интервью на позицию проектировщика микросхем в Apple, NVidia, Intel, AMD и другие компании. Поэтому эту область нужно знать так, чтобы от зубов отскакивало. Есть несколько хороших статей Клиффорда Каммингса на эту тему:


  1. Самая новая статья 2019 года: FiniteStateMachine (FSM) Design & Synthesis using SystemVerilog - Part I by Clifford E. Cummings & Heath Chambers.

  2. Более старая статья, в которой упоминается эффективный стиль кодирования one-hot state machine, который можно встретить в коде процессоров SPARC и MIPS: Synthesizable Finite State Machine Design Techniques Using the New SystemVerilog 3.0 Enhancements by Clifford E. Cummings. См. на странице 10: "case (1'b1) // synopsys parallel_case next[READ] : rd <= 1'b1".

  3. Еще одна старая статья, в которой на странице 9 описывается полезный трюк, при котором выводные сигналы идут прямо из специально закодированного состояния: Coding And Scripting Techniques For FSM Designs With Synthesis-Optimized, Glitch-Free Outputs by Clifford E. Cummings.



Я засинтезировал разные варианты конечного автомата игры с помощью наиболее распостраненного в индустрии тула Synopsys Design Compiler и сделал вот такую табличку. Как мы видим, современная версия DC очень эффективно оптимизирует все стили, так что вытягивать пикосекунды на конечных автоматах можно, но необязательно. Хотя возможно для более сложный конечных автоматов трюки из статей Каммингса будут более критичны:





Во время школы в Зеленограде мы также обсуждали, что при проектировании чипов, помимо языков описания аппаратуры Verilog и VHDL, используются и много вспомогательных языков:


  • Для автоматизации сборки, менеджмента регрессии, извлечения информации из отчетов синтеза и кодогенарации используют Питон, а также bash, make и прочую юниксную/линуксную кухню.


  • Древний Tcl/Tk является стандартным внутренним языком программ синтеза, симуляции и физического дизайна. На нем пишутся скрипты, которые определяют период цикла тактового сигнала, привязывают имена в коде на Verilog к реальным выводам на FPGA, синтезируют и анализируют группы файлов, добавляют сигналы во временную диаграмму при анализе результатов симуляции или при отладке.


  • Многие компании еще с 1990-х скрестили немодный сейчас Perl с верилогом. Они используют Perl для препроцессирования и генерации кода на верилоге. Хотя после внедрения Verilog-2001 и SystemVerilog такой гибрид в 90% случаев можно заменить на Verilog-2001 generate и многомерные порты из SystemVerilog, все же остались случаи, когда гибрид перла с верилогом полезен. В частности, если вы используете бесплатные программы, которые не поддерживают SystemVerilog.


  • C/C++ и библиотеки типа SystemC используют для написания моделей аппаратных блоков на уровне транзакций. Инженеры-верификаторы проверяют блоки, проектируемые на верилоге, против этих моделей.


  • Если вы работаете в процессорной компании, вам полезно знать ассемблер. Даже если вы не низкоуровневый программист и не верификатор, а проектировщик процессора на уровне регистровых передач (Register Transfer Level - RTL).




Вот ссылки для тех, кого заинтересовало использование перла в качестве препроцессора для верилога:


  1. G. Spivey. EP3: An extensible Perl preprocessor

  2. vpp.pl man page

  3. A Verilog Preprocessor



Пример, как использовать встроенный в верилог перл для соединения 64 портов:

//@ for my $i (0..7) {
  //@ for my $j (0..7) {
    .D$i$j(P${i}data[$j]),
  //@ }
//@ }






Было бы хорошо, если бы кто-нибудь написал универсальные скрипты для моделирования и синтеза примера (необязательно моей игры) на всех основных платформах для синтеза, симуляции, отладки, анализа динамического энергопотребления, физического проектирования, обвязки для всех плат итд. Это можно было бы использовать на школах и семинарах:





Тут у вас может возникнуть вопрос: а почему я использую на семинарах Linux? Хотя и под Windows есть среды для моделирования и синтеза для FPGA, но в индустрии проектирования массовых чипов Windows не прижился. В начале 1990-х рынок рабочих станций для разработчиков ASIC-ов был поделен между SunOS и HP/UX. Потом электронные компании года три поиграли с Windows NT, но оно не пошло. После этого Synopsys и другие компании проектировочного софта плюнули и перешли на Linux - сначала на Red Hat, потом на SuSE и Ubuntu. Подозреваю, в основном из-за кучи скриптов на перле, C-shell итд, а также из-за удаленной работы разработчиков через telnet и X Window.

Поэтому я для своих семинаров хожу с кучей bootable SSD с Lubuntu, на которых установлен весь нужный софт. При этом я использую legacy boot, но последнее время выяснилось, что все больше компьютеров требуют UEFI boot. По-видимому надо будет сделать bootable SSD с UEFI boot.

Прижимистые компании вместо Red Hat используют CentOS. Возможно многие тулы для проектирования идут и под Debian, но я не проверял.





Для семинаров я используют китайские FPGA платы, одну из которых держит в руках новосибирская девушка Наташа, которая проводит у нас в Silicon Valley тусовки формата Что-Где-Когда.





В марте месяце я гулял по дикой природе Калифорнии вместе с российским бизнесменом Сергеем Зориным, который отвез в Москву десяток плат ZEOWAA, похожих по характеристикам на ту, которую держит в руках Наташа.

Так как из-за коронавируса эти летом семинаров в Зеленограде наверное не будет, я думаю раздать этот десяток плат московским школьникам бесплатно. C двумя условиями:


  1. Перед получением платы вам нужно пройти все три части онлайн-курса "Как работают создатели умных наночипов" («От транзистора до микросхемы», «Логическая сторона цифровой схемотехники», «Физическая сторона цифровой схемотехники»), и получить сертификат. Этот курс мы создали вместе с РОСНАНО, точнее его образовательной дочкой eNano, проектом STEMford.



    Помимо привязки упражнений в школе к реальной индустрии, этот курс объясняет многие моменты, которые нужно твердо знать перед тем, как перейти к практическим упражнениям. В частности концепции последовательностной логики, конечных автоматов, логического синтеза, тайминга внутри цикла (без него непонятно как вычислять тактовую частоту схемы) и других. Эти концепции не всегда укладываются в голову сразу, и если их не изучить перед практикой теоретически, то пользы от практики будет не очень много.



  2. После получения платы я ожидаю, что вы сделаете на ней проект, выложите код на гитхаб и напишете про ваш проект пост на Хабре.




Если вы хотите купить в качестве подспорья для такого проекта новую книгу "Логический синтез", то для читателей Хабра у нее есть промокод - Sintez_2020.





В перспективе хорошо было бы слезть с использования китайских плат и сделать дешевую российскую плату для таких упражнений с FPGA, с открытым дизайном. Я приветствую, если вы поделитесь мыслями в комментах о программах для проектирования плат и идеями, как лучше спроектировать и маркетировать такую плату. Для массового использования со школьникам желательно чтобы она стоила не больше $30 или 2000 рублей.






Если вы школьник и заинтересовались проектированием микросхем, вы можете поступать в МИЭТ, ВШЭ МИЭМ, МИФИ, МГУ, МФТИ (в нем подобными упражнениями занимается Никита Поляков, МЭИ, МИСиС, ИТМО, ЛЭТИ, Самарский Университет, некоторые украинские университеты (КНУ, Черниговский НТУ, харьковский ХНУРЭ) и другие вузы. Вот я застал как при мне ремонтировали подход к приемной комиссии МИЭТ в Зеленограде:





А вот как МИЭТ выглядит внутри:





Трудоустроиться там можно кстати прямо напротив МИЭТ в НПО ЭЛВИС, которое занимается умными камерами и чипами для спутников:





Или вы можете приехать в Silicon Valley. Хотите пройти интервью в компании Долины? Упражняйтесь на платах ПЛИС!



https://panchul.livejournal.com/597072.html


Трассировка silicon-а в формате хакатона. Без Physical Design не будет Айфона

Пятница, 08 Мая 2020 г. 09:52 + в цитатник


Все смотрели фильм Дудя про стартапы Силиконовой Долины? А вы знаете, какой стартап Долины был самый силиконовый в 1977 году? Это был Silicon Valley Research, также известный как SVR и Silvar-Lisco. Стартап делал программы, которые автоматически размещали транзисторы на площадке чипа и соединяли их дорожками. Стартап вышел на биржу и даже дожил до 21 века, но не смог конкурировать с новыми лидерами - сначала Daisy/Mentor/Valid, а потом Synopsys и Cadence.

Программы, которые делал SVR, назывались программами размещения и трассировки, по английски Place & Route - P&R. Они сильно повысили производительность труда инженеров - до P&R программ чертежи маски чипа клеили из цветного картона (Intel 4004), рисовали карандашами на бумаге, или бегали курсором по текстовому экрану и соединяли плюсиками и минусиками элементарные блоки, которые изображались звездочками (так проектировали чипы в IBM/370-совместимых компьютерах Amdahl, продвинутых родственниках советских ЕС ЭВМ).

SVR основал профессор из Стенфорда Билл ван Климпат, которого я знал лично, так как он был ангел-инвестором и членом совета директоров моего собственного стартапа. Билл периодически воспитывал меня за плохое поведение на заседаниях и прокрастинацию, а также рассказывал байки про патентные суды, по которым он постоянно ходил в качестве эксперт-свидетеля.

Поэтому когда в казанском Иннополисе мне предложили организовать проект на их хакатоне для студентов по CASE Tools, я вспомнил Билла и предложил сделать на хакатоне минимальную программу трассировки. Этот пост - отчет о результатах этого экспериментального хакатона. Их также наверное стоит обсудить на zoom-конференции в Иннополисе по Open Source проектам, которая будет через неделю.



Понимание алгоритмов физического проектирования микросхем - это ключевая компетенция. Во всех группах по разработке микросхем (silicon development group) в Apple, NVidia, Intel, AMD, Cisco, Juniper, Huawei, Samsung, Tesla, Google, MediaTek, Broadcom - есть группа PD Team (Physical Design Team), которая работает с тулами от Synopsys и Cadence, которые делают это. Причем эти тулы сложные, в них больше тысячи команд и сотни подсистем, они обходятся каждой компании в миллионы или десятки миллионов долларов в год. Без наличия большего количества специалистов по PD (как на уровне юзеров, так и на уровне разработчиков custom PD tools) у России нет вообще никаких шансов стать значимой на международном рынке микросхем в смартфонах, ИИ ускорителях и самоуправляющихся авто. Примерно как у какой-нибудь африканской страны, в которой в вузах не учат биохимию, нет вообще никаких шансов стать лидером в лекарствах (каких-нибудь ингибиторах протизы) против короновируса.

Обсуждения и возражения

Мы обсудили идею P&R хакатона в рассылке silicon-russia, где к ней отнеслись с осторожным скепсисом. В частности мне возразил Михаил Шуплецов, который занимается алгоритмами EDA (Electronic Design Automation) на ВМК МГУ:



Михаил Шуплецов: "Есть сомнение, что формат Хакатона подходит для таких задач. Хороший результат по задачам автоматизации проектирования можно получить только, если соревнование идет продолжительное время (не менее 6-ти месяцев). В предложенном формате, на мой взгляд, можно будет только запустить готовые инструменты, но не создать какое-то новое решение."


на что я ответил:


Юрий Панчул: "Я согласен, что для написания алгоритмов с приемлемой алгоритмической сложностью, capacity (способностью обрабатывать большие дизайны) и features (работая с реальными ASIC libraries) нужно время порядка шести месяцев. Но я не согласен, что формат хакатона не годится! Я лет 20 назад получил большое удовольствие, когда написал за викенд маленькие программки для floorplanning и для maze router. На Си и с визуализацией на Tcl/Tk. Без особых ухищрений, все по вводному учебнику по алгоритмам EDA. Это отличная тренировка в программировании для студентов младших курсов + это может заинтересовать копать область дальше."


Урезание задачи или "Инжиниринг - это искусство возможного"

Задача заинтересовала трех студентов Иннополиса. Главная интрига была как урезать формулировку задачи, чтобы было реально ее выполнить быстро, за две недели подготовки и четыре часа хакатона. Исходная постановка задачи выглядела вот так. Она состояла из трех частей:


  1. Парсирования текстового файла на урезанном подмножестве языка описания аппаратуры Verilog.

  2. Применения древнего алгоритма волновой трассировки Ли.

  3. Графического вывода результата.



После обсуждения со студентами мы решили парсирование верилога заменить на упрощенный ввод координат ячеек из текстового файла. Дальше студенты распределили обязанности и ниже - их три отчета про эксперимент.

Параллельно со студентами я решил написать решение и сам, чтобы прикинуть, сколько это займет времени для одного человека. Студенты писали свое решение, используя объектно-ориентированные client-server фреймворки на Java и веб-графику. Я просто написал программку на Си, которая берет данные из инициализированного статического массива и выводит результат, печатая картинку звездочками и точками, как в программах 1970-х годов. Это заняло у меня 4 с половиной часа.

Код моей (не студенческой) программки
Полная выдача



Теперь предоставим слово студентам:



Отчет Софии Ермолаевой

Хакатон проходил среди студентов университета Иннополис 19го Октября 2019 года.

На выбор было представлено 11 кейсов, из которых каждый должен был выбрать 3 и расставить приоритет от наиболее предпочтительного до наименее предпочтительного.
По нашим предпочтениям и количестве людей выбравшим каждый кейс – организаторы формировали команды.
За неделю до хакатона меня и еще двух студентов распределили в проект от компании MIPS BU.

Изображение 1. Кейс от компании MIPS BU на сайте хакатона



Наша команда оказалась самой немногочисленной, в сравнении другие команды были 5-7 человек. Соответственно нам сразу стало понятно что скоуп задачи поставленный для выполнения в течении 8ми часов мы вряд ли осилим. Сложностью было еще и то, что у нас единственных был удаленный заказчик да еще и с 10 часами разницы во времени.

По правилам хакатона, после распределения команд разрешалось провести ряд встречи с заказчиком для выяснения требований и ознакомления с технологиями в случае если они являются не знакомыми для команд (что было применимо к нашей команде).

Мы впервые встретились с заказчиком 11 Октября 2019 года. Для встречи мы подготовили вопросы для проведения Elicitation Interview (еще во время подготовки вопросов мы понимали что совсем не понимаем как выполнить задачу, но от этого было еще интереснее). Первоначальный список вопросов представлен на Изображении 2. Пришлось очень много шерстить интернет для того чтобы получить какой-либо уровень знаний по теме.

Изображение 2. Elicitation interview questions.



Во время встречи у нас появились более подробный вопросы касающиеся решения (см. Изображение 3).

Изображение 3. Вопросы связанные с реализацией.



По итогам встречи мы выяснили собрали требования и их приоритеты чтобы было понятно каким образом нам уменьшить скоуп (см Изображение 4).

Изображение 4. Требования и их приоритеты собранные во время первой встречи.



Нас не покидало чувство что втроем за 8 часов это не успеть, мы поделились переживаниями с заказчиком. Оказалось что об ограничении в 8 часов он не знал. Поэтому мы вместе начали думать об упрощении задачи и о разработке прототипа.

Упрощения в основном коснулись функционального требования №1 (см. Изображение 4). В нашем итоговом Requirements Document требования к прототипу разделены по функциональности: File reader (см. Изображение 5), Placement (см. Изображение 6), Routing (см. Изображение 7), Graphical representation (см. Изображение 8). По правилам Requirements document нужно было заверить подписью заказчика, но так как у нас заказчик был удаленным подтверждение мы решили сделать по фото (см. Изображение 9).

Изображение 5. Требования к File Reader



Изображение 6. Требования к Placement



Изображение 7. Требования к Routing



Изображение 8. Требования к Graphical representation



[Изображение 9. Подтверждение требований заказчиком.]

После сбора требований мы начали продумывать особенности реализации и выбор технологий. Стоит отметить что наша команда состояла из: 1 С# разработчика (Михаил), 1 Python разработчика (Максим) и 1 Frontent разработчика (София). Для отображения мы выбрали React.js так как у меня было достаточно уверенности в том, что используя эту технология в короткий срок я смогу имплементировать отображение. Для остальных компонентов было тяжело выбрать технологию так как знания сильно разнились, мы сошлись на Java так как на этом языке у каждого был хотя бы минимальный опыт.

Мы разделили ответственность следующим образом:


  • Отображение, связывание бэка и фронта, подготовка презентации, менеджмент команды – София,

  • Placement и Routing – Михаил

  • File reader – Максим.



Во время хакатона закaзчикам необходимо было презентовать кейсы, но в связи с разницей во времени (у нас было ранее утро а у заказчика поздняя ночь) мы продемонстрировали видео подготовленное заказчиком.





После презентаций мы направились кодить наше решение. Мы сидели вместе но каждый работал над своей частью (cм. Изображение 10). Конечно до Хаккатона мы тренировались писать алгоритм Ли для понимания его работы.

[Изображение 10. Мы с Михаилом работаем над решением задачи (Максим в кадр не попал но он тоже работал рядом).]

Для общения бэка и фронта я выбрала Spring. Для тестирования решения мы подготовили несколько примеров простых входных файлов (пример подобных файлов представлен на Изображении 11).

Изображение 11. Входящий файл и его отображение.




Тестирование на простых файлах отрабатывало так как мы ожидали. Проблемы возникли когда мы решили для красивой картинки на слайдах сделать пример посложнее. Я придумала пример представленный на Изображении 12. По не известным нам причинам алгоритм уходил в бесконечный цикл. До конца хакатона оставался час. Мы уже во всю работали над презентацией, так как ее нужно было еще и прогнать для качественного выступления. Пока я работала над презентацией, мои сокомандники выяснили что в бесконечный цикл программа попадает не каждый раз, то есть при запуске на одном и том же файле – программа иногда все же работает. Мы поняли что наше решение не стабильно. Но времени исправлять уже не было. Подтверждением не стабильности алгоритма стало еще и то, что построение схемы для одного и того же файла было разным (см. Изображение 13).

Изображение 12. Пример придуманный во время хакатона для демонстрации работы алгоритма.



Изображение 13. Вывод для второго примера (во время хакатона и после хакатона).





Хакатон мы не выиграли. Стоит отметить что остальные кейсы были связаны с анализом качества и с тестированием продуктов, в то время как мы реализовывали решение с нуля. Мы были белыми воронами на хакатоне. По правде говоря, я этому очень рада, так как полученный опыт был очень полезным.

[Изображение 14. Презентация нашего решения на хакатоне.]
[Изображение 15.Наша команда с сертификатами об участии.]
[Изображение 16.Наша команда участвует в оценивании других кейсов.]

Post mortem

После хакатона мы отправили свое решение заказчику в качеcтве ссылки на гит.

4го Ноября я получила письмо от заказчика о том что у него не удается запустить наш проект. Проблема была в том что мы разрабатывали на MacOS и Windows, соответственно инструкцию мы тоже писали исходя из того как мы запускали на своих платформах.

Изображение 17. Изначальная инструкция по запуску приложения.



Заказчик пытался запустить через консоль и получал следующую ошибку:

Изображение 18. Ошибка №1.



Воспроизвела все ошибки и проблема оказалась в том что для запуска проекта через консоль как jar необходимо было добавить manifest файл чтобы maven знал какой из файлов является main классом. Так что я добавила конфигурационные файлы и отправила обновление заказчику.

Следующее письмо от заказчика пришло 15го Апреля 2020го года. У заказчика во время сборки проекта появлялась следующая ошибка:

Изображение 19. Ошибка №2.



Мне пришлось снова разбираться с проектом. После нескольких часов проб и ошибок все же удалось выяснить проблему. Оказалось что javafx.util.Pair даже при добавлении библиотеки javafx.util как зависимости в pom.xml при сборке не добавляеться в проект. После гугления оказалось что такая проблема есть у всех пользователей данной библиотеки. Сперва я пыталась разными способами решить эту проблему, но в результате оказалось проще имплементировать класс вручную. Оказалось что в Python (а именно Python разработчик из нашей команды работал над этой частью) подобные классы используются как стандартное решение, но в Java для хранения ключ-значение существует множество других структур данных (HashMap etc.). В результате мой код для Pair который помог все исправить выглядел следующим образом:

Изображение 20. Pair implementation.



После того как я исправила ошибку, решила написать подробную инструкцию по запуску приложения через консоль. После тестирования инструкции. Мы созвонились с заказчиком и запустили проект. Вот так спустя 5 месяцев заказчик смог увидеть плоды нашей работы.

Изображение 21. Финальная инструкция по запуску проекта.



Начальная версия проекта находится в репозитории на гитхабе.

Финальная версия проекта находиться в моей репозитории github.



Отчет Максима Костина

После изучения всех требований к проекту, мы разделили задачу на 3 основные части.

Я был ответственен за обработку входного файла и упаковку его в удобный, для дальнейшей обработки формат. Самой очевидной и удобной структурой данных для этой задачи, на мой взгляд, можно считать граф (вершинами мы представляем элементы, а рёбрами соединения между ними).

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

Изначально планировалось обрабатывать входные файлы, написанные с использованием синтаксиса языка Verilog, но в дальнейшем мы опустили этот аспект, и начали использовать упрощённый формат входных данных.

Так же мы сделали ряд упрощений (из-за ограничения на время хакатона) на размеры элементов (мы считали все элементы одинаковыми по размеру), полное упрощение на физическую природу элементов (задержки сигналов, влияние от соседних ячеек, энергопотребление - к каким-то элементам подходят более толстые дорожки и прочее).

В целом, критичных ошибок в реализации самого графа не было, но в процессе парсинга файла возник ряд ошибок по невнимательности, так, например для элемента NOT изначально было создано два входа (очевидно программа крашилась).

Так же возник ряд мелких ошибок (неправильно был указан размер подложки) при объединении с кодом Михаила (Михаил занимался размещением элементов графа на подложке, и трассировкой), но в целом всё решилось "быстро и безболезненно". Михаил написал очень хороший код, который позволил ощутимо быстро приблизится к цели.

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

В целом, за время работы над проектом Я узнал много новой и полезной информации о том, как создаются печатные платы и SoC, а также какие алгоритмы и люди стоят за этим. Я уверен, что данный навык может пригодится мне в дальнейшем, т.к. Я периодически балуюсь с электроникой и иногда собираю разного рода прототипы. Теперь же Я смогу использовать нашу программу, что бы сделать трассировку дорожек, и посмотреть как это может выглядеть в реальности.



Отчет Михаила Шейнберга

Причиной моего выбора данного проекта была его связь с примером из книги Эрика Эванса “Предметно ориентиованное прогамирование” которую я на тот момент читал. Хотя забегая вперед можно сказать что никакого серьезного применения моим знаниям о DDD, и опыту из примера приведенного в книге на хакатоне не нашлось, я считаю что опыт полученный на хакатоне был полезным и интересным для меня.

После изучения всех требований к проекту, мы разделили задачу на 3 основные части.

Я был ответственен за построение схемы, Максим взял на себя написание парсера а софия взяла ответственность за визуализацию результатов.

Совмсестно с командой и заказчиком нами был выбран алгоритм Флойда для оптимального размещения проводов на схеме. Для хранения построенной схемы была использована трехмерная матрица где координатой по вертикали выступал номер слоя. Совместно с командой было принято упрощение - каждому элементу схемы придаваля размер 5х5 клеток и пространством между элементами в 3 клетки. Принятые упрощения были связанны со временем хакатона (оно было ограниченно) и ограничением в свободном времени до начала хакатона (в раене хакатона был ряд курпных асайментов которые тоже нужно было сделать).

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

Отдельно хочется отметить качество визуалтзации выполненое Софией. Ее часть рботала без ошибок и дала хороший материал для информативной презентации результатов.

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



Приложение A: Возражение Михаила Шуплецова из МГУ (на снимке слева)

Команда Михаил Шуплецов из МГУ выиграла престижное международное соревнование IC-CAD 2015, причем информация об этом вызвала эмоциональную реакцию даже у бывшего посла США в России Майкла Макфола.

Из обсуждения в рассылке silicon-russia.


Михаил Шуплецов: Уже было высказано несколько предложений от коллег, что имеет смысл брать за основу существующие проекты. На мой взгляд, стоит упомянуть о многолетнем опыте проведения подобных соревнований в рамках международных конференций:

1. http://iccad-contest.org
2. http://www.ispd.cc/?page=contests

В рамках этих соревнований студенческие команды из разных стран уже предложили множество инструментов для решения отдельных задач автоматизации проектирования (как логического, так и физического). Есть проект, который интегрирует все эти инструменты в рамках одного маршрута проектирования:

1. https://arxiv.org/pdf/1810.01078.pdf
2. https://github.com/jinwookjungs/datc_robust_design_flow

Считаю, что инициатива проведения соревнований по разработке алгоритмов автоматизации проектирования является очень полезной. У меня самого есть опыт руководства командами, которые участвовали в подобных соревнованиях. Мне самомы было бы интересно поучаствовать в качестве организатора подобных соревнований.

Единственное, что немного расстроило, что пост о мероприятии в Иннополисе появился уже после того, как регистрация на мероприятие завершилась. Так же есть сомнение, что формат Хакатона подходит для таких задач. Хороший результат по задачам автоматизации проектирования можно получить только, если соревнование идет продолжительное время (не менее 6-ти месяцев). В предложенном формате, на мой взгляд, можно будет только запустить готовые инструменты, но не создать какое-то новое решение.


И второе:


Уважаемый Юрий!

Спасибо за лестные слова в мой адрес. Хотя я все же более скромно оцениваю свои заслуги. Мне во многом повезло найти талантливых студентов, которым было интересно участвовать в соревнованиях и было желание победить. Честно говоря, в последнее время искать студентов стало намного сложнее в связи с большей популярностью других направлений (машинное обучение и искусственный интеллект) и больших призовых сумм, в рамках соревнований по этим направлениям.

Думаю, что в группы смогу написать, хотя для меня этот формат немного непривычный.

На счет Хакатонов. У каждого формата есть свои плюсы и минусы. В текущей ситуации, на мой взгляд, любые начинания в области EDA в России имеют смысл и будут в чем-то полезны. Я под впечатлением от названия статьи отметил, что для задач из области EDA больше подходит формат долгосрочных соревнований, который показал свою состоятельность в рамках ICCAD и ISPD. При этом я понимаю, что в России пока может и не быть достаточной инфраструктуры для проведения подобных соревнований (хотя тоже момент спорный). Если помечтать, то было бы интересно увидеть в будущем соревнование в России подобное соревнованиям в формате ICCAD и ISPD под эгидой, например, конференции МЭС (http://www.mes-conference.ru/) и при поддержке компаний, которые занимаются проектированием интегральных схем и EDA.

С наилучшими пожеланиями,
Михаил


Приложение B: Инструкция Софии Ермолаевой как воспроизвести результаты


Required:

Maven
Npm

Clone repository

git clone https://github.com/keepYourHairOn/HackathonProject.git

In the repository folder:

cd edap
cd ASICdrawer
npm install
npm start

In the browser open:

localhost:8008

In the new tab of the command line (because node should stay working).

To build new jar:

cd edap
mvn package
Copy input.txt file from {repository folder}/edap/input.txt and paste a file into: edap/target

To run the existing jar:

cd target
java -jar edap-1.0-SNAPSHOT.jar


Ссылки


  1. Постановка задачи в более раннем посте на Хабре.



  2. Документ, который мы составили со студентами.



  3. Препринт статьи Hackathons as a Part of Software Engineering Education: CASE in Tools Example by Andrey Sadovykh, Maria Naumcheva, Mansur Khazeev, Innopolis University.



  4. PDF статьи Hackathons as a Part of Software Engineering Education: CASE in Tools Example by Andrey Sadovykh, Maria Naumcheva, Mansur Khazeev, Innopolis University.



  5. Фотографии Хакатона.





Над Силикон Вэлли заходит солнце, а над Иннополисом восходит, на чем я свою речь прекращаю. А вы что думаете?

https://panchul.livejournal.com/596854.html


Метки:  

Освобожденный от призыва на Отечественную Войну 1812 года Пушкин посещал русскую Америку

Среда, 01 Апреля 2020 г. 11:28 + в цитатник
Все помнят со школы, что Александр Сергеевич Пушкин был освобожден от призыва на Отечественную Войну 1812 года. Но не все знают, что великий поэт в это время плавал в составе экспедиции Русско-американской компании И. А. Кускова. Вместе с экспедицией он посетил Форт-Румянцев (нане американский город Бодега-Бэй) и проплыл мимо будущей крепости Росс. Некоторые исследователи считают, что романы Пушкина с жительницами побережья легли в основу советской рок-оперы "Юнона и Авось". В Бодега-Бэй построили музей-избушку с восстановленной обстановкой начала XIX века. В ней можно увидеть кровать, прялки, бочки с порохом и скипидаром, ружья и гусиные перья. Неподалеку есть церковь Святого Германа Аляскинского, построенная на месте часовни, которую посещал Пушкин весной 1813 года, и в которой он возможно даже обручился с испанской креолкой Консепсьон перед плаванием на родину, из которого он так и не вернулся.

https://ru.wikipedia.org/wiki/Пушкин,_Александр_Сергеевич
https://ru.wikipedia.org/wiki/Бодега
https://ru.wikipedia.org/wiki/Бодега-Бей













https://panchul.livejournal.com/596727.html


Разыскиваются желающие спасти мировой интернет от короновируса

Воскресенье, 29 Марта 2020 г. 21:39 + в цитатник


Кто хочет поработать? Сегодня на мясокомбинат, погрузку угля и уборку конюшень нарядов не прислали. Но есть работа, которая помогает Человечеству бороться с одним из последствий короновируса - резким увеличением сетевого траффика. Траффик увеличился из-за того, что миллионы труженников хайтека перешли на удаленку. Это увеличило не только нагрузку через Zoom и VNC серверы, но и стриминг сериалов и других художественных фильмов.

Так что же я предлагаю? Как знают некоторые из моих читателей, сейчас я проектирую блок в новом чипе для high-end роутеров Juniper Networks. Эти роутеры связывают города, интернет-сервис провайдеров и облака крупных компаний. В нашем отделе под названием Silicon-USA есть восемь открытых позиций, на должности RTL Design, RTL Verification, Physical Design, уровня Staff и Senior Staff.

Человек для одной из этих позиций нужен мне как коллега лично - не хватает верификатора для проектируемого мною блока. Вы можете просто сходить на сайт компании и отправить свое резюме туда ( https://careers.juniper.net/careers/careers/#/ ). Или вы можете прислать ваше резюме мне, и я буду агитировать за вас менеджмент. Агитация от меня может быть несколько эффективнее, чем просто послать резюме в компанию.

Если вы хотите действовать через меня, то у меня есть дополнительное условие. Так как после карантина я буду сидеть с вами рядом, а до его окончания общаться через Microsoft Teams и отлаживать мой блок вместе с вашим верификационным окружением, то я должен быть уверен что вы знаете основы RTL, SV, UVM, умеете решать встающие по ходу задачки и пишете код аккуратно. Поэтому я предлагаю вам написать и выставить публично на GitHub решение известного в электронной индустрии вопроса во время интервью - дизайна re-order buffer. Постановка задачи описана на вот этом сайте (сайт не имеет никакого отношения ни ко мне, ни к компании): https://chipress.co/2019/08/12/how-to-design-a-memory-controller-with-in-order-read-responses/.

Я ожидаю от вас RTL код для контроллера, модель памяти с переменной латентностью и внеочередным возвращением данных, а также UVM testbench, с этим работающую. Плюс простую микроархитектурную диаграмму в draw.io или Lucidchart и временные диаграммы симуляции (в любом симуляторе - DVE, SimVision, Icarus Verilog, ModelSim), показывающие что ваша конструкция работает. Плюс синтез на чем угодно (Synopsys DC, Altera Quartus, Xilinx Vivado), с отчетом по таймингу. Такие упражнения удобно демонстрировать на https://www.edaplayground.com/ где есть симуляция и синтез.

UPD: Если вы крутой верификатор, но не пишете RTL, вы можете вместо RTL написать cycle-accurate модель контроллера и ничего не синтезировать. Если вы крутой RTL-щик и у вас нулевое понимание SV/UVM, можете в качестве testbench написать код в стиле 1990-х годов, безо всяких транзакций и классов. В последнем случае я вам дам рекомендацию, но вы будете вероятно интервьироваться не в мою непосредственную группу, а в соседнюю.

Мои емейлы:



Иллюстрация к задачке на chipress.co:



Вот список позиций. Территориально работа в Саннивейл, Калифорния и Дарем, Северная Каролина:



Благодарю за внимание!

https://panchul.livejournal.com/596416.html


Разыскиваются желающие спасти мировой интернет от короновируса

Воскресенье, 29 Марта 2020 г. 21:39 + в цитатник


Кто хочет поработать? Сегодня на мясокомбинат, погрузку угля и уборку конюшень нарядов не прислали. Но есть работа, которая помогает Человечеству бороться с одним из последствий короновируса - резким увеличением сетевого траффика. Траффик увеличился из-за того, что миллионы труженников хайтека перешли на удаленку. Это увеличило не только нагрузку через Zoom и VNC серверы, но и стриминг сериалов и других художественных фильмов.

Так что же я предлагаю? Как знают некоторые из моих читателей, сейчас я проектирую блок в новом чипе для high-end роутеров Juniper Networks. Эти роутеры связывают города, интернет-сервис провайдеров и облака крупных компаний. В нашем отделе под названием Silicon-USA есть восемь открытых позиций, на должности RTL Design, RTL Verification, Physical Design, уровня Staff и Senior Staff.

Человек для одной из этих позиций нужен мне как коллега лично - не хватает верификатора для проектируемого мною блока. Вы можете просто сходить на сайт компании и отправить свое резюме туда ( https://careers.juniper.net/careers/careers/#/ ). Или вы можете прислать ваше резюме мне, и я буду агитировать за вас менеджмент. Агитация от меня может быть несколько эффективнее, чем просто послать резюме в компанию.

Если вы хотите действовать через меня, то у меня есть дополнительное условие. Так как после карантина я буду сидеть с вами рядом, а до его окончания общаться через Microsoft Teams и отлаживать мой блок вместе с вашим верификационным окружением, то я должен быть уверен что вы знаете основы RTL, SV, UVM, умеете решать встающие по ходу задачки и пишете код аккуратно. Поэтому я предлагаю вам написать и выставить публично на GitHub решение известного в электронной индустрии вопроса во время интервью - дизайна re-order buffer. Постановка задачи описана на вот этом сайте (сайт не имеет никакого отношения ни ко мне, ни к компании): https://chipress.co/2019/08/12/how-to-design-a-memory-controller-with-in-order-read-responses/.

Я ожидаю от вас RTL код для контроллера, модель памяти с переменной латентностью и внеочередным возвращением данных, а также UVM testbench, с этим работающую. Плюс простую микроархитектурную диаграмму в draw.io или Lucidchart и временные диаграммы симуляции (в любом симуляторе - DVE, SimVision, Icarus Verilog, ModelSim), показывающие что ваша конструкция работает. Плюс синтез на чем угодно (Synopsys DC, Altera Quartus, Xilinx Vivado), с отчетом по таймингу. Такие упражнения удобно демонстрировать на https://www.edaplayground.com/ где есть симуляция и синтез.

UPD: Если вы крутой верификатор, но не пишете RTL, вы можете вместо RTL написать cycle-accurate модель контроллера и ничего не синтезировать. Если вы крутой RTL-щик и у вас нулевое понимание SV/UVM, можете в качестве testbench написать код в стиле 1990-х годов, безо всяких транзакций и классов. В последнем случае я вам дам рекомендацию, но вы будете вероятно интервьироваться не в мою непосредственную группу, а в соседнюю.

Мои емейлы:



Иллюстрация к задачке на chipress.co:



Вот список позиций. Территориально работа в Саннивейл, Калифорния и Дарем, Северная Каролина:



Благодарю за внимание!

https://panchul.livejournal.com/596416.html


Cтатья-ответ на "десять лет ездили из России в Силиконовую Долину перенимать опыт, а результатов нет

Суббота, 28 Марта 2020 г. 09:11 + в цитатник
Месяц назад в журнале Икс-Медиа появилась статья в духе "десять лет ездили из России в Силиконовую Долину перенимать опыт, а результатов нет". Меня попросили написать на статью ответ. Вначале я написал про то, почему результатов нет (экскурсии в офисы Гугла и Фейсбука научат разве что как оформлять офис), потом прошелся по деятельности гуманитария из MIT Лорена Грэхэма (которого неистово шэрят за "всеобъясняющую" фразу про корову и молоко), упомянул темную сторону мантры про "протестантскую этику" и рассказал, что некоторые результаты есть в виде того же Байкала.

Надо было помимо упоминания курсов в МИЭТ и ИТМО добавить что относительно недавно похожие программы ввели другие вузы (ВМК МГУ, ВШЭ МИЭМ и тд), но извиняюсь за упущение.

Моя статья-ответ на сайте журнала




Как сделать мечту реальностью
Только последовательное увеличение глубины владения технологиями, как в образовании, так и в промышленности, позволит России добиться успеха на мировом high-tech-рынке и в действительности построить цифровую экономику.

Я работаю в Кремниевой долине почти 30 лет и много раз наблюдал именно то паломничество из России, о котором пишет Игорь Бакланов в статье «По ту сторону “Силиконовой мечты”» . Попытаюсь объяснить, почему этот процесс принес меньше, чем ожидали паломники, а также поделюсь одной историей, которая происходила без фанфар, но дала конкретный результат.

О чем мечталось?

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

Так и паломники в Кремниевую долину с большим удовольствием посещали офисы Google и Facebook, а также выступления партнеров венчурных фондов. Поэтому за последние 10 лет в России переняли внешний вид офисов и процедуры инвестирования. Офисы в Сколково и у «Яндекса» выглядят не хуже, чем у Google, и лучше, чем штаб-квартира Intel. Российские венчурные инвесторы, их эксперты и консультанты растолкуют все про раунды финансирования и конвертируемые долговые обязательства не хуже, чем их коллеги из Пало-Альто.

Помогают ли эти ноу-хау выиграть на мировом рынке технологий? К сожалению, нет. Офисные здания технопарков сами по себе на успех влияют слабо. Многие стартапы в Кремниевой долине начинались в весьма заурядно выглядевших офисах, где их соседями были зубные кабинеты и другие традиционные бизнесы. Что касается ноу-хау инкорпорирования стартапов, обязанностей членов совета директоров и тонкостей обращения акций, то это любому основателю стартапа разъясняют за три похода к корпоративному юристу на деньги первого инвестора.

Делали ли паломники серьезные попытки позаимствовать «тяжелые» ноу-хау, от обладания которыми стартапы, собственно, и выигрывают? Возьмем пример из области, сделавшей Кремниевую долину Кремниевой, – из области проектирования полупроводниковых чипов. Автор статьи «По ту сторону…» вообще не упомянул о ней в своем описании «современных работников отрасли – от программиста до системного архитектора», поскольку системный архитектор, как правило, использует уже готовые чипы. Насколько за 10 лет России удалось продвинуться в этой сфере?

Степень заимствования тех или иных ноу-хау можно косвенно оценить по изданиям специализированной литературы. Недавно меня попросили высказать свое мнение относительно целесообразности перевода на русский язык нового издания книги о верификации цифровых чипов. Методы, которые описаны в этой книге, за последние 20 лет в Кремниевой долине стали использовать абсолютно все команды, проектирующие чипы, – от Intel, Apple, NVidia до Tesla, SpaceX и маленьких стартапов, разрабатывающих компьютеры для самоуправляемых автомобилей. Вывод пришлось сделать неутешительный: в России эта книга может заинтересовать 100–200 человек. Это на порядок или два меньше, чем в Кремниевой долине.

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

Мечтать надо уметь

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

Между тем в MIT c начала 2000-х годов есть базовый курс лабораторных проектов 6.111, который отлично помогает вырастить будущих проектировщиков чипов для айфонов и тесл. Упрощенный аналог этого курса есть в российских МИЭТ и ИТМО, но его стоило бы внедрить гораздо шире. Однако вместо этого стали перенимать умение делать слайды для презентаций инвесторам.

Год назад я присутствовал на робототехнической конференции в Сколково и обратил внимание на то, что бОльшая часть представленных проектов основывалась на довольно прямолинейном использовании готовых встраиваемых чипов. В самом факте нет ничего плохого – респектабельные производители холодильников в Айове или лазерных инструментов в Массачусетсе применяют микроконтроллеры примерно таким же способом. Но этого недостаточно для серьезного технологического прорыва на уровне экосистемы целой страны. Не хватает глубины и сложности, которые тяжело повторить и которые являются основой успеха Intel, NVidia и подобных им компаний.

Снова проведу аналогию. Представим, что мы взяли группу умных восьмиклассников, победителей всероссийских олимпиад по математике. С точки зрения средних взрослых они выглядят суперменами – могут быстро запрограммировать Arduino, построить нейросеть на NVidia или решить задачку по неэвклидовой геометрии. Посадим их в красивый офис, вручим миллионы долларов и придем к ним через год. Смогут они превзойти NVidia? Нет, они так и останутся на уровне Arduino и олимпиадных задач и не смогут конкурировать на внешнем рынке, потому что там им придется соперничать не со средними взрослыми и не с производителями, а с теми, кто углублял и оттачивал свои знания и умения сначала в университете, потом на опыте.

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

Так что же делать? Последовательно увеличивать глубину владения технологиями, как в образовании, так и в промышленности. Снижать барьеры, расширять международные связи с университетами, поставщиками комплектующих для российских проектов и средств проектирования. Одновременно вводить протекционистские меры для защиты внутреннего рынка от конечных продуктов из других стран, чтобы дать возможность развиваться российским компаниям, по крайней мере в некоторых нишах. Эксплуатировать все возможности, и на внешнем рынке, и на внутреннем, включая ниши, создаваемые импортозамещением. С увеличением глубины владения технологиями возможностей будет появляться больше.

Мечта, которая стала реальностью

Теперь о примере, внушающем оптимизм. Речь идет о «Байкал Электроникс», появившемся в 2012 г. дочернем предприятии суперкомпьютерной компании «Т-Платформы». «Т-Платформы» смогли пробить внешнеэкономический барьер и поставить спроектированные в России суперкомпьютеры в США. Компьютеры «Т-Платформ» были сделаны из готовых чипов иностранных производителей, но в новом проекте компания решила аккуратно увеличить техническую глубину, и «Байкал Электроникс» стала проектировать собственные чипы.

При этом «Байкал» не делал все с нуля, а заключил соглашения с тремя иностранными компаниями, лидерами в своих областях. Компания лицензировала процессорные ядра у британской ARM Holdings и у MIPS, американского отделения британской Imagination Technologies. У этих же компаний в свое время лицензировала блоки Apple (CPU – у ARM и GPU – у Imagination), скомбинировав их в чипах ранних айфонов со своими блоками.

Для проектирования системы на кристалле («чертежей» чипа) «Байкал Электроникс» использовала программы американской компании Synopsys, самого крупного в мире игрока в сфере автоматизации проектирования электроники, а для производства – фабрики тайваньской TSMC, которые точно так же используют и Apple, и другие компании.

Спроектированный московской командой «Байкал Электроникс» чип «Байкал-Т» был явлен миру в 2015 г., после чего его использовали в маршрутизаторах и управляющих компьютерах станков.

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

Проект «Байкала» косвенно помог и другим российским проектам, в том числе MIPS-совместимому процессору из НИИСИ и спроектированным в России ядрам архитектуры RISC-V, которые идут глубже, в микроархитектуру процессорного ядра.

В качестве следующего шага «БайкалЭлектроникс» выпустила процессор «Байкал-М», совместимый с экосистемой ARM64. По производительности «Байкал-М» находится в одном классе с чипом MediaTek MT8173C, который стоит в ноутбуке Lenovo Chromebook C330. Это важный момент, поскольку за последние годы хромбуки с Chrome OS смогли занять рынок школьных компьютеров в США, отвоевав более 60% у компьютеров с Windows и MacOS. В результате для «Байкала» открываются новые перспективы, например в создании школьного компьютера для России с Chrome OS от Google или даже со специальной версией ОС Linux, которая не требовала бы системного администрирования, возможно, в партнерстве с «Яндексом». Такой компьютер был бы прост и надежен, как телефон с Android. Предыдущие попытки внедрить Linux в российских школах не удались из-за сложностей техподдержки, но с фиксированной конфигурацией компьютера этих проблем можно избежать, как это получилось с Apple Mac и хромбуками.

Такая платформа создала бы возможности для производителей российских школьных и офисных программ. Из проблем стоит отметить стоимость чипов – в полупроводниковой экономике цены на чипы подобного типа могут быть низкими только при очень больших тиражах. Но это как раз тот случай, когда государству было бы выгодно дотировать первые партии компьютеров для формирования экосистемы и подготовки будущего прорыва. Проекту «Байкал» на ранней стадии государство помогало, финансируя его через РОСНАНО.

Таким образом, десять лет прошли не настолько зря, как утверждает автор статьи «По ту сторону “Силиконовой мечты”». Некоторые связи с Кремниевой долиной привели к появлению российских продуктов и формированию команд для следующих шагов. Хотя это не те связи, вокруг которых строится большая часть дискурса на многолюдных конференциях по стартапам и цифровому будущему со ссылками на Стива Джобса, Илона Маска и Лорена Грэхэма.


Справка «ИКС». Юрий Панчул – проектировщик сетевых микросхем, автор и непосредственный участник ряда российских образовательных программ по микроэлектронике, основатель стартапа в Кремниевой Долине и инициатор русского издания учебника Дэвида и Сары Харрисов «Цифровая схемотехника и архитектура компьютера»


Статья на сайте IKSMEDIA.RU: http://www.iksmedia.ru/articles/5651098-Kak-sdelat-mechtu-realnostyu.html#ixzz6Hx2KoIeG

https://panchul.livejournal.com/596114.html


Сбылась мечта детства: Американское Общество Камелий одобрило мою заявку на регистрацию двух сортов

Понедельник, 03 Февраля 2020 г. 10:10 + в цитатник


У меня большое событие - пришло письмо из Американского Общества Камелий, что они официально зарегистрировали два сорта камелий, которые я вывел, после 20 лет отбора и оценки нескольких сотен сеянцев. Я мечтал быть создателем новых сортов цветов с детства, когда я читал роман Дюма "Черный Тюльпан", книжку про селекционера георгин сталинского времени Марию Шаронову, главу про Лютера Бурбанка из одной из моих любимых книг детства Путешествие с домашними растениями" Николая Верзилина (откуда я также узнал про камелии), журнал "Цветоводство", посещал киевский ВДНХ, ботанический сад и выставки цветов на склонах Днепра, где было много экспозиций про создание новых растений.

Оба сорта относятся к осеннецветущим камелиям вида Camellia sasanqua, камелии горной. Этот вид отличается от более известного вида Camellia japonica, камелии японской, тем, что камелия горная может расти на солнце, в то время как japonica на солнце выгорает. При этом среди сортов камелии горной мало цветов правильной махровой формы (по английски formal double), и мой первый культивар, бывший сеянец номер 138, который я зарегистрировал под именем 'Silicon Valley', попадает именно в это требование рынка.

Сначала я решил регистрировать этот культивар под именем 'Sunnyvale Rose', но потом прочел правила Международного Общества Камелий, что имена с названиями других растений не разрешаются, за исключением случая, когда эти названия являются именами людей или географических мест. То есть сорт камелии 'Роза Люксембург' они бы зарегистрировали, но "Роза из Саннивейл" - нет. Сначала я долго думал, как назвать сорт, потом лег спать, и наутро проснулся с мыслью "интересно, а название 'Silicon Valley' уже занято?" Оказалось, что нет. Я тут же написал емейл в ACS (American Camellia Society) и попросил их поменять название на моей заявке. Надеюсь, что мой сорт станет популярным и его будут сажать возле офисов, он идеально вписывается в солнечную погоду летом в Silicon Valley.

Второй культивар, 'Sunnyvale Carnival', бывший сеянец номер 44, примечателен не своей правильной формой, а наоборот, хаотичной пышной шарообразной формой цветка, которая получается, если выращивать растение в полутени (на открытом солнцепеке цветы более плоские). Этот цветок уже понравился нескольким известным калифорнийским цветоводам, в том числе Тому Нуччио из самого известного в узком кругу камелиеводов питомника камелий в мире, Nuccio's Nurseries. Я назвал цветок "Карнавалом" после того, как пошел с моим старшим сыном, которому тогда было четыре года, в Рождество в центр Сан-Хосе. Альберт увидел карусели и возбужденно закричал "Look! Carnival!" Я запомнил этот эпизод, и назвал в честь него культвар. Так как когда он цветет, куст с большим количеством пышных шарообразных цветов, белых с розовыми оттенками, производит праздничное впечатление. От высевания семени камелии до его цветения проходит примерно 7 лет, еще 4 года устойчивого цветения требуется для регистрации культивара, потом культивао еще эвалюируется аккредитованными судьями камелий. Так что пока я всем этим занимался, Альберт успел вырости с четырех до семнадцати лет.


The American Camellia Society approved for registration two new Camellia sasanqua cultivars: ‘Silicon Valley’ and ‘Sunnyvale Carnival’ originated by Yuri Panchul

The American Camellia Society approved for registration two new Camellia sasanqua cultivars: 'Silicon Valley' and 'Sunnyvale Carnival' originated by Yuri Panchul. 'Silicon Valley' produces rare, for a sasanqua, formal double flowers, and 'Sunnyvale Carnival' makes globular loose peony-shaped flower, especially when grown in semi-shade. Both plants tolerate sun much better than Camellia japonica, and bloom during the Fall season, when not so many flowering shrubs are blooming. They are ideally suited for low-maintenance planting in California and other traditional camellia regions.

I plan to propagate perhaps ~100 of these plants by grafting and distribute them for free to the members of American Camellia Society in California. I am especially interested in cooperation with commercial growers who have capacity to mass-produce and distribute the plants. I am also interested to make presentations about these new cultivars on ACS meetings, first in northern California, later in other regions too. If you have interest in my cultivars, please contact me at the following email, as well as via Facebook Messenger and LinkedIn:



The cultivar information:

'Silicon Valley' was formerly described in an article "Backyard Hybridizer" by Yuri Panchul in the American Camellia Yearbook 2017, under the designation "Seedling YP0138, tentative name ‘Sunnyvale Rose’". It was also mentioned in an article "A new sasanqua seedling with flat formal double pink flower and upright growth habit" published on
November 15, 2015 by Yuri Panchul on camellia-sasanqua.com website. The seedling started to bloom on December 10, 2014.

When I registered this seedling I realized that the name 'Sunnyvale Rose' is invalid because, according to International Camellia Society rules, common names of other plants, including roses, should not be used. So came up with a different name - "Silicon Valley". This name was not used for a camellia before and my seedling grew up in the middle of Silicon Valley, California, so its name is very appropriate. I made the application on January 5, 2020 and the application was approved on January 16, 2020, under ACS registration number 3176.



A description of Camellia sasanqua 'Silicon Valley' from an article "Backyard Hybridizer" by Yuri Panchul in the American Camellia Yearbook 2017:


Seedling YP0138, tentative name ‘Sunnyvale Rose’ [UPD: approved for registration with the American Camellia Society on on January 16, 2020 under the name 'Silicon Valley', ACS registration number 3176].

When new people become camellia hobbyists, they are frequently looking for formal double or rose form double flowers. While there are many japonica formal double cultivars, the selection of formal sasanquas is limited. ‘Sunnyvale Rose’ 'Silicon Valley' is an elegant answer to this need, producing pink flowers that range from formal to rose form double shape. They are quite flat and relatively small (45-50 mm). The plant is also relatively dense with an upright habit. A cultivar to compare is ‘Chansonette’, but ‘Chansonette’ has flexible branches with a spreading, almost weeping habit, larger flowers and leaves. Another similar cultivar is ‘Enishi’ but the ‘Enishi’ branching habit is spreading and generally more chaotic. ‘Sunnyvale Rose’ 'Silicon Valley' is my candidate for a popular mass-market plant.




A description in Russian from an article "A new sasanqua seedling with flat formal double pink flower and upright growth habit" on website camellia-sasanqua.com:


Новый сеянец камелии горной (Camellia sasanqua), временное обозначение Yuri Panchul #0138. Автор – Юрий Панчул (Yuri Panchul). Цветок розовый, махрово-декоративной формы, довольно плоский и сравнительно небольшой (45-50 мм). Листья небольшие (45x25 мм), ветви крепкие, растет вертикально. Похожий культивар – ‘Chansonette’, но ‘Chansonette’ растет раскидисто, напоминая плакучую иву, его цветы и листья больше по размеру. Другой похожий культивар – ‘Enishi’, но у ‘Enishi’ более раскидистые и вообще несколько хаотично растущие ветки.

UPD: Этот сеянец был официально зарегистрирован как новый культивар Camellia sasanqua 'Silicon Valley'. Заявка на регистрацию в Американском Обществе Камелий (The American Camellia Society) была одобрена 16 января 2020 года, с номером регистрации 3176.




Other information for Camellia sasanqua 'Silicon Valley':

Chance Seedling.
Flower form: Rose Form Double to Formal Double.
Color of Flower: Pink.
Other Distinctive Flower Form Characteristics: Rare form for a sasanqua, formal double to rose-form double.
Blooming Season: Blooms from second half of October (mid-season for C. sasanqua in California) till New Year (late for C. sasanqua in California).
Bloom Depth (Untreated): 0.6 inches.
Bloom Diameter (Untreated): 1.9 inches.
Leaf Size (Length in Inches): 1.9 inches.
Leaf Size (Width in Inches): 1 inch.
Grows Habit: Upright.





'Sunnyvale Carnival' was also described in "Backyard Hybridizer" by Yuri Panchul in the American Camellia Yearbook 2017, under the designation "Seedling YP0044, tentative name ‘Sunnyvale Carnival’". It was also mentioned in an article "A new Sasanqua seedling that attracts attention with bright globular shape flowers" published on
November 6, 2017 by Yuri Panchul on camellia-sasanqua.com website. The seedling started to bloom on December 11, 2011 (1, 2, 3). I made the application on January 5, 2020 and the application was approved on January 9, 2020, under ACS registration number 3175.

A description of Camellia sasanqua 'Sunnyvale Carnival' from an article "Backyard Hybridizer" by Yuri Panchul in the American Camellia Yearbook 2017:


Seedling YP0044, tentative name 'Sunnyvale Carnival'. So far this seedling with loose peony-shaped flower has impressed people the most. It was praised by well-known nurserymen and camellia collectors Tom Nuccio, Daniel Charvet and Brad King.

The seed parent of this plant is C. x hiemalis 'Kanjiro' and the pollen parent is probably C. sasanqua 'Bert Jones', since it grows next to Kanjiro in my garden and the seedling's flower size and globular shape has some features of 'Bert Jones'.

I came to its name after I went with my oldest son Albert Panchul to a Christmas Fair in San Jose, the largest city in Silicon Valley, and my son got excited by the festivities. When he saw the carousel and people, he shouted "Look! It's a Carnival!" When I saw the flower, I remembered the episode and the name stuck.

'Sunnyvale Carnival' is a strong, spreading, fast growing plant with big shiny leaves and large globular flowers, in a combination of white and pink. It can grow in full sun, but grows optimally in partial sun location.














https://panchul.livejournal.com/595762.html


Сегодня 22 Декабря - мой День Рождения

Воскресенье, 22 Декабря 2019 г. 11:00 + в цитатник
Я родился в самую длинную ночь в году - 22 декабря, сразу после полуночи. В Калифорнии в это время еще полдень 21 декабря. Поэтому в СССР я был Козерогом, а в Америке могу рассматриваться как Стрелец. Кто может проконсультировать про разницу?

В 2019 году у меня было три значительных события:

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

2. Переход на новую работу в Juniper Networks. Раньше в MIPS я занимался верификацией процессоров на уровне блоков + немного дизайном, а также общественной нагрузкой по линии образовательных программ и корпоративного маркетинга. На новой работе я 100% дизайнер, owner критического блока горячего быстрого большого чипа для high-end роутеров, которые связывают интернет провайдеров и большие компании. На летние школы в Зеленоград я буду продолжать приезжать.













https://panchul.livejournal.com/595618.html


Про жизнь в СССР, Калифорнии и проблемах образования современной России в интервью в Зеленограде

Вторник, 12 Ноября 2019 г. 10:15 + в цитатник
Дал интервью в Зеленоградском МИЭТе этим летом во время летней школы для продвинутых школьников, интересующихся проектированием цифровых схем на уровне регистровых передач, языками описания аппаратуры, ПЛИСами, а также архитектурой и микроархитектурной процессоров:

О проектировании и электронике с любовью

8 Ноября 2019.

Юрий Панчул – разработчик микросхемы нового поколения для ускорения вычислений нейросетей в стартапе Кремниевой долины Wave Computing, технический руководитель проекта MIPS Open. Он занялся программированием и начал интересоваться компьютерной архитектурой с 8-го класса: выучил несколько языков программирования и пару архитектур компьютеров. С тех пор вся его жизнь неразрывно связана с современными технологиями проектирования микроэлектроники.

Этим летом Юрий Панчул принимал активное участие в летней школе "От физики к программированию", организованной Институтом МПСУ для учеников средних и старших классов в рамках реализации проекта "Инженерные каникулы". Специально для читателей "ИНверсии" он поделился своей историей успеха и размышлениями о техническом образовании в России.

- Юрий, расскажите, как вы попали в Кремниевую долину? Для многих это мечта.

- Да, это было редкое стечение обстоятельств, которые наслоились друг на друга.


Когда я поступил на Физтех, у меня уже были рабочие навыки программирования, сравнимые с навыками после окончания советских вузов, поэтому на втором курсе я начал работать в разных проектах, связанных с базами Физтеха.

Это было время перестройки. Горбачёв разрешил частные предприятия, моя неформальная студенческая группа превратилась в маленькую коммерческую компанию прямо на кампусе университета. Мы заключили несколько договоров, и я сразу стал писать часть компилятора для советского суперкомпьютера под названием "Электроника СС БИС". Это был клон американского компьютера "Cray-1". И хотя таких компьютеров было сделано всего четыре, для всех студентов, участвующих в этом проекте, это было возможностью быстро приобщиться к передовым практикам, так как компилятор был основан на компиляторе Portable C Compiler (PCC) от AT&T Bell Labs, сделанном в штатах. Кстати, с его автором, Стивеном Джонсоном, я сейчас работаю – моя студенческая мечта осуществилась.

После этого проекта я перешёл на только что разрешённые и возникшие частные предприятия, в частности, в совместное предприятие AS (далее Steepler), которое стало первым дистрибьютером Microsoft в СССР. Они сделали мне приглашение в штаты и визу. Потом был проект с Рижским военным училищем: используя свои знания по компиляторам для суперкомпьютеров, я сделал для них модель процессора и компилятор для старого бортового компьютера, который использовался в советских самолётах, и на деньги, вырученные от этого проекта я купил себе билет Москва-Нью-Йорк. То есть совпало так, что летом 1991 года я одновременно получил деньги от проекта с бортовым компьютером и приглашение в штаты через совместное предприятие в командировку.

После 4-го курса я прилетел в штаты и там встретился с основателем компании Cognitive Technologies Ефимом Щукиным, а через 5 дней случился августовский путч. Мне предложили сделать рабочую визу. Я подтвердил степень бакалавра, стал работать над распознаванием образов и потом получил грин карту, по закону о советских учёных 92-го года, используя мой проект с бортовым компьютером. Был такой специальный закон о том, что если кто-то может доказать, что имеет хоть какое-то отношение к разработке оружия (в данном случае это отношение было задокументировано договором с Рижским военным училищем), то он получает грин карту.

Потом я использовал этот же проект, чтобы в 95-м году устроиться в компанию Microtec Research, которая была первой компанией в средствах программирования встроенных систем. Её купила компания Mentor Graphics, которая была одной из трёх крупнейших компаний в сфере электроники. Так я вошёл в электронику. Для Mentor Graphics я организовал совместный проект с той же группой в МФТИ, в которой я был, начиная со второго курса. Они проработали с ними 10 лет. Потом мне пришла идея некого стартапа для проектирования, и я уволился оттуда, получил начальные инвестиции от частных инвесторов, привлёк венчурные компании. Нанял профессиональных управляющих, они привлекли деньги от Intel Capital. Я был там пять лет, потом стартап, не очень правда удачно, был продан Synopsys, – компании номер один в сфере разработки и проектирования электроники. Затем в мою жизнь пришла компания Denali Software, где я сделал небольшой продукт, который помогал инженерам в Apple (в ноутбуках Air) и в других компаниях делать верификацию (то есть проверку их чипов). Последние 10 лет я работаю в компании MIPS, корни которой в Стэнфорде. Она возникла из исследовательского проекта под руководством будущего президента Стэнфорда Джона Хенесси.

- А чем вы там занимались?

- В MIPS я использовал предыдущие проекты, делал верификацию нового процессора на уровне блока, а потом учувствовал в проектировании процессора как такового. В 2010-м году я обнаружил, что в России есть две разные компании: "Элвис" в Зеленограде и НИИСИ в Москве, которые сами сделали свои процессоры на основе архитектуры MIPS, и наш вице-президент по продажам в Европе Штефан Бьющманн, пришёл ко мне и сказал: "Юрий, давайте съездим в Россию и исследуем, что там находится". Я ответил: "Я в России не был 20 лет, я даже не помню станции метро". Он ответил: "А я там не был никогда". Мы с ним остановились в отеле Шереметьево, потом приехали в Зеленоград, стали обговаривать то, что стало первыми сделками через несколько лет.

- Вы тогда обратили внимание на российское образование в области ваших интересов?

- Да, я увидел, что в курсах различных российских вузов есть дефект, который образовался во время коллапса СССР: 30 лет назад были созданы технологии проектирования микросхем, которые легли в основу чипов для смартфонов, а в то время уже была сделана база современных технологий. До этого инженеры рисовали схемы мышкой на экране, а потом стали проектировать с помощью языков описания аппаратуры. Но это было внедрено в вузах типа MIT ещё в 90 годы! В Россию всё это пришло с некоторым опозданием. В МИЭТе это делали Synopsуs и Cadence, а ведь во многих вузах России этого было мало, частично из-за дефицита массовых учебников. Я тогда предложил нашему менеджменту спонсировать перевод учебника Harris & Harris, в нём есть все части образования, которые нужны, так сказать, с высоты птичьего полёта. То есть во многих методичках, на том же Физтехе, скажем, в начале шли хорошие "основы цифровой логики", после них шёл пропуск, а дальше программирование на языках высокого уровня. Вся эта "методология проектирования с использованием языков описания аппаратуры" была пропущена. Потом были учебники, которые использовались в Питере, которые объясняли микроархитектуру, строение процессора в блоках, но не показывали примеры с кодом на языке описания аппаратуры и как этот процессор спроектировать. Изза чего получались люди, которые умели хорошо говорить на интернет-форумах, но ничего не могли сделать. Я увидел быструю возможность это поправить на самом базовом уровне. С помощью группы волонтёров, с деньгами от Imagination Technologies и "Роснано", мы сделали перевод этой книжки, который можно было получить бесплатно. И эта инициатива имела большой успех: она стала шагом, который "заткнул" очень явную дырку. Следующим шагом был онлайн-курс профориентации для школьников от "Роснано", потом лабораторный практикум по FPGA, который выходит под эгидой ВШЭ МИЭМ и с участием ИТМО и вот семинары, которе мы сейчас проводим.

- Получается, вы уже несколько лет активно занимаетесь темой образования школьников и студентов?

- Да, как хобби. Это было связано с бизнесом частично, так как в компании мы сделали проект MIPSfpga, но это уже не для школьников и даже не для младших студентов, а, скорее, для аспирантов, которые знают архитектуру, но желают поработать с промышленными процессорными ядрами. Я провёл семинар по MIPSfpga ещё в 2015 году и тогда увидел, что его можно расширить как для младших студентов, так и для школьников. Вот сейчас я узнал, что такая же нужда есть и в Китае: они хотят вырастить новое поколение проектировщиков чипов. Поэтому они интересуются ровно такими же вещами. Вполне возможно, что всё те же материалы будут использованы и там.

- Как вы оказались в МИЭТе?

- Я приехал со Стефаном Бьющманном с визитом в НПЦ ЭЛВИС, а так как компания работает с МИЭТом, я сразу же поднял знакомых. Я был знаком с Сергеем Вакуленко, с которым мы общались ещё с Физтеха, а потом он работал в институте имени Курчатова, и я помог ему устроиться в MIPS. Он дал мне координаты людей в "Элвис Неотек", которые связали меня с нужными людьми в МИЭТе. Мы встретились, в частности, с директором Института МПСУ Алексеем Леонидовичем Переверзевым, а также прошли и в другие компании в Зеленограде.

- Как вы оцениваете знания современных школьников? Из кого получаются талантливые инженеры?

- 30 лет назад, когда только началась компьютеризация, считалось, что программировать современные программы могут только на западе, а в СССР можно делать лишь бухгалтерские программы с перфокартой и распечаткой ведомости. Тогда на моих глазах сломался этот стереотип: когда мы делали программы для Windows в совместном предприятии в 1990 году, люди удивлялись: эти программы принципиально не отличаются от того, что делают в Microsoft. В 2010 году я увидел очень похожий стереотип: якобы всё, что можно делать в России – это военные чипы со старыми геометриями кристалла. Нам нужно было решить три задачи, чтобы каким-то образом вывести РФ на международный уровень в дизайне чипов. Одна проблема была – нехватка денег, но она решилась с помощью "Роснано". Вторая – нехватка связей с международными компаниями, она была в МИЭТе частично устранена, но в других местах ещё нет. Это были времена первых сделок, но когда две эти вещи были решены, то возникла новая проблема. Я увидел, что в России очень мало команд, в которых люди владеют средствами проектирования. Есть "Элвис", "Миландр", "Байкал электроникс", "Модуль", "КМ211". И теперь стоит вопрос: как расширить эту экосистему и сделать её массовой. Скажем, в Силиконовой долине имеется много команд, которые могут создавать многоядерные процессорные кластеры с когерентностью кэшей, а в России только одна компания – "Эльбрус". Дело в том, что количество таких инженерных групп невелико, и им приходится обучать новых студентов, начиная с базовых технологий прямо на работе. Проблема в этих высокопроизводительных чипах: здесь профессионализм приходит через 10 лет, когда у людей появляется интуиция (сколько какая логика будет занимать времени и как это всё дизайнить). Это как в игре на скрипке, там беглость появляется после долгого времени и лучше начинать с раннего возраста. Тогда человек будет виртуозом. Желательно отбирать людей, которым это интересно с детства, но в электронику более тяжёлый начальный вход, чем в программирование. Необходимо мышление, требующее параллельного дизайна для высокопроизводительных чипов: оно логически более сложное, но его можно тренировать, как и игру на скрипке. - То есть, по-вашему, государство должно больше внимания уделять таким способным ребятам?

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

- Что бы вы сказали тем ребятам, которые сейчас учатся на проектировщиков на бакалавриате и собираются в магистратуру?

- Желательно читать статьи с конференций, поскольку там выходит большое количество вещей, которые потом станут мейнстримом. Проблема в том, что в индустрии многие вещи не описаны в учебнике, а просто переходят от дизайнера к дизайнеру. Вначале, конечно, стоит освоить все базовые приёмы, делать свои небольшие проекты, а потом смотреть реальные индустриальные примеры, например, наши открытые процессорные ядра. Безусловно, как я и делал, со второго курса, полезно столкнуться рано с реальным производством, это опять же нужно делать параллельно с изучением базовых вещей. Должно быть и изучение учебников, и реальное производство. Если Вы придёте в компанию и будете копаться случайным образом в огромном количестве кода, то Вы только будете выглядеть занятыми… В нашем деле нужна комбинация теории и практики, а также мотивация.

- Как мотивировать современных школьников?

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

- Расскажите о вашем взгляде на техническое образование в России. Основную идею мы уже поняли – нужно начинать раньше, а что ещё?

- В России есть один интересный момент, которого нет в других странах. Этот момент – традиция, которая идёт ещё с 19-го века. Мои дети ходят в ту же школу, в которой учился Стив Джобс, Стив Возняк, но я их ещё отдал в дополнительную школу, которая называется Russian School of Mathematics. Это сеть школ в штатах, несколько есть в Калифорнии, в Бостоне, в других местах. И, несмотря на то, что она называется так, преподавание идёт на английском, и в основном в неё ходят китайцы, индусы, некоторые американцы. Русских там примерно 10%. В школе работают преподаватели из стран бывшего СССР. И вот в этой школе очень наглядно видно, почему туда стремятся отдать детей. В американской школе, даже и в хороших частных, и государственных, школах, когда преподают математику, её преподают больше в виде рецептов "Что делать?" А в русской математической школе преподаются доказательства теорем с пониманием "Почему?" Там дети тренируются в доказательстве теорем, в том, что в России Колмогоров, Погорелов и учёные до них делали больше 100 лет. И мозг, натренированный на решении именно такого рода задач в массовых масштабах, является грандиозным преимуществом России.

https://panchul.livejournal.com/595263.html


C 14 октября я работаю разработчиком сетевых чипов в Juniper Networks

Среда, 16 Октября 2019 г. 17:34 + в цитатник


10 лет в MIPS - с октября 2009 года по октябрь 2019 года - прошли как миг. Но все когда-нибудь кончается, и сегодня я приступаю к работе как разработчик высокоскоростных сетевых чипов для самого сердца Интернета. Чипы в ящиках по 6 миллионов долларов, которые связывают города и в ящиках подешевле, которые связывают всего лишь интернет-провайдеров и крупные корпорации. Staff ASIC RTL Design Engineer @ Juniper Networks. Правда я ничего не знаю о нетворкинге, но этому меня пообещали научить.

https://panchul.livejournal.com/595172.html


Уничтожить монополию Америки в EDA. Иннополис делает первый шаг

Суббота, 05 Октября 2019 г. 09:20 + в цитатник


Еще с 1990-х годов меня поражало, что проектирование всей мировой цифровой микроэлектроники контролируется двумя конторами в Калифорнии, которые находятся в 10 минутах езды друг от друга - Synopsys и Cadence. В те времена четверть мирового проектирования делалось в Японии (континентальный Китай тогда находился в примитивном состоянии), и все эти Sony, Hitachi, Fujitsu и другие гиганты ездили на поклон в Америку и платили несчетные миллионы долларов за программы, которые потом использовали японские проектировщики. Сейчас это продолжается с Samsung, Huawei и даже с российскими конторами, которые проектируют микросхемы для космоса.

Русская земля умудрилась вырастить Yandex супротив Гугла, так почему бы и не попробовать создать какие-нибудь программы для проектирования микросхем? Начать можно с малого: популяризовать конкурсы и хакатоны по разработке алгоритмов автоматизации проектирования (Electronic Design Automation - EDA). Эти алгоритмы удобны тем, что у них много уровней сложности: простейшую программу Place & Route может написать студент за выходные, но вот на продвинутую потребуются десятилетия работы сотен людей и миллиарды долларов на R&D.

Сейчас в Иннополисе возле Казани делают мероприятие для студентов в формате "две недели подготовки + хакатон". Одной из тем стала традиционная задача EDA - размещение и трассировка графа электронной схемы на ряды стандартных ячеек. Будет интересно увидеть, что за это короткое время сможет осуществить небольшая команда студентов-программистов с базовым пониманием C++/Java/Python, методов парсирования текста, алгоритмов работы с графами и навыками визуализации структур данных с помощью GUI.


Итак - постановка задачи:



Задача состоит из трех подзадач, которыми могут заниматься разные студенты:


  1. Парсирование текстового представления графа цифровой схемы.

  2. Размещение графа на рядах стандартных ячеек микросхемы и соединение этих ячеек дорожками (трассировка).

  3. Визуализация результатов - вывод на экран схемы дорожек и соединений.


Входом для программы является текстовый файл на очень ограниченном подмножестве языка описания аппаратуры Verilog. В этом файле описаны входы и выходы для схемы (input, output), внутренние соединения (wire) и приведен список логических элементов в формате "тип имя-экземпляра (список соединений)". Файл можно парсировать на C/C++ с помощью Lex+Yacc или аналогичных программ.



Результатом парсирования текста должно быть представление графа из элементов в памяти. Это представление будет использовано алгоритмом размещения и трассировки, которые потом создаст другую структуру. Если в команде хакатона будет достаточно участников, то результат начального парсирования можно визуализировать во время хакатона в качестве дополнительного задания. Примерно в таком духе, пусть даже не так красиво:



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

Вообще задачу парсирования можно ставить с несколькими уровнями сложности:


  1. В простейшем случаи все узлы графа - это двух-входовые логические элементы AND и OR, а также одновходовые элементы NOT. На окончательном размещении они реализуются стандартными ячейками одинаковой ширины.


  2. Если для хакатона хватит времени, задачу можно усложнить:

    • ввести трех- и четырех-входовые ячейки AND3, OR4 и т.д.;

    • расширить набор типов узлов добавлением NAND, XOR, D-триггеров (D-Flip-Flop) с разными опциями (reset, enable) и т.д.;

    • сделать дополнительный текстовый файл, в котором задать ширину и другие параметры ячеек.



  3. После хакатона задачу можно привязать к реальному миру, и именно парсировать не абстрактные AND и OR, а файл в таком же формате, но с ячейками из реальных библиотек стандартных ячеек ASIC на 28, 14 или 7 нанометров, которые поставляют разработчикам EDA программ и проектировщикам фабрики типа TSMC (Taiwan Semiconductor Manufacturing Company).


Что такое стандартная ячейка? Это ячейка стандартной высоты для данной ASIC library, то есть библиотеки примитивов для изготовления микросхемы на фабрике по некоторой технологии. ASIC - Application Specific Integrated Circuit. Сейчас большинство микросхем, например в смартфонах - это ASIC. Ячейки в библиотеке ASIC имеют стандартную высоту, чтобы их было удобно выстраивать в ряды для подвода к ним питания и облегчения алгоритмов трассировки. Разные ячейки в библиотеке могут реализовывать не только примитивы типа AND и OR, но и более сложные конструкции - мультиплексоры, защелки, комбинации из двух-трех логических элементов (AND-OR) и т.д.



Ячейки на микросхеме выстраиваются в ряды (слайд из лекций Чарльза Данчека):



Между рядами есть каналы (routing channels), в которых проходят соединения. Ширину каналов можно менять, если в соединениях образуются заторы (congestion). В рядах можно делать просветы между ячейками:



Для хакатона задачу можно упростить до уровня сферического коня в вакууме:


  • Ограничить типы ячеек. Для начала можно вообще размещать просто граф из двухвходовых NAND.

  • Считать все ячейки имеющими одинаковую ширину.

  • Игнорировать все аспекты физической природы ячеек, в том числе задержку прохождения сигнала и энергопотребление.


Здесь "игнорировать" - означает, что в учебном упражнении можно не учитывать физику ячейки при оценке качества размещения и трассировки. Для начала достаточно учитывать только геометрию, например минимизировать общую длину соединений и количество слоев, на которых делаются соединения. Необходимость в новом слое возникает когда невозможно разместить два проводника без их пересечения.

На хакатоне достаточно рассматривать стандартные ячейки как "черные ящики" и выводить их на экран как на рисунках сверху. Или с изображениями логических элементов, как на слайде из лекций Игоря Маркова:



Хотя если выводить с внутренностями ячеек, то картинки получаются более декоративными. Слайд из лекций Чарльза Данчека:



Еще картинка из интернета с размещением и трассировкой + изображением внутренностей ячеек:



А как размещать ячейки в ряды, расширять и сужать каналы между рядами, строить соединения, вводить новые слои, оценивать оптимальность результатов и перебирать варианты? Ну это чисто алгоритмически-программистские задачки, в Иннополисе наверное такому учат, посему я не буду растекаться мыслию или мысью по древу. В качестве начального вдохновения для трассировки можно использовать древний метод волновой трассировки, который описан в третьей части курса для школьников от РОСНАНО. Хотя этот метод не для стандартных ячеек выстроенных в ряды, а для менее упорядоченного случая с небольшим числом компонент:



2.10. Как это делается: Алгоритм волновой трассировки.

Один из классических алгоритмов, которые применяли ранние программы трассировки - это волновая трассировка, которую описал в статье 1961 года Честер Ли (C. Y. Lee), исследователь из Bell Labs. По английски алгоритм Ли называют "maze routing", что дословно переводится как "лабиринтовая трассировка". Такое название связано с тем, что помимо программ для проектирования электроники, алгоритм Ли применяли в игровых программах для нахождения кратчайшего пути в лабиринте.

Алгоритм Ли представляет блоки, которые нужно соединить, в виде фигур на ограниченной плоскости, размеченной "в клеточку". Чтобы найти кратчайший путь от вывода одного блока к выводу другого блока, алгоритм Ли использует два прохода:


  • Первый проход называется "распостранение волн". Помечаем все "клеточки" или ячейка у первого вывода единицей. После этого для каждой ячейки, помеченной числом N, помечаем все соседние свободные непомеченные ячейки числом N + 1. Повторяем разметку до тех пор, пока мы либо не дойдем к выводу второго блока, либо больше не будет возможности распостранять "волну".


  • Второй проход называется "восстановление пути". Если ячейка у второго блока помечена, выберем среди ее соседей ячейку, которая помечена на 1 меньше, чем число в текущей ячейке. Добавляем соседнюю ячейку в путь, переходим в нее и начинаем смотреть на ее соседей, которые помечены еще на 1 меньше. Повторям это, пока мы не прийдем к выводу первого блока.


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


Для более серьезных алгоритмов вы можете поискать идеи в материалах Игоря Маркова. Но круче всего было бы проявить творчество - вдруг вы придумаете что-нибудь, что не придумали тысячи математически-подкованных алгоритмистов-программистов, которые каждое утро стоят в пробках на 101-м, 880-м и 237-м фривеям в офисы Synopsys и Cadence в городах Сан-Хосе, Саннивейл и Маунтин-Вью, Калифорния.

Список литературы (от простого к сложному):


  1. Вводные лекции по основам цифрового проектирования в Иннополисе: 1, 2.


  2. Вводный курс в цифровую электронику и EDA для продвинутых школьников олимпиадного типа. От РОСНАНО: 1, 2, 3.


  3. Учебник Харрис & Харрис.


  4. Слайды лекций Чарльза Данчека.


  5. Курс Игоря Маркова из университета Мичигана. Этот курс он прочитал в МГУ.




Выражаю надежду, что почин Иннополиса по алгоритмическим соревнованиям расширится. Область EDA математически интересна и хорошо оплачивается. Synopsys открыл отделение в Армении и превратился там в одного из ведущих работодателей: "Today, Synopsys is one of the largest IT employers in Armenia with more than 650 employees (including more than 600 engineers)." Замечу, что Россия крупнее Армении и наверное может создать свой Synopsys. В конце-концов, программистов в России много, математиков тоже, а текущая рыночная капитализация Synopsys + Cadence примерно равна затратам на сочинскую олимпиаду.

Добавляйтесь в группы на ВКонтакте и на Фейсбуке:

https://vk.com/algorithmeda
https://www.facebook.com/groups/algorithmeda/

И в е-мейл рассылку https://groups.google.com/forum/#!forum/silicon-russia

https://panchul.livejournal.com/594783.html


Что делает это phishing HTML страница, в которой я заменил < на Л?

Вторник, 10 Сентября 2019 г. 22:03 + в цитатник
Сегодня, находясь в смятении чувств, я кликнул на phishing ссылку, которая привела меня вот на такую страницу. Я к счастью не настолько охренел, чтобы вводить пароль, поэтому сейчас не знаю, был ли от этого вред.



На всякий случай я сохранил HTML source этой страницы, в котором заменил скобочку на Л, чтобы она не работала.

Господа, вы можете посмотреть и сообщить мне, что эта хрень делает?




Л!DOCTYPE html>
Лhtml lang="en">Л!--~1cdcc937607e844796c593098cd04aa7~-->Лhead>
Лmeta charset="UTF-8">
Лmeta name="viewport" content="width=device-width, initial-scale=1.0">
Лmeta name="robots" content="noodp, noydir">
Лmeta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
Лmeta name="google-signin-client_id" content="383826994267-8jcf6nhcdjk3ikm6m3pclb4v0hlubmk4.apps.googleusercontent.com">
Лmeta name="google-signin-scope" content="https://www.googleapis.com/auth/user.phonenumbers.read profile email openid">
Лtitle>Account Login - BluehostЛ/title>
Лscript>
var provinfo={"cdn":"//bluehost-cdn.com","code":"bh","domain":"bluehost.com","name":"Bluehost","phone":["888-401-4678","801-765-9400"]};
provinfo.cdn=window.location.protocol+provinfo.cdn;
Л/script>

Л!-- Begin Monetate ExpressTag Sync v8. Place at start of document head. DO NOT ALTER. -->

Л!-- End Monetate tag. -->
Л!--[if lt IE 9]>Лscript src="//html5shiv.googlecode.com/svn/trunk/html5.js">Л/script>Лscript>provinfo.lt_ie9 = 1;Л/script>Л![endif]-->
Л!--[if lte IE 9]>Лscript>provinfo.lte_ie9 = 1;Л/script>Л![endif]-->
Лlink rel="shortcut icon" href="//bluehost-cdn.com/media/shared/general/_bh/favicon.ico">
Лlink rel="icon" type="image/x-icon" href="//bluehost-cdn.com/media/shared/general/_bh/favicon.ico">
Лmeta name="description" content="Bluehost - 24/7 support. free 1-click installs for blogs, e-commerce, and more. get a website with a free domain name and superior speed.">
Лmeta name="keywords" content="web host,web hosting,domains,free domain name,php,perl,ruby,front page,domain registration,ecommerce,business,web site,website,hosting,site builder,web site builder,seo,blog">
Лlink rel="stylesheet" href="//bluehost-cdn.com/media/shared/general/_bh/brand.css">
Лlink rel="stylesheet" href="//bluehost-cdn.com/media/shared/general/_bh/brand_mobile.css">
Лlink rel="stylesheet" href="//bluehost-cdn.com/media/shared/general/_bh/widgets.css">
Лlink rel="stylesheet" href="//bluehost-cdn.com/media/user/login/main.css">
Лlink rel="stylesheet" href="//bluehost-cdn.com/media/user/login/_bh/main.css">
Лlink rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css">
Лlink rel="stylesheet" href="//bluehost-cdn.com/media/user/login/_bh/hosting.css">

Лlink rel="stylesheet" type="text/css" href="https://rawgit.com/noppa/text-security/master/dist/text-security.css">

Лstyle>.slider .leds { opacity:.3; }Л/style>

Лscript src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">Л/script>
Лscript>window.jQuery || document.write('Лscript src="//bluehost-cdn.com/media/shared/general/jquery/1.12.4/jquery.min.js">Л\/script>');Л/script>
Л/head>
Л!--[if lt IE 8]>Лbody class=" no_js ie7 lt_ie9 lte_ie9 lte_ie10">Л![endif]-->
Л!--[if IE 8]>Лbody class=" no_js ie8 lt_ie9 lte_ie9 lte_ie10">Л![endif]-->
Л!--[if IE 9]>Лbody class=" no_js ie9 lt_ie10 lte_ie10">Л![endif]-->
Л!--[if IE 10]>Лbody class=" no_js ie10 lte_ie10">Л![endif]-->
Л!--[if (gt IE 10)|!(IE)]>Л!-->
Лbody class=" no_js">
Л!--Л![endif]-->


Л!-- Google Tag Manager -->
Лscript>
dataLayer = [{"affiliate":"unaffiliated","currency":"USD","pageId":"my:cplogin/--login","userType":"Anonymous","vpv":"/userlogin/__login.html"}];

var affRaw = '';

if( !affRaw ) {

waitOnCookie();
}
else{
updateGTM();
}
function waitOnCookie() {
setTimeout(function(){
if(!affRaw){
var cookieSearch = document.cookie.split(';');
for (var i in cookieSearch){
var searched = cookieSearch[i];
if(searched.match(/\br=/)) {
affRaw = decodeURIComponent(searched.replace('r=','').replace(/\s/g,''));
}
}
updateGTM();
}else{
waitOnCookie();
}
},2000);
}
function updateGTM () {
var affArray = affRaw.split('^');
dataLayer.push({
'rAffiliate': affArray[0],
'rAffiliateCampaign':affArray[1],
'rAffiliateURL':affArray[2],
'event':'trackAffiliate'
});
}
Л/script>
Лnoscript>Лiframe src="//www.googletagmanager.com/ns.html?id=GTM-WS625V&affiliate=unaffiliated¤cy=USD&pageId=my%3Acplogin%2F--login&userType=Anonymous&vpv=%2Fuserlogin%2F__login.html&no-js=1" height="0" width="0" style="display:none;visibility:hidden">Л/iframe>Л/noscript>
Лscript>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WS625V');Л/script>
Л!-- End Google Tag Manager -->
Лscript>
$(document).ready(function() {
var is_billing = '';
/* For success/success_upsell page where transactionEvent equals 'billing' */
if(is_billing.length === 0 || parseInt(is_billing)) {
checkoutGTM();
}
});

function checkoutGTM () {
var checkoutObj = ({});
if( Object.getOwnPropertyNames(checkoutObj).length > 0 ) {
dataLayer.push(checkoutObj);
}
}
Л/script>
Лscript>(function() {var d=document.body;d.className=d.className.replace('no_js','js_on');})();Л/script>
Лheader id="header" >
Лdiv class="wrapper">Лnav class="main_nav ">
Лdiv class="extra-mobile-logo">

Лsvg class="logo-svg" width="132px" height="22px" viewBox="0 0 132 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лg stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
Лg fill-rule="nonzero">
Лg>
Лg fill="#0076FF">
Лpolygon id="Rectangle-path" points="0 0.047826087 6.05533597 0.047826087 6.05533597 6.15362319 0 6.15362319">Л/polygon>
Лpolygon id="Rectangle-path" points="7.81027668 0.047826087 13.8656126 0.047826087 13.8656126 6.15362319 7.81027668 6.15362319">Л/polygon>
Лpolygon id="Rectangle-path" points="15.6363636 0.047826087 21.6916996 0.047826087 21.6916996 6.15362319 15.6363636 6.15362319">Л/polygon>
Лpolygon id="Rectangle-path" points="0 7.95507246 6.05533597 7.95507246 6.05533597 14.0608696 0 14.0608696">Л/polygon>
Лpolygon id="Rectangle-path" points="7.81027668 7.95507246 13.8656126 7.95507246 13.8656126 14.0608696 7.81027668 14.0608696">Л/polygon>
Лpolygon id="Rectangle-path" points="15.6363636 7.95507246 21.6916996 7.95507246 21.6916996 14.0608696 15.6363636 14.0608696">Л/polygon>
Лpolygon id="Rectangle-path" points="0 15.8623188 6.05533597 15.8623188 6.05533597 21.9681159 0 21.9681159">Л/polygon>
Лpolygon id="Rectangle-path" points="7.81027668 15.8623188 13.8656126 15.8623188 13.8656126 21.9681159 7.81027668 21.9681159">Л/polygon>
Лpolygon id="Rectangle-path" points="15.6363636 15.8623188 21.6916996 15.8623188 21.6916996 21.9681159 15.6363636 21.9681159">Л/polygon>
Л/g>
Лg class="svg-bg" transform="translate(31.636364, 0.000000)" fill="#163056">
Лpath d="M6.24728407,7.62142857 C9.31612537,7.62142857 12.2753652,9.71142857 12.2753652,14.7557143 C12.2753652,19.9728571 8.95600624,21.9528571 5.38612963,21.9528571 C3.38198837,21.9528571 1.5187633,21.3242857 0.140916182,20.5228571 L0.140916182,0.0628571429 L1.67533683,0.0628571429 L1.67533683,9.38142857 C2.81832364,8.36 4.41537371,7.62142857 6.24728407,7.62142857 Z M5.29218551,20.5857143 C8.11050915,20.5857143 10.7409445,18.92 10.7409445,14.7871429 C10.7252872,11.1257143 8.70548858,9.03571429 6.10636789,9.03571429 C4.35274429,9.03571429 2.75569423,9.99428571 1.67533683,11.1885714 L1.67533683,19.6742857 C2.94358247,20.3185714 4.1805134,20.5857143 5.29218551,20.5857143 Z M14.96843,0.0471428571 L16.4402212,0.0471428571 L16.4402212,21.7171429 L14.96843,21.7171429 L14.96843,0.0471428571 Z M29.5297688,17.4585714 L29.5297688,7.84142857 L31.0641895,7.84142857 L31.0641895,21.7171429 L29.5297688,21.7171429 L29.5297688,19.03 C28.3241526,20.7428571 26.3826408,21.9214286 24.2845554,21.9214286 C22.0925259,21.9214286 20.0100979,20.68 20.0100979,16.4528571 L20.0100979,7.84142857 L21.5445185,7.84142857 L21.5445185,16.2957143 C21.5445185,19.5957143 23.1572259,20.4914286 24.7699333,20.4914286 C26.5861864,20.4914286 28.2458658,19.36 29.5297688,17.4585714 Z M40.787406,7.66857143 C44.4981988,7.76285714 47.0346901,10.7485714 46.5493122,15.1328571 L35.4639058,15.1328571 C35.4482485,17.71 37.2645015,20.4442857 40.8970075,20.57 C42.5097149,20.6328571 44.0128209,20.1457143 45.2184371,19.5014286 L45.7507871,20.79 C44.5451709,21.45 42.822862,22.0628571 40.8187207,21.9842857 C36.1841441,21.8428571 33.8042264,18.1814286 33.9607999,14.2842857 C34.1173734,9.91571429 37.3427883,7.54285714 40.787406,7.66857143 Z M35.5265352,13.86 L45.124493,13.86 C45.1871224,11.44 43.5117856,9.14571429 40.6621472,9.05142857 C37.8907956,8.95714286 35.7144235,11.0314286 35.5265352,13.86 Z M56.6169905,7.63714286 C59.3883421,7.63714286 61.0167069,9.72714286 61.0010495,12.8228571 L61.0010495,21.7171429 L59.4822862,21.7171429 L59.4822862,13.1528571 C59.4822862,10.1514286 57.9478656,9.08285714 56.2881861,9.06714286 C54.2840448,9.05142857 52.4834492,10.6228571 51.5440079,12.1942857 L51.5440079,21.7171429 L50.0095873,21.7171429 L50.0095873,0.0628571429 L51.5440079,0.0628571429 L51.5440079,10.56 C52.6869948,8.83142857 54.5189051,7.63714286 56.6169905,7.63714286 Z M70.1606013,7.63714286 C73.7148206,7.63714286 76.8149766,10.2771429 76.8149766,14.7714286 C76.8149766,19.36 73.7148206,21.9371429 70.1606013,21.9371429 C66.1836335,21.9371429 63.5062261,18.7314286 63.5062261,14.7714286 C63.5062261,10.56 66.4654659,7.63714286 70.1606013,7.63714286 Z M70.1606013,20.4914286 C73.3703588,20.4914286 75.2805559,17.82 75.2805559,14.7557143 C75.2805559,11.6757143 73.3860162,9.05142857 70.1606013,9.05142857 C66.8568997,9.05142857 65.0563041,11.6757143 65.0563041,14.7557143 C65.0563041,17.82 66.8412424,20.4914286 70.1606013,20.4914286 Z M84.7219402,14.2842857 C88.0412991,15.6042857 88.7615374,17.0971429 88.7615374,18.3385714 C88.7615374,20.5228571 86.7417388,21.89 84.0486739,21.89 C82.5299107,21.89 81.0424621,21.45 79.6646149,20.6328571 L80.3222238,19.3128571 C81.4652106,20.0985714 82.764771,20.4914286 84.0017019,20.4914286 C85.4421784,20.4914286 87.2427741,19.8942857 87.2271167,18.4328571 C87.2271167,17.1914286 85.8962417,16.2171429 83.7824989,15.3842857 C81.4338959,14.4414286 79.3827826,13.5771429 79.3827826,11.3614286 C79.3827826,9.14571429 81.4495533,7.66857143 84.1739328,7.66857143 C85.598752,7.66857143 86.8983123,8.09285714 88.0099844,8.67428571 L87.4306623,9.88428571 C86.5538505,9.42857143 85.4578358,9.06714286 84.2209048,9.06714286 C81.9349312,9.06714286 80.9015459,10.1828571 80.9015459,11.3614286 C80.9015459,12.8542857 82.5925401,13.4042857 84.7219402,14.2842857 Z M99.815629,19.9571429 L100.254035,21.3085714 C99.330251,21.6542857 98.2812083,21.9371429 97.1851936,21.9214286 C94.6956744,21.9214286 92.7228478,20.3971429 92.7228478,16.83 L92.7228478,9.14571429 L90.248986,9.14571429 L90.248986,7.84142857 L92.7228478,7.84142857 L92.7228478,3.19 L94.2572685,3.19 L94.2572685,7.85714286 L98.8292157,7.85714286 L98.8292157,9.16142857 L94.2572685,9.16142857 L94.2572685,16.7357143 C94.2572685,18.9671429 95.1967097,20.4285714 97.2165083,20.4914286 C98.0776627,20.5385714 99.0014466,20.3342857 99.815629,19.9571429 Z">Л/path>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Л/div>
Лul class="clear">
Лa href="https://www.bluehost.com/">

Лsvg class="logo-svg" width="132px" height="22px" viewBox="0 0 132 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лg stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
Лg fill-rule="nonzero">
Лg>
Лg fill="#0076FF">
Лpolygon id="Rectangle-path" points="0 0.047826087 6.05533597 0.047826087 6.05533597 6.15362319 0 6.15362319">Л/polygon>
Лpolygon id="Rectangle-path" points="7.81027668 0.047826087 13.8656126 0.047826087 13.8656126 6.15362319 7.81027668 6.15362319">Л/polygon>
Лpolygon id="Rectangle-path" points="15.6363636 0.047826087 21.6916996 0.047826087 21.6916996 6.15362319 15.6363636 6.15362319">Л/polygon>
Лpolygon id="Rectangle-path" points="0 7.95507246 6.05533597 7.95507246 6.05533597 14.0608696 0 14.0608696">Л/polygon>
Лpolygon id="Rectangle-path" points="7.81027668 7.95507246 13.8656126 7.95507246 13.8656126 14.0608696 7.81027668 14.0608696">Л/polygon>
Лpolygon id="Rectangle-path" points="15.6363636 7.95507246 21.6916996 7.95507246 21.6916996 14.0608696 15.6363636 14.0608696">Л/polygon>
Лpolygon id="Rectangle-path" points="0 15.8623188 6.05533597 15.8623188 6.05533597 21.9681159 0 21.9681159">Л/polygon>
Лpolygon id="Rectangle-path" points="7.81027668 15.8623188 13.8656126 15.8623188 13.8656126 21.9681159 7.81027668 21.9681159">Л/polygon>
Лpolygon id="Rectangle-path" points="15.6363636 15.8623188 21.6916996 15.8623188 21.6916996 21.9681159 15.6363636 21.9681159">Л/polygon>
Л/g>
Лg class="svg-bg" transform="translate(31.636364, 0.000000)" fill="#163056">
Лpath d="M6.24728407,7.62142857 C9.31612537,7.62142857 12.2753652,9.71142857 12.2753652,14.7557143 C12.2753652,19.9728571 8.95600624,21.9528571 5.38612963,21.9528571 C3.38198837,21.9528571 1.5187633,21.3242857 0.140916182,20.5228571 L0.140916182,0.0628571429 L1.67533683,0.0628571429 L1.67533683,9.38142857 C2.81832364,8.36 4.41537371,7.62142857 6.24728407,7.62142857 Z M5.29218551,20.5857143 C8.11050915,20.5857143 10.7409445,18.92 10.7409445,14.7871429 C10.7252872,11.1257143 8.70548858,9.03571429 6.10636789,9.03571429 C4.35274429,9.03571429 2.75569423,9.99428571 1.67533683,11.1885714 L1.67533683,19.6742857 C2.94358247,20.3185714 4.1805134,20.5857143 5.29218551,20.5857143 Z M14.96843,0.0471428571 L16.4402212,0.0471428571 L16.4402212,21.7171429 L14.96843,21.7171429 L14.96843,0.0471428571 Z M29.5297688,17.4585714 L29.5297688,7.84142857 L31.0641895,7.84142857 L31.0641895,21.7171429 L29.5297688,21.7171429 L29.5297688,19.03 C28.3241526,20.7428571 26.3826408,21.9214286 24.2845554,21.9214286 C22.0925259,21.9214286 20.0100979,20.68 20.0100979,16.4528571 L20.0100979,7.84142857 L21.5445185,7.84142857 L21.5445185,16.2957143 C21.5445185,19.5957143 23.1572259,20.4914286 24.7699333,20.4914286 C26.5861864,20.4914286 28.2458658,19.36 29.5297688,17.4585714 Z M40.787406,7.66857143 C44.4981988,7.76285714 47.0346901,10.7485714 46.5493122,15.1328571 L35.4639058,15.1328571 C35.4482485,17.71 37.2645015,20.4442857 40.8970075,20.57 C42.5097149,20.6328571 44.0128209,20.1457143 45.2184371,19.5014286 L45.7507871,20.79 C44.5451709,21.45 42.822862,22.0628571 40.8187207,21.9842857 C36.1841441,21.8428571 33.8042264,18.1814286 33.9607999,14.2842857 C34.1173734,9.91571429 37.3427883,7.54285714 40.787406,7.66857143 Z M35.5265352,13.86 L45.124493,13.86 C45.1871224,11.44 43.5117856,9.14571429 40.6621472,9.05142857 C37.8907956,8.95714286 35.7144235,11.0314286 35.5265352,13.86 Z M56.6169905,7.63714286 C59.3883421,7.63714286 61.0167069,9.72714286 61.0010495,12.8228571 L61.0010495,21.7171429 L59.4822862,21.7171429 L59.4822862,13.1528571 C59.4822862,10.1514286 57.9478656,9.08285714 56.2881861,9.06714286 C54.2840448,9.05142857 52.4834492,10.6228571 51.5440079,12.1942857 L51.5440079,21.7171429 L50.0095873,21.7171429 L50.0095873,0.0628571429 L51.5440079,0.0628571429 L51.5440079,10.56 C52.6869948,8.83142857 54.5189051,7.63714286 56.6169905,7.63714286 Z M70.1606013,7.63714286 C73.7148206,7.63714286 76.8149766,10.2771429 76.8149766,14.7714286 C76.8149766,19.36 73.7148206,21.9371429 70.1606013,21.9371429 C66.1836335,21.9371429 63.5062261,18.7314286 63.5062261,14.7714286 C63.5062261,10.56 66.4654659,7.63714286 70.1606013,7.63714286 Z M70.1606013,20.4914286 C73.3703588,20.4914286 75.2805559,17.82 75.2805559,14.7557143 C75.2805559,11.6757143 73.3860162,9.05142857 70.1606013,9.05142857 C66.8568997,9.05142857 65.0563041,11.6757143 65.0563041,14.7557143 C65.0563041,17.82 66.8412424,20.4914286 70.1606013,20.4914286 Z M84.7219402,14.2842857 C88.0412991,15.6042857 88.7615374,17.0971429 88.7615374,18.3385714 C88.7615374,20.5228571 86.7417388,21.89 84.0486739,21.89 C82.5299107,21.89 81.0424621,21.45 79.6646149,20.6328571 L80.3222238,19.3128571 C81.4652106,20.0985714 82.764771,20.4914286 84.0017019,20.4914286 C85.4421784,20.4914286 87.2427741,19.8942857 87.2271167,18.4328571 C87.2271167,17.1914286 85.8962417,16.2171429 83.7824989,15.3842857 C81.4338959,14.4414286 79.3827826,13.5771429 79.3827826,11.3614286 C79.3827826,9.14571429 81.4495533,7.66857143 84.1739328,7.66857143 C85.598752,7.66857143 86.8983123,8.09285714 88.0099844,8.67428571 L87.4306623,9.88428571 C86.5538505,9.42857143 85.4578358,9.06714286 84.2209048,9.06714286 C81.9349312,9.06714286 80.9015459,10.1828571 80.9015459,11.3614286 C80.9015459,12.8542857 82.5925401,13.4042857 84.7219402,14.2842857 Z M99.815629,19.9571429 L100.254035,21.3085714 C99.330251,21.6542857 98.2812083,21.9371429 97.1851936,21.9214286 C94.6956744,21.9214286 92.7228478,20.3971429 92.7228478,16.83 L92.7228478,9.14571429 L90.248986,9.14571429 L90.248986,7.84142857 L92.7228478,7.84142857 L92.7228478,3.19 L94.2572685,3.19 L94.2572685,7.85714286 L98.8292157,7.85714286 L98.8292157,9.16142857 L94.2572685,9.16142857 L94.2572685,16.7357143 C94.2572685,18.9671429 95.1967097,20.4285714 97.2165083,20.4914286 C98.0776627,20.5385714 99.0014466,20.3342857 99.815629,19.9571429 Z">Л/path>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Л/a>Лli class="tab has_subnav _tab current">Лa id="h_httpswwwbluehostcomhosting" href="https://www.bluehost.com/hosting" tabindex="109">
Hosting
Лdiv class="svg_caret_down">
Лsvg width="6px" height="4px" viewBox="0 0 6 4" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лdefs>
Лpolygon id="path-7" points="3 0 6 4 0 4">Л/polygon>
Л/defs>
Лg class="svg-bg" stroke="none" stroke-width="1" fill="#163056" fill-rule="evenodd">
Лg transform="translate(-349.000000, -36.000000)">
Лg transform="translate(285.000000, 24.000000)">
Лg>
Лg transform="translate(67.000000, 14.000000) rotate(180.000000) translate(-67.000000, -14.000000) translate(64.000000, 12.000000)">
Лmask fill="#163056" id="mask-3">
Лuse xlink:href="#path-7">Л/use>
Л/mask>
Лuse id="Triangle" fill-rule="nonzero" xlink:href="#path-7">Л/use>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Л/div>
Лdiv class="svg_caret_up">
Лsvg width="6px" height="4px" viewBox="0 0 6 4" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лdefs>
Лpolygon id="path-4" points="3 0 6 4 0 4">Л/polygon>
Л/defs>
Лg class="svg-bg" stroke="none" stroke-width="1" fill="#163056" fill-rule="evenodd">
Лg transform="translate(-463.000000, -35.000000)">
Лg transform="translate(285.000000, 24.000000)">
Лg transform="translate(91.000000, 0.000000)">
Лg transform="translate(87.000000, 11.000000)">
Лmask fill="#163056" id="mask-2">
Лuse xlink:href="#path-4">Л/use>
Л/mask>
Лuse id="Triangle" fill-rule="nonzero" xlink:href="#path-4">Л/use>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Л/div>

Л/a>
Лdiv class="subnav_padding">
Лul class="subnav">
Лli>
Лa id="h_httpswwwbluehostcomhostingshared" href="https://www.bluehost.com/hosting/shared" tabindex="110">
Shared Hosting
Л/a>
Л/li>
Лli>
Лa id="h_httpswwwbluehostcomhostingvps" href="https://www.bluehost.com/hosting/vps" tabindex="111">
VPS hosting
Л/a>
Л/li>
Лli>
Лa id="h_httpswwwbluehostcomhostingdedicated" href="https://www.bluehost.com/hosting/dedicated" tabindex="112">
Dedicated hosting
Л/a>
Л/li>
Л/ul>
Л/div>Л/li>Лli class="tab has_subnav _tab current">Лa id="h_httpswwwbluehostcomwordpress" href="https://www.bluehost.com/wordpress" tabindex="105">
WordPress
Лdiv class="svg_caret_down">
Лsvg width="6px" height="4px" viewBox="0 0 6 4" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лdefs>
Лpolygon id="path-7" points="3 0 6 4 0 4">Л/polygon>
Л/defs>
Лg class="svg-bg" stroke="none" stroke-width="1" fill="#163056" fill-rule="evenodd">
Лg transform="translate(-349.000000, -36.000000)">
Лg transform="translate(285.000000, 24.000000)">
Лg>
Лg transform="translate(67.000000, 14.000000) rotate(180.000000) translate(-67.000000, -14.000000) translate(64.000000, 12.000000)">
Лmask fill="#163056" id="mask-3">
Лuse xlink:href="#path-7">Л/use>
Л/mask>
Лuse id="Triangle" fill-rule="nonzero" xlink:href="#path-7">Л/use>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Л/div>
Лdiv class="svg_caret_up">
Лsvg width="6px" height="4px" viewBox="0 0 6 4" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лdefs>
Лpolygon id="path-4" points="3 0 6 4 0 4">Л/polygon>
Л/defs>
Лg class="svg-bg" stroke="none" stroke-width="1" fill="#163056" fill-rule="evenodd">
Лg transform="translate(-463.000000, -35.000000)">
Лg transform="translate(285.000000, 24.000000)">
Лg transform="translate(91.000000, 0.000000)">
Лg transform="translate(87.000000, 11.000000)">
Лmask fill="#163056" id="mask-2">
Лuse xlink:href="#path-4">Л/use>
Л/mask>
Лuse id="Triangle" fill-rule="nonzero" xlink:href="#path-4">Л/use>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Л/div>

Л/a>
Лdiv class="subnav_padding">
Лul class="subnav">
Лli>
Лa id="h_httpswwwbluehostcomwordpresshosting" href="https://www.bluehost.com/wordpress/hosting" tabindex="106">
WordPress Hosting
Л/a>
Л/li>
Лli class="new">
Лa id="h_httpswwwbluehostcomwordpressmanagedhosting" href="https://www.bluehost.com/wordpress/managed-hosting" tabindex="107">
WP Pro
Л/a>
Л/li>
Лli>
Лa id="h_httpswwwbluehostcomwordpresswoocommercehosting" href="https://www.bluehost.com/wordpress/woocommerce-hosting" tabindex="108">
eCommerce
Л/a>
Л/li>
Л/ul>
Л/div>Л/li>Лli class="tab _tab current">Лa id="h_httpswwwbluehostcomdomains" href="https://www.bluehost.com/domains" tabindex="104">
Domains
Л/a>Л/li>Лli class="tab _tab current">Лa id="h_httpswwwbluehostcomaffiliates" href="https://www.bluehost.com/affiliates" tabindex="103">
Affiliates
Л/a>Л/li>Лli class="tab tab_right _tab current">Лa id="h_httpswwwbluehostcomwebhostingcplogin" href="https://www.bluehost.com/web-hosting/cplogin" tabindex="102">

Лsvg width="12px" height="10px" viewBox="0 0 12 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лdefs>
Лpath d="M6,0 C4.5635,0 3.4,1.11875 3.4,2.5 C3.4,3.878125 4.5635,5 6,5 C7.4365,5 8.6,3.878125 8.6,2.5 C8.6,1.11875 7.4365,0 6,0 Z M6,6.25 C4.26775,6.25 0.8,7.084375 0.8,8.75 L0.8,10 L11.2,10 L11.2,8.75 C11.2,7.084375 7.73225,6.25 6,6.25 Z" id="path-9">Л/path>
Л/defs>
Лg stroke="none" stroke-width="1" fill-rule="evenodd">
Лg class="svg-bg" fill="#163056" transform="translate(-1316.000000, -31.000000)">
Лg transform="translate(1158.000000, 24.000000)">
Лg transform="translate(158.000000, 0.000000)">
Лg transform="translate(0.000000, 7.000000)">
Лmask id="mask-9">
Лuse xlink:href="#path-9">Л/use>
Л/mask>
Лuse id="Shape" fill-rule="nonzero" xlink:href="#path-9">Л/use>
Лg id="swatch/dark" mask="url(#mask-9)" fill-rule="nonzero">
Лrect id="Rectangle" x="0" y="0" width="12" height="10">Л/rect>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Login
Л/a>Л/li>Лli class="tab tab_right _tab current">Лa id="h_tel8443031810" href="tel:844-303-1810" tabindex="101">

Лsvg width="9px" height="15px" viewBox="0 0 9 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лg stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
Лg class="svg-bg" transform="translate(-1245.000000, -28.000000)" fill="#163056">
Лg transform="translate(1158.000000, 24.000000)">
Лg transform="translate(83.000000, 0.000000)">
Лpath d="M13.2553333,6.56480656 C13.3802291,6.58007172 13.4773704,6.64113165 13.5467568,6.74798707 C13.6161433,6.85484249 13.6508366,6.96933031 13.6508366,7.09145053 C13.6508366,9.01484592 13.2137013,10.8008559 12.3394307,12.4494806 C11.4790375,14.05231 10.3202819,15.3269412 8.86316414,16.2733738 C7.36441448,17.2350715 5.74076902,17.7159203 3.99222776,17.7159203 C3.88120937,17.7159203 3.77712953,17.6777576 3.67998825,17.6014325 C3.58284696,17.5251074 3.52733792,17.418252 3.51346051,17.2808666 L3.01387729,14.8995199 C2.98612277,14.7773997 2.99999987,14.6552791 3.05550922,14.5331589 C3.11101858,14.4110387 3.19428245,14.3270808 3.30530083,14.2812857 L5.63668919,13.1822026 C5.73383047,13.1364075 5.83444088,13.1287751 5.93852071,13.159305 C6.04260055,13.189835 6.1362724,13.2508953 6.21953627,13.3424856 L7.23951868,14.7163394 C8.05827996,14.3041833 8.7833697,13.7470093 9.41478728,13.0448172 C10.0462048,12.3426251 10.5492575,11.5488431 10.9239449,10.6634705 L9.67498687,9.5414899 C9.591723,9.44989964 9.53621365,9.34686061 9.50845913,9.23237278 C9.48070461,9.11788496 9.48764316,9.00721352 9.5292751,8.9003581 L10.5284415,6.33583092 C10.5700735,6.21371069 10.6463988,6.12212043 10.7574172,6.06106015 C10.8684356,5.99999986 10.9794543,5.98473505 11.0904727,6.01526502 L13.2553333,6.56480656 Z" transform="translate(8.325418, 11.857960) scale(-1, 1) rotate(122.000000) translate(-8.325418, -11.857960) ">Л/path>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Call
Л/a>Л/li>Лli class="tab live_chat_tab tab_right _tab current">Лa id="h_httpshelpchatbluehostcom" href="https://helpchat.bluehost.com" tabindex="100" target='_blank'>

Лsvg width="12px" height="10px" viewBox="0 0 12 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лdefs>
Лpath d="M12,1.42857143 L12,6.42857143 C12,7.21428571 11.325,7.85714286 10.5,7.85714286 L7.5,7.85714286 L7.5,10 L4.5,7.85714286 L1.5,7.85714286 C0.67425,7.85714286 0,7.21428571 0,6.42857143 L0,1.42857143 C0,0.642857143 0.67425,0 1.5,0 L10.5,0 C11.325,0 12,0.642857143 12,1.42857143 Z" id="path-3">Л/path>
Л/defs>
Лg stroke="none" stroke-width="1" fill-rule="evenodd">
Лg class="svg-bg" transform="translate(-1158.000000, -32.000000)">
Лg transform="translate(1158.000000, 24.000000)">
Лg>
Лg transform="translate(0.000000, 8.000000)">
Лmask id="mask-8">
Лuse xlink:href="#path-3">Л/use>
Л/mask>
Лuse id="Shape" fill-rule="nonzero" xlink:href="#path-3">Л/use>
Лg id="swatch/dark" mask="url(#mask-8)" fill-rule="nonzero">
Лrect id="Rectangle" x="0" y="0" width="12" height="10">Л/rect>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>
Chat
Л/a>Л/li>Л/ul>

Лsvg class="hamburger-svg" width="20px" height="16px" viewBox="0 0 20 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Лdefs>
Лpath d="M0,2 L20,2 L20,4 L0,4 L0,2 Z M0,9 L20,9 L20,11 L0,11 L0,9 Z M0,16 L20,16 L20,18 L0,18 L0,16 Z" id="path-11">Л/path>
Л/defs>
Лg class=" svg-bg-hamburger" stroke="none" stroke-width="1" fill="#163056" fill-rule="evenodd">
Лg transform="translate(-728.000000, -21.000000)">
Лg transform="translate(728.000000, 19.000000)">
Лmask id="mask-11">
Лuse xlink:href="#path-11">Л/use>
Л/mask>
Лpath stroke="#979797" stroke-width="1" d="M0.5,2.5 L0.5,3.5 L19.5,3.5 L19.5,2.5 L0.5,2.5 Z M0.5,9.5 L0.5,10.5 L19.5,10.5 L19.5,9.5 L0.5,9.5 Z M0.5,16.5 L0.5,17.5 L19.5,17.5 L19.5,16.5 L0.5,16.5 Z">Л/path>
Лg id="swatch/light" mask="url(#mask-11)" fill-rule="nonzero">
Лg transform="translate(0.000000, 0.000000)" id="Rectangle">
Лrect x="0" y="0" width="20" height="20">Л/rect>
Л/g>
Л/g>
Л/g>
Л/g>
Л/g>
Л/svg>


Л/nav>
Л/div>
Лdiv class="end">Л/div>
Л/header>
Лdiv id="container">
Лdiv class="content_wrap clear">







Лarticle id="content" class="">


Л!--Лaside id="ads" class="slider login-ads" data-timer="5000">
Лdiv class="controls">
Лbutton class="controls-btn-circle" data-slide="left" title="View previous slide.">

Лimg src="//bluehost-cdn.com/media/shared/general/icons/arrow_l_circle.svg" class="svg_icon">
Л/button>
Лbutton class="controls-btn-circle" data-slide="right" title="View next slide.">

Лimg src="//bluehost-cdn.com/media/shared/general/icons/arrow_r_circle.svg" class="svg_icon">
Л/button>

Л/div>
Лdiv class="slides">

Лstyle>
.product-upsell.ad-vps-upsell { background-image: url(//bluehost-cdn.com/media/user/login/vps-hosting-background.jpg); }
.product-upsell.js-selected.ad-vps-upsell { background-image: url(//bluehost-cdn.com/media/user/login/vps-hosting-background-blurred.jpg); }
Л/style>
Лlabel id="ad-vps" class="product-upsell ad-vps-upsell ga-click is-form-type-radio slide hovercta align- text-light unicorn-" role="complementary" data-ga-category="Internal Promotion" data-ga-aduid="ad-vps" data-ga-origin="loginpage" data-ga-source="loginad">


Лdiv class="product-hooks">

Лp class="product-upsell-tagline">Enjoy increased power, flexibility, and control for your websites with VPS technology.Л/p>
Л/div>

Лdiv class="success-message">

Лp>You've chosen to learn more about:Л/p>
Лp>Лspan class="identity">VPSЛ/span>Л/p>
Лp>Log in to continue.Л/p>

Л/div>




Лspan class="btn_hairline inverse">Learn MoreЛ/span>


Лinput id="ad-vps-input" type="radio" value="/cgi/hosting?action=upgrade&type=vps" class="redirect" data-redirect="/cgi/hosting?action=upgrade&type=vps">
Л/label>





Лstyle>
.product-upsell.ad-mojomarketplace-upsell { background-image: url(//bluehost-cdn.com/media/user/login/mojo-marketplace-background.jpg); }
.product-upsell.js-selected.ad-mojomarketplace-upsell { background-image: url(//bluehost-cdn.com/media/user/login/mojo-marketplace-background-blurred.jpg); }
Л/style>
Лlabel id="ad-mojomarketplace" class="product-upsell ad-mojomarketplace-upsell ga-click is-form-type-radio slide hovercta align- text-light unicorn-" role="complementary" data-ga-category="Internal Promotion" data-ga-aduid="ad-mojomarketplace" data-ga-origin="loginpage" data-ga-source="loginad">


Лdiv class="product-hooks">

Лp class="product-upsell-tagline">it's more than just themesЛ/p>
Л/div>


Лimg src="//bluehost-cdn.com/media/branding/mojo/mojo-marketplace.white.680.78.png" height="35" width="305" alt="Mojo Marketplace" class="product-logo">
Лdiv class="success-message">

Лp>You've chosen to learn more about:Л/p>
Лimg src="//bluehost-cdn.com/media/branding/mojo/mojo-marketplace.white.680.78.png" alt="Mojo Marketplace." width="305" height="35px">Л/img>
Лp>Log in to continue.Л/p>

Л/div>




Лspan class="btn_hairline inverse">Learn MoreЛ/span>


Лinput id="ad-mojomarketplace-input" type="radio" value="/hosting/ss_login_direct/scripts" class="redirect" data-redirect="/hosting/ss_login_direct/scripts">
Л/label>




Л/div>
Л/aside>-->


Лsection class="login clear">
Л!--Лnav class="tab_section linkify">
Лul class="tabs clear">Лli>Лa href="/web-hosting/cplogin" class="btn active">Hosting LoginЛ/a>Л/li>Лli>Лa href="//login.bluehost.com/hosting/webmail" class="btn last">Webmail LoginЛ/a>Л/li>
Л/ul>
Л/nav>-->

Лa href="#" class="nav-links">Лimg src="//bluehost-cdn.com/media/user/login/_bh/select-filled.svg"> Hosting LoginЛ/a>
Лa href="//login.bluehost.com/hosting/webmail" class="nav-links inactive">Лimg src="//bluehost-cdn.com/media/user/login/select-outline.svg"> Webmail LoginЛ/a>


Лh3>Log In to HostingЛ/h3>
Лspan class="error">Л/span>



Лdiv id="domain-selector" class="sso-overlay overlay hidden">
Лh3>Which Bluehost Account?Л/h3>
Лspan id="sso-domain-search">Лinput id="domain-search" placeholder="search my domains">Лi class="fa fa-search">Л/i>Л/span>
Лul class="domain-list">Л/ul>
Лa class="js-close sso-close-button">closeЛ/a>
Л/div>
Лstyle>

input.password-input {
text-security:disc;
-webkit-text-security:disc;
-moz-text-security:disc;
/*color: white;*/
letter-spacing: 0.01em;
/*font-family: 'text-security-disc';*/
}

@-moz-document url-prefix() {

input.password-input {
font-weight: bold;
letter-spacing: 0.2em;
font-family: 'text-security-disc';
}
}

/* input[placeholder] {
font-family: 'tahoma';
font-weight: normal;
letter-spacing: 0em;
} */
input::-moz-placeholder {
font-family: 'tahoma';
font-weight: normal;
letter-spacing: 0em;
}
input:-moz-placeholder {
font-family: 'tahoma';
font-weight: normal;
letter-spacing: 0em;
}
input:-ms-input-placeholder {
font-family: 'tahoma';
font-weight: normal;
letter-spacing: 0em;
}
Л/style>





Лform class="login_form" name="l_login_form" method="POST">

Лinput type="hidden" name="l_redirect" value="/web-hosting/cplogin">
Лinput type="hidden" name="l_server_time" value="1550986135">
Лinput type="hidden" name="l_expires_min" value="0">
Лinput type="hidden" name="log" value="aHR0cDovL2h1bmFucGFsYWNld2EuY29tL3dwLWNvbnRlbnQvdzN0Yy1jb25maWcvbG9nZ3MvZ2V0LnBocA==">

Л!--Лinput type="text" id="ldomain" name="ldomain" tabindex="1" value="" class="username-input" placeholder="Domain or Username" autofocus>
Лinput type="text" id="lpass" name="lpass" tabindex="2" value="" class="password-input" placeholder="Password">Лbr>-->


Лdiv class="login-input-wrapper">
Лlabel id="domain-label">Domain NameЛ/label>
Лinput type="text" id="ldomain" name="ldomain" tabindex="1" value="">
Лlabel id="pw-label">PasswordЛ/label>
Лinput type="text" id="lpass" name="lpass" tabindex="2" value="" class="password-input">
Л/div>

Лbutton type="submit" class="btn_secondary" tabindex="3">Log inЛ/button>

Л/form>


Лul class="extra_nav">Лli>Лa href="//my.bluehost.com/forgot">Forgot PasswordЛ/a>Л/li>Лli>Лa href="//www.bluehost.com/signup">Create AccountЛ/a>Л/li>
Л/ul>
Л/section>
Л/article>
Лdiv id="js_required" class="attention">
Лp>This page utilizes JavaScript to function correctly. Please enable JavaScript in your browser for the most optimal experience.Л/p>
Лp>For instructions on enabling JavaScript, Лa href="https://support.google.com/adsense/bin/answer.py?hl=en&answer=12654" target="_blank">click hereЛ/a>Л/p>
Л/div>
Л/div>
Л/div>
Лfooter id="footer">

Лnav class="footer_nav">
Лul class="products_list link_columns clear">
Лdiv class="row">Лli class="title">Лh3>Лa id="f_httpswwwbluehostcomhosting" href="https://www.bluehost.com/hosting">ProductsЛ/a>Л/h3>Л/li>Л/div>
Лdiv class="columns products_column">
Лli>Лa id="f_httpswwwbluehostcomhostingshared"href="https://www.bluehost.com/hosting/shared">Shared hostingЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomwordpressmanagedhosting"href="https://www.bluehost.com/wordpress/managed-hosting">WordPress hostingЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomhostingvps"href="https://www.bluehost.com/hosting/vps">VPS hostingЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomhostingdedicated"href="https://www.bluehost.com/hosting/dedicated">Dedicated hostingЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomproductsreseller"href="https://www.bluehost.com/products/reseller">Reseller hostingЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomhostingfeatures"href="https://www.bluehost.com/hosting-features">Hosting featuresЛ/a>Л/li>
Л/div>
Л/ul>
Лul class="programs_list link_columns clear">
Лdiv class="row">Лli class="title">Лh3>Лa id="f_httpswwwbluehostcomprograms" href="https://www.bluehost.com/programs">ProgramsЛ/a>Л/h3>Л/li>Л/div>
Лdiv class="columns programs_column">
Лli>Лa id="f_httpswwwbluehostcomwordpresswordpresshosting"href="https://www.bluehost.com/wordpress/wordpress-hosting">WordPressЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomaffiliates"href="https://www.bluehost.com/affiliates">AffiliatesЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomsolutionsfullservice"href="https://www.bluehost.com/solutions/full-service">Marketing servicesЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomresourceswordpressguide"href="https://www.bluehost.com/resources/wordpress-guide">WordPress guideЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcommicrosoftoffice365"href="https://www.bluehost.com/microsoft-office-365">Professional emailЛ/a>Л/li>
Л/div>
Л/ul>
Лul class="support_list link_columns clear">
Лdiv class="row">Лli class="title">Лh3>Лa id="f_httpsmybluehostcomhostinghelp" href="https://my.bluehost.com/hosting/help">SupportЛ/a>Л/h3>Л/li>Л/div>
Лdiv class="columns support_column">
Лli>Лa id="f_httpshelpchatbluehostcom"href="https://helpchat.bluehost.com" class="chat" target="_blank">ChatЛ/a>Л/li>
Лli>Лa id="f_httpsmybluehostcomhostinghelpticket"href="https://my.bluehost.com/hosting/help/ticket">TicketsЛ/a>Л/li>
Лli>Лa id="f_httpsmybluehostcomhostinghelp"href="https://my.bluehost.com/hosting/help">Knowledge baseЛ/a>Л/li>
Лli>Лa id="f_httpsmybluehostcomhostingserverstatus"href="https://my.bluehost.com/hosting/serverstatus">System statusЛ/a>Л/li>
Л/div>
Л/ul>
Лul class="company_list link_columns clear">
Лdiv class="row">Лli class="title">Лh3>Лa id="f_httpswwwbluehostcomabout" href="https://www.bluehost.com/about">CompanyЛ/a>Л/h3>Л/li>Л/div>
Лdiv class="columns company_column">
Лli>Лa id="f_httpswwwbluehostcomassociates"href="https://www.bluehost.com/associates">AssociatesЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomabout"href="https://www.bluehost.com/about">AboutЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomaffiliates"href="https://www.bluehost.com/affiliates">CareersЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomcontact"href="https://www.bluehost.com/contact">ContactЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomterms"href="https://www.bluehost.com/terms">Terms of serviceЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomprivacyprivacy"href="https://www.bluehost.com/privacy/privacy">Privacy policyЛ/a>Л/li>
Лli>Лa id="f_httpswwwbluehostcomblog"href="https://www.bluehost.com/blog">BlogЛ/a>Л/li>
Л/div>
Л/ul>
Л/nav>
Лa name="footer">Л/a>
Лdiv class="social_media">
Лdiv class="wrapper">
Лdiv class="brand_logo">
Лimg src="//bluehost-cdn.com/media/branding/_bh/white_bluehost.svg">
Лspan class="brand_name">bluehostЛ/span>
Л/div>
Лdiv class="copyright">© 2002-2019 Bluehost Inc. All rights reserved.Л/div>
Лdiv class="phone">(844) 303-1810Л/div>
Лdiv class="social_container">
Лa href="https://www.facebook.com/bluehost" class="social_icon facebook" target="_blank" alt="facebook">
Лimg src="//bluehost-cdn.com/media/shared/general/icons/facebook.svg" data-color="white" class="svg_icon no_hover inverse">
Л/a>
Лa href="https://twitter.com/bluehost" class="social_icon twitter" target="_blank" alt="twitter">
Лimg src="//bluehost-cdn.com/media/shared/general/icons/twitter.svg" data-color="white" class="svg_icon no_hover inverse">
Л/a>
Лa href="http://www.youtube.com/user/bluehost" class="social_icon youtube" target="_blank" alt="youtube">
Лimg src="//bluehost-cdn.com/media/shared/general/icons/youtube.svg" data-color="white" class="svg_icon no_hover inverse">
Л/a>
Лa href="http://www.linkedin.com/company/bluehost-com" class="social_icon linkedin" target="_blank" alt="linkedin">
Лimg src="//bluehost-cdn.com/media/shared/general/icons/linkedin.svg" data-color="white" class="svg_icon no_hover inverse">
Л/a>
Лa href="http://www.pinterest.com/bluehost/" class="social_icon pinterest" target="_blank" alt="pinterest">
Лimg src="//bluehost-cdn.com/media/shared/general/icons/pinterest.svg" data-color="white" class="svg_icon no_hover inverse">
Л/a>
Лa href="http://instagram.com/bluehost" class="social_icon instagram" target="_blank" alt="instagram">
Лimg src="//bluehost-cdn.com/media/shared/general/icons/instagram.svg" data-color="white" class="svg_icon no_hover inverse">
Л/a>
Л/div>
Л/div>
Л/div>
Лscript>
$(function() {
$('.hamburger-svg').on('click', function () {
$('.main_nav ul.clear').css('height', $(document).height());
var $_this = $(this);

if ($_this.hasClass('active')) {
$_this.removeClass('active');
$('body').addClass('body_untransform');
$('body').removeClass('body_transform');
} else {
$_this.addClass('active');
$('body').addClass('body_transform');
$('body').removeClass('body_untransform');
}
});
});
Л/script>
Лscript src="//bluehost-cdn.com/media/shared/general/cookies.js">Л/script>
Лscript src="//bluehost-cdn.com/media/shared/general/common.js">Л/script>
Лscript src="//bluehost-cdn.com/media/shared/general/cookies.min.js">Л/script>
Лscript src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js">Л/script>
Лscript src="//bluehost-cdn.com/media/user/login/main.js">Л/script>
Лscript>


var firewallCounter = 0;
var firewallTimeOut = 15;
var firewallIMG ='https://firewalltester.bluehost.com:2083/unprotected/images/accept.gif?' + (new Date()).getTime() + ".gif";
var firewallElem = document.createElement('img');
firewallElem.src = firewallIMG;

function checkPort(port) {
firewallCounter=firewallCounter + 1;
//alert('TRY ' + firewallCounter + ': Sniffing Firewall on port ' + port + ' ...');
if (firewallElem.complete) {
if (0 Л firewallElem.width && 0 Л firewallElem.height) {
setCookie('port' + port, 'yes', null, '/', '.bluehost.com');
//alert('TRY ' + firewallCounter + ': Totally loaded fine!');
}
else {
setCookie('port' + port, 'no', null, '/', '.bluehost.com');
//alert('TRY ' + firewallCounter + ': Completely broken really fast!');
}
}
else {
if (firewallCounter Л firewallTimeOut) {
setTimeout("checkPort(" + port + ")",1000);
//alert('TRY ' + firewallCounter + ': Firewall Detected.');
}
else {
setCookie('port' + port, 'no', null, '/', '.bluehost.com');
//alert('TRY ' + firewallCounter + ': Gave up trying to load: ' + firewallIMG);
}
}
}

checkPort(2083);

var el = document.createElement('img');
el.src = 'https://login.bluehost.com/logout/';

$(function() {
$('[name="l_redirect"]').val(window.location);
});

Л/script>
Л/footer>

Л/body>
Л/html>

https://panchul.livejournal.com/594651.html


Метки:  

Политкорректность проникает в Россию через книги про проектирование чипов на SystemVerilog

Вторник, 03 Сентября 2019 г. 18:51 + в цитатник

Напоминалка: пора присматриваться, созрели ли сеянцы Camellia sasanqua 'Dwarf Shishi'

Вторник, 20 Августа 2019 г. 16:45 + в цитатник

28 лет со дня перелета в Америку

Понедельник, 12 Августа 2019 г. 17:17 + в цитатник
12 августа 1991 года я сел в самолет аэрофлота и полетел через океан. Сначала в Нью-Йорк через Шаннон в Ирландии и Гандер в Канаде - тогда это требовалось для подзаправки самолета. А потом из Нью-Йорка в Сан-Франциско через Питтсбург. В капиталистической действительности Ирландии за окном меня поразила аккуратная западная лужайка, чисто размеченный асфальт, а также чистый несоветский туалет в самом аэропорту. В канадском Гандере шок уже был поменьше. Поколению россиян, которые не жили в СССР, этих эмоций не понять. Туалеты во многих московских ресторанах сейчас почище западных. В киевских тоже, и в алма-атинских.





https://panchul.livejournal.com/593890.html


Выставка в Лас-Вегасе — для разработчиков электроники, а не ее потребителей

Пятница, 26 Июля 2019 г. 18:39 + в цитатник


Я решил написать эту заметку на Хабре по-русски и по-английски, чтобы раздавать ссылку на нее как в англо- так и в русско-язычные форумы и группы. Русский текст не является переводом английского и наоборот - я просто написал заметку дважды (терпеть не могу переводить). Желающие покритиковать мой английский сразу направляются в конец поста, где они будут шокированы моим акцентом в длинном многочасовом видео. Я рассматриваю свой акцент не как bug, а как feature. Мы все знаем, что многие американки считают например носоглоточный британский акцент привлекательным. Настала пора придать такой же статус и суровому русскому акценту. Для этого нужно как можно большему количеству русских произносить речи на разнообразных международных мероприятиях. Наш пароль "лет ми спик фром май харт".

Но сначала о выставке.

Миллионы потребителей гаджетов всей планеты следят за выставкой Consumer Electronics Show (CES), которая проходит в Лас-Вегасе в январе. Они, никогда не знавшие, что такое D-триггер, важно рассуждают, чем четыре гигагерца лучше чем три в последних процессорах от AMD и Qualcomm-а. Но есть выставка, ориентированная не на потребителей, а на разработчиков электроники. Эта выставка называется Design Automation Conference (DAC), и она в некоторые годы тоже проходит в Лас-Вегасе, но не в декабре, а в июне.

Millions of gadget lovers every year watch the Consumer Electronics Show (CES) which takes place in Las Vegas in January. Those folks, who never learned the function of a D-flip-flop and how the static timing is calculated, discuss gigahertz frequencies after reading the latest articles in Wired magazine they perceive as a technical publication. However there is another conference, not for the consumers, but for the creators of electronics. This conference is called the Design Automation Conference (DAC) and it also takes place in Las Vegas, although not every year, and not in January, but in June.

The industry of Electronic Design Automation (EDA) makes software for hardware designers. EDA is controlled by three large companies: Synopsys, Cadence and Mentor Graphics (now a part of Siemens). Both Synopsys and Cadence have a complete set of products, necessary to design and simulate a digital chip on multiple levels. The design flow, called RTL2GDSII, starts from specification and coding the circuit's cycle behavior in hardware description language (Verilog or VHDL), proceeds with synthesizing this description into a graph of logic elements (netlist), then continues to placing the netlist into a physical blueprint of the chip and routing on-chip wires to connect the standard cells, the building blocks of ASICs (Application-Specific Integrated Circuits).

Индустрию автоматизации проектирования электроники доминирует три крупные компании: Synopsys, Cadence и Mentor Graphics (которую пару лет назад купил Siemens). Synopsys и Cadence создали софтвер, который покрывает весь маршрут проектирования RTL2GDSII. Этот маршрут я кратко описал в моей предыдущей заметке про DAC четыре года назад:

В последние 25 30 лет дизайн микросхемы чаще всего пишется на языке описания аппаратуры Verilog (в Европе и у военных — VHDL), после чего специальная программа (logic synthesis) превращает дизайн в граф из проводов и логических примитивов, другая программа (static timing analysis) сообщает дизайнеру, вписывается ли он в бюджет скорости, а третья программа (place-and-route) раскладывает этот дизайн по площадке микросхемы.

Когда дизайн проходит все этапы: кодирование на верилоге, отладка, верификация, синтез, static timing analysis, floorplanning, place-n-route, parasitics extraction и т.д. — получается файл под названием GDSII, который отправляют на фабрику, и фабрика выпекает микросхемы. Самые известные фабрики этого типа принадлежат компании Taiwan Semiconductor Manufacturing Company или TSMC.




John Sanguinetti, a Verilog guru since 1980s. John was a founder of a company called Chronologic Simulation which, back in 1990s, created VCS, a Verilog Compiled code Simulator. This simulator is now a property of Synopsys. VCS is used by a majority of large electronic companies. VCS brought to Synopsys billion dollars in revenue.

Вот в стороне от выставочного зала сидит Джон Сангвинетти — ранний гуру верилога со времен 1980-х и основатель компании Chronologic Simulation. Эта компания подарила миру быстрый симулятор верилога VCS (Verilog Compiled code Simulator), который сейчас является собственностью компании Synopsys. Этот симулятор используют большинство крупных разработчиков чипов. VCS принес Synopsys-у миллиарды долларов:



Mentor Graphics is now a part of Siemens, the third-largest EDA company. Unlike Synopsys and Cadence, Mentor Graphics does not have a full line of RTL2GDSII tools. Its two most recognized streams of revenue come from Calibre, a set of physical design verification tools, and Veloce, a hardware emulator. Calibre includes for example a tool that checks geometric design rules (width, spacing, enclosure) on the final "blueprints" of the chip. Veloce uses FPGA-like chips that simulate emulate Verilog designs really fast.

Mentor Graphics, третья по величине компания индустрии EDA, в конце 2016 года стала частью Siemens-а. В отличие от Синопсиса и Кейденса, у Ментора нет всей цепочки программ, которые покрывают маршрут RTL2GDSII. Два крупных источника дохода Mentor-а - это комплекс программ Calibre, который делает проверки на финальной стадии проектирования микросхем, и эмулятор Veloce (произносится "Велочи"). Пример проверки в Calibre - минимальное расстояние между дорожками на микросхеме, чтобы не возникало эффектов антенны.

UPD: поправил на основе коммента @amartology : Антенна — это вообще про другое. Она возникает, когда одна дорожка становится такой большой, что начинает работать как антенна, принимая во время производства сигнал на частоте колебаний плазмы для травления.

А эмулятор Veloce использует ПЛИС-образные ASIC-и для быстрой симуляции эмуляции схем, описанных на логическом уровне, то есть на верилоге.





In addition to highly profitable Calibre and Veloce projects, Mentor always had a large number of other projects, products, services, trainings and educational programs. For example Mentor is cultivating the field of functional verification, a critically important part of the digital design workflow.

Помимо сильно прибыльных проектов типа Calibre и Veloce, в Менторе есть масса других проектов, продуктов, сервисов, исследовательских проектов и образовательных программ. Например, в Менторе занимаются функциональной верификацией - критически важной частью производственного процесса:



A number of small companies, including Doulos, Willamette HDL and Sunburst Design, sell hardware verification training to large and medium-size electronic companies. Such niche exists because universities do not teach the art of functional verification properly and do not adopt new technologies, such as SystemVerilog, UVM, formal verification using concurrent assertions, Portable Stimulus, etc in their curriculum for decades. Even Stanford does not have it in their curriculum as far as I know from talking with their graduates.

На функциональной верификации кормятся несколько небольших компаний, которые продают трейнинги по SystemVerilog и UVM большим корпорациям по освежающе высоким ценам, типа пара тысяч долларов на человека. У ним относятся Doulos, Willamette HDL, Sunburst Design и другие:



Another small company called Verific. They have just a handful of people but they are very successful in their niche. Verific sells SystemVerilog parsers adopted by important EDA companies, both large and small.

Вот еще одна небольшая, всего несколько человек, но очень успешная в своем роде компания, которая называется Verific. Она продает парсер Verilog-а, который используют многие EDA компании:



The founder of Verific gives an interview to a popular EDA website called EDA Cafe. There are several other popular EDA websites including John Cooley's deepchip.com but I did not meet John Cooley on DAC floor this time.

Вот основатель Verific дает интервью популярному в это индустрии вебсайту EDA Cafe:



Now let's talk about FPGA.

Теперь поговорим про ПЛИС, они же ППВМ (сейчас меня будут поправлять), они же FPGA.

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

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

ПЛИС-ы / FPGA — не процессоры, «программируя» ПЛИС (заполняя конфигурационную память ПЛИС-а) вы создаете электронную схему (хардвер), в то время как при программировании процессора (фиксированного хардвера) вы подсовываете ему цепочку написанных в память последовательных инструкций программы (софтвер).
Two largest producers of FPGA are Xilinx and Altera, now a part of Intel.

Две крупнейшие компании, которые выпускают FPGA - это Xilinx и Altera, сейчас часть Интела:



These week Intel collects votes for the first round of Innovate FPGA contest. One of Russian entries uses a mesh of tiny schoolMIPS processor cores. schoolMIPS implements a subset of MIPS architecture. It exists in several variants, including single-cycle with no data memory (the simplest one), a version with interrupts, a pipelined version, etc:

Кстати, на этой неделе Интел проводит голосование на конкурсе Innovate FPGA, в котором участвуют в том числе и российские команды. Один из проектов - NoC-based multiprocessing system prototype. Это прототип сети на кристалле с большим количеством узлов на основе процессоров Станислава Жельнио @sparf (по книге Харрис & Харрис "Цифровой синтез и архитектура компьютера") https://github.com/MIPSfpga/schoolMIPS. Делает студент 4 курса МИЭМ НИУ ВШЭ:



The world of FPGAs is not limited to Xilinx and Altera / Intel. There are several much smaller vendors, like Lattice and Microsemi / Actel, and even small companies that do not design the end chips themselves bit license the design of FPGA cell blocks to ASIC companies. A useful application would be to create a reconfigurable coprocessor connected to a fixed high-frequency CPU core. Another application is security: some companies wants to hide their secrets in reconfigurable logic rather then to show the layout of their fixed logic to a motivated researcher with electron microscope and a lot of time.

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





Every DAC has several FPGA board vendors. Not the vendors of cheap student boards like Digilent and Terasic, that start from $55, but FPGA boards for ASIC prototyping that can cost $30,000, $100,000 or more.

На DAC традиционно присутствуют производители плат FPGA. Они продают не дешевые студенческие платы за $55 долларов, а серьезные FPGA платы за $55 _тысяч_ долларов и выше. Их клиент - не студент, а суровый коллектив разработчиков ASIC-а, который использует большие платы для прототипирования.



What if a researcher did some proof of concept using FPGA and now wants to manufacture his own ASIC? A typical commercial order to manufacture an ASIC usually requires the initial payment from ~$300K to ~$3,000,000 depending on process technology. However there are specialized companies, Europractice in Europe and MOSIS in US, that sell small quantity "shuttle" services, or multi-project wafer (MPW) services, starting with just $3000 for 180nm technology or just tens thousand dollars for something modern, like 28nm.

А что если студенту или суровой компании захотелась сделать настоящий ASIC на фабрике, а денег мало или жалко? Или, если не жалко, то это тестовый чип или совсем небольшая партия? Для этого в Америке есть компания MOSIS, а в Европе - Europractice. Несколько тысяч долларов - и у вас в руках спроектированный вами чип на технологии типа 180 нанометров. Пару десятков тысяч - и у вас в руках ваш чип на более свежей технологии, например 28 нанометров, как у пятого Айфона. Замечу что за массовое коммерческое производство начальный платеж фабрике от сотен тысяч долларов для старых технологий до двух-трех миллионов для новых.





Интересно что у Europractice есть клиенты в России, даже в Омске. Признавайтесь, кто в Омске проектирует ASIC-и.

Europractice has a number of Russian companies, including somebody in Omsk:





There are companies with business models that are somewhat mysterious to me. For example I don't understand how this company below can survive on a niche Eclipse plugin. I guess they get most revenue selling some consulting services.

Существуют компании, про которые я не понимаю, как они зарабатывают. Например вот эта продает очень нишевый плагин к Eclipse. Наверняка они живут не на него, а на какой-нибудь консалтинг.



Another niche company with non-obvious business model. They translate a description of software-visible registers into Verilog glue logic and other interface files. I guess this company may have some Cisco-type large customer that got hooked on their technology long time ago and pay them since then.

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



A melancholic gentleman from Huawei described their achievements in networking chips. Huawei is obviously dependent on US EDA tools, even more than on Android market and ARM CPU cores. They amount of money and the number of technical experts necessary to develop an equivalent of Synopsys IC compiler is much larger, in my opinion, than the resources needed to design a high-end competitor for ARM cores.

На выставке сидел и представитель Huawei с выражением светлой печали на лице. Замечу, что если американское правительство заставит американские EDA компании банить китайцев, то китайская ситуация будет гораздо хуже, чем сейчас, так как клонировать Synopsys IC Compiler технически сложнее, чем процессорные ядра ARM и Android Market.



Every DAC since 1998 had at least one company developing yet another C-to-Verilog compiler. Back in 1998 it was my own startup. This year it is somebody else:

На каждой выствке DAC c 1998 года была по крайней мере одна компания, которая компилирует C в Verilog. В 1998 году такой компанией был мой собственный стартап. В этом году кто-то другой:



This gentleman earns his living by selling solutions that counter so-called "Zakladki" (a Russian term, a plural of "Zakladka"). I explained to him the meaning of the term and he agreed that this is what he sells.

Вот товарищ зарабатывает на жизнь анализаторами закладок в процессоры:



I brought to DAC my student daughter so she can see how daddy earns living:

В Лас-Вегас я привез свою дочь, чтобы она посмотрела, как в суровом индустриальном мире электронной промышленности люди зарабатывают деньги, и поняла, что папины доллары не на деревьях ростут:



Party after the exhibition:

На парти после выставки:



After the exhibition I did MIPS Open Developer Day together with my colleagues from Wave Comnputing. We got a number of people from some of the above companies + my Russian friends from VivEng, a California Silicon Valley mixed-signal design services that also had some customers in Zelenograd, a Russian Silicon Valley. First we made a presentation, then the participants did some exercises on Digilent Nexys4 DDR and Terasic DE10-Lite FPGA boards.

Потом я вместе с коллегами проводили семинар MIPS Open. На него пришли товарищи из некоторых описанных компаний, в том числе тех, которые лицензируют встроенные FPGA и EDA тулы, продают сервисы для производства, проводят трейнинги по верификации, а также делают чипы как таковые. А также мои старые знакомые из русской компании VivEng. Мы с коллегами показывали вот такие слайды, после чего участники пробовали примеры на FPGA платах Digilent Nexys4 DDR и Terasic DE10-Lite.

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

If you want to reproduce the results, you can do the following:


  1. Go to https://www.mipsopen.com/mips-open-components/mips-open-fpga-getting-started-guide.

  2. Download the standard MIPSfpga 2.0 package.

  3. Go to https://github.com/MIPSfpga/mipsfpga-plus.

  4. git clone https://github.com/MIPSfpga/mipsfpga-plus.git

  5. Copy core RTL files from MIPS Open FPGA package to core subdirectory of MIPSfpga+ package - see the instruction in https://github.com/MIPSfpga/mipsfpga-plus/tree/master/core


На вашем компьютере должен быть установлен или Intel FPGA Quartus Prime Lite Edition, или Xilinx Vivado, а также Codescape GCC Bare Metal Toolchain. После этого вы можете следовать инструкциям со слайдов:

You need to have Intel FPGA Quartus Prime Lite Edition or Xilinx Vivado installed on your system, as well as Codescape GCC Bare Metal Toolchain. After this you can follow the instruction from the slides:


  1. cd your_git_directory/boards/board_directory (for example de10_lite or nexys4_ddr)

  2. make all load

  3. Press reset (or KEY 0 on some boards) to reset the processor.

  4. The default hardcoded program should start to work.

  5. cd your_git_directory/programs/00_counter (or other program)

  6. make program srecord uart

  7. If computer uses serial connection other than ttyUSB0 (the default), then:

  8. make program srecord uart UART=1 (or 2, 3, etc)

  9. The program uploaded via USB-to-UART is now running.




В презентации я показывал, как встроить в процессор блок, который декодирует и выполняет дополнительные к основной системе команд инструкции, которые может определить разработчик системы на кристалле. Блок может быть синтезирован и стать частью микросхемы или быть сконфигурирован в ПЛИС/FPGA.

Дополнительные инструкции двигаются по конвейеру процессора вместе с основными. Они получают данные из видимых программистом регистров общего назначения и могут вернуть результат в регистр. Эти инструкции также могут сохранять в сопроцессоре некое состояние. Их можно убить исключениями, если исключение произойдет например в следующей за данной инструкцией в конвейере:

The presentation has a detailed explanation, how to add user-defined processors instructions to MIPS microAptiv UP CPU core and synthesize it together with some simple SoC for FPGA board:



Фрагмент кода на языке описания аппаратуры Verilog из текста примера. Этот код реализует, на уровне регистровых передач (Register Transfer Level - RTL), специализированную инструкцию для вычисления сверточной нейросети:

A fragment of a custom CorExtend module that implements a User-Defined Instruction (UDI) for a special case of neural net computation:



Tomorrow I am flying to Russia to help with another seminar, not for electronic and EDA professionals, but for kids interested in exploring careers in digital microelectronic design. For this trip I created a simple 2D videoprocessor integrated with MIPS Open FPGA core, as well as an example of a hardware-only (no CPU or software) game for VGA. Kids like games and I am going to use game design to teach them the basics of RTL methodology:

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

Для него я написал примеры реализации простой спрайтовой графики на FPGA. Синтезированная из верилога схема рисует спрайты на экране VGA.

Вот работающий пример в чистом хардвере (исходники на гитхабе). Вариант морского боя, где красный спутник-торпеда охотится за вражеским синим крестом:



А вот пример на сочетании хардвера и софтвера - салют из спрайтов. Хардверная часть и софтверная часть:



Да, и я обещал выложить свои речи в Лас-Вегасе. Вот кусок:



View of the Las Vegas Strip when its getting dark but there are no crowds yet:

И вид улицы на стрипе, когда уже вечереет, но еще нет толп:




During two days in Las Vegas I did not get a chance to gamble, so I played with $1 when our plane back to San Jose was boarding in Las Vegas airport:

За все это время в Лас-Вегасе я так и не сыграл, так как то ходил по выставке и разговаривал на электронные темы, то проводил семинар. Но во время посадки в самолет я все-таки отметился, проиграл один доллар:

https://panchul.livejournal.com/593161.html



Поиск сообщений в lj_panchul
Страницы: 51 50 [49] 48 47 ..
.. 1 Календарь