Как стать автором
Обновить
66.88

FPGA *

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

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

Гибридная верификация процессоров Baikal: косимуляция с FPGA-платформой прототипирования Synopsys HAPS-80

Время на прочтение7 мин
Количество просмотров4K

Традиционно, говоря о косимулиции, имеют в виду моделирование  систем, разные части которых представлены на разном уровне абстракции или написаны на разных языках. Например, SystemC-модели + RTL код, TLM-модели + RTL. При этом моделирование RTL-части может быть исполнено на симуляторе или в реальном времени на FPGA-прототипе. В последнем случае подразумевается существование некоторого интерфейса для транзакций между FPGA-платформой и хост-машиной, моделирующей остальную часть.

В «Байкал Электроникс»  для FPGA-прототипирования используют платформы Synopsys HAPS®-80, позволяющие в процессе разработки микросхемы реализовать такие сложные сценарии, как загрузка ОС, что было бы невозможно выполнить RTL-моделированием в приемлемые сроки.

Но FPGA-прототипирование не может заменить RTL-моделирование в процессе полноценной верификации отдельных подсистем, так как на FPGA невозможно во всех нюансах воспроизвести поведение таких элементов будущей микросхемы, как, например,  PHY-контроллеров интерфейсов. Также проблематично  реализовать на FPGA работу количества частотных доменов, характерного для современных систем на кристалле.

Итак, в ряде случаев полноценное RTL-моделирование незаменимо, но как быть с огромными рантаймами? Например, моделирование программного кода трейнинга DDR4 может занимать 2 недели. Перед инженерами «Байкала» встал вопрос: а нельзя ли в этом верификационном окружении выделить ту часть, которая может быть полноценно синтезирована на FPGA-платформе, и осуществить косимуляцию несинтезабельной части на симуляторе  с исполнением в real-time на FPGA синтезабельной части? Ведь очевидно, что львиная доля времени симуляции уходит на воспроизведение switching activity высокопараллельных структур, отлично портируемых на FPGA.

Читать далее

Проектировщики RISC-V из Yadro покажут школьникам как проектировать процессоры

Время на прочтение7 мин
Количество просмотров9.1K

Через неделю будет выставка ChipEXPO, на которой для начинающих будет школа проектирования железа с упражнениями на FPGA платах, а для более продвинутых - конференция Микроархитектура, верификация и физическое проектирование микросхем.

И на части для школьников, и на части для взрослых будут выступать проектировщики RISC-V процессора из Syntacore / Yadro Станислав Жельнио и Никита Поляков. Сегодня Коммерсант сравнил этот проект с полетом на Луну.

Количество заявок на школу существенно превысило количество посадочных мест, но у нас еще остался небольшой резерв FPGA плат, с бесплатной их раздачей школьникам и преподавателям из далеких от Москвы городов, которые могут принять участие в школе онлайн. В начале этой заметке мы опишем как получить плату и установить софтвер нужный для упражнений.

Далее мы расскажем про новые упражнения в школе этого года - распознавание и генерацию музыки с помощью FPGA и приведем забавные сведения из советской физматшкольной книжки 1963 года как Бах изменил гаммы.

В конце поста мы покажем, как эта деятельность поможет получить в будущем интересные и высокооплачиваемые работы в Apple, Intel, SpaceX, как и самом в модном в этом сезоне российском микроэлектронном проекте - Syntacore / Yadro (в конце поста скриншоты их объявлений).

Как же все установить до семинара?

Бывший проектировщик микросхем для Военно-Воздушных Сил США расскажет в Cколково как верифицировать FIFO

Время на прочтение6 мин
Количество просмотров10K

Если вы изучили начала цифровой схемотехники и компьютерной архитектуры по книжке Харрис & Харрис и потом вознамерились пойти собеседоваться на позицию проектировщика микросхем в Apple или NVidia, то вы интервью не пройдете. Посколько вы наверняка получите вопрос про реализацию в хардвере очередей FIFO, а это в Харрис & Харрис не описано.

Хуже того, даже если вы возьмете книжку Digital Design by William Dally & Curtis Harting, которую используют для обучения студентов в Стенфорде, и прочтете ее от корки до корки, то у вас все равно мало шансов, потому что, хотя FIFO там и есть, но в очень базисной форме, а контроль потока данных заканчивается на скид-буферах.

А что же хотят электронные компании?

Самая доступная плата для экспериментов с SoC'ом MCU&FPGA

Время на прочтение2 мин
Количество просмотров11K
Технологии шагают вперёд. И вот уже несколько лет как есть SoC’и MCU+FPGA. И на
КДПВ платка как раз с таким SoC’ом.

image

Это — Microsemi SmartFusion 2 Maker-Board. Кому интересно, что это за плата прошу под кат. Будет краткий обзор.
Читать дальше →

Integer Cube Root in Verilog

Время на прочтение5 мин
Количество просмотров3.7K

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.1K

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

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

Обсудили в Стенфорде, что делать с математическим и инженерным образованием школьников Украины

Время на прочтение8 мин
Количество просмотров16K


«Чему Америка может поучиться у Украины в области образования?» — этот вопрос возник во время совещания в Стенфорде. Оказывается, есть чему, например традициям преподавания математики, которые у Украины общие с другими странами СНГ. «Как украинское правительство поддерживает ориентацию школьников на инженерные профессии?» — был другой вопрос аудитории, в которой были сотрудники SAP, Facebook, MIPS и других известных технологических компаний.

HyperRAM: использование микросхемы с интерфейсом памяти HyperBus

Время на прочтение7 мин
Количество просмотров11K


Продолжаем знакомить читателей Хабра с «нестандартными» типами памяти для разработки электроники. В прошлый раз мы рассказывали о гибридном кубе памяти (HMC) и его подключении к FPGA, а в этой статье сфокусируемся на микросхемах памяти с интерфейсом HyperBus от Cypress, которые появились на рынке относительно недавно, в 2014 году.

Сейчас доступно две разновидности устройств: HyperRAM и HyperFLASH. HyperRAM — это псевдо-статическая память (DRAM + схема перезаряда в одном чипе), а HyperFLASH — это NOR-флэш-память с интерфейсом HyperBUS. Также доступны комбинированные чипы 2 в 1: HyperFLASH 512Mb + HyperRAM 64Mb. Ценность современных решений заключается в малом числе сигналов, мелком футпринте, достаточно большой скорости работы и адекватной цене.
Читать дальше →

Физически неклонируемые функции: защита электроники от нелегального копирования

Время на прочтение8 мин
Количество просмотров19K
За последние 10 лет количество товаров-подделок в мире увеличилось в 2 раза. Это данные отчета министерства внутренней безопасности США. Большая часть контрафакта приходится на Китай (56 %), Гонконг (36%) и Сингапур (2%).

Производители оригинальных товаров несут серьезные убытки, часть из которых приходится на рынок электроники. Многие современные товары содержат в себе электронные компоненты: одежда, обувь, часы, ювелирные изделия, автомобили. В прошлом году прямые потери от незаконного копирования потребительской электроники и электронных компонентов в составе других товаров достигли порядка 0,5 трлн долл. США.



Эту проблему помогают решить различные методы защиты цифровой электроники от нелегального копирования, модификации и обратного проектирования: аппаратное шифрование (AES, RSA и др.), хеширование (например, SHA-256, MD-5), внедрение цифровых водяных знаков и отпечатков пальцев в проектное описание, лексическая и функциональная обфускация, формальная верификация и другие.

В этой статье мы расскажем об одном из самых экономичных методов защиты с точки зрения аппаратных затрат — физически неклонируемых функциях.
Читать дальше →

Использование TCL в разработке на FPGA

Время на прочтение11 мин
Количество просмотров40K
Всем привет! Давно не писал статьи на любимую тематику и наконец-то созрел на что-то более-менее приличное и стоящее. В этой статье речь пойдет об очень интересной задаче, с которой инженер-разработчик сталкивается чуть ли не каждый день. Предлагаю вам посмотреть, каким образом можно использовать всю мощь и простоту TCL скриптов для проектирования на FPGA. В данной статье описание базируется на ПЛИС фирмы Xilinx, но это не отменяет возможностей TCL скриптов для кристаллов ПЛИС других производителей.


Интересно? Поехали…
Читать дальше →

Custom floating point format on FPGA

Время на прочтение10 мин
Количество просмотров26K
Всем привет!

В данной статье речь пойдет о числах в формате с плавающей точкой и в частности о реализации специализированного формата FP23 на программируемых логических интегральных схемах (ПЛИС). В рамках конкретного проекта у меня родилась мысль реализовать оптимальный для определенных нужд формат данных с плавающей точкой. В итоге эта мысль переросла в реальный проект, который впоследствии нашел применение в некоторых интересных задачах цифровой обработки сигналов. В статье рассмотрены основные сложности при реализации формата данных floating point на ПЛИС Xilinx, рассмотрены базовые математические операции в формате FP23. Также в конце статьи вы можете найти исходный код проекта, которой можно свободно использовать в своих задачах или на его основе реализовать похожие форматы данных.


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

FPGA. Первые шаги

Время на прочтение4 мин
Количество просмотров101K
image
В силу своей профессиональной деятельности мне приходится очень тесно работать с программированием микроконтроллеров и FPGA. Но если освоение МК более-менее подвластно даже домохозяйке, то с FPGA могут возникнуть некоторые сложности. Именно о подводных камнях и взгляде на них сверху и хотелось бы рассказать.
Читать дальше →

Стоит ли делать продолжение банкета c обсуждением работ в электронной промышленности в LA?

Время на прочтение2 мин
Количество просмотров2.5K

В прошлое воскресенье в хакерском клубе в Маунтин-Вью прошла встреча русских и украинцев живущих в северной Калифорнии (1, 2). На встрече особенный интерес вызвало обсуждение работ по проектированию микросхем: проектирование на уровне регистровых передач на языке описания аппаратуры Verilog, верификация/тестирование, прототипирование на FPGA. Далее при обсуждении встречи на фейсбуке возник вопрос "вы не планируете провести такую же тусовку в южной Калифорнии?" Я подумал "почему бы и нет", благо я все равно буду в LA в конце месяца, так как мой младший сын перевелся из CalPoly в UCLA и я еду с ним на ориентацию.

Я примерно набросал программу с учетом встреч в Маунтин-Вью и предыдущего опыта семинаров в странах бывшего СССР:

Читать далее

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

Как установить GOWIN EDA для запуска примеров Школы Синтеза

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

Одной из проблем первых сезонов Школы цифрового синтеза является малое число поддерживаемых плат, на которых можно легко и быстро повторить упражнение.

Чтобы справиться с данной проблемой, группа энтузиастов, под руководством Юрия Панчула, добавила поддержку множества плат и нескольких toolchain’ов от различных производителей FPGA.

В данном туториале, посвященном работе с FPGA от компании Gowin, я расскажу про то, как установить GOWIN EDA, о доступных платах и перефирии к ним и про работу со скриптами сборки примеров.

Читать далее

FIFO для самых маленьких (вместе с вопросами на интервью)

Время на прочтение8 мин
Количество просмотров21K

"Напишите на доске код на верилоге для FIFO" - это популярный вопрос во время интервью в компании типа Apple и AMD, причем у него есть вариации для всех уровней инженеров, так как существуют десятки типа реализаций FIFO: на D-триггерах, встроенной SRAM памяти или на массиве D-защелок; с одном или двумя тактовыми сигналами; с одним, двумя или N вталкиваниями / выталкиваниями в одном такте; с разделяемой несколькими FIFO общей памятью; с парой указателей для записи/чтения и с хранением элементов в виде связанного списка; FIFO позволяющее undo; FIFO позволяющие потери данных; всякая экзотика типа FIFO шириной ноль итд.

Если человек не в теме или не понял вопроса, он может начать "запускаем GUI от Xilinx, вносим параметры и инстанциируем сгенерированный код". Это вызывает реакцию, как если бы школьная учительница геометрии спросила "найдите гипотенузу" и школьник бы ткнул пальцем в гипотенузу и с улыбкой ответил "вот она!"

Читать далее

Имплементация кэша на Verilog

Время на прочтение5 мин
Количество просмотров8K
В данной статье разбор простейшей реализации RAM на языке Verilog.

Перед тем, как перейти к разбору кода, рекомендуется изучить базовый синтаксис языка Verilog.

Здесь вы можете найти обучающие материалы.
Читать дальше →

nanoFOX — простое RISC-V совместимое ядро

Время на прочтение4 мин
Количество просмотров4.3K

Небольшое вступление:


Идея написания собственного ядра появилась после прохождения школы-семинара по цифровой схемотехнике в городе Томске. На данном мероприятии проводилось знакомство с текущими языками описания аппаратуры (Verilog HDL и VHDL), а также с небольшим процессорным ядром schoolMIPS. Для понимания устройства ядер было принято решение изобрести собственный велосипед, следуя по пути развития schoolMIPS, но взяв за основу другую систему команд. Вследствие роста популярности RISC-V и открытости его системы команд (MIPS на момент начала написания ядра не имел открытую систему команд) для осуществления разработки будущего ядра был выбран набор инструкций RISC-V, а именно RV32I. RV32I имеет небольшой набор базовых инструкций (37 без учёта специальных) и при желании его можно расширить, например, добавив инструкции целочисленного умножения и деления (RV32M) или поддержку сокращённых инструкций (compressed instructions) (RV32C). Также данный проект задумывался как образовательный, поэтому было решено по максимуму увеличить наглядность работы ядра для эффективной демонстрации его работы.


По аналогии с schoolMIPS были реализованы следующие версии ядра:


  1. Однотактная версия (00_simple_risc_v_cpu).
  2. Однотактная версия с поддержкой инструкций lw/sw (load word/store word) (01_simple_risc_v_cpu_lwsw).
  3. Конвейерная версия (5-ти стадийный конвейер) (02_pipe_risc_v_cpu).

На текущий момент описывается следующая версия ядра (03_pipe_risc_v_cpu_fc) с полным набором команд RV32I (без учёта некоторых специальных).

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

Прямой репортаж с рождения крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia

Время на прочтение5 мин
Количество просмотров9.7K


Завтра будут официальные пресс-релизы о слиянии старожила Silicon Valley, компании MIPS, с молодой AI компанией Wave Computing. Информация об этом событии просочилась в СМИ вчера, и вскоре CNet, Forbes, EE Times и куча хайтек-сайтов вышла со статьями об этом событии. Поэтому сегодня Derek Meyer, президент объединенной компании (на фото снизу справа), сказал «ладно, распостраняйте инфо среди друзей» и я решил написать пару слов о технологиях и людях, связанных с этим событием.

Главный инвестор в MIPS и Wave — миллиардер Dado Banatao (на фото снизу в центре слева), который еще в 1980-х основал компанию Chips & Technoilogies, которая делала чипсеты для ранних персоналок. В Wave+MIPS есть и другие знаменитости, например Стивен Джонсон (на фото справа вверху), автор самого популярного C-компилятора начала 1980-х годов. MIPS хорошо известен и в России. В руках дизайнерши Смрити (на фото слева) плата из Зеленограда, где находятся лицензиаты MIPS Элвис-НеоТек и Байкал Электроникс.

Wave уже выпустила чип, который состоит из тысяч вычислительных блоков, по сути упрощенных процессоров. Эта конструкция оптимизирована для очень быстрых вычислений нейронных сетей. У Wave есть компилятор, который превращает dataflow граф в файл конфигурации для этой структуры.

Объединенная компания создаст чип, который состоит из смеси таких вычислительных блоков и многопоточных ядер MIPS. Сейчас Wave продает свою технологию в виде ящика для дата-центров, для вычислений нейронных сетей в облаке. Следующие чипы будут использоваться во встроенных устройствах.
Читать дальше →

Генерация и тестирование ядра RISC-V

Время на прочтение5 мин
Количество просмотров12K
Как я писал в прошлом посте, название моего проекта на GSoC-2016 — «порт RISC-V на Parallella», и первая вещь, которую я должен был сделать, это познакомиться с экосистемой RISC-V. Один из лучших способов это сделать, — посмотреть видео с презентации первого воркшопа RISC-V на Youtube. Для того, чтобы понять самые важные концепции, я рекомендую следующие презентации:


Ещё одна ссылка, если вы интересуетесь Chisel, языком, основанным на Scala, который используется для описания текущей аппаратной реализации ядра RISC-V (ядро Rocket имеет in-order конвейер, BOOM — out-of-order), и любых будущих реализаций.

Краткое руководство по Chisel (Jonathan Bachrach) видео слайды

Работа с Rocket Chip, добавление расширений, инфраструктура ASIC и FPGA (Colin Schmidt) видео слайды

Если вы глубоко заинтересованы в RISC-V и развитии сообщества, я предлагаю вам принять участие в воркшопах.


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

Первый шаг к аппаратным ускорителям нейронных сетей для программистов лежит через изучение основ HDL, RTL и лаб на FPGA

Время на прочтение8 мин
Количество просмотров24K
Казанский университет Иннополис в порядке эксперимента учит студентов-программистов разработке хардвера. Причем под разработкой хардвера имеется в виду не программирование микроконтроллеров внутри скажем роботов, а проектирование цифровых схем на уровне регистровых передач (Register Transfer Level — RTL), с использованием языков описания аппаратуры (Hardware Description Language — HDL) и лабораторными занятиями на программируемых логических интегральных схемах (ПЛИС / FPGA — Field Programmable Gate Array).

Зачем это нужно программистам? Ведь электронике учат на (гораздо менее массовых) факультетах электроники, где студент сначала изучает физику электричества, аналоговые схемы, делает пару лаб с мультиплексорами, после чего все это забывает и идет работать программистом.

Одна из причин, зачем цифровая схемотехника программисту — в последнее время происходит бум нейросетей. Если вы хотите чтобы обучение сложной сети занимало не недели / дни / часы, а часы / минуты / секунды, без аппаратных ускорителей не обойтись. Только специализированный хардвер выполнит параллельно большое количество умножений малой точности с одновременными транзакциями к океану памяти. В будущем нас ждут специализированные ASIC (application-specific integrated circuits) для AI, причем повсюду. В них будет как традиционный процессор, так и большие AI блоки на борту, с возможностью частичной реконфигурации.

От Гугла и Микрософта до Сколково и Иннополиса растет понимание, что нужны специалисты, которые могут строить такие сопроцессоры. Они должны владеть хардверной микроархитектурой, одновременно с пониманием софтверной экосистемы и алгоритмов. А владение микроархитектурой стоит на понимании уровня регистровых передач. Как это реализуется сейчас в Иннополисе:


Вклад авторов