На днях мы вместе с Алексом и Владимиром (на фотке) спортировали MIPSfpga (пакет для введения в проектирование систем на кристалле) на плату Terasic DE0-CV с Altera Cyclone V FPGA. Эта плата — довольно хорошее решение для образовательного российского рынка, так как она дешевая ($150) и ее просто купить на сайте тайваньской компании Terasic, которая без лишней бюрократии доставляет платы в Россию. Мы попробуем использовать это на семинарах в МГУ, МИФИ, МИЭТ и ИТМО (см. в конце поста).
Рубрика «ПЛИС» - 11
Портирование MIPSfpga на плату Terasic DE0-CV с Altera Cyclone V FPGA
2015-08-25 в 6:01, admin, рубрики: Altera, fpga, mips, xilinx, образование, ПЛИС, программирование микроконтроллеров, Электроника для начинающихСамодельные картриджи для Dendy-Famicom
2015-08-07 в 8:39, admin, рубрики: dendy, diy или сделай сам, Famicom, Nes, денди, Игровые приставки, картриджи, маппер, ПЛИС, почему-то не на хабре, программирование микроконтроллеров, Электроника для начинающих
После моей статьи про дампер картриджей (которую пока что оставили на Хабре почему-то), меня очень много раз просили рассказать, как собирать и записывать картриджи для Денди/Famicom самому. Да, это очень избитая тема, даже в древних номерах журнала «Радио» про это можно было почитать, но прогресс не стоит на месте. Рассмотрим эту тему с точки зрения современных компонентов. Тем более, по-моему, она идеально подходит для изучения азов работы с ПЛИС, именно на этом я и сам учился.
Bus Blaster — универсальный скоростной bit-bang интерфейс для терпеливых энтузиастов
2015-06-13 в 17:23, admin, рубрики: avr, bit-bang, bus blaster, cpld, diy или сделай сам, FT2232H, ft232, ftdi, I2C, jtag, mpsse, SPI, xilinx, ПЛИС, программатор, метки: bus blaster
Мне давно хотелось иметь какой-нибудь простой и универсальный аппаратный интерфейс с несколькими входными и выходными сигналами, функциональность которого определяется исключительно софтом, вроде достопамятного программатора PonyProg. И чтобы его можно было использовать не только как чтения/записи прошивок, но и для отладки программ через JTAG. При этом покупать что-либо промышленное, при моем нерегулярном баловстве с электроникой, избыточно и нерентабельно — требовалось что-то из серии «полуфабрикатов», на основе bit-bang.
С переходом на 2k/XP возникли сложности с прямым доступом к портам ввода/вывода, но они успешно решались костылями вроде giveio. Гораздо сильнее портила жизнь более высокая фоновая активность в NT, из-за которой сложнее было выдержать стабильность передачи и приема.
Как известно, на современных компьютерах, тем более — ноутбуках, с аппаратными портами не густо, ибо большинству пользователей они не нужны. USB-адаптеры для подключения устройств с интерфейсами RS232 и Centronics (в просторечии — COM/LPT) хорошо работают лишь в рамках основного назначения, а делать на них «дрыгоножество» проблематично по целому ряду причин. Во-первых, большинство этих адаптеров умеет обрабатывать с хорошей скоростью только сигналы данных (те же Tx/Rx), а управляющие сигналы обрабатывает с большими задержками. Во-вторых, адаптеры различных производителей аппаратно несовместимы, а возможности нестандартного управления через драйвер производителя сильно ограничены. В-третьих, для передачи команд адаптеру почти все драйверы используют отдельные USB-пакеты, что ограничивает частоту смены состояний всего тысячей раз в секунду, чего для многих применений катастрофически мало.
К счастью, компания FTDI уже давно предлагает ряд решений для USB, ориентированных именно на скоростной обмен произвольными сигналами. Беглое изучение вопроса показало, что наиболее популярны в этом плане интерфейсы на микросхемах FT232H/FT2232H.
Читать полностью »
Minesweeper на FPGA
2015-02-06 в 12:13, admin, рубрики: fpga, Gamedev, vhdl, xilinx, ПЛИС, программирование микроконтроллеров, метки: FPGAПривет всем!
Прочитав статью «Делаем тетрис под FPGA», я вспомнил, что у меня завалялся похожий проект, который я когда-то использовал для своеобразного предложения «руки и сердца» своей девушке.
А почему бы не сделать нечто подобное самому?
Откопав исходники, возобновил утерянные знания и решил на базе старого проекта на скорую руку написать простую версию игры «Сапёр» на старенькой ПЛИС Spartan3E. Собственно, о реализации игры «Сапёр» на уровне логических вентилей и основных особенностях разработки на FPGA фирмы Xilinx и пойдет речь в данной статье.
Читать полностью »
Делаем тетрис под FPGA
2015-01-11 в 14:55, admin, рубрики: Altera, de1, fpga, game development, SoC, SystemVerilog, tetris, Verilog, VGA, девкит, игры, ПЛИС, Программирование, Электроника для начинающихВсем привет!
На этих долгих новогодних выходных я задался вопросом: насколько легко написать какую-то простенькую игрушку на FPGA с выводом на дисплей и управлением с клавиатуры. Так родилась еще одна реализация тетриса на ПЛИС: yafpgatetris.
Конечно, игры на FPGA делаются больше для фана и обучения, чем для каких-то реальных “продакшен” задач, да и от “разработки” игр я очень далек, можно сказать, для меня это новый опыт.
Если интересно, как можно запускать игру без операционной системы, реализуя её на самом низком уровне, с помощью триггеров и комбинационной логики, добро пожаловать под кат.
Ядро PCI-express в ПЛИС Achronix — быстрый старт
2014-12-05 в 14:01, admin, рубрики: Achronix, fpga, pci-express, pcie, Speedster, Verilog, высокая производительность, ПЛИС, программирование микроконтроллеров
Этот пост написан с целью показать разработчикам дизайна для ПЛИС, как с наименьшими затратами времени и сил начать работать с шиной PCI-express на платформе Ahronix Speedster22i. В статье описывается организация проекта, адаптация которого к конкретным требованиям разработчика сводится к несложной модификации исходного текста всего одного модуля, что позволяет подключиться к шине PCIe хост-компьютера буквально за 1 час. Надеюсь, разработчикам на других платформах эта статья будет так же небезинтересна.
Читать полностью »
SimBank или 200 SmartCard в одной коробке
2014-10-22 в 14:10, admin, рубрики: fpga, gsm, ip-телефония, ISO-7816, linux, pcb, PCI, ram, SignalTap, sim-карта, Smart Card, sms, Verilog, voip, ПЛИС, разработкаКак я уже писал в своём первом топике на Хабре про создание печатной платы, моя фирма занимается разработкой устройств для телефонии разного рода VoIP-, GSM-, PBX-шлюзов, розетки-ребутеры управляемые через GSM и прочее. Сегодня я опишу процесс разработки прошивки для устройства SimBank в его PCI версии, где я выступил в роли разработчика схемы для ПЛИС.
История постановки задачи от руководства + история работы устройства
Устройство SimBank предназначено для работы с SIM (Subscriber Identification Module — модуль идентификации абонента) картой. Данные карты являются разновидностью ISO-7816 карт.
Читать полностью »
Пару слов о конвейерах в FPGA
2014-09-23 в 10:59, admin, рубрики: fmax, fpga, loop_engine, mac_swap, pipeline, SystemVerilog, Verilog, высокая производительность, конвейер, ПЛИС, Электроника для начинающихВсем привет!
Многим известно, что во всех современных процессорах есть вычислительный конвейер. Бытует заблуждение, что конвейер — это какая-то фишка процессоров, а в чипах для других приложений (к примеру, сетевых) этого нет. На самом деле конвейеризация (или pipelining) — это ключ к созданию высокопроизводительных приложений на базе ASIC/FPGA.
Очень часто для достижения высокой производительности выбирают такие алгоритмы, которые легко конвейеризируются в чипе. Если интересно узнать о низкоуровневых подробностях, добро пожаловать под кат!
Читать полностью »
Ты ждал знак? Вот он!
Много лет я не решался начать программировать ПЛИС, потому что это сложно, дорого и больно (как мне казалось). Но хорошо, когда есть друзья, которые помогают сделать первый шаг. И теперь я не понимаю одного — ПОЧЕМУ Я ЖДАЛ ТАК ДОЛГО?
Сейчас я помогу сделать первый шаг и тебе!
Сумбурные размышления о будущем технологии FPGA
2014-09-09 в 8:10, admin, рубрики: fpga, виртуальная память, игра жизнь, ненормальное программирование, параллельное программирование, ПЛИС, Электроника для начинающих
Работая над очередным игровым (обучающим) проектом ПЛИС для платы Марсоход2 я столкнулся с тем, что мне явно не хватает места в кристалле. Кажется и проект не очень сложный, но моя реализация такова, что требует много логики. В принципе, это ерунда, дело-то житейское. Ну, если очень будет нужно, то можно выбрать ПЛИС с большей емкостью. Собственно мой проект — это игра «Жизнь», но реализованная в ПЛИС на языке Verilog HDL.
Про логику игры, рассказывать не буду, про нее и так написано уже достаточно.
Идея проекта вот такая: каждая клетка в игровом поле представляет собой самостоятельный вычислитель. В каждом вычислителе есть своя логическая функция и свой регистр, который хранит текущее состояние клетки (живая/не живая). Все пространство для жизни клеток — это двумерный массив вычислителей, вычислители образуют целую сеть. Все вычислители работают синхронно, так как на все регистры подается единая тактовая частота. Рисунок вверху должен прояснить схему проекта.
Так вот. На моей плате стоит ПЛИС Cyclone III EP3C10E144C8 компании Альтера. 10тыс логических элементов. Сперва я думал, что смогу сделать двумерный массив клеток 128x64=8192 клетки. Не помещается. 64x64=4096 — то же не помещается в кристалл. Как же так. Я сумел вместить в ПЛИС только 32x16=512 клеток. Пичалька…
Размышления приводят меня к мысли, что возможно, в будущем, технология ПЛИС перерастет в нечто большее, чем программируемая логика. Вот об этом своем видении я хотел бы рассказать. Искушенному читателю сразу скажу, что многое далее написанное есть просто плод воображения и может быть даже бред.
Однако..Читать полностью »