Рубрика «ПЛИС» - 9

В первой части я описал на примере cmoda7 как портировать MIPSfpga (Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 1) на FPGA платы отличные от уже портированых среди которых такие популярные как: basys3, nexys4, nexys4_ddr фирмы Xilinx, а так же de0, de0_cv, de0_nano, de1, DE1, de10_lite, de2_115, DE2-115 фирмы Altera(Intel), во второй части как интегрировать клавиатуру Pmod KYPD (Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 2).

В этой части добавим к MIPSfpga-plus встроенный АЦП, и популярный LCD от Nokia 5100.
С предыдущих частей можно сделать вывод, что интеграция периферии в MIPSFPGA состоит из пять основных этапов:

  • Добавление модуля интерфейса общения с периферией (i2c, spi, и т.д.).
  • Соединение входных/выходных портов модуля с шиной AHB-Lite.
  • Присваивание адресов сигналов подключаемого устройства.
  • Добавление констрейнов на физические контакты платы.
  • Написание программы для MIPS процессора.

Подключение встроенного в cmoda7 АЦП


Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 3 - 1
Как я уже говорил плата cmodA7 имеет встроенный АЦП, pin 15 и 16 используются в качестве аналоговых входов модуля FPGA. Диапазон работы встроенного АЦП от 0-1V, поэтому используется внешняя схема для увеличения входного напряжения до 3.3V.
Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 3 - 2

Эта схема позволяет модулю XACD точно измерить любое напряжение от 0 В и 3,3 В (по отношению к GND). Чтобы работать с АЦП в Vivado существует блок IP (интеллектуальной собственности) Xilinx, с помощью которого можно будет просто его интегрировать в нашу систему MIPSfpga.
Читать полностью »

MIPSfpga микропроцессор MIPS32 microAptiv описаный на языке Verilog для образовательных целей фирмы Imagination, который имеет кэш-память и блок управления памятью. Код процессора доступен пользователю (инструкция по скачиванию) и может использоваться для моделирования и реализации процессора на FPGA плате.

Данная статья является продолжением статьи о том как портировать MIPSfpga-plus на другие платы, и в ней будет описано как интегрировать периферию в систему MIPSfpga:
Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 2 - 1

Так же о том как начать работать с MIPSfpga написано в статье:
habrahabr.ru/post/275215

Процессор использует интерфейс памяти для связи с периферийными устройствами. То есть, это означает что данные записываются и считываются с подключенной периферии так же, как и с блока памяти RAM. Интеграция периферии в процессор осуществляется подключением к шине AHB-Lite(подробная документация). Подробней попробуем разобраться в процессе подключения.

Для начала нужно иметь понятие как будут проходить сигналы по шине AHB-Lite:
Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 2 - 2

Видно, что процесс считывания данных с периферии осуществляется по сигналу HRDATA, передача данных производится по HWRITE с активным высоким уровнем на сигнале разрешения записи, выбор GPIO осуществляется выбором адреса на HADDR.
Читать полностью »

MIPSfpga представляет собой предназначенный для образовательных целей микропроцессор MIPS32 microAptiv фирмы Imagination, который имеет кэш-память и блок управления памятью. Код процессора на языке Verilog доступен пользователю и может использоваться для моделирования и реализации процессора на FPGA плате.

В даной статье будет описано на примере Digilent cmodA7 как портировать процессор MIPSfpga-plus на другие платы.

Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 1 - 1

На сегодняшний день MIPSFPGA портирован на популярные платы таких фирм как ALTERA и Xilinx, среди них Basys 3, Nexys4 ddr, и другие (полный список находится на github). Такие платы наиболее популярны среди разработчиков на FPGA. Цена на такие платы довольно не маленькая, да и загружаются программы в ядро MIPSfpga с использованием интерфейса EJTAG и адаптера Bus Blaster ценой около 50$. Адаптер Bus Blaster получает команды по высокоскоростному кабелю USB 2.0 и преобразует их в последовательный протокол EJTAG, это позволяет загружать программы в ядро MIPSfpga и управлять отладкой программ, которые на нем выполняются. Проблема с относительно дорогим Bus Blaster была решена введением в систему MIPSfpga ряда улучшений. Улучшеный вариант системи MIPSfpga, названый MIPSfpga-plus включает в себя такие новые функции:

— Возможность загрузки программного обеспечения с использованием USB-to-UART коннектора ценой в $ 5 FTDI вместо $ 50 Bus Blaster, который иногда не так уж и легко достать.

— Возможность изменять тактовую частоту на лету с 50 или 25 МГц до 1 Гц (один цикл в секунду) для наблюдения за работой процессора в режиме реального времени, включая промахи в кэш-памяти и перенаправления конвеера.

— Пример интеграции датчика освещенности с протоколом SPI.

— Небольшая последовательность инициализации программного обеспечения, которая вписывается в 1 КБ вместо 32 КБ памяти, что позволяет переносить MIPSfpga на более широкий выбор плат FPGA без использования внешней памяти. Реализация UART описана в статье: MIPSfpga и UART.
Читать полностью »

К системам на кристалле через ПЛИСы: неделя цифровой микроэлектроники в Киеве — 24-29 апреля 2017 - 1


24-29 апреля в Киеве пройдет серия семинаров для школьников, которые не будут похожи на обычные классы со встроенными процессорами, которые стандартно используют Лего / Ардуино / Расберри Пай. Главный фокус семинаров — не научить программировать процессоры, а показать принципы, как процессоры проектируются внутри. Это как разница между «научить водить машину» и «научить проектировать двигатель». На семинарах школьники будут использовать язык описания аппарата Verilog и логический синтез — технологии, которые используют разработчики цифровых микросхем в Apple, Samsung и других электронных компаниях.

Главная официальная страница семинара, там же регистрация.
Читать полностью »

SDAccel – первое знакомство - 1

SDAccel это система программирования на OpenCL для ПЛИС фирмы Xilinx. В настоящее время всё более обостряется проблема разработки проектов для ПЛИС на традиционных языках описания аппаратуры, таких как VHDL/Verilog. Одним из методов решения проблемы является применение языка C++. OpenCL это один из вариантов применения языка С++ для разработки прошивок ПЛИС.
Читать полностью »

Более 30 лет назад, в 1986 году, я участвовал во Всесоюзной Новосибирской Летней Школе Юных Программистов, где получил диплом 1 степени за разработку поддержки многозадачности в языке Си на компьютере MSX Yamaha. Тогда я написал на ассемблере Z80 обработчик прерывания по таймеру, в котором переключал контекст задач. Для времени и возраста было вполне. И вот теперь, в 2017 году, я решил поехать на ЛШЮП снова, но уже в качестве инструктора, и уже согласовал программу с организаторами. В процессе я познакомлю слушателей с некоторым инсайдом индустриальных проектов, в которых я участвую в Silicon Valley, в частности проекта чипа EyeQ5 для самоуправляемого автомобиля, который планируется для выпуска в 2020 году.

А еще до Новосибирска я решил съездить в Киев, где в том же 1986 году учился в физматшколе номер 145 (откуда меня собственно и отправили в Новосибирск). Но план 2017 года в Киеве еще не утвержден, он на стадии обсуждения, которое я предлагаю провести в комментариях.

Между транзистором и Ардуиной: планирование семинаров по электронике для школьников в Киеве и Новосибирске - 1
Читать полностью »

Сегодня утром я заходил в офис калифорнийского отделения Ардуино. Там было межкомпанейское совещание по образовательным программам, на которое меня пригласил менеджер из AMD Тимур Палташев. В конце мероприятия возникла любопытная дискуссия:

Вот сейчас школьников учат программировать Ардуино и другие устройства на основе микроконтроллеров и встроенных процессоров (Лего, Расберри Пай итд). А вот в 1970-е годы школьников учили здесь же, в Калифорнии, собирать схемы на макетной плате, на транзисторах и микросхемах малой степени интеграции (7400 TTL, CMOS 4000 итд) с элементами И-ИЛИ-НЕ и D-триггерами. Это как бы и прогресс — на микроконтроллере можно написать программу, которая бы осмысленно двигала роботической рукой, чего трудно сделать на индивидуальных логических элементах, но как мы вырастим школьников, которые бы умели проектировать (не программировать) сами микроконтроллеры?

Ответ в общем-то очевиден: между индивидуальными логическими элементами и выпущенными на фабрике микроконтроллерами можно поместить программируемые логические интегральные схемы (ПЛИС / FPGA) и использовать триаду «индивидуальные элементы — ПЛИС-ы — микроконтроллеры» чтобы сформировать у детей более полную картину мира, в которой есть не только софтвер и немножко интерфейсинга, но системное мышление, в которой задачи распределяются между программированием и схемотехникой, и, пусть на очень простом уровне средней школы, понятны все уровни технологии — от физики полупроводников до транзисторов до логических элементов — до уровня регистровых передач — до уровня микроархитектуры/блочного устройства процессора — до уровня архитектуры/системы команд — до уровня программирования на Си и Питоне — до роботов итд.

Зашел в офис Ардуино; поговорили о ПЛИС-ах; требуются добровольцы - 1

Идея учить школьников по всему фронту цифровой схемотехники и встроенного программирования звучит хорошо теоретически, но как воплотить это в жизнь?
Читать полностью »

Всем привет! В этой статье речь пойдет о реализации быстрого преобразования Фурье в формате с плавающей точкой на ПЛИС. Будут показаны основные особенности разработки ядра от самой первой стадии до готового конфигурируемого IP-ядра. В частности, будет проведено сравнение с готовыми ядрами фирмы Xilinx, показаны преимущества и недостатки тех или иных вариантов реализации. В статье будет рассказано о главной особенности ядра БПФ и ОБПФ — об отсутствии необходимости переводить данные в натуральный порядок после БПФ и ОБПФ для их совместной связки. В этой статье я постараюсь отразить всё тонкости реализации проекта под названием FP23FFTK, приведу реальные примеры использования готового ядра. Проект написан на языке VHDL и заточен под FPGA фирмы Xilinx последних семейств.

Реализация узла БПФ с плавающей точкой на ПЛИС - 1
Читать полностью »

Сегодня у нас самая предновогодняя серия про ПЛИС и отладочную плату Френки. Предыдущие серии 1, 2.

Отладочная плата ПЛИС — Франкенштейн. Звуки и музыка - 1Мы уже передавали тоновые сигналы по радио с помощью нашей платы Франкенштейн. Теперь попробуем воспроизводить звуки и музыку.

Для этого подключим к ПЛИС обычный динамик. К Френки подключен генератор на 25.175 МГц. Если поделить эту частоту до диапазона слышимых частот и подать на вывод ПЛИС, то мы можем услышать звук. Меня частоту мы можем получить разные звуки.

Тестировать качество звучания будет самый лучший слухач в доме — Маша. Диапазон частот в 60 КГц — это вам не шутки! )))

Читать полностью »

Продолжение предновогодней серии приключений маленькой ПЛИС Altera EPM7064 на отладочной плате — Франкенштейн. В предыдущей серии...

Отладочная плата ПЛИС — Франкенштейн. Часы. Altera EPM7064 VS Lattice LC4064v - 1Настала пора сравнить две ПЛИС из одной весовой категории: Altera EPM7064 и Lattice LC4064v. Хотя, один у них — только вес — это 64 макроячейки. В остальном, судя по параметрам, у этих ПЛИС совсем разные назначения. ПЛИС от Altera, судя по документации 2005 года, является просто не молодой, от этого и обладает низким количеством ячеек. Так же, обладает популярным по тем временам напряжением питания — 5 вольт. Максимальная рабочая частота не превышает 200 МГц. В то же время Lattice может работать до частот в 400 МГц, но при этом, питается от напряжения — 3.3 вольта. Да, это не так удобно, как 5 вольт, если мы хотим взаимодействовать со старыми схемами (однако, заявлена толерантность к 5В). В документации на Lattice этой серии указан 2014 год, поэтому я предположу, что это современные высокоскоростные ПЛИС, но малого объема, и судя по "SuperFAST CPLD" в описании, позиционируются они несколько иначе.

Как нам их сравнить? Попробуем решить на них одну и ту же задачу. Часы на Lattice LC4064v мы уже попробовали сделать и у нас получилось. Теперь попробуем сделать часы на Altera EPM7064 — на нашем Франкенштейне.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js