GCC для FPGA

После прочтения статьи Уничтожить монополию Америки в EDA. Иннополис делает первый шаг, мне захотелось погрузиться больше в EDA тематику и изучить, что есть в opensource на данный момент для этого. Начнем с SymbiFlow. SymbiFlow - это инструмент для FPGA с открытым исходным кодом для стремительных инноваций. SymbiFlow предназначен для обеспечения новых инноваций, а также для оптимизации и автоматизации рабочих процессов разработки под FPGA, чтобы ...
Далее

Стратегия и этапы разработки LLVM бекэнд компилятора для целевой архитектуры ShuraCore.

В данной статье рассмотрена стратегия и этапы проектирования бэкенд части компилятора с использованием инфраструктуры LLVM для целевой архитектуры ShuraCore. В статье показаны все этапы прохождения LLVM IR кода в SSA представлении к моменту получения исполняемого файла для целевой архитектуры. This article discusses a strategy and design stages of a backend part of a compiler using LLVM infrastructure for the ShuraCore target architecture. The article ...
Далее

HLS часть 2. BRAM.

Сегодня пример будет про BRAM и HLS, про BRAM было рассказано в предыдущих статьях, сегодня будем расширять знания по этой теме. HLS. Часть 0. HLS часть 1 . AXIS. Vivado HLS (High Level Synthesis) — САПР Xilinx, предназначенная для создания цифровых устройств с применением языков высокого уровня C/C++. Block Memory Generator — используется как элемент оперативного и постоянного хранения информации, данный элемент реализуется на ...
Далее

HLS часть 1 . AXIS.

Vivado HLS (High Level Synthesis) - САПР Xilinx, предназначенная для создания цифровых устройств с применением языков высокого уровня C/C++. Немного про HLS читайте в предыдущей статье. HLS. Часть 0. Протокол AXI-Stream используется, как стандартный интерфейс для соединения IP блоков, которые обмениваются данными. Интерфейс может использоваться для соединения одного главного IP, который генерирует данные, с другим IP, который принимает данные. Протокол также может быть использован ...
Далее

HLS. Часть 0.

HLS (High Level Synthesis) – применяется для создания цифровых устройств с применением языков высокого уровня. Основной целью продуктов HLS является упрощение процесса проектирования FPGA для разработчика, знакомого с программированием на языках высокого уровня, таких как C++, Rust и др. Практическое применение FPGA часто вызывает трудности для дотнетчиков, джавистов и др., которые сталкиваются с целым рядом не типичных задач: появляется необходимость понимать, как и каким ...
Далее

Zynq-7000 SoC — Xilinx. Z-turn Lite. Bare metal. Часть 5.

Сегодня пример посветим BRAM, немного про BRAM было рассказано в предыдущей статье, сегодня будем расширять знания по этой теме. Block Memory Generator - используется как элемент оперативного и постоянного хранения информации, данный элемент реализуется на основе блочной памяти FPGA. Запоминающее устройство, генерируемое с помощью настраиваемого модуля Block Memory Generator. Во всех элементах памяти, создаваемых с помощью генератора Block Memory Generator, для каждого порта запоминающего ...
Далее

Zynq-7000 SoC — Xilinx. Z-turn Lite. Bare metal. Часть 4. MicroBlaze.

MicroBlaze — soft-процессорное ядро, разработанное компанией Xilinx для использования в FPGA. MicroBlaze имеет универсальные средства соединения с периферией, обеспечивающее возможность применять его в разнообразных встраиваемых решениях. Для доступа к внутренней памяти FPGA (BRAM), MicroBlaze использует специальную шину LMB (DLMB, ILMB), что снижает нагрузку на другие шины. Подключение soft-процессора возможно средствами специального соединения, подобного FIFO — FSL (Fast Simplex Link). Интерфейс с soft-процессором может помочь ускорить разработку алгоритмов с большим количеством ...
Далее

Zynq-7000 SoC — Xilinx. Z-turn Lite. Bare metal. Часть 3. Cortex M1.

Cortex M1 и Cortex M3 в открытом доступе. Zynq-7000 SoC — Xilinx. Z-turn Lite. Bare metal. Часть 1. Zynq-7000 SoC — Xilinx. Z-turn Lite. Bare metal. Часть 2. Cortex-M1 Некоторое время назад, мной был сделан обзор о доступности Cortex M1 и M3, по первой ссылке Вы сможете возобновить знания об этих ядрах. В этой статье я хотел бы поделиться знанием о том, как запустить ...
Далее

Zynq-7000 SoC — Xilinx. Z-turn Lite. Bare metal. Часть 2.

Начало статьи читайте тут: Zynq-7000 SoC — Xilinx. Z-turn Lite. Bare metal. Часть 1. UART Сегодня мы начнем с UART. Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. Преобразует передаваемые данные в последовательный вид так, чтобы было возможно передать их по одной физической цифровой линии другому аналогичному устройству. Метод преобразования хорошо ...
Далее

Zynq-7000 SoC — Xilinx. Z-turn Lite. Bare metal. Часть 1.

Zynq-7000 - это система на кристалле, это абсолютно новый класс изделий от компании Xilinx. Zynq-7000 – это ПЛИС седьмого семейства с встроенным аппаратным ядром ARM. Подобная комбинация открывает широкие возможности, как для разработчиков аппаратного обеспечения на ПЛИС, так и для разработчиков программного обеспечения на ARM. За счет ресурсов ПЛИС обеспечивается лучшая производительность, а наличие аппаратного процессорного ядра ARM позволяет делать разработки более гибкими и ...
Далее

Boost Graph C++

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

Путь джедая: Руководство для постигающих силу программирвания микроконтроллеров. Начало.

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