Обновить
41.3

FPGA *

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

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

Паяльник как инструмент опрощения и для атмосферы общения

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

Лев Толстой пахал, Петр Первый работал в токарной мастерской, а мы, труженники Силиконовой Долины, по воскресеньям паяем. Присоединяйтесь к митапу по обучению пайке, который пройдет в воскресенье 11 августа в городе Маунтин-Вью, Калифорния, в клубе хакеров Hacker Dojo. Мы начнем в 14.30, сразу после митапа по верилогу и вернем вам ощущение присутствия в Дворце Пионеров в Киеве, Волгограде или Алма-Ате, а заодно расскажем и про Verilog и FPGA, чего в Дворцах Пионеров не было.

UPD: При обсуждении поста в соцсетях спросили, нельзя ли подсоединиться удаленно. Можно по зуму, линк https://bit.ly/yuri-panchul-zoom .

Читать далее

Разработка и тестирование целочисленного сумматора с AXI-Stream интерфейсами. Часть 5

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели2.2K

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

Читать далее

Обучение больших нейронных сетей на ПЛИС: утопия или…

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели8.1K

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

Пока не предложил!

Hello World на регистрах в ПЛИС — мигаем светодиодом без регистрации, SMS и HDL

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели4.1K

Воспользуемся одним лишь схемным редактором. Ну и ещё tcl-скриптом. И программатором. И немножко осциллографом...

Читать далее

Как Америка любила и бодалась с Huawei — и при чем тут казанский Иннополис

Время на прочтение7 мин
Охват и читатели11K

10 лет назад в Санта-Клара, Калифорния, неподалеку от Интела и NVidia, стоял кампус Huawei. В нем работали не только китайцы, но и вообще обычная публика Silicon Valley - индусы, американцы, даже русские попадались. Бизнесмены калифорнийских электронных компаний говорили "Huawei - это дверь в Китай" и заключали с ними крупные сделки.

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

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

Читать далее

Новости импортозамещения в пересечении тактового домена

Время на прочтение2 мин
Охват и читатели13K

Если вы собираетесь собеседоваться в Apple или Байкал на одну из позиций по проектированию или верификации систем на кристалле (System-on-Chip - SoC), вам совершенно абсолютно точно нужно подготовиться к вопросам по пересечению тактового домена (Clock Domain Crossing- CDC). В SoC типа айфона есть много разных блоков, которые работают на разной тактовой частоте. Чтобы передача данных между ними не глючила, нужно 1) знать почему она может глючить; 2) владеть приемами, которые позволяют избегать этих глюков и 3) четко понимать как используемые приемы влияют на пропускную способность соединения.

Подготовиться к этой секции интервью нужно основательно. Если вы только почитаете про метастабильность в Харрис & Харрис и начнете выкручиваться в стиле ответов Алисы Тепляковой "а, метастабильность ... даа, синхронайзеры ... ммм ... асинхронные FIFO ..." - то тройку на экзамене у жалостливого преподавателя нетопового университета стран бывшего СССР вы может и вытяните, но хорошую работу в коммерческой компании не выиграете.

Как же подготовиться? В Америке по такому вопросу готовят на шестичасом семинаре, который стоит $800 с каждого ученика в классе. Но в России группа энтузиастов подготовила бесплатный семинар, на основе как открытых статей автора американского семинара Клифа Каммингса, так и практикума из МИЭТ и собственных лабораторных занятий.

Читать далее

Наводим красоту в коде для ПЛИС Lattice, построенном на базе пакета LiteX

Время на прочтение12 мин
Охват и читатели2.5K
В прошлых двух статьях мы сделали и испытали проект, в основе которого лежит система на базе LiteX, а наши модули были написаны на языке Verilog. На протяжении всего повествования я неустанно повторял: «У нас очень много нового материала, не будем отвлекаться на рюшечки, потом разберёмся». Как правило, нет ничего более постоянного, чем временное, но раз тема оказалась интересная, то в этот раз давайте мы наведём красоту в нашем проекте.



Сегодня мы поменяем принцип описания ножек, чтобы не пришлось прыгать по трём справочникам сразу, разместим несколько полей в одном регистре CSR, добавим автодокументирование к регистрам CSR (Command-Status Register) и, наконец, добавим к этим регистрам статус, а то до сих пор мы пробовали играть только в командные регистры. Приступаем.
Читать дальше →

Zynq 7000. Тестирование счётчика импульсов

Время на прочтение15 мин
Охват и читатели5.4K

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

Всем интересующимся - добро пожаловать под кат! 

Читать далее

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

Время на прочтение7 мин
Охват и читатели20K

30 октября прошло первое занятие Сколковской Школы Синтеза Цифровых Схем. Из-за Ковида его пришлось провести в онлайн-формате. Трансляция первого занятия.

Возможно онлайн-формат - это и к лучшему, так как в офлайне в Технопарке Сколково есть только 25 посадочных мест, и мы приготовили только 25 FPGA плат, а количество заявок привысило 300. Теперь мы на спонсорские деньги от компании Ядро Микропроцессоры и Максима Маслова @Armmaster заказали еще 100 плат и собираемся их раздать бесплатно для занятий дома, преподавателям вузов и руководителям кружков в других городах.

Чтобы быть уверенным, что получатели плат смогут их использовать, мы поставили в качестве пререквизита их получения прохождение короткого онлайн-курса от Роснано (см. детали в хабрапосте Готовимся к Сколковской Школе Синтеза Цифровых Схем: литература, FPGA платы и сенсоры). 40 с чем-то участников школы прошли этот курс и им будут высланы платы, как только заказанные платы прибудут из Китая.

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

Как установить Icarus и пройти задачи

RAD для софт-процессоров и немного «сферических коней в вакууме»

Время на прочтение7 мин
Охват и читатели2.7K

Разработка или выбор управляющего контроллера для встраиваемой системы на ПЛИС –актуальная и не всегда тривиальная задача. Часто выбор падает в пользу широкораспространенных IP-ядер, обладающих развитой программно-аппаратной структурой – поддержка высокопроизводительных шин, периферийный устройств, прикладное программное обеспечение и, в ряде случаев, операционных систем (в основном Linux, Free-RTOS).  Одними из причин данного выбора являются желание обеспечить достаточную производительность и иметь под рукой готовый инструментарий для разработки программного обеспечения.

В том случае, если применяемая в проекте ПЛИС не содержит аппаратных процессорных ядер, реализация полноценного процессорного ядра может быть избыточной, или вести к усложнению программного его обеспечения, а следовательно приведет к увеличению затрат на его разработку. Кроме того, универсальное софт-ядро будет, так или иначе, занимать дефицитные ресурсы программируемой логики. Специализированный софт-процессор будет более оптимальным решением в свете экономии ресурсов логики – за счет адаптированной системы команд, небольшого количества регистров, разрядности данных (вплоть до некратной 8битам). Согласование с периферийными устройствами – проблема в основном согласования шин и протоколов. Заменой сложной системы обработки прерываний может служить многопоточная архитектура процессора.

Стековые софт-процессоры и контекст потока

Обычно многопоточные процессоры имеют одно АЛУ и несколько наборов регистров (иногда называемых «теневыми» регистрами) для хранения контекста потока, следовательно, чем больше требуется потоков, тем будут больше накладные расходы логики и памяти. Среди разнообразия архитектур софт-процессорных ядер следует выделить стековую архитектуру. Такие процессоры часто называют еще Форт-процессорами, так как чаще всего их ассемблер естественным образом поддерживает подмножество команд языка Форт.

Читать далее

Второй HDMI монитор к Raspberry Pi3 через DPI интерфейс и FPGA плату

Время на прочтение8 мин
Охват и читатели11K

На этом видео показаны: плата Raspberry Pi3, к ней, через разъем GPIO, подключена FPGA плата Марсоход2rpi (Cyclone IV), к которой подключен HDMI монитор. Второй монитор подключен через штатный разъем HDMI Raspberry Pi3. Все вместе работает, как система с двумя мониторами.

Дальше расскажу, как это реализовано.

Знакомство с GOWIN. Отладочная плата DK-START-GW1N4/GW1N9

Время на прочтение3 мин
Охват и читатели28K
Недавно ко мне в руки попала китайская ПЛИС, а именно отладочная плата GW1N DK-START-GW1N4, на которой по факту стоит чип GW1N-LV9LQ144C6/I5 (Flash-based FPGA, 8640 LUT4, User flash:608Kb,B-SRAM:468Kb, S-SRAM:17280bit). GOWIN предоставляет много разных вариантов комплектации своих FPGA со встроенным Cortex M3, BluetothFPGA, System-in-Package(SoC + RAM), SecureFPGA…

GW1N-9 представитель базового варианта ПЛИС с наименьшим количеством наворотов и по этому привлекательна демократичной ценой в ~3.5$/1kQty.


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

Часть 3: Почти что грузим Linux с SD-карты на RocketChip

Время на прочтение23 мин
Охват и читатели8.1K

В предыдущей части был реализован более-менее работающий контроллер памяти, а точнее — обёртка над IP Core из Quartus, являющаяся переходником на TileLink. Сегодня же в рубрике «Портируем RocketChip на малоизвестную китайскую плату с Циклоном» вы увидите работающую консоль. Процесс несколько затянулся: я уже было думал, что сейчас по-быстрому запущу Linux, и пойдём дальше, но не тут то было. В этой части предлагаю посмотреть на процесс запуска U-Boot, BBL, и робкие попытки Linux kernel инициализироваться. Но консоль есть — U-Boot-овская, и довольно-таки продвинутая, имеющая многое из того, что вы ожидаете от полноценной консоли.


В аппаратной части добавится SD-карта, подключённая по интерфейсу SPI, а также UART. В программной части BootROM будет заменён с xip на sdboot и, собственно, добавлены следующие стадии загрузки (на SD-карте).

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

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

Тренировочный лагерь по схемотехнике для танков и закладкам в процессоры

Время на прочтение5 мин
Охват и читатели8.1K
В апреле был роснановский семинар по современной схемотехнике для школьников олимпиадного типа. После него группа организаторов собралась в фойе и долго ломала голову, как сделать предмет более интересным и при этом полезным. Чтобы ввести Verilog и ПЛИС например в формат Олимпиад НТИ. Было решено отказаться от математически интересных, но несколько абстрактных для школьника задач типа протоколов когерентности кэшей в многопроцессорных системах. Также не вызвала особого энтузиазма идея автоматической теплицы с датчиками, так как ее сто раз реализовали на ардуино и STM32, и ПЛИС-ы не добавляют в теплицы ничего интересного.

И вдруг — Эврика! А если проводить соревнования по графическим играми, сделанных на чистой схемотехнике, без программирования, как делали игры типа Пин-Понг наши предки во времена Брежнева и Картера. И проводить не на древних микросхемах К561, а на современных Xilinx и Altera (то бишь Intel FPGA) и с использованием тех же технологий проектирования на уровне регистровых передач, которые используют проектировщики в Apple, Intel и SpaceX.

Короче, мы этим займемся в 8-26 июля на летней школе в Зеленограде. Часть школы, о плане которой пойдет речь в этом пост, посвящена основам цифровой схемотехники, первым шагам в архитектуру и микроархитектуру процессоров, а также (даже скорее в основном) аппаратной компьютерной графике.

Я попробую привезти в Зеленоград в качестве помощницы свою дочь-студентку Элизабет, если она вовремя получит паспорт и российскую визу. Элизабет, будучи русско-украинско-японкой, владеет только английским. Вот в Зеленограде и выучит основы русского. А заодно научит правильному английскому произношению инструкторов, которые готовы помочь на школе (необязательно из МИЭТ, можно из МФТИ, МГУ, МИФИ):


Intel приобрела eASIC — разработчика «структурных ASIC»

Время на прочтение2 мин
Охват и читатели5.2K


На прошлой неделе было объявлено о приобретении Intel компании eASIC, которая занимается созданием FPGA-образных средств разработки «структурных ASIC». Структурные ASIC представляют собой нечто среднее между обычными FPGA и обычными ASIC; они позволяют уменьшить время вывода продукта на рынок и уменьшить его стоимость. Технологии eASIC используются Intel с 2015 года в кастомных версиях процессоров Xeon; теперь команда eASIC (120 человек) войдет в подразделение Intel Programmable Solutions Group (PSG).
Читать дальше →

Разработка интерфейсных плат на SoC Xilinx Zynq 7000 для записи речи в аналоговом и цифровом формате

Время на прочтение14 мин
Охват и читатели16K


В этой статье мы поделимся опытом разработки интерфейсных плат блока сопряжения на базе SoC ARM+FPGA Xilinx Zynq 7000. Платы предназначались для записи речевых сигналов в аналоговом и цифровом формате PRI/BRI (ISDN, E1/T1). Само конечное устройство будет использоваться для фиксации переговоров в гражданской авиации.
Читать дальше →

Мои замечания о книге Л.П. Плеханова «Основы самосинхронных электронных схем»

Время на прочтение10 мин
Охват и читатели7.8K
Прежде всего хочу сказать, что за те 10 с лишним лет, что я не занимался асинхронными схемами, в этой сфере произошли определенные изменения. Прежде всего бросается в глаза изменение в терминологии. Значение термина «асинхронные схемы» взял на себя термин «самосинхронные схемы». Именно под этим термином теперь подразумеваются настоящие асинхронные схемы, не зависящие от задержек логических элементов. А термину «асинхронные схемы» досталось обозначение схем, не обладающих этим ценным качеством, ну и вообще всех схем без тактового сигнала. Я решил поподробнее изучить, что такое самосинхронные схемы. Подходящей для этого мне показалась книга, указанная в заглавии. Тем более, что она рекомендуется как учебник, и издана не так давно.


В книге самосинхронные схемы представляются как отдельный класс схем, обладающих уникальными свойствами. А вот определение самосинхронной схемы:

Самосинхронной схемой (СС-схемой) называется схема, обладающая
двумя свойствами безошибочной работы:

  • отсутствием гонок при любых конечных задержках элементов;
  • отказобезопасностью.

Данное определение подразумевает гипотезу о задержках Маллера. Второй пункт есть следствие первого. А первый пункт не что иное, как определение давно устоявшегося термина speed-independent (SI). То есть получается, что самосинхронные схемы это не отдельный класс схем, а схемы, синтезированные определенным методом, который гарантирует свойство SI. Таким образом «самосинхронный» это не характеристика класса схем, а характеристика метода синтеза.
Читать дальше →

Экскурсия по Музею Истории Компьютеров в Калифорнии, с пользой для разработки. Часть 1. ENIAC, Stretch, CDC6600, IBM/360

Время на прочтение8 мин
Охват и читатели8K
Господа! Сегодня мы пройдемся с сибирской девушкой Ириной по Музею истории компьютеров в Маунтин-Вью, Калифорния. Причем пройдемся не как туристы, а для принесения пользы России. Я уже писал в предыдущем посте, что один из эффективных способов для студента изучить проектирование процессоров — это взять какой-нибудь древний, но поучительный процессор, найди документацию по его архитектуре (и какую-нибудь информацию по его микроархитектуре), и спроектировать аналог этого процессора на языке описания аппаратуры SystemVerilog (или VHDL, если он вам больше нравится), после чего реализовать процессор на плате ПЛИС / FPGA (какой именно, не важно — Altera / Intel FPGA, Xilinx или Lattice). В качестве учебника для такого упражнения вы можете начать с Харрис & Харрис, после чего продолжить с книгами для более продвинутой стадии обучения, например Шень-Липасти.

Каким образом все это принесет пользу России? Под такие проекты мы собираемся раздавать FPGA платы на конференции которая пройдет 18-22 сентября в Томске. Туда приедут представители МГУ, МФТИ, МИЭТ, МЦСТ, Imagination Technologies, National Instruments итд. Они будет обсуждать, как обновить программу университетов, чтобы сегодняшние студенты через несколько лет проектировали росийские чипы на уровне передовых западных компаний. Там также будет школа-семинар, на которой будут обсуждать, как делать учебные процессоры — начиная от простейшего schoolMIPS от Станислава Жельнио sparf.

Вот первая фотография из музея в Маунтин-Вью — на ней помимо Ирины и ракеты в центре виден небольшой ящичек. Это бортовой компьютер космической станции «МИР» , который проектировали инженеры советского объединения «ЭЛАС», которое трансформировалось в современную зеленоградскую компанию «ЭЛВИС»:



Итак, темы для учебных проектов — начиная из дремучих десятилетий середины XX века:

MIPSfpga – практический опыт

Время на прочтение29 мин
Охват и читатели8.3K

KDPV
Перевод коллективной статьи Practical experiences based on MIPSfpga, не так давно представленной Сарой Харрис на симпозиуме в Торонто. Приводится подробное описание MIPSfpga 2.0, релиз которой состоялся 3 июля 2017 года. Основное, на мой взгляд, отличие по сравнению с версией 1.3: пакет лабораторных работ расширен набором, ориентированным на внутреннюю работу процессора. Так что, если вы хотите узнать, как работает современное ядро, то MIPSfpga 2.0 — это ваш выбор для качественного самообразования. Крайне полезной данная статья будет для преподавателей ВУЗов — подробно и с примерами рассматривается вопрос интеграции MIPSfpga 2.0 в учебный процесс, включая ее соответствие Методическим рекомендациям IEEE/ACM для программ бакалавриата в области вычислительной техники.

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

Подключение периферийных модулей к MIPSfpga, на примере клавиатуры Pmod KYPD

Время на прочтение4 мин
Охват и читатели4.6K
Здравствуйте! Мы одни из победителей хакатона MIPfpga, в этой статье расскажем, как подключать модули в систему на кристалле на основе MIPSfpga на примере клавиатуры Pmod KYPD. Также ознакомим с написанием программы для управления подключенных модулей.
image

→ Описание клавиатуры найдете здесь

Pmod KYPD — 16-кнопочная клавиатура с цифрами в шестнадцатеричном формате (0-F). Опрос происходит способом поочередной подачи логического 0 на каждый столбец и считывания состояния строк. Если в момент опроса столбца одна из кнопок в нем нажата, соответствующая строка выдаст логическую 1.