Обновить
44.01

FPGA *

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

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

Прикоснемся к магии или как я вступил в ряды MISTического общества

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

Ниже предложен рецепт приготовления деликатеса, позволяющего Вам попробовать различные 8 и 16-битные приставки и компьютеры. Основное же блюдо для меня miniMIG — Amiga core с графикой OCS/AGA/RTG и CPU до 68020 в 20 раз быстрее стандартной A600.


В свои студенческие годы после ZX-Spectrum (Пентагон-128 с дисководом) я прикоснулся к волшебному миру Амига, сначала A600, затем A1200, аксели от 030-40MHz до PPC603+040. И вот, совсем недавно я узнал о Apollo Vampire (цена конечно кусачая) решил поискать что-нибудь подобное. Нашел несколько вариантов, но самый интересный, на мой взгляд, проект MIST доделанный Павлом Рябцовым. Проштудировал ветку Сборка, настройка платы MiST v 1.31 , заказал на сайте CHIPkin две печатные платы (как оказалось потом правильное решение, попеременно возникали проблемы то с одним, то с другоим экземпляром) и детали, которые были в наличии. Остальное было куплено на Али и "Чип и Дип", по мере прибытия деталей, начал сборку, о чем и хочу рассказать вам. Если Вы являетесь таким же OLD-фагом старых компьютеров, как и я, пожалуйста, приготовьтесь к прочтению.

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

Управление семисегментным дисплеем с помощью ПЛИС

Время на прочтение8 мин
Охват и читатели11K
Привет, Хабр! Хочу внести свою посильную лепту в продвижение ПЛИС. В этой статье я постараюсь объяснить, как на языке VHDL описать устройство, управляющее семисегментным дисплеем. Но перед тем как начать, хочу кратко рассказать о том как я пришел к ПЛИС и почему я выбрал язык VHDL.

Где-то пол года назад решил попробывать свои силы в программировании ПЛИС. До этого со схемотехникой никогда не сталкивался. Был небольшой опыт использования микроконтроллеров (Atmega328p, STM32). Сразу после решения освоиться с ПЛИС, встал вопрос выбора языка, который я буду использовать. Выбор пал на VHDL из-за его строгой типизации. Мне, как новичку, хотелось как можно больше возможных проблем отловить на этапе синтеза, а не на рабочем устройстве.

Почему именно семисегментный дисплей? Мигать светодиодом уже надоело, да и логика мигания им не представляет из себя ничего интересного. Логика управления дисплеем с одной стороны сложнее, чем мигание светодиодом (т. е. писать ее интереснее), а с другой достаточно простая в реализации.
Читать дальше →

Использование произвольных DataFlash 25-й серии вместо дорогих конфигураторов FPGA Altera без дополнительной аппаратуры

Время на прочтение7 мин
Охват и читатели13K
Из любого описания на популярные FPGA известно, что для хранения их конфигураций используются специальные микросхемы – конфигураторы. В комментариях меня поправили, что потихоньку набирают популярность и FPGA, где это не требуется, но пока многие делают разработки именно на классике, где нужен конфигуратор, и с этим надо считаться. Например, для Altera Cyclone используются микросхемы EPCS. Ниже схема от типичной макетной платы с кристаллом семейства Cyclone IV. На ней мы видим конфигуратор EPCS16. Всё бы ничего, но традиционно эти конфигураторы достаточно дороги, поэтому хотелось бы использовать что-нибудь подешевле.

Подробности в длиннющем тексте ниже. Если же очень интересно, но лень читать так много букв, то можно упростить задачу, посмотрев подробное 20-минутное видео.

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

Написание и запуск скрипта для симуляции Verilog-кода в ModelSim

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

image

Всем привет! Надеюсь, все хорошо провели праздники и готовы с новыми силами покорять высоты FPGA разработки.


Сегодня я хочу написать небольшой гайд по запуску тестбенчей на Verilog/SystemVerilog в ModelSim без использования GUI.


План будет такой:


  1. Добавление пути к ModelSim в PATH.
  2. Написание скрипта с объяснением команд.
  3. Запуск ModelSim с исполнением написанного скрипта.

Поехали!

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

Отладочная плата ПЛИС — Франкенштейн. Телеграфный передатчик

Время на прочтение6 мин
Охват и читатели15K
Бегут последние деньки уходящего года. Предновогодняя суета. А для тех, у кого выдалась свободная минутка на работе, я предлагаю серию статей про самодельную отладочную плату на базе ПЛИС Altera EPM 7064.



Недавно мне потребовалось найти пару 1U корпусов под мой проект. И в качестве альтернативы новым, мы решили поискать старые приборы в 1U формате, внутренности выкинуть, а корпус использовать по назначению. Но, открыв корпус, я был приятно удивлен! Целых четыре ПЛИС от Altera, да к тому же 5 вольтовых. Я не смог удержаться, чтобы одну из них не попробовать в деле!

Паяльной станции у меня нет, ЛУТ технологию я не практикую. Поэтому я взял строительный фен на 250 градусов и отковырял микросхему ПЛИС от платы. Переходной платы для такого корпуса у меня тоже не было, поэтому я взял обычную макетку, впаял в нее стойки и с помощью накрутки и пайки, соединил выводы микросхемы со стойками. Вывел разъем JTAG и питания, прикрутил генератор. Это все, что нужно для начала работы с микросхемой

Что можно сделать из такой маленькой ПЛИС? Радиолюбители решают такую проблему очень просто: в любой непонятной ситуации мы делаем передатчики! Из чего? Да из чего угодно, что под руку попало в данный момент! А сегодня у нас Altera EPM7064.
V - Я люблю трэш!

Embedded World 2016: куда катится embedded-мир?

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

Давненько мы ничего не писали. А тем временем...

В тридевятом царстве, в тридесятом государстве, в баварской вотчине, в средневековом городе Нюрнберге проходит выставка под названием Embedded World. Цель выставки — собрать в одном месте производителей, разработчиков, студентов и других заинтересованных граждан. Проходит она три дня — с 23 по 25 февраля.




Сайт выставки: http://www.embedded-world.de

Около 900 участников, примерно 25 тысяч посетителей. Двух дней еле-еле хватает, чтобы понять, что к чему. Поэтому выставка длится три дня :)

Судьба забрасывает меня на это мероприятие уже не в первый раз: мы с коллегами по НТЦ Метротек посещали выставку в 2013, 2014 и 2015 годах. Именно здесь мы впервые увидели Cyclone V SoC (System On Chip c ARM и FPGA на борту), который впоследствии лёг в основу новых девайсов производства НТЦ Метротек (это — Беркут-ЕТ, EthOnd, BlueSoM, ETL-N). Именно здесь мы нашли производителей корпусов EMKO и наладили с ними сотрудничество, теперь все стоечные приборы (свитч Metrotek X10-24, Беркут-МХ) выглядят единообразно. Здесь мы узнаём о новинках и трендах.

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

Разработка цифровой аппаратуры нетрадиционным методом: Контроллер USB 1.0 на SpinalHDL

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

Продолжая развивать свою синтезируемую систему-на-кристалле для ПЛИС, о которой я уже написал несколько статей, столкнулся с необходимостью подключать устройства ввода типа клавиатура, манипулятор мышь или джойстик. Если обратиться к тому, чем занимаются ретро-фаны, то проблем особых нет — старый добрый интерфейс PS/2 очень прост в реализации, он позволяет легко взаимодействовать с клавиатурой и мышью с минимальными ресурсами. Фактически PS/2 это последовательный синхронный порт работающий на низких скоростях, реализовать его можно программно. С ретро-джойстиками тоже проблем нет - положение джойстика это всего лишь замыкание контактов, что легко обрабатывается программно. Проблема в том, что всё это «ретро» постепенно уходит из нашей жизни, клавиатуры и мыши с интерфейсом PS/2 всё еще можно приобрести на маркетплейсах, но всё же редкость. И от джойстика хочется чего-то большего чем просто замыкания пяти контактов, а именно — градации положения стика. Такая фича доступна либо на очень старых аналоговых джойстиках, либо на современных геймпадах с USB интерфейсом. В конце концов я разрабатывают хоть и минималистичную, но современную систему с современной архитектурой (RISC-V) предназначенную для современного промышленного применения, а не для ретро-гейминга. ;-) В общем, встал вопрос как подключать простые HID устройства ввода через USB к своей синтезируемой ЭВМ.

Интерфейс шины USB на столько широко вошел в обиход, что мы даже не задумываемся что там внутри: сколько сигнальных проводов в USB кабеле, как они подключены, как передаются по ним данные, на каких скоростях и какие могут быть ограничения. Всё что мы знаем это то, что USB бывает разных версий: 2.0 — медленный и 3.0 — очень быстрый; и что USB устройства бывают с разными видами разъемов: USB type A и, с недавних пор, USB type C. Для большинства пользователей и программистов USB это такая штука, которую «вставил и работает». А если нет, то нужно вынуть, перевернуть устройство два раза вокруг его оси и вставить в компьютер еще раз. Если и так не заработало, то искушенный пользователь возможно вспомнит команду lsusb чтобы выяснить какие сейчас устройства присутствуют в системе или даже заглянет в dmesg чтобы выяснить наличие ошибок при детектировании устройства. Но что означают эти сообщения ? Еще меньшее число пользователей понимает результат вывода команды lsusb -v. Не многим лучше обстоят дела с пониманием USB у разработчиков электроники. Обычно на их уровне USB это четыре провода: GND, VBUS, D+ и D-, при этом каждый электронщик знает что D+ и D- это дифференциальная пара которую требуется трассировать на печатной плате соответствующим образом. Но так ли это на самом деле ?

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

Читать далее

Шпаргалка по AXI: Краткое описание интерфейса

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

Обзор интерфейса AMBA AXI на основе Introduction to AXI. Может быть полезным тем, кто хочет быстро понять основные его фишки.

Читать далее

Морфологические преобразования и гамма коррекция на FPGA. Публикую проект Arduino стереокамеры на github

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

Продолжаю дорабатывать прошивку своей Arduino стерео-камеры. Следующий этап разработки — аппаратная реализация морфологических преобразований и блока гамма-коррекции. Исходники проекта теперь доступны на github

Читать далее

Путь в микроэлектронику через верификацию: руководство для начинающих

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

Привет, Хабр! Меня зовут Дмитрий Кишко, я руководитель группы функциональной верификации в YADRO. Представьте, что вы строите космический корабль. Он еще не взлетел, но любая ошибка в конструкции уже может стоить миллионы или даже сорвать всю миссию. В разработке микроэлектроники ситуация похожа: перед тем как чип попадет на производство, его работу проверяют сотни раз, но не физически, а в симуляторах. Этот этап называется функциональной верификацией, и без него современная электроника просто «не взлетит».

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

Читать далее

Алгоритм межкадровой разности на FPGA стереокамере

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

В этой статье я расскажу о продолжении работы над своим проектом стереокамеры на базе FPGA Gowin. В последней версии я добавил блок расчета попиксельной межкадровой разницы, используя встроенную в один корпус с FPGA SDR SDRAM память

Читать далее

В Мексике студенты отличаются дисциплиной, а у спецназа большие автоматы

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

Провел семинар по SystemVerilog, Gowin FPGA и Tiny Tapeout в городе Тихуана, Мексика. Главное впечатление: я в первый раз в жизни вижу студентов, которые приходят в 8 утра, делают упражнения по верилогу до 6 вечера, с перерывом на полуторачасовый обед, и при этом все 20 студентов выполнили все вариации упражнений которые я от них хотел.

Читать далее

Сборник встраиваемых модулей на ПЛИС

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

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

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

Читать далее

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

Обзор отладочной платы Altera Cyclone IV OMDAZZ

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

Я решил в этом сезоне закончить обзоры разнообразных плат с ПЛИС и переключиться на действительно сложные (для меня) технические задачи. И последний свой обзор в этом сезоне я решил посвятить плате с Altera Cyclone IV на плате от OMDAZZ, которой со мной любезно поделилась компания из Питера - “РСВ Электроникс” в которой я рассматриваю возможность пройти обучение основам Verilog и обобщить свои знания по цифровой схемотехнике, получить практические навыки, которые помогут мне решать новые для себя задачи, а затем писать для вас разные крутые статьи! ?

Обзор будет не самый обычный - я еще попутно расскажу о том, как с использованием этой платы и при помощи наставников из РСВ Электроникс я буду повышать свой скилл по работе с FPGA с около нулевого до достаточно уверенного junior-уровня. Не всё же просто обзоры делать с мигалками. Пора двигаться дальше! :) 

Всем кого заинтересовала данная тема - прошу проследовать за мной (под кат)! 

Читать далее

Как я делал лучшие арифметические ядра и сделал лучший селектор (демультиплексор)

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

Небольшой рассказ о том, как я делал арифметические ядра и сделал лучший селектор (декодер адресов).

Что, опять?

Что общего у тополога с художником и при чем тут литография

Время на прочтение6 мин
Охват и читатели9.4K
Проектирование топологии – один из ключевых этапов в разработке интегральных схем. Это можно назвать искусством, поскольку регулярное уменьшение геометрических норм и увеличение сложности проектов, требует от инженеров-топологов огромной работы. И естественно, такую специальность не обошли вниманием на хакатоне.

Привет, я Александр Калёнов, аспирант и инженер кафедры интегральной электроники и микросистем в МИЭТ, работаю дизайнером СБИС в «НИИМА «Прогресс». Для хакатона YADRO SoC Design Challenge я создавал задание по топологии, которое мы тут и рассмотрим.


Приятного чтения!

Первые эксперименты со смешанным Litex+Verilog проектом для ПЛИС

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

В предыдущей статье мы начали осваивать построение шинно-ориентированных систем на базе среды Litex (которая всё делает на Питоне) с внедрением собственных модулей на Верилоге. Статья так разрослась, что практические опыты мы оставили на потом. Пришла пора провести их. Сегодня мы подключимся к VGA-монитору и поуправляем изображением, которое выдаёт модуль gpu, описанный в файле gpu.v, то есть, реализованный на языке Verilog. Управлять мы им будем через регистр команд, расположенный в блоке CSR, спроецированном на шину Wishbone. Все эти сущности, в свою очередь относятся к среде Litex. Инструменты для опытов мы тоже будем использовать штатные, Litex-овские. Приступаем!

Читать далее

Zynq 7000. Порты GPIO, PS, PL

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

Продолжаю описывать свою “беготню по граблям” по мере освоения SoC Xilinx Zynq XC7Z020 с использованием отладочной платы QMTech Bajie Board. В этой статье хотелось бы рассказать, как я решил задачу по настройке тактирования из PS, получению и работе с входными сигналами с кнопок, реализацию примитивного фильтра антидребезга и логического элемента "И" в PL.

Читать далее

Integer Cube Root in Verilog

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

Introduction


We have created a synthesizable verilog code for calculating an integer cube root of an integer number via binary search algorithm. This code had been tested on Cyclone IV FPGA board. Here you can read about implementation and understand how things works.

Github link: Cube root
Читать дальше →

Модель разработки на примере Stack-based CPU

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

Возникал ли у вас когда-нибудь вопрос "как работает процессор?". Да-да, именно тот, который находится в вашем в ПК/ноутбуке/смартфоне. В этой статье я хочу привести пример самостоятельно придуманного процессора с дизайном на языке Verilog. Verilog — это не совсем тот язык программирования, на который он похож. Это — Hardware Description Language. Написанный код не выполняется чем-либо (если вы не запускаете его в симуляторе, конечно), а превращается в дизайн физической схемы, либо в вид, воспринимаемый FPGA (Field Programmable Gate Array).

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