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

FPGA *

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

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

Как мы участвовали в InnovateFPGA 2018 и снова не победили

Время на прочтение10 мин
Количество просмотров5K
Приветствую, Хабр! Меня зовут Даниил Смирнов, я учусь в аспирантуре Университета ИТМО, где в лаборатории программирования и моделирования наш коллектив занимается программируемой электроникой для проектов, связанных с волоконно-оптическими датчиками. В качестве аппаратной базы для датчиков используются FPGA – Field Programmable Gate Array. Пару лет назад мы узнали о том, что производители FPGA проводят конкурсы среди студентов по разработке. С тех пор каждый год от нас формируется команда для участия в этом мероприятии, а поскольку в этом году оно получилось особенным, мы решили поделиться как все было изнутри.

image
Всего голосов 29: ↑29 и ↓0+29
Комментарии4

Разрабатываем процессорный модуль NIOS II для IDA Pro

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

Скриншот интерфейса дизассемблера IDA Pro

IDA Pro — знаменитый дизассемблер, который уже много лет используют исследователи информационной безопасности во всем мире. Мы в Positive Technologies также применяем этот инструмент. Более того, нам удалось разработать собственный процессорный модуль дизассемблера для микропроцессорной архитектуры NIOS II, который повышает скорость и удобство анализа кода.

Сегодня я расскажу об истории этого проекта и покажу, что получилось в итоге.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии5

Если вы в Казани или Новосибирске и хотите проектировать микросхемы, как в Купертино

Время на прочтение3 мин
Количество просмотров22K
Господа! На фотографии Ирина, девушка из Новосибирска, рассматривает музейную экспозицию про персональные компьютеры 1980-х годов. Именно тогда, в 1980-х, окончательно произошел весьма неприятный разрыв между западной электроникой и советской. Если в 1970-х советская электроника просто отставала лет на 7 (если судить по датам выхода DEC PDP-11 и СМ-4), то в районе 386-го она просто померла.

Одновременно в конце 1980-х на Западе появилась технология логического синтеза из языков описания аппаратуры Verilog и VHDL. Эта технология стала мейнстримом в 1990-х и в конечном итоге в 21 веке привела к айфонам и нейроускорителям. Логический синтез ввели во всяких MIT и Стенфордах вместе с лабами на ПЛИС-ах еще в 1990-е, но в России и Украине того времени пораженческие настроения и неверие в отечественную электронику привели к тому, что исправлять ситуацию предстоит нам сейчас.

Для того, чтобы построить в России экосистему разработки электроники, с сотнями компаний, а не дюжиной, как сейчас, нужно делать то, что делали в США в 1990-х и делают сейчас в Китае: выучить кучу молодых инженеров принципам логического проектирования цифровых схем на уровне регистровых передач. Даже если не все из них будут проектировать микропроцессоры и сетевые чипы, а половина пойдет в чистое программирование, эти знания не пропадут зря: время повышения быстродействия компьютеров за счет уменьшения транзисторов подходит к концу, и везде наступают гибридные софтверно-хардверные решения, со специализированными аппаратными вычислительными блоками — об этом недавно даже произнес речь Джон Хеннесси, председатель совета директоров компании Alphabet / Google.



Я это все говорю к тому, что она днях в Новосибирске пройдет одно из мероприятий по вытаскиванию России из неразвитого состояния в данной области.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии173

Японские феи показывают работу master-slave триггера в новой манге по цифровой электронике

Время на прочтение9 мин
Количество просмотров20K
Сейчас в издательстве ДМК-Пресс выходит русский перевод японской манги 2013 года про цифровые схемы, созданной Амано Хидэхару и Мэгуро Кодзи. Несмотря на несерьезную форму изложения, суть этой книжки очень здравая. Например, она начинает от древних микросхем малой степени интеграции и быстро привязывает их к современному языку описания аппаратуры Verilog и программируемым логическим интегральным схемам (ПЛИС). Также манга четко определяет зачем нужны комбинационные и последовательностные схемы, и дает представление о методах оптимизации.

Манга избегает ошибок многих своих предшественников. Одну из таких ошибок совершил Чарльз Петцольд в книге «Код», которая вводила последовательностную логику не на D-триггерах, управляемых фронтом тактового сигнала (edge-triggered D-flip-flop), а на D-триггерах с работой по уровню (защелках, level-sensitive D-latch), хотя потом переключалась на правильные триггеры. Вероятно, ошибка была связана с тем, что Чарльз Петзольд, который прославился как автор учебников по программированию GUI в Microsoft Windows, не был практикующим разработчиком электроники, и для него защелки были «проще», чем триггеры с фронтом. Проблема в том, что защелки плохо совместимы со статическим анализом задержек при логическом синтезе, главной технологии проектирования цифровых схем последних 30 лет. Системы на кристалле внутри гаджетов типа айфона в качестве элементов состояния в 99% случаях используют D-триггеры переключаемые по фронту, а защелки используют только в очень специальных случаях. Давать новичкам строить схемы на защелках — это значит вводить их в заблуждение.

В этом смысле манга лучше чем Петзольд. Вот как элегантно манга объясняет работу двухступенчатого master slave D-триггера, управляемого фронтом тактового сигнала. Это делается с помощью феи «Хи-хи-хи» и феи «Ха-ха-ха»:


Всего голосов 45: ↑42 и ↓3+39
Комментарии50

Истории

Реализация целочисленного БПФ на ПЛИС

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

Однажды меня спросили заказчики, нет ли у меня в проектах целочисленного БПФ, на что я всегда отвечал, что это уже сделано другими в виде готовых, хоть и кривых, но бесплатных IP-ядер (Altera / Xilinx) – берите и пользуйтесь. Однако, эти ядра не оптимальны, обладают набором «особенностей» и требуют дальнейшей доработки. В связи с чем, уйдя в очередной плановый отпуск, который не хотелось провести бездарно, я занялся реализацией конфигурируемого ядра целочисленного БПФ.


КДПВ (процесс отдладки ошибки переполнения данных)

В статье я хочу рассказать, какими способами и средствами реализуются математические операции при вычислении быстрого преобразования Фурье в целочисленном формате на современных кристаллах ПЛИС. Основу любого БПФ представляет узел, который носит название «бабочка». В бабочке реализуются математические действия – сложение, умножение и вычитание. Именно о реализации «бабочки» и её законченных узлов будет идти рассказ в первую очередь. За основу взяты современные семейства ПЛИС фирмы Xilinx – это серия Ultrascale и Ultrascale+, а также затрагиваются старшие серии 6- (Virtex) и 7- (Artix, Kintex, Virtex). Более старшие серии в современных проектах – не представляют интереса в 2018 году. Цель статьи – раскрыть особенности реализации кастомных ядер цифровой обработки сигналов на примере БПФ.
Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии29

Ещё раз о задержках в исходном коде проекта FPGA или простой вопрос для собеседования на вакансию разработчика FPGA

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


Некоторое время назад при обсуждении в компании профессиональных разработчиков FPGA возникла дискуссия о прохождении собеседования. Какие вопросы там задают, и что можно было бы задать. Я предложил два вопроса:

  1. Приведите пример синхронного кода без использования задержек, который даст разные результаты при моделировании и при работе в реальной аппаратуре
  2. Исправьте этот код при помощи задержек.

После этого вопроса завязалась оживлённая дискуссия, в результате которой я решил более подробно рассмотреть этот вопрос.
Читать дальше →
Всего голосов 25: ↑17 и ↓8+9
Комментарии54

Chisel — (не совсем) новый подход к разработке цифровой логики

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


С развитием микроэлектроники, rtl дизайны становились все больше и больше. Реюзабилити кода на verilog доставляет массу неудобств, даже с использованием generate, макросов и фишек system verilog. Chisel же, дает возможность применить всю мощь объектного и функционального программирования к разработке rtl, что является достаточно долгожданным шагом, который может наполнить свежим воздухом легкие разработчиков ASIC и FPGA.


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

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии12

Сколько стоит для студента микросхему выпустить?

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

1. Введение


Всем нам известна проблема курицы и яйца: работодатели не хотят брать на работу выпускников без опыта работы, но где же в таком случае выпускникам получить опыт работы? В микроэлектронике эта проблема стоит особо остро ввиду требуемого огромного количества специфического опыта. Наши ВУЗы с советских времен знамениты широчайшей теоретической подготовкой, которая должна помочь выпускнику в любой сложной ситуации в жизни. Однако, современная индустрия требует практического опыта. Добавим сюда еще отсутствие мотивации, приводящее к тому, что по специальности работает процентов 15% выпускников, и получим жесточайший кадровый голод в отрасли, которая очень требовательна к качеству кадров. А ведь если бы каждый студент мог "поморгать лампочкой" со своего собственного кристалла ситуация могла бы развиваться совсем иначе.



Рисунок 1. КДПВ


Что же мешает таким грандам подготовки кадров отечественной микроэлектроники, как, например, МИФИ и МИЭТ, поступать аналогично своим зарубежным коллегам (например, MIT или UZH), а именно — давать возможность студентами-дипломникам выпускать свои собственные кристаллы? Можно, конечно, предположить, что выпуск собственного кристалла занятие крайне долгое, сложное и дорогое, а потому для института — дорого, а для студента — непосильно. Однако, это не так. Давайте же взглянем на одну из доступных технологий на отечественном рынке микроэлектроники, знакомство с которой позволит студенту стать значительно более привлекательным в плане будущего трудоустройства, а предложение которой для студента — позволит университету значительно поднять свой рейтинг в глазах абитуриентов и работодателей.

Читать дальше →
Всего голосов 100: ↑99 и ↓1+98
Комментарии80

Пример программирования FPGA-ускорителя

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


Не так давно мы рассказали о новой услуге Selectel — облачных высокопроизводительных вычислениях на FPGA-ускорителях. В новой статье на эту тему рассмотрим пример программирования FPGA для построения множества Мандельброта, — известного математического алгоритма для визуализации фрактальных изображений. В статье использован материал с сайта Эйлер Проджект.


Всего голосов 29: ↑28 и ↓1+27
Комментарии23

Intel приобрела eASIC — разработчика «структурных ASIC»

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


На прошлой неделе было объявлено о приобретении Intel компании eASIC, которая занимается созданием FPGA-образных средств разработки «структурных ASIC». Структурные ASIC представляют собой нечто среднее между обычными FPGA и обычными ASIC; они позволяют уменьшить время вывода продукта на рынок и уменьшить его стоимость. Технологии eASIC используются Intel с 2015 года в кастомных версиях процессоров Xeon; теперь команда eASIC (120 человек) войдет в подразделение Intel Programmable Solutions Group (PSG).
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии4

Тренды в проектировании FPGA. Перевод

Время на прочтение3 мин
Количество просмотров11K
Уже не первый год Wilson Research Group проводит исследование по тенденциям в сфере FPGA и ASIC. По данным исследованиям можно определить основные векторы развития и изменения, которые происходят в мире программируемой логики.

image
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии13

Системы в корпусе или Что на самом деле находится под крышкой корпуса микропроцессора

Время на прочтение8 мин
Количество просмотров57K
Размеры транзисторов в современных микросхемах неумолимо уменьшаются — несмотря на то, что о смерти закона Мура говорят уже несколько лет, а физический предел миниатюризации уже близок (точнее, в некоторых местах его уже успешно обошли). Тем не менее, это уменьшение не приходит даром, а аппетиты пользователей растут быстрее, чем возможности разработчиков микросхем. Поэтому, кроме миниатюризации транзисторов, для создания современных микроэлектронных продуктов используются и другие, зачастую не менее продвинутые технологии.


Читать дальше →
Всего голосов 99: ↑98 и ↓1+97
Комментарии75

Российские и украинские команды взяли верх над европейцами на европейском финале интеловского конкурса InnovateFPGA

Время на прочтение5 мин
Количество просмотров14K
Золото досталось России, серебро разделила Россия и Италия, бронза досталась Украине. Таковы результаты европейского финала престижного соревнования InnovateFPGA под эгидой Интела. Победители поедут в Калифорнию, где встретятся с финалистами из Америки и Азии. Надеюсь, теперь не нужно будет объяснять на Хабре, почему Verilog и ПЛИС/FPGA стратегически важны, несмотря на то, что «вакансий на джаву больше».

Студенты, которые сейчас делают проекты на ПЛИСах, через несколько лет будут делать массовые микросхемы для самоуправляемых автомобилей, ускорителей нейронных сетей, дополненной реальности и других приложений, в который обычный процессор не справляется. Именно поэтому Intel потратил 16.7 миллиардов долларов на покупку Altera и вход в рынок ПЛИС. А на днях Интел купил еще и компанию eASIC для дешевой конверсии дизайнов из ПЛИС в ASIC (в eASIC есть достаточно многочисленная российская команда).

Победа российских и украинских команд в интеловском конкурсе InnovateFPGA возникла не на пустом месте, а в результате работы конкретных людей в ЛЭТИ, ИТМО, КПИ и других местах, о которых уже были статьи на Хабре. Если продолжить эти начинания и расширить преподавание ПЛИС и языков описания аппаратуры во все технические вузы от Калининграда до Якутии, от Львова до Тбилиси и Астаны — то через пару десятилетий это может изменить расстановку сил в мировой электронной промышленности примерно так же, как работы Курчатова и Королева изменили расстановку сил в мировой атомной промышленности и освоении космоса.


Всего голосов 48: ↑43 и ↓5+38
Комментарии230

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

Заметки дилетанта, или Сказ о том, как Scala-разработчик ПЛИС конфигурировал

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

Долгое время я мечтал научиться работать с FPGA, присматривался. Потом купил отладочную плату, написал пару hello world-ов и положил плату в ящик, поскольку было непонятно, что с ней делать. Потом пришла идея: а давайте напишем генератор композитного видеосигнала для древнего ЭЛТ-телевизора. Идея, конечно, забавная, но я же Verilog толком не знаю, а так его ещё и вспоминать придётся, да и не настолько этот генератор мне нужен… И вот недавно захотелось посмотреть в сторону RISC-V софт-процессоров. Нужно с чего-то начать, а код Rocket Chip (это одна из реализаций) написан на Chisel — это такой DSL для Scala. Тут я внезапно вспомнил, что два года профессионально разрабатываю на Scala и понял: время пришло...


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

Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии16

Разработка интерфейсных плат на SoC Xilinx Zynq 7000 для записи речи в аналоговом и цифровом формате

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


В этой статье мы поделимся опытом разработки интерфейсных плат блока сопряжения на базе SoC ARM+FPGA Xilinx Zynq 7000. Платы предназначались для записи речевых сигналов в аналоговом и цифровом формате PRI/BRI (ISDN, E1/T1). Само конечное устройство будет использоваться для фиксации переговоров в гражданской авиации.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии17

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

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


Завтра будут официальные пресс-релизы о слиянии старожила 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 продает свою технологию в виде ящика для дата-центров, для вычислений нейронных сетей в облаке. Следующие чипы будут использоваться во встроенных устройствах.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии47

Проектирование процессора ModelSim

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

Часть I
Часть II
Часть III
Часть IV
Часть V

Это полная версия предыдущей статьи, к которой добавлены тестбенчи.

Спроектируем Little Man Computer на языке Verilog.

Статья про LMC была на Хабре.

Online симулятор этого компьютера здесь.

Напишем модуль оперативной памяти (ОЗУ), состоящий из четырех (ADDR_WIDTH=2) четырёхбитных (DATA_WIDTH=4) слов. Данные загружаются в ОЗУ из data_in по адресу adr при поступлении тактового сигнала clk.

module R0 #(parameter ADDR_WIDTH = 2, DATA_WIDTH = 4)
(
    input clk, //тактовый сигнал
    input [ADDR_WIDTH-1:0] adr, //адрес
    input [DATA_WIDTH-1:0] data_in, //порт ввода данных
    output [DATA_WIDTH-1:0] RAM_out //порт вывода данных
);
    reg [DATA_WIDTH-1:0] mem [2**ADDR_WIDTH-1:0]; //объявляем массив mem
 
    always @(posedge clk) //при поступлении тактового сигнала clk 
        mem [adr] <= data_in; //загружаем данные в ОЗУ из data_in 
    
    assign RAM_out = mem[adr]; //назначаем RAM_out портом вывода данных
endmodule
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии1

Странности синтеза при работе с FPGA

Время на прочтение5 мин
Количество просмотров9.6K
На сегодняшний день существует два наиболее распространённых языка описания аппаратуры: Verilog/SystemVerilog и VHDL. Сами языки описания аппаратуры являются достаточно универсальными средствами, но всегда ли это так? И от чего может зависеть «не универсальность» языка описания аппаратуры?

Идея написания данной статьи возникла при синтезе одного проекта в разных средах разработки, в результате чего были получены отличные друг от друга результаты. Так как исходный модуль является достаточно объёмным, то для демонстрации полученных результатов был написан тестовый модуль меньшего объёма, но синтез которого вызывал те же предупреждения/ошибки. В качестве тестового модуля был использован 4-х битный регистр с асинхронным сбросом, а в качестве сред разработки были выбраны Libero SoC 18.1, Quartus Prime 17.1, Vivado 2017.4.1.
Читать дальше →
Всего голосов 30: ↑23 и ↓7+16
Комментарии28

Как мы изобретали оптический рефлектометр

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


История про высокий порог входа, забеги по граблям и уверенность в завтрашем дне, а также про оптику, схемотехнику и немного про FPGA. На КДПВ — то, что получилось, работает и используется в production, а ниже — рассказ про процесс создания этого "чуда враждебной техники".


В одно хмурое зимнее утро декабря 2007 года маркетологи небольшой компании, занимающейся разработкой электроники, решили, что пора таки сделать свой OTDR.

Читать дальше →
Всего голосов 57: ↑57 и ↓0+57
Комментарии21

FPP через FPL: Ускоряем загрузку FPGA

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

Всем привет!


Недавно возникла задача — ускорить загрузку FPGA. От появления питания до рабочего состояния у нас есть не более 100 мс. Поскольку чип не самый новый (Altera Cyclone IV GX), просто подключить к нему быструю флешку типа EPCQ не получается. И мы решили задействовать режим FPP (Fast Passive Parallel), поставив снаружи CPLD Intel MAXV с FPL (Flash Parallel Loader). При старте CPLD загружает данные из флешки и формирует сигналы FPP на своих выходах.


Однако, перед тем, как совершить задуманное, собрали DIY-макет из того, что было под рукой, и взялись поэкспериментировать "на кошках". К сожалению, из-за соплей на плате пришлось снизить рабочие частоты, но суть работы FPP от этого не изменилась, зато отладка упростилась. О том, что получилось, и о том, как конфигурируется FPGA, я и решил написать в этой статье. Кому интересно, добро пожаловать под кат.


Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии10

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