Pull to refresh
2
0

Инженер-программист

Send message

Реализация FizzBuzz на FPGA

Reading time13 min
Views16K
Недавно я увлёкся программированием FPGA и решил, что будет интересно реализовать на FPGA алгоритм игры FizzBuzz. FPGA (программируемая пользователем вентильная матрица) — интересная микросхема. Она программируется на выполнение произвольной цифровой логики. Можно сконструировать сложную схему, не прокладывая физические каналы между отдельными вентилями и триггерами. Микросхема способна превратиться во что угодно, от логического анализатора до микропроцессора и видеогенератора.

Тест FizzBuzz — написать программку, которая выдаёт числа от 1 до 100, где кратные трём заменяются словом “Fizz”, кратные пяти — словом “Buzz”, а кратные пятнадцати — “FizzBuzz”. Поскольку такая программа реализуется в нескольких строчках кода, то её часто задают на собеседованиях чтобы отсеять тех, кто вообще не умеет программировать.


Плата Mojo FPGA, подключенная к порту serial-to-USB. Большой чип на плате — это Spartan 6 FPGA

Реализация FizzBuzz в цифровой логике, а не в коде, довольно бессмысленна, но показалась мне хорошим примером для обучения.1 Для этого проекта я использовал простую плату разработки Mojo V3 FPGA для начинающих. На ней установлен FPGA семейства Xilinx Spartan 6. Это один из самых маленьких FPGA, но у него 9000 логических ячеек и 11 000 триггеров — так что малыш на многое способен.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments11

Particle анонсировала три новые платы с поддержкой Mesh-сетей

Reading time1 min
Views8.7K


Компания Particle (ранее известная как Spark) вчера анонсировала третье поколение своих микроконтроллеров для Интернета вещей. Главной особенностью новинок является поддержка Mesh-сетей.
Total votes 16: ↑15 and ↓1+14
Comments5

Температура и давление фантастики — часть 1/3

Reading time13 min
Views58K
Предлагаемая вашему вниманию заметка рассказывает про пространство состояний материи. Которое, в некотором смысле, обширнее, чем пространство расстояний между объектами в космосе, и иногда так же трудно преодолевается.

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

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

Часть 1. pT-диаграмма

Читать дальше →
Total votes 143: ↑143 and ↓0+143
Comments240

Вероятное будущее производства микроэлектроники: безмасочная многолучевая электронная литография от Mapper Lithography

Reading time5 min
Views44K
Кто-то вероятно уже слышал о том, что Роснано в конце 2012-го года инвестировала в компанию-разработчика оборудования электронной литографии Mapper Lithography. Что и как они делают, спасет ли это отечественную микроэлектронную промышленность — узнаем в этой статье.

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

Этот подход имеет ряд недостатков: необходимость изготовления фотошаблонов для каждой новой микросхемы (опустим тут возможность группового производства) — приводит к тому, что продукты обязаны быть крупносерийными, миллионы штук, чтобы окупать стоимость фотошаблонов (до нескольких миллионов $ на каждый тип микросхемы). И с другой стороны — длина волны света ограничивает минимальные размер рисуемых элементов. Сейчас мировая промышленность уже вплотную подошла к теоретическому пределу разрешения оптической литографии: ~35nm для сканеров NA=1.35 с ArF лазерами на длине волны 193нм и ~18нм для литографии на жестком ультрафиолете EUV (однако в серийном производстве это пока не используется).

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

На фотографии — симуляция попадания электрона в электронрезист, демонстрирующая проблему с разрешением электронрезиста из-за рассеяния электронов.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments50

Делаем IBM PC на FPGA

Reading time3 min
Views83K
Думаю многие, кто работал с FPGA думали — а не сделать ли свой компьютер полностью на ней, с x86 процессором, периферией и прочим? 8-и битные компьютеры часто реализовывали в FPGA, но вот целый PC…

Для успешной работы помимо x86 процессора нужен еще BIOS со всеми реализованными прерываниями (включая доступ к «диску» на SD карте), BIOS VGA-совместимой видеокарты, вся периферия, контроллер памяти, таймер и многое другое. Задача намного сложнее чем кажется на первый взгляд, но тем не менее, в проекте ZetCPU она решена.

Из ограничений — работает только 16-и битный режим на 12.5Mhz, без математического сопроцессора.
Читать дальше →
Total votes 66: ↑62 and ↓4+58
Comments47

Делаем микросхемы дома — шаг 2

Reading time6 min
Views88K
С момента публикации первой статьи по моему проекту домашних микросхем прошел (скорее пролетел) год, пора поделится прогрессом и новыми проблемами.

Изначальная цель проекта — научиться изготавливать микросхемы в домашних условиях, состоящие из сотен/тысяч транзисторов (уровня КР580ВМ80А / Z80).

Из-за того, что проект получился достаточно большим по требуемым ресурсам и времени — я решил получить в качестве дополнительного результата — документированный, максимально простой open-source техпроцесс, позволяющий создавать микросхемы в ограниченных условиях. В США, возможно, это было бы хорошим поводом для проекта на kickstarter, но видимо не судьба.
Далее о техпроцессе, логистике и остающихся проблемах
Total votes 158: ↑156 and ↓2+154
Comments114

Поле пашет мирный трактор, по небу летит реактор

Reading time8 min
Views135K

В отличие от атомных взрыволётов, которые существовали только в проектах, и атомных двигателей, которые дошли до стадии наземных испытаний, ядерные реакторы использовались в космосе для получения энергии и летали достаточно массово, в космос их слетало больше трех десятков.
Читать дальше →
Total votes 118: ↑115 and ↓3+112
Comments57

Прекрасные чудовища математики

Reading time11 min
Views56K
image

UPD: добавлен график функции.

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

В конце концов Вейерштрасс отправил одну из своих статей в уважаемый «Журнал Крелле». Несмотря на то, что предыдущие статьи остались едва замеченными, эта вызвала огромный всплеск интереса. Вейерштрасс обнаружил способ работы с ужасным классом уравнений, известным как «абелевы функции». В статье было приведено краткое изложение его методов, но этого было достаточно, чтобы убедить математиков в наличии у автора уникального таланта. Не прошло и года, как Кёнигсбергский университет дал Вейерштрассу почётную докторскую степень, а вскоре после этого Берлинский университет предложил ему должность профессора. Несмотря на то, что Вейерштрасс проделал интеллектуальный аналог пути «из грязи в князи», многие из его старых привычек сохранились. Он редко публиковал статьи, предпочитая делиться своими работами со студентами. Но он был малопочтителен не только к процессу публикации: не пугали его и «священные коровы» математики.
Читать дальше →
Total votes 99: ↑99 and ↓0+99
Comments63

Как работает микроэлектронное производство и что нам стоит дом построить?

Reading time8 min
Views180K
Многие наверняка не раз задавались вопросом, почему процессоры, видеокарты и материнские платы которые мы покупаем в магазинах — разработаны и сделаны где угодно, только не в России? Почему так получается, неужели мы только нефть качать можем?

Сколько стоит запуск производства микросхемы, и почему при наличии 22нм фабрик, бОльшая часть микросхем по всему миру до сих пор делается на «устаревшем» 180нм-500нм оборудовании?

Ответы на эти и многие другие вопросы под катом.
Читать дальше →
Total votes 228: ↑222 and ↓6+216
Comments147

AMD Ryzen: взгляд изнутри

Reading time6 min
Views29K
Характеристики процессоров AMD Ryzen и игровых станций на их основе позволяют осторожно предположить окончание непростого периода у «альтернативного» чипмейкера и претензии на лидерство. Не претендуя на истину в последней инстанции проанализируем некоторые детали — функциональные расширения базового набора x86-инструкций в семействе процессоров AMD Family 17h.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments81

Моделирование смешанных схем на System Verilog

Reading time7 min
Views11K

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


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


Так как мы живем в аналоговом мире, то даже цифровая микросхема должна уметь с этим миром общаться. Цифровые микросхемы содержат на кристалле десятки больших аналоговых блоков, таких как АЦП, ЦАП, ФАПЧ, блоки вторичного питания и т.д. Исключением из этого правила, вероятно, являются только большие процессоры, типа Core i и т.п., где все это хозяйство вынесено в чипсет.

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments3

Обзор плат на SoC ARM+FPGA. Часть 2. Мир Intel (Altera)

Reading time6 min
Views33K
Часть 1. Мир Xilinx
Часть 2. Мир Intel (Altera)

Продолжаем обзор девелоперских плат на основе SoC с ядром ARM. На этот раз мы рассмотрим платы на SoC Cyclone V. Это не единственный SoC компании Intel, есть ещё Arria V, Arria 10 и Stratix 10, но цена плат на их основе вас точно не обрадует.

К сожалению, плат на основе Cyclone V гораздо меньше, чем на Xilinx Zynq, и в основном они производятся одной компанией, Terasic. Есть ещё плата Arrow SocKit, но она полностью эквивалентна плате Terasic SoCKit. Основная информация по платам Terasic сосредоточена на сайте rocketboards.org. Там можно скачать разные полезные материалы, образы дистрибутивов Linux, там же находится форум. Форум довольно вялый, и на получение поддержки там я бы не рассчитывал, но лучше что-то, чем ничего.

Также компания Terasic продаёт некоторые платы по сниженной цене при наличии студенческого билета («academic price»). Насколько это реально для российских студентов, я не знаю, но если кто-то имел опыт такой покупки, будет интересно узнать. Пишут, что, например, Digilent при запросе покупки по академической цене отсылает к российсим дистрибьюторам, у которых цены завышены в 2-3 раза. Может быть, Terasic поступает иначе.

Кроме продукции компании Terasic мы рассмотрим также две платы производства компании EBV. Другие компании, выпускающие продукцию на Cyclone V, делают в основном модули SoM, а не девборды, и в обзор не попали.

Осторожно, много картинок!
Total votes 16: ↑16 and ↓0+16
Comments13

Интерфейс мозг-компьютер перестал быть научной фантастикой

Reading time13 min
Views28K
image

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

Это, конечно, круто, но гораздо важнее то, как происходит этот фокус. Текст на экране создают не его пальцы, а сигналы, которые его мозг отправляет пальцам. Браслеты перехватывают их, правильно интерпретируют и передают этот ввод компьютеру – точно так же, как это делала бы клавиатура. А барабанят ли пальцы Рирдона по столу на самом деле, уже не важно; есть ли у него вообще кисти рук – не важно. Связь осуществляется между мозгом и компьютером. Более того, Рирдон с коллегами обнаружили, что машина может воспринимать и более тонкие сигналы – вроде подрагивания пальца – и не требует реальной имитации печатания.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments27

Немного о программировании ESP8266 на C под FreeRTOS

Reading time15 min
Views34K
Тут должна быть КДПВ, но на нее не хватило бюджета.

Замотивировавшись ответом от Tarson на мой комментарий к Программирование и обмен данными с «ARDUINO» по WI-FI посредством ESP8266, решил написать про основы программирования ESP8266 на C под FreeRTOS. Подробности под катом.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments47

Обзор плат на SoC ARM+FPGA. Часть первая. Мир Xilinx

Reading time14 min
Views66K
Часть 1. Мир Xilinx
Часть 2. Мир Intel (Altera)

В опубликованном ранее переводе обзора 98 «хакерских» плат немалый интерес аудитории вызвали платы на базе SoC, сочетающих в себе ядра ARM и FPGA, такие, как Parallella. И это неудивительно, ведь такая комбинация даёт воистину потрясающие возможности по сравнению с «просто» процессором или «просто» FPGA. На таких SoC можно строить системы, сочетающие в себе алгоритмичски сложные задачи, поддержку сетевых стеков, GUI и прочих вещей, проще поддающихся реализации на процессоре, и задачи, требующие жесткого реального времени, обработки сигналов, обработки изображений и другие задачи, для реализации которых удобны FPGA. Разумеется, для многих задач можно использовать простые FPGA (возможно, включив в них IP-ядро процессора типа NIOS II или MicroBlaze), многие задачи можно решить на процессоре достаточной мощности, используя операционные системы реального времени (типа RTEMS), но всё же, SoC являются в настоящее время очень привлекательным вариантом для решения множества задач, как в профессиональных областях, так и для хобби.


Осторожно, много картинок!
Total votes 39: ↑38 and ↓1+37
Comments33

ДНК-оригами: как из ДНК делают интересные штуки нанометрового размера

Reading time12 min
Views85K
Недавно я обнаружил весьма печальный факт: на Хабре совершенно не освещена такая забавная тема, как ДНК-оригами. Есть только один пост 2009 года, рассказывающий лишь самое начало занимательной истории о том, как из ДНК (да-да, той самой дезоксирибонуклеиновой кислоты, несущей нашу генетическую информацию) можно создавать всякие хитрые, плоские и трехмерные штуки нанометрового размера. Та самая нано-технология, как она есть. В этом обзоре я хочу рассказать о развитии ДНК-оригами: двухмерные смайлики из ДНК, трехмерные фигуры, кристаллы из ДНК с запрограммированной структурой, ДНК-«коробочки» с крышкой, способные нести молекулы нужных веществ и выпускать их после сигнала об открытии крышки, и, наконец, динамические структуры типа ДНК-шагохода (walker), гуляющего по подложке (создатели гордо говорят, что это уже наноробот!). Кто хочет узнать больше о том, зачем все это нужно, почитать о технологиях изготовления красивых нанометровых штук из ДНК или просто посмотреть красивые картинки, добро пожаловать под кат.


Так выглядит ДНК-наноробот

Читать дальше →
Total votes 117: ↑117 and ↓0+117
Comments57

История предсказания переходов с 1 500 000 года до н.э. по 1995 год

Reading time18 min
Views43K
Это приблизительная расшифровка лекции о предсказании переходов (предсказании ветвлений) на localhost, новом цикле лекций, организованном RC. Выступление состоялось 22 августа 2017 года в Two Sigma Ventures.

Кто из вас использует ветвления в своём коде? Можете поднять руку, если применяете операторы if или сопоставление с образцом?

Большинство присутствующих в аудитории поднимают руки

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

Цель моего выступления — объяснить, как и почему процессоры осуществляют предсказание переходов, а затем вкратце объяснить классические алгоритмы предсказания переходов, о которых вы можете прочитать в современных статьях, чтобы у вас появилось общее понимание темы.
Читать дальше →
Total votes 77: ↑74 and ↓3+71
Comments77

Нестандартный способ подружиться с STM32: не Ардуино и не Discovery

Reading time4 min
Views26K

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


И на Хабре, и на geektimes уже достаточно много статей, посвящённых микроконтроллерам серии STM32F, например: Дешевая STM32 плата + Arduino IDE, Попытка подружиться с STM32 и ответ на неё Как надо дружиться с STM32 и многие другие. В совокупности они очень хорошо освещают эту тему, но есть одно но… Во всех этих статьях рассматриваются готовые платы и один конкретный контроллер, что на этой плате. А что делать тем, кто хочет поиграться с разными контроллерами, да ещё и на макетной плате? Например, многие известные мне платы с контроллером STM32F4 (та же STM32F4-Discovery) в макетную плату не воткнуть. Но мне лично хочется что-то типа такого (внимание, все картинки кликабельны):



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

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments25

Как фрилансеру открыть фирму в Латвии и какие преимущества это дает

Reading time23 min
Views52K

1. Введение


Всем привет, меня зовут Владислав, я из России, и я фрилансер-программист. Сейчас на Хабре очень популярная тема — юридические и налоговые вопросы при работе с Upwork, как получать и декларировать плату от зарубежных заказчиков, и так далее.



Я тоже довольно долго изучал эти вопросы. Российское законодательство по этим вопросам сильно зарегулировано, и все эти законы и правила причиняют массу проблем фрилансерам, работающим на зарубежный рынок. В итоге я принял решение перевести свой «бизнес» в другую юрисдикцию. Изучив все возможные варианты, я выбрал такой путь — зарегистрировать фирму ООО в Латвии, и принимать платежи от заказчиков на эту фирму. То есть просто переместить свой бизнес из России в Латвию.

Я уже год работаю в таком формате, я сталкивался с разными проблемами и оценил плюсы и минусы. В итоге я решил, что в сумме я выиграл от такого решения. В комментариях к статьям о фрилансе я периодически читаю вопросы типа «как работать на заказчиков из США», «Как платить налоги на платежи с Upwork-а», и поэтому я решил поделится своим опытом, тем более что подобных статей я еще нигде не видел.
Читать дальше →
Total votes 137: ↑132 and ↓5+127
Comments194

Умные часы своими руками за 1500 рублей

Reading time4 min
Views249K
Началась эта история с того, что начитавшись постов с тегом DIY я решил обзавестись набором МК + отладочная плата. Погуглив, узнал что самая дешевая в городе плата это LaunchPad от TI. Не долго думая, отправился за ней в магазин, и понеслась… как и у всех сначала были мигания светодиодами, потом подключение дисплея от Siemens CX75, и т.д.
Вскоре мне надоело делать что-то просто так, без цели, ради того что бы сделать. Так и возникла мысль создать себе гаджет, которым бы я пользовался постоянно.
За подробностями прошу под кат.
Читать дальше →
Total votes 276: ↑272 and ↓4+268
Comments121

Information

Rating
Does not participate
Registered
Activity