Обновить
64K+

FPGA *

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

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

Сравнительный анализ RISC-V микропроцессоров picorv32 и scr1 при использовании в FPGA

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

Разработчики FPGA часто сталкиваются с необходимостью внедрения в свой проект софт процессора. Когда-то давно мы могли использовать проприетарные Altera NIOS или Xilinx MicroBlase. Но время идет. В последние годы наблюдается устойчивый тренд перехода производителей ПЛИС в сторону поддержки архитектуры RISC-V.

RISC-V это открытая, расширяемая и бесплатная архитектура набора команд (ISA), которая не требует лицензионных отчислений. Оба FPGA вендора Altera и Xilinx уже довольно давно предлагают и активно разрабатывают поддержку RISC-V в своих новых продуктах, теперь это уже софт процессоры NIOS V и MicroBlase V.

Однако, зачем использовать всё ещё проприетарные ядра, если можно использовать Open Source?

В этой статье я сравниваю два Open Source RISC-V микропроцессора:
1) picorv32 от компании YoSys (https://github.com/YosysHQ/picorv32) и
2) scr1 от Syntacore (https://github.com/syntacore/scr1)

Что буду сравнивать? Производительность софт ядер и занимаемые ресурсы в FPGA.
Как правильно сравнить? Использовать единую тестовую программу написанную на языке C, например Dhrystone, и скомпилированную в бинарный файл, или HEX файл и запускаемую в двух архитектурно одинаковых SOC, но с разными ядрами RISC-V.

Читать далее

Новости

Как я разрабатывал отказоустойчивый промышленный контроллер. Ч1

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

Я, автор , независимый исследователь, разработчик SCADA системы Gatherlog А так же автор комплекса по разработке Промышленных Контроллеров под названием 3o|||sheet..

Читать далее

Способы достижения технологической независимости в области ЭВМ

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

Типичный настольный компьютер конца 90-х имел 8-16 мегабайт ОЗУ, работал на частоте 100-300 МГц и потреблял порядка 150 Вт, из которых половина приходилась на монитор. Типичная операционная система тех лет (Windows 98) официально требовала для своей работы 16 мегабайт ОЗУ. Это считалось несколько расточительным по сравнению с Windows 95, которая требовала 4 мегабайта ОЗУ вместе с браузером (и даже глянцевые журналы верстались на компьютерах с 4 мегабайтами ОЗУ, в среде PageMaker 5.0). В те же времена ещё оставались многочисленные пользователи ретро-машин, которые решали все свои задачи, имея от 128 килобайт до 1 мегабайта ОЗУ (математические и бухгалтерские расчёты, работа с текстовыми и графическими документами, переписка в Fido, чаты в BBS, компиляция ПО, трассировка печатных плат, написание курсовых и дипломных работ и разнообразные компьютерные игры).

Современный настольный компьютер имеет 8 и более гигабайт ОЗУ, работает на частоте 3 и более ГГц (4 и более ядер) и потребляет 300 Вт. Современная операционная система Ubuntu 26 официально требует не менее 6 гигабайт ОЗУ и 2 ядер по 2 ГГц [1]. При этом пользовательский функционал практически не расширился. Также известно, что на 2-3 порядка увеличились размеры отдельных программ (например, Microsoft Word, Adobe Photoshop, Adobe Reader, ACDSee, Opera, Nero, Skype и их аналоги) и окружений (Java, .NET, DirectX, OpenGL, причём речь не про видеопамять).

Читать далее

Простой процессор основной полосы частот для радиочастотных приёмопередатчиков

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

Сегодня беспроводные системы распространены повсеместно, и количество беспроводных устройств и сервисов продолжает расти. Разработка полноценной радиочастотной системы — это комплексная задача, требующая междисциплинарного подхода, при этом наиболее важной ее частью является аналоговый радиочастотный интерфейс. Однако наличие интегрированных радиочастотных приемопередатчиков, таких как AD9361, значительно упрощает решение радиочастотных задач в подобных проектах. Эти приемопередатчики обеспечивают цифровой интерфейс для цепочки аналоговых радиосигналов и позволяют легко интегрировать их с ASIC или FPGA для обработки в основной полосе частот. Процессор основной полосы частот (BBP) позволяет обрабатывать пользовательские данные в цифровой среде между конечным приложением и приемопередающим устройством. Конструкцию процессора основной полосы частот также легко спроектировать с помощью инструментов системного моделирования, таких как Simulink. Однако начинающему пользователю может быть трудно понять и дополнить эту часть головоломки системы связи. Эта статья представляет собой скромную попытку спроектировать и реализовать простой радиочастотный процессор основной полосы частот для системы беспроводной связи. Проект реализован на платформе AD-FMCOMMS2-EBZ и Xilinx® ZC706 с использованием эталонной конструкции FPGA AD9361.

В первом разделе этой статьи подробно описаны общие принципы проектирования процессора основной полосы частот. Этот раздел представляет собой в основном теоретическое введение в тему. Во втором разделе рассматривается фактическая аппаратная реализация процессора основной полосы частот на базе эталонной платы FPGA AD9361 от Analog Devices. Отмечается, что основная цель разработки — максимально упростить конструкцию и продемонстрировать быструю передачу данных по беспроводной связи в лабораторных условиях. Использование радиочастотного спектра сопряжено с соблюдением нормативных требований и другими последствиями.

Читать далее

Как ускорить верификацию: советы для инженеров и менеджеров аппаратной разработки

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

Привет, Хабр! Меня зовут Алина, я руковожу группой модульной верификации в YADRO. Свой путь в отрасли я начинала со схемотехники и разработки RTL под FPGA. На Хабре даже есть моя статья про использование опций синтеза в Vivado, написанная еще до того, как различные стратегии на основе AI стали нормой. В черновиках лежит вторая часть той статьи, где я делаю вид, что понимаю математику, которая лежит в основе синтеза цифровой схемы из RTL :) Однако тот текст так и остался черновиком, а я ушла в верификацию и работаю в ней уже больше шести лет.

Скорость верификации IP-компонентов зависит не только от верификаторов. Чтобы ее увеличить, ряд полезных практик в свою работу могут внедрить и соседние команды — управления проектами, RTL-дизайна и архитектуры. Далее в статье я такими практиками поделюсь.

Читать далее

О преподавательских работах в Азербайджане, с фотографиями

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

Получил письмо от декана азербайджанского университета ADA University в Баку с просьбой распостранить информацию, что они нанимают большое количество преподавателей. Декан кстати из России, уроженец Дагестана. В университете у них висят портреты как западных деятелей, так и российских - Чехова, Менделеева итд. Многие из преподавателей - азербайджанцы, которые ездили учиться в США и вернулись поднимать родину. Но есть и много иностранцев. Из студентов процентов 70% владеют русским, но 30% не владеют, плюс есть толика иностранных студентов, поэтому официальный язык всего английский. Но во время моего семинара два года назад мы переходили на русский по необходимости, как и разумеется студенты говорят на азербайджанском друг с другом и владеющим азербайджанским преподавателям.

Читать далее

Чип размером с приусадебный участок

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

Может начать рисовать комиксы против проповедников ИИ, которые говорят "не смотри в генерируемый код, просто проверяй его в тестовом стенде"? Ниже первый эксерсиз.

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

В тесте было около 10 тысяч транзакций. Я удвоил их количество - все тут же взорвалось - переполнение очереди - утеря данных - ошибка проверки против написанной вручную транзакционной модели.

А ведь если поставить такой блок в реальное устройство, там накрутится за полчаса триллион транзакций (гигагерц - миллиард в секунду - умножить на 20 минут по 60 секунд = 1200 миллиардов).

Это что же - поставить в чип двести триллионов D-триггеров для flop-based FIFO которое оно сгенерило? А если рассматривать худший сценарий работы за сутки - ставить квадриллион D-триггеров? Это чип размером с приусадебный участок.

Сделал в LinkedIn пост на английском:

Читать далее

Формальная верификация «для богатых»: используем Jasper C2RTL App из Cadence JasperGold

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

Привет! Меня зовут Андрей, я занимаюсь верификацией аппаратного обеспечения в YADRO. В разработке цифровых устройств (GPU, CPU, AI-ускорители) большое внимание уделяют трактам обработки данных (datapath). Архитекторы создают эталонные модели блоков на языках высокого уровня (C/C++), чтобы быстрее проводить архитектурные исследования и отладку алгоритмов. Конечная реализация выполняется на RTL (Verilog/SystemVerilog). 

После реализации в виде RTL-кода всегда хочется проверить соответствие итогового дизайна оригинальной модели — здесь помогает формальная верификация. Если вам повезло работать в крупной полупроводниковой компании с доступом к коммерческим инструментам формальной верификации, можно подумать о проверке логической эквивалентности между C и RTL-кодом.

Один из популярных инструментов для такой проверки — это Jasper C2RTL App в составе платформы Cadence JasperGold. В этой статье мы рассмотрим, как работает C2RTL, из каких этапов состоит процесс верификации с ним, как формируются проверки (ассерты) и с какими ограничениями сталкиваются инженеры.

Читать далее

Как я перешла из тестирования в аппаратную верификацию без опыта в процессорных архитектурах

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

Смена технологической области кажется рискованным шагом: новые термины, другая инженерная культура и ощущение, что придется начинать почти заново. Но на практике переход может оказаться гораздо более плавным.

Меня зовут Любовь Молчева, я руководитель группы unit-верификации дивизиона разработки полупроводниковых продуктов YADRO. До этого вся моя карьера была связана с программной разработкой и тестированием. Перейдя в верификацию полупроводников, я обнаружила, что многие управленческие и инженерные навыки остаются нужными, а требования новой роли во многом совпадают с уже накопленным опытом. В этой статье разберу, какие навыки из software оказываются полезны в hardware, с какими сложностями сталкиваешься в первые месяцы и как выстроить погружение в новую область без ощущения, что начинаешь карьеру с нуля.

Читать далее

bladeRF 2.0 micro xA9: обзор реальных проектов, приложений и фреймворков

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

Я решил продолжить обзор bladeRF 2.0 micro xA9 через рассмотрение списка проектов, которые наиболее ярким образом демонстрируют возможности данного SDR в реальных применениях. Многие из этих вариантов прямо или косвенно базируются и обусловлены возможностями данного SDR. Перебирая все упоминания проектов с поддержкой bladeRF, я пришел к выводу, что bladeRF 2.0 micro xA9 лучше всего раскрывается там, где нужны не просто прием и декодирование, а широкий захват, передача, full duplex, MIMO, FPGA и кастомные GNU Radio/Soapy/libbladeRF сценарии. Самые сильные и практически ценные направления рассмотрим ниже. Но обо всем по порядку. 

Всем заинтересовавшимся — добро пожаловать под кат =)

Читать далее

DMA в userspace на Zynq US+: собираем данные AXI-Stream для CPU

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

Привет! Меня зовут Данил, я разрабатываю прикладное ПО для радиочастотных систем YADRO. В этой статье я расскажу об одном из вариантов сбора данных AXI-Stream для обработки на CPU, рассмотрю в этом контексте возможности и требования блока AXI DMA, а напоследок порассуждаю о когерентности кешей и о том, что на самом деле здесь требуется от драйвера ядра.

Читать далее

Типичные ошибки новичков в FPGA: от выбора платы до неинтуитивных кнопок

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

Привет, Хабр! Меня зовут Артём Аверченко, я преподаю в ОмГТУ дисциплины, связанные с FPGA. В этой статье я обобщу свой десятилетний опыт лабораторных работ в этой области и опишу ошибки, которые чаще всего совершают начинающие. Разумеется, на исчерпывающий список я не претендую — едва ли его здесь можно составить в одиночку. Но постараюсь дать как можно больше полезной информации.

Читать далее

SD карта как память программ для RISC-V ядра YRV на FPGA Tang Nano 9K

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

Решаем вопрос нехватки оперативной памяти на недорогих отладках в домашнем софтядерном процессоростроении. Попытка реализовать прототип PicoSoC, но на ядре YRV и с SD картой на отладке Tang Nano 9K.

Читать далее

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

Формальная верификация «для бедных»: выбираем open source-решение

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

Как убедиться, что в аппаратном дизайне нет багов? Результаты обычных тестов иногда сигнализируют только о том, что ошибки не нашлись, а не о том, что их нет вовсе. На помощь приходит формальная верификация — метод, который проверяет все состояния системы в поисках ошибки. Для промышленной верификации есть три решения: VC Formal от Synopsys, Cadence от JasperGold и коммерческая часть Yosys. Проприетарные инструменты проверены «в бою», но доступны далеко не всем.

Меня зовут Борис Новосёлов, я младший инженер по верификации в YADRO, и я изучил альтернативы с открытым исходным кодом: CIRCT, Slang, Synlig и другие. Вы узнаете, как работают эти инструменты и на что обратить внимание при выборе решения для своего проекта.

Читать далее

Дешифратор BCD‑7seg своими руками: от таблицы истинности до иерархической схемы в Digital Deeds

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

Как из таблицы истинности и четырёх битов родился семисегментный дешифратор? Разбираем два способа синтеза логических выражений, минимизацию и сборку в Digital Deeds. Спойлер: ни одной готовой микросхемы, только логика и желание понять, как это работает внутри.

Читать далее

Черная магия FPGA-разработчика: как мы превращаем идеи в железо

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

Привет, Хабр! Меня зовут Кирилл Алексеев, я старший инженер по разработке аппаратного обеспечения в отделе интеграции систем на кристалле радиочастотного центра YADRO. В мире FPGA я уже больше 10 лет. 

В учебных программах разработка под FPGA (ПЛИС, программируемые логические интегральные схемы) освещается довольно мало. Может возникнуть ощущение, что это «странная» область предназначена только для радиофизиков или гиков. Но и в эту сферу уже давно пришел прогресс с системами контроля версий, таскбордами, VS-кодом, Python-скриптами и даже с элементами объектно-ориентированного программирования при верификации цифровых схем. Этой статьей я хочу «десакрализировать» тему FPGA-разработки, обозначив крупными мазками стек используемых технологий и отразив повседневные задачи, которые стоят перед FPGA-разработчиком. Для примера возьмем workflow нашего отдела. 

Статья будет полезна молодым специалистам, которые только определяются с карьерным треком. А еще это отличная шпаргалка, которая поможет быстро (ну или не совсем быстро) объяснить непрофильным коллегам, чем конкретно вы занимаетесь. Более опытных читателей приглашаю в комментарии для холивара обмена лучшими практиками.

Читать далее

Аппаратная платформа обработки сетевого трафика

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

Добрый день, уважаемые коллеги!

Как я уже говорил, наша компания ведёт разработку аппаратных платформ для средств защиты информации (СЗИ). На основе этих платформ мы делаем свои аппаратно‑программные комплексы (ПАК), решающие те или иные задачи, обеспечивающие безопасность. Стоит отметить, что такие платформы — только часть в ПАК, причём самая негибкая, и самая изюминка, как правило, содержится в программном обеспечении. Давайте припомним, что IBM PC тоже в основном состоял и состоит из аппаратной платформы, а всё многообразие применений даёт всякое разное ПО 😊

Читать далее

Как не угробить FPGA в космосе: архитектура скрабберов и борьба с радиацией

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

Представьте, что ваш код на ПЛИС может самопроизвольно измениться в любой момент. Для космоса это не фантазия, а суровая реальность. Разбираем архитектуру скрабберов: внутренний vs внешний, Readback vs Blind, практические рекомендации по защите FPGA от SEU/SEFI.

Читать далее

Создание USB контроллера на FPGA чипе и подключение клавиатуры

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

Здравствуйте меня зовут Дмитрий сегодня мы напишем контроллер USB-шины и подключим к нему клавиатуру.

Читать далее

Как мы прототипировали контроллер PCI Express от стороннего производителя

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

Привет! Я Константин Павлов, старший инженер по разработке СнК в компании YADRO. В этой статье я поделюсь опытом, полученным нами при прототипировании подсистемы PCI Express на ПЛИС.

Прототипирование здесь — это когда мы берем код на SystemVerilog, предназначенный для запуска исключительно на ASIC, и далее через минимальные воздействия адаптируем его, чтобы запустить на FPGA. Зачем это нужно? Дело в том, что производство ASIC занимает очень много времени, а ошибки крайне дороги. Поэтому, чтобы дать возможность программистам отлаживать код, писать драйверы, настраивать систему, причем гораздо раньше, чем реальный чип будет произведен, — для этого и делают ранние прототипы на ПЛИС.

Я перечислю стандартные этапы прототипирования, а затем подробно остановлюсь на более интересных приемах работы с кодом, которые нам пришлось применить.

Читать далее
1
23 ...