В статье приводится несколько примеров настройки и использования прерываний MIPS32 Release 2, включая подробное описание задаваемой при этом конфигурации, описывается работа с контроллером внешних прерываний.
Весь описываемый код опубликован на github в составе проекта mipsfpga-plus [L3].
Рубрика «Verilog» - 10
MIPSfpga и прерывания
2017-03-27 в 11:59, admin, рубрики: C, fpga, mips, mips assembler, MIPS microAptiv UP, MIPSfpga, SoC, Verilog, Анализ и проектирование систем, программирование микроконтроллеров, системное программированиеMIPSfpga и внутрисхемная отладка
2017-02-23 в 7:07, admin, рубрики: fpga, mips, MIPSfpga, Verilog, Анализ и проектирование систем, микроэлектроника, программирование микроконтроллеров, системное программированиеПоставляемые в составе пакета MIPSfpga документация, ПО и конфигурационные файлы предполагают применение Bus Bluster в качестве аппаратного отладчика. Статья содержит инструкции по использованию для этой цели практически любого USB-UART адаптера, построенного на микросхеме FTDI с поддержкой MPSSE (FT232H, FT2232H, FT4232H, FT2232D). Кратко описывается интеграция среды разработки Visual Studio Code и отладчика GNU GDB.
Все конфигурационные файлы, описываемые в статье, а также часть документации доступны на github.
Элементы системы
FPGA для программиста, простые рецепты
2017-02-12 в 23:11, admin, рубрики: fpga, Verilog, структура кодаПриоритетная структура кода
В разработке электронных устройств грань между разработчиком-схемотехником и разработчиком-программистом очень размыта. Что уж говорит о том, кто должен писать RTL под FPGA.
С одной стороны, RTL — это территория схем, с другой стороны, ресурсы FPGA дешевеют, синтезаторы умнеют. Цена ошибки RTL дизайнера для FPGA не превышает цены ошибки программиста, а созданные схемы можно также обновлять и наращивать по функциональности, как обычную прошивку процессора.
Производители микросхем тоже не отстают, стали паковать ПЛИС в один корпус с процессором, даже Intel выпустил процессор для PC с FPGA внутри, купив для этого известного производителя ПЛИС Altera.
Думаю всем истинным программистам Вселенная шлет сигналы, что им просто необходимо изучить RTL и начать писать “код” для FPGA не хуже, чем под их привычные процессоры.
Когда-то давно, я проходил этот путь и позволю себе дать несколько советов для ускорения.
А что если учить школьников одновременно ПЛИС-ам и микроконтроллерам? Более объемная картина мира или шарики за ролики?
2017-02-12 в 7:36, admin, рубрики: arduino, breadboard, C, digilent, education, linux, OpenWrt, pic32, Raspberry Pi, Verilog, vhdl, xilinx, макетная плата, образование, схемотехника, Электроника для начинающихВ последние семь лет ко мне неоднократно обращались преподаватели детских кружков с вопросом, что бы такое придумать для детей в области электроники, чтобы было 1) интересно 2) конвертировалось бы в будущую специальность и 3) давало бы что-нибудь качественно другое, чем уже устоявшиеся среди преподавателей лего-ардуины-и-разберри-паи.
Подход, который я хотел бы предложить в этой заметке — это конструирование устройств на основе макентной платы, используя примитивы разных уровней абстракции. Прежде чем описать суть предложения, я приведу аналогию. Допустим, нам нужно исследовать местность между городом A и городом B. Из A в B можно проехать на автомашине, рассматривая окрестности дороги. Но еще лучше — проехать не только на автомашине, но и потом проплыть тот же маршрут на подводной лодке, пролететь его на самолете, походить в некоторых местах пешком, а также прорубить кусок шахты на участке между городами на проходческом комбайне. По ходу дела ученик получит не только опыт вождения автомобиля, но и представление о структуре недр, морской экосистеме, нравах жителей и общей карте местности.
Теперь суть предложения. Ученик за несколько дней выполняет серию простых электронных проектов, которые имеют сходную функциональность, но используют в качестве строительных кубиков разные объекты, в том числе:
1. Микросхемы малой степени интеграции, по несколько логических элементов в каждой
2. Программируемые логические интегральные схемы, десятки тысяч ячеек с изменяемой логической функцией
3. Микроконтроллеры
4. Встраиваемые процессоры
Читать полностью »
MIPSfpga и SDRAM. Часть 2
2017-02-09 в 21:44, admin, рубрики: fpga, mips, MIPSfpga, SDRAM, Verilog, Анализ и проектирование систем, микроэлектроника, программирование микроконтроллеровСсылка на первую часть
Рассматриваемая нами конфигурация состоит из следующих элементов:
Шина AHB-Lite
Является основным инструментом для общения ядра MIPSfpga с внешним миром. Из нее в модуль доступа к SDRAM поступают команды на чтение и запись информации, по ней же передаются считываемые и записываемые данные. Основная особенность: фаза адреса последующей команды совпадает по времени с фазой данных текущей команды. Лучше всего это видно на следующей диаграмме:
Краткое описание изображенных сигналов: HCLK — тактовый сигнал; HADDR — адрес, данные по которому мы хотим записать или прочитать на следующей фазе, задается мастером; HWRITE — при высоком уровне на следующей фазе должна быть произведена операция записи, выставляется мастером; HRDATA — прочитанные данные; HREADY — флаг завершения текущей операции; HWDATA — записываемые данные, выставляются мастером. Документация на шину, включая описание всех сигналов и их возможных комбинаций входит в состав пакета MIPSfpga.
MIPSfpga и SDRAM. Часть 1
2017-02-09 в 21:44, admin, рубрики: fpga, mips, MIPSfpga, SDRAM, Verilog, Анализ и проектирование систем, микроэлектроника, программирование микроконтроллеровНа этой неделе я закончил работу по добавлению поддержки SDRAM в проект MIPSfpga-plus. Теперь при работе с MIPSFpga помимо блочной памяти, ограниченной ресурсами ПЛИС, доступно еще и внешнее ОЗУ.
Данная статья состоит из 2 частей:
Часть 1. Краткое описание модуля доступа к SDRAM. Пример использования.
Часть 2. Подробное описание работы с памятью, достаточное для того, чтобы в работе модуля смог разобраться человек, ранее не имевший дела с микросхемами ОЗУ. Список литературы.
Предполагается, что читатель как минимум:
- знаком с предметной областью в объеме учебника Харрис-энд-Харрис [1];
- имеет опыт программирования на C, ассемблере, использования gcc;
- имеет минимальный опыт работы с MIPSfpga. Не имея такого опыта, будет логичным начать с более простых вещей, и лишь затем думать о том, как использовать ОЗУ в своей системе.
Если вы уже опытный разработчик, то Часть 1 стоит пробежать глазами по диагонали, Часть 2 — не содержит для вас ничего нового. При этом вы можете принести несомненную пользу обществу, если добавите поддержку SDRAM для еще одной отладочной платы. На текущий момент она реализована только для Terasic DE10-Lite — одной из 9 плат, на которые в рамках проекта MIPSfpga-plus было портировано ядро MIPSfpga.
Написание и запуск скрипта для симуляции Verilog-кода в ModelSim
2017-01-13 в 12:03, admin, рубрики: fpga, hdl, modelsim, script, simulation, SystemVerilog, tcl, VerilogВсем привет! Надеюсь, все хорошо провели праздники и готовы с новыми силами покорять высоты FPGA разработки.
Сегодня я хочу написать небольшой гайд по запуску тестбенчей на Verilog/SystemVerilog в ModelSim без использования GUI.
План будет такой:
- Добавление пути к ModelSim в PATH.
- Написание скрипта с объяснением команд.
- Запуск ModelSim с исполнением написанного скрипта.
Поехали! Читать полностью »
Отладочная плата ПЛИС — Франкенштейн. Звуки и музыка
2016-12-28 в 7:24, admin, рубрики: Altera, fpga, Verilog, ПЛИС, Программирование, программирование микроконтроллеров, сигнализация, сиренаСегодня у нас самая предновогодняя серия про ПЛИС и отладочную плату Френки. Предыдущие серии 1, 2.
Мы уже передавали тоновые сигналы по радио с помощью нашей платы Франкенштейн. Теперь попробуем воспроизводить звуки и музыку.
Для этого подключим к ПЛИС обычный динамик. К Френки подключен генератор на 25.175 МГц. Если поделить эту частоту до диапазона слышимых частот и подать на вывод ПЛИС, то мы можем услышать звук. Меня частоту мы можем получить разные звуки.
Тестировать качество звучания будет самый лучший слухач в доме — Маша. Диапазон частот в 60 КГц — это вам не шутки! )))
Отладочная плата ПЛИС — Франкенштейн. Часы. Altera EPM7064 VS Lattice LC4064v
2016-12-27 в 6:46, admin, рубрики: Altera, fpga, Lattice, Verilog, ПЛИС, Программирование, программирование микроконтроллеров, ЧасыПродолжение предновогодней серии приключений маленькой ПЛИС Altera EPM7064 на отладочной плате — Франкенштейн. В предыдущей серии...
Настала пора сравнить две ПЛИС из одной весовой категории: Altera EPM7064 и Lattice LC4064v. Хотя, один у них — только вес — это 64 макроячейки. В остальном, судя по параметрам, у этих ПЛИС совсем разные назначения. ПЛИС от Altera, судя по документации 2005 года, является просто не молодой, от этого и обладает низким количеством ячеек. Так же, обладает популярным по тем временам напряжением питания — 5 вольт. Максимальная рабочая частота не превышает 200 МГц. В то же время Lattice может работать до частот в 400 МГц, но при этом, питается от напряжения — 3.3 вольта. Да, это не так удобно, как 5 вольт, если мы хотим взаимодействовать со старыми схемами (однако, заявлена толерантность к 5В). В документации на Lattice этой серии указан 2014 год, поэтому я предположу, что это современные высокоскоростные ПЛИС, но малого объема, и судя по "SuperFAST CPLD" в описании, позиционируются они несколько иначе.
Как нам их сравнить? Попробуем решить на них одну и ту же задачу. Часы на Lattice LC4064v мы уже попробовали сделать и у нас получилось. Теперь попробуем сделать часы на Altera EPM7064 — на нашем Франкенштейне.
Отладочная плата ПЛИС — Франкенштейн. Телеграфный передатчик
2016-12-26 в 7:04, admin, рубрики: Altera, fpga, Verilog, передатчик, ПЛИС, Программирование, программирование микроконтроллеровБегут последние деньки уходящего года. Предновогодняя суета. А для тех, у кого выдалась свободная минутка на работе, я предлагаю серию статей про самодельную отладочную плату на базе ПЛИС Altera EPM 7064.
Недавно мне потребовалось найти пару 1U корпусов под мой проект. И в качестве альтернативы новым, мы решили поискать старые приборы в 1U формате, внутренности выкинуть, а корпус использовать по назначению. Но, открыв корпус, я был в шоке! Целых четыре ПЛИС от Altera, да к тому же 5 вольтовых. Я не смог удержаться, чтобы одну из них не попробовать в деле!
Паяльной станции у меня нет, ЛУТ технологию я не практикую. Поэтому я взял строительный фен на 250 градусов и отковырял микросхему ПЛИС от платы. Переходной платы для такого корпуса у меня тоже не было, поэтому я взял обычную макетку, впаял в нее стойки и с помощью накрутки и пайки, соединил выводы микросхемы со стойками. Вывел разъем JTAG и питания, прикрутил генератор. Это все, что нужно для начала работы с микросхемой
Что можно сделать из такой маленькой ПЛИС? Радиолюбители решают такую проблему очень просто: в любой непонятной ситуации мы делаем передатчики! Из чего? Да из чего угодно, что под руку попало в данный момент! А сегодня у нас Altera EPM7064.
Читать полностью »