Category: литература

2017

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

Наконец-то в России вышел учебник по SystemVerilog уровнем выше чем для начинающих. Учебник описывает технологии и приемы, которые спрашивают на интервью в NVidia, Intel, AMD, Apple и другие электронные компании: использование concurrent assertions и functional coverage, что сейчас требуют не только от инженеров по верификации, но и от дизайнеров микросхем; алгоритм работы симулятора с дельта-циклами; вменяемое объяснение static timing analysis; схемы коммуникации аппаратных блоков через аппаратные очереди; реализацию этих коммуникаций с помощью конечных автоматов с трактами данных и т.д.

Наконец-то в России вышел учебник по SystemVerilog уровнем выше чем для начинающих. Учебник описывает технологии и приемы, которые спрашивают на интервью в NVidia, Intel, AMD, Apple и другие электронные компании: использование concurrent assertions и functional coverage, что сейчас требуют не только от инженеров по верификации, но и от дизайнеров микросхем; алгоритм работы симулятора с дельта-циклами; вменяемое объяснение static timing analysis; схемы коммуникации аппаратных блоков через аппаратные очереди; реализацию этих коммуникаций с помощью конечных автоматов с трактами данных и т.д.

В главе про последнее российского читателя может озадачить упоминание "политкорректной системы". Что бы это значило? Это вероятно намек на казус, который произошел в округе Лос-Анжелес в 2003 году. Чиновники Лос-Анджелеса попросили производителей, поставщиков и подрядчиков прекратить использование терминов "master/slave" («хозяин» и «раб») в отношении компьютерного оборудования, так как одному из работников округа эти термины напомнили про рабовладельческое прошлое.

Сейчас авторы технической литературы избегают терминов master/slave. В современной Америке работают и афро-американские инженеры (например София Мвокани из Камеруна - на фото слева), и использование старых терминов выглядит архаично, как выглядели бы например термины "пан/холоп" в украинской технической литературе вместо принятых "провідний/ведений" (рус. "ведущий/ведомый").

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



Полное изображение эмблемы под кожанкой Татьяны Александровны - под катом, но в основном я буду рассказывать про дельта-циклы и конечные автоматы:
Collapse )

Какие темы поста вас заинтересовали?

Алгоритм работы симулятора и импортозамещение
2(10.5%)
Аппаратные потоки и системы безопасности автомобилей
1(5.3%)
Языки темпоральных утверждений, решатели ограничений псевдослучайной генерации и функциональное покрытие
3(15.8%)
Сибирская девушка Ирина с Харрис & Харрис
4(21.1%)
Cтатьи Клиффа Каммингса
2(10.5%)
Черные Пантеры конечно!
5(26.3%)
Из-за бугра плюете?
2(10.5%)
2017

Заметки во время ревью главы про мультиплексоры для российского лабника по Verilog+RTL+FPGA

Сегодня я делал ревью главы про мультиплексоры для российского лабника по Verilog+RTL+FPGA. Во время ревью я заметил, что в главе не хватает некоторых полезных идей, которые есть в других книгах. Поэтому я оставляю куски этих книг здесь, а потом буду на этот пост ссылаться.

1. В главе под ревью показно, как сделать мультиплексор из логических элементов. Но в ней не показано, как сделать любой логический элемент из мультиплексора. В частности любую функцию двух вводов, используя четырехвходной мультиплексор. Это важная идея, которая подводит читателя к устройству LUT в FPGA. Эта идея описана в книжке Harris & Harris (см. скриншоты ниже).

2. Помимо общего случая с lookup table (1) существует популярный элементарный вопрос для собеседований "сделайте такую-то gate из двухвходового мультиплексора и инвертора". Это стоит ввести в вопросы в конце главы (см. ответы в книжке Digital Logic Interview Questions ниже).

3. У читателя главы может сложится впечатление, что все мультиплексоры во всех микросхемах строятся из логических элементов. Это не так - разные виды MUX-ов как правило есть в ASIC libraries в standard cell design, не говоря уже о custom design. Это стоит упомянуть, со ссылкой на книжку CMOS VLSI design by Weste & Harris. На страницах ниже показано как сделать mux из transmission gates, транзисторов и tristate elements. Tristate наверное упоминать не надо, но про компактную реализацию mux для ASIC или custom пару предложений стоит сказать.

4. Важным моментом является использование mux-ов для resource allocation and sharing в арифметических операциях. В книжке Bhasker-а приводится пример экономии целого ALU с помощью перестановки mux-а для управления операндом. Его стоит привести с ссылкой на книжку Bhasker-а. Операции такого рода часто делаются например в схемах для DSP:

5. Пару кусков кода в главе можно улучшить с помощью feature которая называется variable vector part select. Есть куча людей, которые считают, что это черта SystemVerilog, а не Verilog, но на самом деле это черта Verilog-2001, и ее можно спокойно использовать, даже если требование блока использовать только Verilog, и не SystemVerilog. Сейчас поддержка тулами Verilog-2001 практически такая же, как и Verilog-95, поэтому большинство компаний стандартизуются минимум на Verilog-2001 даже для самого консервативного синтезируемого подмножества языка:

Страницы (с повторением текста):
Collapse )
2017

Пролистал 2-е издание Hacker's Delight в поисках занятных задач для лабника по Verilog & FPGA

Hacker's Delight - чрезвычайно занятная книжка, назначение которой народ совершенно не понимает. Хотя разумеется не весь народ. Например у нас в офисе MIPS эту книжку любят - когда я забыл ее где-то (наверное в туалете), ее заметил мой коллега, начал ее читать, зачитался, и я нашел книжку только через неделю, после того, как разослал емейл по всему офису.

Но почитайте комменты к первому и второму изданию этой книжки на Озоне:


Отзыв 1: "Очередной опус из серии "Как облапошить компилятор" -- классика стиля программистов на С. Собственно, ничего другого по C и программистами на C и не написано. Это не алгоритмические трюки -- это трюки с плохим языком программирования. На практике малополезно и методически вредно".

Отзыв 2: "Ничего не могу сказать против этой книги, но она явно предназначена для узкого круга специалистов. Например, для тех, кто хочет ускорить на десять процессорных тактов операцию деления за счет снижения переносимости и полной нечитабельности кода.
В наш век большинство программистов пишут на таких языках как C# или JavaScript, поэтому виртуальная машина или интерпретатор съест всю выгоду описанных хакерских трюков, а поддерживать код становится трудно".



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

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

1. Пишет компиляторы.

2. Пишет стандартные библиотеки программ на Си и ассемблере.

3. Работает над компьютерной архитектурой: анализирует смеси инструкций в приложениях и придумывает, какие инструкции добавить в систему команд процессора.

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

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

Так вот. Я пролистал книжку Hacker's Delight ( https://doc.lagout.org/security/Hackers%20Delight.pdf ), чтобы найти в ней какие-нибудь занятные алгоритмы и трюки, на основе которых можно было бы сделать задачки для лабника по разработке аппаратных блоков на уровне регистровых передач, с использованием языка описания аппаратуры Verilog и с реализацией на программируемых логических интегральных схемах ПЛИС / FPGA.

Зачем нужны именно задачки на основе примеров и идей из Hacker's Delight? Чтобы добавить что-нибудь новое, яркое, а не повторять одни и те же унылые упражнения из tutorials от Xilinx, Altera и учебников 25-летней давности.

И вот что я выудил из пролистывания Hacker's Delight (второго издания - это важно - в интернете можно отыскать PDF первого издания, но не второго, часть моих находок именно из второго издания):

Collapse )

Какие идеи для упражнений и студенческих проектов вам понравились?

1. Быстрое выключение самой правой из единичек в последовательности битов
1(3.1%)
2. "Русская декомпозиция" функции от трех булевских аргументов в исключающее-или от двух функций двух переменных
2(6.2%)
3. Быстрый подсчет количества единичек в слове
3(9.4%)
4. Нахождение LRU (least recently used), используется для работы многосекционного кэша
4(12.5%)
5. Вычислитель для особого случая деления на константу 3
4(12.5%)
6. Извлечение целочисленного квадратного корня
4(12.5%)
7. Извлечение целочисленного кубического корня
2(6.2%)
8. Gray code и gray counter, с привязкой к асинхронному FIFO и clock domain crossing
2(6.2%)
9. CRC: пример последовательностной схемы с LFSR, привязка к математике и к надежным чипам для космоса и автомобилей
3(9.4%)
10. Error-correcting codes: продолжение темы CRC для продвинутых студентов, возможная тема для курсового проекта
4(12.5%)
11. Хардверный вычислитель для кривой Пеано-Гильберта, которая извивается, покрывая все пространство
2(6.2%)
12. У меня другое предложение (привести в комментариях)
1(3.1%)
2017

Следущие шаги в черной магии процессоростроения после того, как вы освоили Харрис & Харрис

Недавно вышло еще одно печатное издание книжки Харрис & Харрис на русском языке. Это широкоохватывающий ликбез про то, как проектируют микросхемы в компаниях типа Apple и Intel (методология проектирования на уровне регистровых передач с использованием языков описания аппаратуры). До этого печатного издания вышло бесплатное электронное издание этой же книжки, которое стало вирусным - его скачивания дважды завалили британский сайт Imagination Technologies, а посты о книжке на Хабре и Гиктаймс собрали более 300,000 просмотров (1, 2, 3, 4, 5 ). История перевода книжки на русский тоже довольно поучительна - он начался как общественный проект группы энтузиастов: преподавателей российских и украинских университетов, а также русских сотрудников компаний как в Silicon Valley (MIPS, AMD, Synopsys, Apple, NVidia ...) так и в России (НИИСИ, МЦСТ, Модуль ...). Когда вышло первое печатное издание на русском языке, его тоже довольно быстро раскупили и пожаловались, что оно черно-белое. Поэтому следующий принт был цветной, улучшенного качества.

Теперь возникает вопрос: ну хорошо, вы приобрели или скачали бесплатно книжку, поняли основы цифровой схемотехники, языков описания аппаратуры Verilog и VHDL, приобрели вкус писания на ассемблере и разобрались с организацией простейшего конвейерного микропроцессора, а также как все это стыкуется с периферийными устройствами и встроенным программированием. Что делать дальше?



На снимке - Татьяна Волкова, сотрудница образовательных программ компании Samsung в Московском Физико-Техническом Институте

Collapse )
July 2016

Запрещена на Украине: книжка, которая учит россиян проектировать айфоны

По сообщениям ТАСС, украинское правительство запретила импорт любых книг из России. Тем самым под запрет формально попала и книга ЦИФРОВАЯ СХЕМОТЕХНИКА И АРХИТЕКТУРА КОМПЬЮТЕРА, изданная недавно на бумаге российским издательством ДМК Пресс. В чем-то запрет абсолютно логичен:


  1. Книжка вводит, в том числе россиян, в проектирование цифровых микросхем на основе методологии RTL-to-GDSII

  2. Методологию RTL-to-GDSII применяют проектировщики айфонов и айпадов в Купертино, Калифорния

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







Заказ книжки можно сделать на официальном сайте издательства ДМК-Пресс

А также в магазине Лабиринт - ведущем распостранителе книг в СНГ:

http://www.labirint.ru/books/570643



Collapse )

Как будет воплощаться в жизнь запрет на импорт в Украину книжек из России?

Украинцы захотят выучить английский язык, а на русском читать перестанут
9(17.0%)
Решения украинского правительства активно одобрит стоящая за них горой мировая общественность
8(15.1%)
Украинские издательства завалят читателей книгами по RTL2GDSII методологии на украинском языке
9(17.0%)
Книжки будут ввозить на Украину пассажиры поездов "Москва - Кишинев", в чемоданах с двойным дном
17(32.1%)
Из-за бугра плюете?
10(18.9%)
July 2016

Харрис и Харрис

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


Эта книга - не документация, а учебник по основам для 16-летних. Практика показала (по словам Тимура Палташева, старшего менеджера AMD в Саннивейл, одновременно профессора ИТМО в Санкт-Петербурге), что если объяснять простые вещи (скажем основы цифровой логики или архитектуру / программирование на ассемблере), то российские студенты 1-2 курса по английски понимают неплохо, но вот когда дело доходит до микроархитектуры (устройство конвейера), тогда они на английском начинают терять нить рассуждений - для более сложной тематики младшекурсникам в России лучше читать на русском.

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



Originally posted by 1500py470 at Харрис и Харрис
Сбылась мечта panchul и таки в издательстве ДМК вышла в свет книга о которой он так много говорил, писал, толкал итп. Можно поздравить с таким событием главного толкателя этого проекта.

IMG_3330




Кем вы были в 13 лет?

У меня был драйв учить математику, но учить английский было тягостно
25(62.5%)
Меня не возбуждала геометрия Эвклида и теория групп, но от заучивания спряжения неправильных глаголов я фанател(а)
1(2.5%)
Мне нравилась и геометрия, и химия, и английский, и украинская литература, и физкультура, и История КПСС
3(7.5%)
Я любил(а) алкоголизм, проституцию и наркоманию; обычные школьные предметы мне были безразличны
7(17.5%)
Из-за бугра плюете?
4(10.0%)

Полезная статья Ивана Шевчука "Junior FPGA Design Engineer: как стать?"


Полезная статья Ивана Шевчука "Junior FPGA Design Engineer: как стать?"

http://www.silicon-russia.com/2016/04/29/junior-fpga-design-engineer/

Всем привет!

Иногда начинающие разработчики не очень хорошо представляют, какую литературу надо читать для серьезного изучения того или иного языка.

Разработка под FPGA - это не просто какой-то язык. Это очень объемная область, с огромным количеством подводных камней и нюансов.

В этой статье вы найдете:

  • список тем, которые должен освоить начинающий разработчик под FPGA

  • рекомендуемую литературу по каждой из тем

  • набор тестовых вопросов и лабораторных работ

  • классические ошибки новичков (и советы по исправлению)


Что надо знать и уметь



Collapse )

P.S. Оригинал статьи и последняя версия доступны тут.

Макфол разволновался от сравнения Университета Монтаны с Московским МГУ

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

Я заметил, что у Университета штата Монтана та же аббревиатура, что и у Московского Государственного Университета (MSU - Montana State University или альтернативно Moscow State University) и для поддержания беседы рассказал Макфолу, что команда факультета ВМК МГУ победила на международном соревновании «2015 CAD Contest at ICCAD» по решению прикладных математических задач в области автоматизации проектирования интегральных схем. После чего поинтересовался результатами макфоловского MSU в этой же области.

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








Collapse )

Вообще алгоритмы в области автоматизации проектирования интегральных схем очень интересны, это одна из областей, которым можно посвятить жизнь. Я познакомился с данной областью в 1995 году, когда начал работать в Mentor Graphics. В то время я выучил Verilog и начал посматривать вокруг на смежные области. Мне тогда попала в руки вот такая книжка и я заценил красоту алгоритмов. Авторы кстати из Саудовской Аравии, интересно, что они думают про Макфола:

Collapse )

Согласны ли вы с Майклом Макфолом, что мой вопрос "Did anybody from Montana State win anything like that?" является оскорблением?

Да, это явный наезда на Макфола, США и Украину в стиле наездов на Радулову
19(25.0%)
Нет, в вопросе про университет я не вижу однозначного наезда. Возможно Панчулу было еще и интересно про Монтану
8(10.5%)
По-моему, Макфол слишком нервный для дипломата, и даже просто для изучателя России
26(34.2%)
Я подозреваю, что Макфол не в духе, глядя как Керри разгуливает по Арбату, который Макфол считал своей территорией
20(26.3%)
Из-за бугра плюете?
3(3.9%)

Конвейерный сумматор + self-timed схемы из Digital Arithmetic by Milos D. Ercegovac and Tomás Lang

Перед началом семинара по MIPSfpga в МИФИ один из инструкторов стал спрашивать меня на тему race conditions в некоей схеме для специализированных вычислений, которая возникла у них как студенческий проект. Я не уверен, что его правильно понял, но высказал, что в правильно организованном синхронном дизайне таких проблем не возникает и пообещал прислать в качестве примера фотографию страницы из книжки "Цифровая арифметика", на которой разбирается организация конвейерного сумматора, который содержит малое количество комбинаторной логики (такое же как в сумматоре с последовательным переносом), но при этом размещает регистры (D-триггеры) таким образом, что сумматор может запускать новую операцию сложения каждый такт, с частотой тактового сигнала, определяемой задержкой однобитного полного комбинационного сумматора.

Заодно сфотографировал пару страниц про self-times асинхронные схемы (они не имеют отношения к конвейерному сумматору, просто оказались на соседних страницах и заодно являются альтернативным ответом на исходный вопрос):

Digital Arithmetic 1st Edition by Milos D. Ercegovac and Tomás Lang

digital_arithmetic_by_milos_ercegovac_and_tomas_lang_coverdigital_arithmetic_by_milos_ercegovac_and_tomas_lang_91

Collapse )

Стоит ли ввести дизайн арифметических блоков как постоянную тему моего блога?

Да, вместо феминистических журналисток
6(17.1%)
Да, вместо Украины
6(17.1%)
Да, но с условием изучения асинхронных дизайнов
14(40.0%)
Лучше расширить в блоге тему калифорнийских хвойных лесов
7(20.0%)
Из-за бугра плюете?
2(5.7%)

Поздравляю с празником всех сделавших рывок к Свободе!

Сегодня двухлетний юбилей начала Евромайдана, великой драмы, когда 50 миллионов бывших советских людей в лице своих передовых представителей и с поддержкой нашего Госдепа устремились в Европу, как Икар к Солнцу:




В обычной жизни драмы мало, а тут каждый яростный украинец получил возможность легально поиграть в Балладу о рыцаре Айвенго и побросаться в полицейских горючими смесями, за что в Америке он бы сразу получил пулю в лоб:



Майдановцев не смущало то, что американцам и европейцам, на которых они молились, Украина была довольно по барабану и никакой речи о том, чтобы прислать на Украину американский авианосец, никогда не было:

http://www.huffingtonpost.com/2014/03/03/ukraine-poll_n_4891224.html

Respondents were also largely uncertain about who exactly in the international community should get involved, if anyone. Only 14 percent of respondents said that the U.S. had any responsibility to do so. And people were only slightly more likely to say that the United Nations (20 percent) or European Union (18 percent) have a responsibility to get involved. Fifteen percent said NATO should get involved, and 9 percent said Russia itself has a responsibility to ease the situation.


Тем не менее, за два года борьбы результаты несомненны. Но даже если бы их не было - некоторые современные физики и некоторые персонажи Пелевина считают, что реальность и время - иллюзии, и следовательно, героическая вселенная, кратиковременно созданная в мозгах участников Майдана 2 года назад - является не менее реальной, чем унылая реальная не-манихейская вселенная, в которой украинцы не стоят передовым отрядом on behalf of the West, сражаясь с гидрой Зла с Востока.

Какие положительные изменения вы заметили в украинской жизни?

В аэропорту Борисполь стоит табличка "Для украинцев и членов ЕС"
11(17.7%)
В лесу в Лос-Альтос-Хиллс, Калифорния какие-то приезжие перекрасили пожарный гидрант в желто-синие цвета
21(33.9%)
Уважаемый всей планетой Сорос впервые инвестировал в украинскую аутсорс-компанию
7(11.3%)
Яценюк смог отвергнуть предложение кровавого Путина о реструктуризации $3B вместо того, чтобы приползти к нему на коленях
22(35.5%)
Другое (пояснить в комментариях)
1(1.6%)