Данная статья посвящена разработке аппаратуры на SystemVerilog со стороны человека, который сам только начинает углубленно в этом разбираться. Рассчитана она на то, чтобы другим новичкам было проще сориентироваться в незнакомой среде, поэтому некоторые аспекты здесь будет рассмотрены довольно поверхностно и упрощенно...
Проектировщик CPU, GPU, сетевых микросхем
Устраняем ошибки USB-Blaster
В данной заметке я хочу рассказать о способе перепрошивки китайского программатора, который избавит вас от вечно выскакивающих ошибок, синего экрана смерти, невозможности прошить FPGA и т.д.
Эта заметка для вас, если вы купили самый дешёвый программатор USB Blaster с али-экспресса, и он упорно отказывается работать в вашей ОС.
Как установить GOWIN EDA для запуска примеров Школы Синтеза
Одной из проблем первых сезонов Школы цифрового синтеза является малое число поддерживаемых плат, на которых можно легко и быстро повторить упражнение.
Чтобы справиться с данной проблемой, группа энтузиастов, под руководством Юрия Панчула, добавила поддержку множества плат и нескольких toolchain’ов от различных производителей FPGA.
В данном туториале, посвященном работе с FPGA от компании Gowin, я расскажу про то, как установить GOWIN EDA, о доступных платах и перефирии к ним и про работу со скриптами сборки примеров.
Почему B-деревья быстрые?
B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.
После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.
Не спеши, Маша! Разбор примеров из книги Хэррис Д.М., Хэррис С.Л. Цифровая схемотехника и архитектура компьютера
И вот, скачав бесплатную версию книги, я в который раз убедился, что как оно было этак 40-50 лет тому назад, так оно фактически и осталось. Но больше убило другое. В научном плане стало даже хуже. Теорию, судя по содержанию книги, нынче пролетают "по диагонали", что влечет за собой элементарные ошибки, характерные больше для студентов техникума, чем "вышки", на которых, судя по рекламе, эта книга рассчитана.
Нижеследующий разбор примеров из книги, надеюсь, это подтвердит. Но, если в чем-то я не прав, то, как говаривали когда-то, старшие товарищи меня поправят.
Итак, начнем...
Алгоритмы не важны
Прошу простить заранее за несколько кликбейтный заголовок )
Не так давно писал в соцсетях хейт‑пост по поводу «алгоритмических секций» при приёме на работу в Яндекс.
Да и многие другие софтверные компании это практикуют и считают навыки написания алгоритмов — чуть ли не самым важным навыком для программистов.
И ставят данной компетенции очень высокий приоритет при приёме на работу.
Попробую сегодня развить эту мысль и объяснить почему ставить навыки написания алгоритмов на первый план — не правильно, почему этот «алгоритмический» критерий не релевантен и не отражает реальной ценности / уровня / потенциальной пользы от данного программиста.
Алгоритмические собеседования нужны
Это ответ на статью, что алгоритмические собеседования не нужны. Простите за кликбейтный заголовок, но он такой и в статье, на которую я отвечаю.
Сразу скажу, что моя статья относится лишь к условному ФААНГу. Многие аргументы из этой статьи теряют значимость в других случаях: если у вас маленькая фирма, мало кандидатов или у вас всего 10 пользователей.
Я утверждаю, что алгоритмические интервью - лучший вариант для ФААНГа из всех пока придуманных.
Парсим строки с SMT-решателем
Этот пост о том, как можно решить задачу разбора строки по контектстно-свободной грамматике с помощью SMT-решателя. Здесь будет введение в тему, описание принципов работы и ссылка на github с работающей программой.
Делай нейминг как сеньор
Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.
Как получается, что код становится мало понятным даже для его авторов? Почему нейминг так важен? Как придумывать названия, не применяя целые теории нейминга? Как лёгким процессом организовать работу с неймингом в команде? На все эти вопросы мы ответим в статье.
Made at Intel. Пировали, веселились…
Всем привет.
Хочу сообщить тем, кто волновался за мою судьбу после опуса о последних днях Интела в России на прошлой неделе, что у меня все хорошо. Я жив‑здоров и работаю все там же ?. Про опус, однако, сказать того же не могу. Людям он неплохо зашел, а вот менеджмент (на обеих сторонах был не в восторге). Так что найти его теперь можно только у меня в телеге. Ну а я возвращаюсь к более ранним дням истории Интел в России. И речь у нас сегодня пойдет о нехитрых развлечениях командировочных.
Случай в «Главпивторге»
В июне 2010го приезжал в Россию ХрИстос Георгиопулос, Vice President of Developer Relations Division, к которой я тогда относился. Он был начальником моего начальника Пареша Паттани. Надо сказать, что мы тогда очень неплохо ладили и это наверно были мои самые счастливые времена в Интел. Христос был этническим греком, вполне православным и даже немного понимающим по‑русски. «Зовите меня просто ХристОс» — говорил он по‑нашему, чем приводил окружающую публику в неописуемый восторг. Так вот 13го июня случился у меня День Рождения. И я повел Христоса, Пареша и еще пару местных коллег в ресторан «Главпивторг» на Лубянке. В то время он мне очень нравился. Сидели — ели, выпивали и праздновали мои 34 (господи, как давно это было). Ну и в конце действа я привычно полез за карточкой чтобы расплатиться. И тут Христос в шутку шлепнул меня по рукам и сказал, что платить должен он, потому что он здесь старший. Я возразил, что не собираюсь вешать ужин на контору, расплачусь сам, потому что это мой день рождения и я сам всех сюда позвал. «Да ладно» — подмигнул Христос, — «Mother Intel заплатит. Все равно мы подарок тебе купить забыли». Так я усвоил, что за столом расплачивается старший по должности. И в принципе, это — правильно, потому что исключает всякие соблазны и лихоимства, когда подчиненный платит за начальника, а тот ему это одобряет. Но иногда случались в жизни исключения из этого правила.
Made at Intel. «Советские газеты»
Я никак не могу допилить главу про покупки Интелом других компаний. :( В последние недели, то вдохновения не хватает, то сил, то настроения, а то банально времени. Но книжка сама себя не напишет, а значит надо предпринимать какие-то усилия. Поэтому сегодня вашему вниманию предлагается коротенький опус, который позволит аффтару “размять руку”, а вам узнать кое-что из жизни больших корпораций.
— Никогда не читайте советских газет перед едой,- советовал профессор Преображенский.
— Так ведь других нет, Филипп Филиппович, - возражали ему.
— Тогда никаких не читайте.
Герою “Cобачьего сердца” вторил мой коллега Jim Curley (Кудрявый Джимми). “Никогда не читайте советских газет. Ни правды - в “Известиях”, ни известий - в “Правде”. Причем говорил он все это на чистом русском языке. Все-таки в советские времена учили в школах неплохо. Даже если это были американские разведшколы.
Я, однако, сегодня о том, что корпоративные новости в сущности мало чем отличаются от советских газет. В бытность свою в Интел я дополнил булгаковский афоризм таким образом: "никогда не читайте корпоративных газет. А если читаете - сразу переходите в колонку некрологов. Только там вы, возможно, найдёте немного правды". Organizational announcements в Интел - это настоящая кладезь информации. Как человек, который 20 лет внимательно читал "корпоративные некрологи" могу сказать, что там важно все - кто, куда, когда, почему... Мало того, важно каким тоном написано и даже какими словами. Общих правил, в принципе нет. Но статистика говорит, что есть вероятностные законы.
Что есть ЮАР прямо сейчас
Если долго, долго, долго,
Если долго по тропинке,
Если долго по дорожке
Топать, ехать и бежать,
То пожалуй, то конечно,
То наверно, верно, верно,
То возможно можно, можно,
Можно в Африку прийти!
Очень интересен тот факт, что я не вижу никаких свежих описаний ЮАР на Хабре. А зря. Возможно вам будет интересно это место. В нём есть множество недостатков, но наличествует множество достоинств. Возможно вам приглянется. За подробностями прошу под кат.
CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее
Многие из вас каждый день работают в терминале, так давайте улучшим это времяпровождение вместе. Существует множество полезных инструментов CLI, которые могут сделать вашу жизнь в командной строке проще, быстрее и в целом веселее.
В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привык полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)
FPGA для программиста, конечные автоматы (verilog)
Стиль описания конечного автомата как образ мышления
Когда нужно преодолеть врожденную параллельность FPGA, и появляется желание заставить схему работать последовательно, по алгоритму, на помощь приходят конечные автоматы, про которые написано не мало академических и практических трудов.
Например, очень популярной является работа: Clifford E. Cummings, The Fundamentals of Efficient Synthesizable Finite State Machine Design using NC-Verilog and BuildGates. Всякий раз, когда специалисты решают обсудить, как правильно писать конечные автоматы, кто-то обязательно достает эту публикацию.
Статья стала настолько авторитетной, что многие даже не стараются анализировать аргументы автора. В частности, бытует мнение, что профессионалы всегда используют двухчастный способ описания конечных автоматов, имеется ввиду, описание конечных автоматов в 2 always блока. Это утверждение продолжает вызывать жаркие споры, и я хочу пояснить различия в описаниях конечного автомата с разным количество always блоков.
В беседах с коллегами я понял, что споры о том, как надо писать конечные автоматы в 1 или 2, 3 always блока, связаны с разным представлением (осознанием) реализуемого алгоритма, разным типом мышления. Попробую показать это на примере.
Я полагаю, что эта статья не первая статья о FSM и Verilog в вашей жизни, поэтому я не буду объяснять ни что такое конечный автомат, ни как он описывается на Verilog, а перейду сразу к делу.
Неизвестный UART: теория
Можно с уверенностью сказать, что с момента публикации первой версии стандарта RS‑232 в мае 1960 года и по настоящее время, было написано приблизительно 109 независимых реализаций UART на всём, чём угодно. Однако, подобно «Hello world» в мире прикладного ПО, а также мигания светодиодом — «Hello world» в мире цифровой электроники (сигнализирующий об успешной настройке оборудования и среды разработки) — процесс написания UART способен проиллюстрировать особенности языка или платформы, демонстрируя применение тех или иных синтаксических конструкций для решения практических, насущных и понятных проблем.
В данном цикле статей будет рассказано про написание модуля UART на SystemVerilog, про синтез данного модуля на различных платформах и про некоторые другие аспекты применения UART в ПЛИС. Но прежде, чем писать код, поговорим про сам протокол и про особенности аппаратной части вне контекста ПЛИС.
Раскрываем секреты загрузочных ISO-образов
В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Dozen tricks with Linux shell which could save your time
- First of all, you can read this article in russian here.
One evening, I was reading Mastering regular expressions by Jeffrey Friedl , I realized that even if you have all the documentation and a lot of experience, there could be a lot of tricks developed by different people and imprisoned for themselves. All people are different. And techniques that are obvious for certain people may not be obvious to others and look like some kind of weird magic to third person. By the way, I already described several such moments here (in russian) .
For the administrator or the user the command line is not only a tool that can do everything, but also a highly customized tool that could be develops forever. Recently there was a translated article about some useful tricks in CLI. But I feel that the translator do not have enough experience with CLI and didn't follow the tricks described, so many important things could be missed or misunderstood.
Under the cut — a dozen tricks in Linux shell from my personal experience.
Отладка интерфейса I2S
В этом тексте я написал про особенности интерфейса I2S и про то как можно тестировать и отлаживать интерфейс I2S.
Знакомимся с OpenGL
OpenGL
Знакомство с OpenGL нужно начать с того, что OpenGL — это спецификация. Т.е. OpenGL лишь определяет набор обязательных возможностей. Реализация же зависит от конкретной платформы.
OpenGL является кроссплатформенным, независимым от языка программирования API для работы с графикой. OpenGL — низкоуровневый API, поэтому для работы с ним неплохо иметь некоторое представление о графике в целом и знать основы линейной алгебры.
Задача про пьяницу
В книге «Пятьдесят занимательных вероятностных задач с решениями - Ф. Мостеллер» есть интересная задача про пьяницу, который с вероятностью делает один шаг к обрыву и с вероятностью один шаг от обрыва. Пьяница стоит на расстоянии одного шага от обрыва. Что можно сказать про вероятность того, что он упадет?
Информация
- В рейтинге
- 195-й
- Откуда
- Sunnyvale, California, США
- Дата рождения
- Зарегистрирован
- Активность