Т-72
- 1 year ago
- 0
- 0
MicroBlaze — soft-процессорное ядро, разработанное компанией Xilinx для использования в FPGA . MicroBlaze реализуется с помощью стандартной логики и блоков памяти ПЛИС .
С точки зрения архитектуры, MicroBlaze очень похож на процессор с основанной на RISC DLX-архитектурой , описанной в книге Д. Паттерсона ( David Patterson ) и Дж. Хеннеси ( John L. Hennessy ). За исключением отдельных случаев MicroBlaze может выполнять по одной инструкции за такт, сохраняя такую производительность практически в любых условиях.
MicroBlaze имеет универсальные средства связи с периферией, обеспечивающее возможность применять его в разнообразных встроенных приложениях. Для доступа к внутренней памяти ПЛИС ( ), MicroBlaze использует специальную шину , что снижает нагрузку на другие шины. Подключение сопроцессора возможно средствами специального соединения, подобного FIFO — (Fast Simplex Link). Интерфейс с сопроцессором может помочь ускорить работу алгоритмов с большим количеством вычислений, передав часть вычислений в созданный разработчиком (например, написанный на VHDL) аппаратный блок.
Для конфигурирования доступны различные параметры MicroBlaze: могут быть отдельно специфицированы размер кэш, длина конвейера (3 или 5-уровневый), встроенная периферия, блок управления памятью , шинные интерфейсы и так далее (всего более 70 параметров). Например, для оптимизации по количеству занимаемых ресурсов ПЛИС можно использовать MicroBlaze с 3-уровневым конвейером, пожертвовав высоким значением тактовой частоты ради высвобождения дополнительных ресурсов; для оптимизации по скорости — MicroBlaze с 5-уровневым конвейером, что позволяет работать при тактовой частоте до 235 МГц (для FPGA семейства Virtex-5 FX). Кроме того, ключевые команды процессора, которые редко используются, но при этом их дорого воспроизводить «в железе», могут быть выборочно добавлены или удалены (то есть блоки умножения, деления, операций с плавающей точкой и тому подобные). Этот набор настроек дает разработчику возможность чётче определить грань между аппаратной и программной частью в проекте.
Без блока управления памятью на MicroBlaze может работать операционная система с упрощенной защитой и виртуальной памятью, например μClinux или FreeRTOS . С блоком управления памятью возможна работа операционных систем, требующих аппаратной поддержки страничной организации памяти и защиты (таких как ядро Linux ), хотя производительность MicroBlaze значительно ниже, чем у таких аппаратных микропроцессорных ядер, встроенных в FPGA, как PowerPC -405 в Virtex-4.
Xilinx EDK (Embedded Development Kit) — пакет программ для разработки встроенных систем на основе MicroBlaze (и PowerPC) для ПЛИС фирмы Xilinx. Основанный на Eclipse IDE , EDK состоит из двух независимых сред разработки — XPS и SDK.
Разработчик использует XPS (Xilinx Platform Studio) для создания и конфигурирования аппаратной спецификации встроенной системы (процессорное ядро, управление памятью, интерфейсы ввода-вывода и проч.). По ней XPS генерирует синтезируемое описание на уровне регистровых передач ( RTL — register transfer level, на языке VHDL или Verilog ), и создает набор скриптов для автоматического создания битового описания (из RTL в bitsream-файл). Для ядра MicroBlaze EDK генерирует зашифрованное описание (не читаемое человеком), но исходники на VHDL могут быть приобретены у Xilinx.
SDK служит для создания программной части системы. Как и GNU toolchain , SDK позволяет писать, компилировать и отлаживать программы на C/C++. Имеется специальный симулятор — ISS (Instruction Set Simulator), благодаря которому можно либо тестировать программу в режиме симуляции, либо используя подходящую плату с установленным FPGA , на реальной системе.
Пользователи XPS становятся обладателями «пожизненной» лицензии на MicroBlaze, без необходимости внесения периодических лицензионных платежей.
Альтернативный компилятор и инструмент разработки для MicroBlaze был представлен компанией Altium , но он тоже требует установки EDK и получения лицензии.