Главная » Архив меток: FPGA

Архив меток: FPGA

[Из песочницы] Начинаем FPGA на Python

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

Читать далее »

[Из песочницы] Etherblade.net — opensource проект по созданию инкапсулятора ethernet-трафика на FPGA (часть первая)

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

Читать далее »

FPGA митап в Санкт-Петербурге

Поэтому решили, что надо развивать направление самостоятельно: для начала организуем встречу в Санкт-Петербурге в «митап»-формате для разработчиков FPGA и интересующихся этой тематикой. Более 15 лет мы разрабатываем устройства на FPGA и переносим сложные и разные алгоритмы в FPGA, а площадки для офф-лайн общения в России найти не смогли. Событие называется «Байки FPGA-шников». Собираемся для неформального общения 29 января в 19:00. ...

Читать далее »

Ещё один простой процессор на verilog

В статье описан очередной велосипед процессор и ассемблер для него. Вместо обычных RISC/СISC процессор не обладает набором инструкций как таковым, только единственная инструкция копирования. Подобные процессоры есть у Maxim серия MAXQ. Для начала опишем ROM, память программ module rom1r(addr_r, data_r); parameter ADDR_WIDTH = 8; parameter DATA_WIDTH = 8; input [ADDR_WIDTH - 1 : 0] addr_r; output [DATA_WIDTH - 1 : ...

Читать далее »

Десятиклассница из Сибири хочет стать проектировщицей процессоров. Почему бы ей не сделать нейроускоритель на ПЛИС?

Вчера мне пришло письмо от десятиклассницы из Сибири, которая хочет стать разработчицей микропроцессоров. Она уже получила некоторый результат в этой области — добавила инструкцию умножения в простейший процессор schoolMIPS, синтезировала его для ПЛИС Intel FPGA MAX10, определила максимальную частоту и повышение производительности простых программ. Все это она сначала делала в деревне Бурмистрово Новосибирской Области, а потом на конференции в Томске. ...

Читать далее »

[Из песочницы] Integer Cube Root in Verilog

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 Cube root of a number y is a number x such that $$display$$x^3=y$$display$$ Examples: ...

Читать далее »

[Из песочницы] Real-time edge detection using FPGA

Introduction Our design is built on a Cyclone IV FPGA board which enables us to optimize the performance using the powerful features of the low-level hardware and parallel computations which is important to meet the requirements of the real-time system. Our project implements a real-time edge detection system based on capturing image frames from an OV7670 camera and streaming them ...

Читать далее »

[Из песочницы] The Snake game for FPGA Cyclone IV (with VGA & SPI joystick)

Introduction This article describes our implementation of the game on an FPGA1. Do you remember the snake game from childhood, where a snake runs on the screen trying to eat an apple? Figure 1. Gameplay There are 3 of us: Tymur Lysenko, Daniil Manakovskiy and Sergey Makarov. First, let us introduce ourselves and explain the rationale why we have worked ...

Читать далее »

[Из песочницы] Написание простого процессора и окружения для него

В этой статье я расскажу какие шаги нужно пройти для создания простого процессора и окружения для него. Здравствуйте! Важны такие параметры как: Для начала нужно определиться с тем, каким будет процессор. Архитектуры процессоров можно разделить по размеру инструкций на 2 вида (на самом деле их больше, но другие варианты менее популярны): Их инструкции простые и выполняются сравнительно быстро, тогда как ...

Читать далее »

[Из песочницы] Модель разработки на примере Stack-based CPU

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

Читать далее »