Как стать автором
Обновить
67.68

FPGA *

Программируемые логические интегральные схемы

Сначала показывать
Период
Уровень сложности

Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция

Время на прочтение6 мин
Количество просмотров158K
Каким образом повысить количество российских инженеров, которые были бы знакомы и с разработкой хардвера, и с разработкой софтвера, и могли бы строить системы, в которых часть функциональности находится в специализированном железе, а часть — в программном обеспечении, с соблюдением баланса между ними?

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

Есть масса дешевых и эффективных мер по апгрейду российской образовательной системы. Одна из них — широко ввести практические классы ПЛИС / ППВМ / FPGA среди старших школьников и студентов. Это то, на чем учатся и инженеры, которые потом разрабатывают микросхемы внутри Apple iPhone в Купертино, Калифорния.
Читать дальше →

В России не любят Линукс, а я не люблю виртуальные машины. Что делать?

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров37K

В России не любят Линукс. Студенты и корпорации всячески отлынивают его использовать, даже если Линукс насаждают преподаватели или госзаказчики. Но есть область, в которой Линукс придется полюбить. Это разработка микросхем. Даже внутри Apple и Microsoft инженеры используют Synopsys Design Compiler / IC Compiler и Cadence Genus / Innovus, у которых вообще нет версий для Windows и MacOS, только для Linux. Да, я знаю, что Synopsys и Cadence ушли из России. Но даже открытые тулы для синтеза ASIC - Open Lane - есть только под Linux.

Я уже несколько лет использую для семинаров по FPGA загружаемые через USB SSD диски, на который ставится весь необходимый софтвер. Такое решение позволяет избежать агонии первого дня семинара, когда приходит куча народу со своими ноутбуками, три часа ставят Quartus, а потом мучаются с драйверами USB Blaster для китайского контрафактного клона, который без танцев с бубном не хотят поддерживать не Win10, ни Linux, ни особенно Win11, который хочет подписанные драйверы.

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

Конечно, загружаемые SSD тоже не без проблем: тут и Legacy BIOS boot против UEFI boot, и Secure Boot с Bit Locker, и зловещий "хвост GPT", и отрубание всего из-за скачка напряжения в USB хабе - но с этими проблемами мы методично разобрались. Решение я и описываю в этой заметке, предназначенной в первую очередь для учеников и руководителей кластеров в Школе Синтеза Цифровых Схем, которая начинается с сентября в 14 российских городах (объявления и точных дат еще нет, но уже записалось 200 учеников).

Прежде всего: как выглядит загружаемый SSD? А вот так:

Читать далее

Обнаружил баг американской системы образования

Время на прочтение2 мин
Количество просмотров29K

Обнаружил интересный баг американской системы образования:

У многих студентов в резюме стоит "делал курсовой проект по алгоритму Томасуло, out-of-order суперскаляру, многопоточному процессору итд".

На это я спрашиваю: "Прекрасно, давайте возмем два процессорных ядра - одно со статическим конвейером, а у другого с динамическим, как в вашем курсовике. Насколько ваш процессор будет производительнее?"

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

На это я машу руками и говорю "стоп-стоп-стоп. Я не просил вас объяснить мне что такой RaW (read-after-write), WaR и WaW зависимости. Я вообще не спрашивал у вас "почему?" Я спросил у вас "сколько?" Я просил вас грубо оценить пользу от вашей разработки.

И представляете что они мне отвечают?

Как работает адресная светодиодная лента?

Время на прочтение4 мин
Количество просмотров59K

Наверное этот вопрос «как работает» очень многим покажется глупым. Ответ почти очевиден: адресная светодиодная лента состоит из множества последовательно соединенных «умных светодиодов». Это можно увидеть просто рассматривая устройство ленты. Видны отдельные микросхемы, припаянные к гибкому шлейфу, видны соединения: микросхемы соединены последовательно всего тремя проводами, при этом два из них это питание и земля. Только один провод передает данные о цвете пикселей. Как же это? Что такое «умный светодиод»?

Дальше я расскажу о протоколе передачи данных, используемом в светодиодной ленте на базе WS2812B, и, более того, я почти создам свою «микросхему светодиодной ленты» в микросхеме ПЛИС.

Современное искусство на экране инженера хардверной компании

Время на прочтение3 мин
Количество просмотров25K
Всем привет! Меня зовут Максим, я работаю инженером в одной компании. Фирма делает серверы и другое железо на POWER-архитектуре (какое и почему именно такое — позже расскажут другие), а я пока хочу показать участок системной платы сервера — это моя зона ответственности.

Вообще здесь будет нечто вроде рабочего журнала (worklog-а)— вместе с коллегами будем постить рассказы о зарождении жизни в железках. Сначала про сервер, а дальше и про остальное.

Трассировка системной платы сервера

Как сюда лучше всего поставить преобразователи напряжения?
Что ещё покажете?

Junior FPGA Design Engineer: как стать?

Время на прочтение11 мин
Количество просмотров148K
Всем привет!

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

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

В этой статье вы найдете:
  • список тем, которые должен освоить начинающий разработчик под FPGA
  • рекомендуемую литературу по каждой из тем
  • набор тестовых вопросов и лабораторных работ
  • классические ошибки новичков (и советы по исправлению)

Добро пожаловать под кат!
Читать дальше →

Процессор на коленке ч.3. Алгоритм быстрого деления

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров6.4K


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

Слышали ли вы про язык «e»? А ведь он был продан за $315 миллионов долларов

Время на прочтение10 мин
Количество просмотров37K

Все знают про язык программирования C, поменьше — про язык программирования F, кое‑кто про B, предшественник C, а вот знаете ли вы про язык «e»? Их кстати два — один с большой буквы «E», а другой с маленькой «e».

Вы наверное подумали, что это еще один безызвестный язык от какого‑нибудь аспиранта провинциального европейского университета. Однако интерпретатор маленького «e» под названием Specman продали в 2005 году большой компании Cadence Design Systems за $315 милионов долларов. Причем президента продающей компании Verisity звали Гаврилов. Также можно нагуглить, что этот язык использовали внутри компании Intel. Что же в нем такого, что вызвало интерес у толстых богатых корпораций?

Читать далее

Начинаем FPGA на Python

Время на прочтение5 мин
Количество просмотров37K
Технология FPGA (ПЛИС) в настоящее время обретает большую популярность. Растёт количество сфер применения: помимо обработки цифровых сигналов, FPGA используются для ускорения машинного обучения, в blockchain технологиях, обработке видео и в IoT.

Данная технология имеет один существенный минус: для программирования используются довольно сложные и специфичные языки описания цифровой аппаратуры Verilog и VHDL. Это осложняет вхождение новичка в FPGA и для работодателя найти специалиста с этими специфичными знаниями на рынке труда сложно. С другой стороны популярный высокоуровневый язык программирования Python с фреймворком MyHDL делают программирование FPGA простым и приятным. Тем более людей знающих Python на порядок больше специалистов владеющих Verilog/VHDL. Серией статей я хочу показать как легко и просто войти в область FPGA зная Python и начать делать настоящие сложные FPGA проекты на этом языке. Отмечу, что на ПЛИС python непосредственно не исполняется, а является инструментом для генерации прошивки.
Читать дальше →

Проектирование процессора ModelSim

Время на прочтение17 мин
Количество просмотров17K

Часть I
Часть II
Часть III
Часть IV
Часть V

Это полная версия предыдущей статьи, к которой добавлены тестбенчи.

Спроектируем Little Man Computer на языке Verilog.

Статья про LMC была на Хабре.

Online симулятор этого компьютера здесь.

Напишем модуль оперативной памяти (ОЗУ), состоящий из четырех (ADDR_WIDTH=2) четырёхбитных (DATA_WIDTH=4) слов. Данные загружаются в ОЗУ из data_in по адресу adr при поступлении тактового сигнала clk.

module R0 #(parameter ADDR_WIDTH = 2, DATA_WIDTH = 4)
(
    input clk, //тактовый сигнал
    input [ADDR_WIDTH-1:0] adr, //адрес
    input [DATA_WIDTH-1:0] data_in, //порт ввода данных
    output [DATA_WIDTH-1:0] RAM_out //порт вывода данных
);
    reg [DATA_WIDTH-1:0] mem [2**ADDR_WIDTH-1:0]; //объявляем массив mem
 
    always @(posedge clk) //при поступлении тактового сигнала clk 
        mem [adr] <= data_in; //загружаем данные в ОЗУ из data_in 
    
    assign RAM_out = mem[adr]; //назначаем RAM_out портом вывода данных
endmodule
Читать дальше →

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

Время на прочтение8 мин
Количество просмотров15K
Многие начинающие разработчики часто недооценивают влияние асинхронности на работу цифровых схем. В проектах с одним тактовым генератором сложностей не возникает: схема полностью синхронна, и от разработчика требуется только соблюдать требования Setup и Hold. Но как только в системе появляется второй тактовый генератор, возникает проблема CDC – Clock Domains Crossing, связанная с асинхронностью работы участков схемы, работающих от независимых (асинхронных) генераторов. На практике эта проблема выливается в усложнение маршрута проектирования, связанное с особенностями статического временного анализа в САПР, а в железе проявляется в виде такого эффекта как метастабильность, и аномальное поведение триггеров. Собственно, о метастабильности здесь уже писали, но я предлагаю чуть глубже разобраться в проблеме.
Читать дальше →

Высокоэффективный 600 Вт усилитель НЧ на нитрид-галлиевых силовых транзисторах

Время на прочтение7 мин
Количество просмотров26K

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

Читать далее

Как прошла наша первая FPGA конференция?

Время на прочтение5 мин
Количество просмотров3.9K

Привет, FPGA хаб!


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


Так вот, конференция состоялась 28 ноября 2020 года, и этим постом я бы хотел поведать вам об этом «немаловажном» для отечественного FPGA сегмента событии. Постараюсь рассказать обо всём «от идеи до реализации».




Читать дальше →

Ближайшие события

Запуск Unix-подобной ОС на самодельном CPU с помощью самодельного компилятора C

Время на прочтение12 мин
Количество просмотров15K
image

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

Позвольте задать вам вопрос: вы когда-нибудь проектировали собственную архитектуру набора команд (ISA), создавали на FPGA процессор на основе этой ISA и собирали для него компилятор? Запускали ли вы операционную систему на этом процессоре?

А у нас это получилось.

В этом посте я расскажу о своей учёбе в 2015 году, о четырёх месяцах создания самодельного CPU на самодельной архитектуре набора команд RISC, создании самодельного тулчейна C и портировании на этот процессор Unix-подобной ОС Xv6.

Процессорный эксперимент в Токийском университете


Всё это делалось в рамках студенческого экспериментального проекта под названием CPU Experiment. Давайте начнём с того, что же такое CPU experiment.
Читать дальше →

Применение FPGA для расчета деполимеризации микротрубочки методом броуновской динамики

Время на прочтение24 мин
Количество просмотров16K

Все готово, чтобы рассказать Хабр аудитории о применении FPGA в сфере научных высокопроизводительных вычислений. И о том, как на данной задаче надо удалось значительно обскакать GPU (Nvidia K40) не только в метрике производительность на ватт, но и просто с точки зрения скорости вычисления. В качестве FPGA платформы использовался кристалл Xilinx Virtex-7 2000t, подключенный по PCIe к хост компьютеру. Для создания аппаратного вычислительного ядра использовался язык C++ (Vivado HLS).


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

Читать дальше →

Создание видеокарты Бена Итера на FPGA чипе

Уровень сложностиПростой
Время на прочтение127 мин
Количество просмотров7.4K

Здравствуйте. Меня зовут Дмитрий. Данная статья является продолжением статьи Сборка компьютера sap-1 (компьютер Бена Итера) в игре Turing Complete (если вы её не читали то очень советую). Сегодня мы продолжим исследовать блог Бена Итера, но вместо компьютерной игры мы соберем простейшую видеокарту на FPGA чипе.

Итак почему я выбрал FPGA? Конечно в игре Turing Complete можно собрать видеокарту, но её нельзя подключить к монитору что-бы проверить работу, поэтому мне пришлось перейти на что-то более осязаемое. Поэтому сегодня мы изучим язык Verilog предназначенный для описания микросхем.

Читать далее

Детей недостаточно учить только питону и ардуине

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров23K

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

Но учить канонично по книжкам 1970-х не обязательно. Например, ну зачем ребенку руками собирать генератор тактового сигнала на микросхеме 555, если его теорию он все равно не поймет, а для понимания функции D-триггера понимание работы генератора нерелевантно? Генератор на 555 можно купить уже собранным на AliExpress.

Также можно заменить батарейку на 9 вольт на питание от USB на 5 вольт; поставить толерантные к 5 вольтам светодиоды, не требующие дополнительных резисторов и поставить кнопочки, не требующие подтягивающих резисторов. В результате все сведется к самой сути - логическим элементам и D-триггерам, откуда уже можно переходить на ПЛИС / FPGA. Вот сравните схему сдвигового регистра. Что вы по этому поводу думаете?

Было:

Читать далее

Реализация узла БПФ с плавающей точкой на ПЛИС

Время на прочтение17 мин
Количество просмотров34K
Всем привет! В этой статье речь пойдет о реализации быстрого преобразования Фурье в формате с плавающей точкой на ПЛИС. Будут показаны основные особенности разработки ядра от самой первой стадии до готового конфигурируемого IP-ядра. В частности, будет проведено сравнение с готовыми ядрами фирмы Xilinx, показаны преимущества и недостатки тех или иных вариантов реализации. В статье будет рассказано о главной особенности ядра БПФ и ОБПФ — об отсутствии необходимости переводить данные в натуральный порядок после БПФ и ОБПФ для их совместной связки. В этой статье я постараюсь отразить всё тонкости реализации проекта под названием FP23FFTK, приведу реальные примеры использования готового ядра. Проект написан на языке VHDL и заточен под FPGA фирмы Xilinx последних семейств.


Читать дальше →

Избранные места из популярного учебника микроэлектроники на русском, который наконец-то выходит на бумаге

Время на прочтение3 мин
Количество просмотров33K
Год назад вышло бесплатное электронное издание на русском языке всеохватного вводного учебника Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера». Книга попала в струю, ее скачивания завалили британский сайт Imagination Technologies (дважды — 1, 2), после чего учебник стали использовать преподаватели московских МФТИ, МГТУ, питерского ИТМО, киевского КНУ, КПИ и других вузов. Интересной особенностью учебника является то, что его перевод на русский сделала группа энтузиастов: преподавателей российских и украинских университетов, русских сотрудников компаний в Silicon Valley (AMD, Synopsys, Apple, NVidia ...) и российских компаний (НИИСИ, МЦСТ, Модуль ...).

При этом, электронное издание Харрис-энд-Харрис сформатировано для планшета, и уже после первых скачиваний посыпались емейлы, когда же учебник будет и на бумаге. И вот час настал — Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера» можно заказать на бумаге (выходит в новогоднюю ночь). В этом посте я покажу, чем этот учебник отличается от других. Бонус: фотки участников и участниц проекта!



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

Учебник H&H решает эту проблему:

Вы тоже любите приятные сюрпризы?

Время на прочтение6 мин
Количество просмотров17K


Недавно я подбирал отладочную плату для своих задач. Цены не очень радовали, я даже немного расстроился. Но потом неожиданно нашёл одну очень интересную плату по весьма приятной цене. С неё всё и началось. Потом были ещё платы, наклейки, сюрпризы… Любопытно что под капотом наклейкой? Тогда в путь!
Читать дальше →

Вклад авторов