Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Разработка аппаратного модуля автономной передачи данных из SPI flash-памяти через интерфейс UART на базе ПЛИС

Информационные технологии
29.07.2026
8
Поделиться
Аннотация
В статье рассматривается разработка аппаратного модуля на базе программируемой логической интегральной схемы (ПЛИС), обеспечивающего автономное чтение данных из встроенной SPI Flash-памяти и их передачу через интерфейс UART без постоянного участия внешней вычислительной системы. Описаны архитектура решения, состав разработанных RTL-модулей на языке SystemVerilog и организация верификационного окружения.
Библиографическое описание
Ломако, Ю. В. Разработка аппаратного модуля автономной передачи данных из SPI flash-памяти через интерфейс UART на базе ПЛИС / Ю. В. Ломако. — Текст : непосредственный // Молодой ученый. — 2026. — № 31 (634). — С. 11-12. — URL: https://moluch.ru/archive/634/139521.


Введение

Тестирование цифровых устройств и микросхем является неотъемлемым этапом их производства и верификации. В аппаратных стендах тестирования широко применяется связка персонального компьютера и USB-UART преобразователя для передачи тестовых данных на тестируемое изделие [1]. Несмотря на простоту и универсальность данного подхода, он обладает существенным ограничением: операционная система вносит межпакетные задержки в диапазоне 1–15 мс между последовательными UART-пакетами, тогда как время передачи одного пакета составляет единицы — десятки микросекунд. При увеличении объёма передаваемых данных или символьной скорости доля накладных расходов возрастает и начинает доминировать в структуре суммарного времени передачи, что непосредственно влияет на производительность стенда и себестоимость продукции при серийном тестировании.

Целью настоящей работы является разработка аппаратного модуля на базе ПЛИС, обеспечивающего автономное чтение данных из встроенной SPI Flash-памяти и их последовательную передачу через интерфейс UART без постоянного участия внешней вычислительной системы.

Концепция решения

Предложенное решение основано на переносе функций хранения, обработки и передачи данных непосредственно на устройство на базе ПЛИС. В качестве аппаратной платформы использовалась отладочная плата Nexys A7–100T на базе ПЛИС XC7A100T-1CSG324C [5]. Существенным преимуществом данной платформы является наличие встроенной SPI Flash-памяти S25FL128S [6], расположенной на одной печатной плате с ПЛИС, а также поддержка загрузки конфигурации непосредственно из неё.

Конфигурация ПЛИС и тестовые данные предварительно записываются во Flash-память средствами внешней ЭВМ. При включении устройство автоматически загружает конфигурацию и получает доступ к данным без участия ЭВМ; передача данных далее осуществляется автономно средствами ПЛИС, что полностью исключает влияние межпакетных задержек операционной системы.

Разработка RTL-модулей

Все модули системы разработаны на языке SystemVerilog в среде Vivado. В каждом модуле определён пользовательский перечислимый тип state_t для описания состояний конечного автомата, что повышает читаемость кода и упрощает отладку. Сигналы разделены на текущие (q) и последующие (d) значения — типовой приём при проектировании последовательностной логики, предотвращающий образование защёлок и неопределённых состояний.

Модель Flash-памяти. Первоначальной задачей являлась разработка поведенческой модели Flash-памяти, необходимой для отладки основного модуля без физического устройства. Модель реализует приём команд по SPI, чтение идентификатора устройства, чтение данных по указанному адресу и передачу данных по линии MISO. Работа построена на конечном автомате с состояниями IDLE, COMMAND_CATCH, SEND_ID, READ_ADDR, SEND_DATA, SYNC.

Основной модуль SPI-взаимодействия. Модуль формирует SPI-команды, передаёт адресную информацию и принимает данные по интерфейсу SPI, реализуя полный цикл обмена: управление сигналом Chip Select, последовательную передачу команд и адресов по линии MOSI, приём данных по линии MISO и синхронизацию операций. Конечный автомат модуля включает состояния IDLE, COMMAND_READ_RECEIVE, COMMAND_RECEIVE, FEEDBACK, DATA_FEEDBACK, DATA_UART_BYTE, DATA_BITS_S. После получения каждого байта данных выполняется переход в состояние DATA_UART_BYTE для его передачи через UART с одновременной инкрементацией адреса считываемой ячейки, что позволяет избежать хранения большого массива данных во внутренней памяти ПЛИС.

Модуль UART-передатчика. Реализует последовательную передачу данных стандартным кадром из 10 бит: стартовый бит, восемь информационных бит, стоп-бит; бит чётности не используется. Скорость передачи определяется параметром CLK_CYCLES_ON_BIT, что позволяет адаптировать модуль под различные значения baud rate.

Формирование тактового сигнала. Для тактирования интерфейса SPI использовался встроенный IP-блок Clocking Wizard, понижающий системную частоту 100 МГц до 25 МГц. Поскольку прямое назначение тактового сигнала на встроенную конфигурационную Flash-память через файл ограничений XDC невозможно, для вывода сигнала flash_clk использован специализированный примитив STARTUPE2, предоставляемый производителем ПЛИС Xilinx и предназначенный для доступа пользовательской логики к выделенным конфигурационным ресурсам кристалла.

Верификационное окружение. Для проверки корректности разработанной логики до её загрузки в ПЛИС был создан тестовый модуль (testbench), моделирующий взаимодействие устройства с поведенческой моделью Flash-памяти. В процессе моделирования формировался массив случайных байтов, записываемый в модель памяти и используемый как эталонный набор данных; по мере считывания каждого байта выполнялось его сравнение с ожидаемым значением. Дополнительно проводился анализ временных диаграмм средствами встроенного симулятора Vivado для контроля корректности формирования сигналов управления SPI и соответствия временных параметров UART заданной символьной скорости.

Заключение

В результате работы разработан аппаратный модуль на языке SystemVerilog, реализующий побайтовое чтение данных из встроенной SPI Flash-памяти и их последовательную передачу через интерфейс UART без участия внешней вычислительной системы. Модульная организация решения (поведенческая модель Flash-памяти, основной модуль SPI-взаимодействия, UART-передатчик, блок формирования тактового сигнала и верификационное окружение) обеспечивает корректность работы устройства, подтверждённую как функциональным моделированием в среде Vivado, так и последующим тестированием на физической аппаратной платформе.

Литература:

  1. Харрис Д. М., Харрис С. Л. Цифровая схемотехника и архитектура компьютера / пер. с англ. — М.: ДМК Пресс, 2013. — 1664 с.
  2. Chu P. P. FPGA Prototyping by SystemVerilog Examples: Xilinx MicroBlaze MCS SoC Edition. — Hoboken: John Wiley & Sons, 2018. — 704 p.
  3. Угрюмов Е. П. Цифровая схемотехника. — СПб.: БХВ-Петербург, 2010. — 816 с.
  4. Максфилд К. Проектирование на ПЛИС. Архитектура, средства и методы / пер. с англ. — М.: ДМК Пресс, 2007. — 408 с.
  5. Nexys A7 FPGA Board Reference Manual [Электронный ресурс]. — Digilent Inc. — URL: https://digilent.com/reference/programmable-logic/nexys-a7/reference-manual (дата обращения: 05.04.2026).
  6. S25FL128P 128-Mbit 3.0 V Flash Memory Datasheet [Электронный ресурс]. — Infineon Technologies. — URL: https://www.infineon.com/assets/row/public/documents/non-assigned/49/infineon-s25fl128p-128-mbit-3.0-v-flash-memory-datasheet-en.pdf (дата обращения: 05.05.2026).
  7. Vivado Design Suite User Guide: Design Flows Overview [Электронный ресурс]. — AMD Xilinx. — URL: https://docs.amd.com (дата обращения: 06.04.2026).
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Молодой учёный №31 (634) июль 2026 г.
Скачать часть журнала с этой статьей(стр. 11-12):
Часть 1 (стр. 1-72)
Расположение в файле:
стр. 1стр. 11-12стр. 72
Похожие статьи
Направления оптимизации интерфейса SPI при потоковой передаче данных в системах на базе ПЛИС
Перспективы создания универсальных вычислительных ускорителей на основе отладочных плат ПЛИС производства XILINX средствами языка VHDL
Подсистема межблочной синхронной передачи данных на основе ПЛИС в комплексах цифровой обработки сигналов
Применение концепции модельно-ориентированного проектирования в разработке ПЛИС
Выбор ПЛИС для синхронизирующего устройства
Обзор отладочных плат с программируемой логической интегральной схемой Altera, применяемых для обучения в университете
Перенос проекта с платы EP4CE622 на плату AX7035B
Разработка программного модуля визуализации конфигурирования микросхем
Структурные особенности программируемой платы Digilent Nexys 2
Отчет о создании стекового микропроцессора на основе ПЛИС семейства SPARTAN-3E средствами языка аппаратного проектирования VHDL

Молодой учёный