PicoBlaze

редактировать

PicoBlaze - это обозначение серии из трех бесплатных программных процессоров ядер от Xilinx для использования в своих продуктах FPGA и CPLD. Они основаны на 8-битной RISC архитектуре и могут достигать скорости до 100 MIPS на семействе FPGA. Процессоры имеют 8-битный адрес и порт данных для доступа к широкому спектру периферийных устройств. Лицензия на ядра позволяет их бесплатное использование, хотя и только на устройствах Xilinx, и они поставляются с инструментами разработки. Инструменты сторонних производителей доступны в Mediatronix и других компаниях. Кроме того, существует реализация ядер, не зависящая от поведения и устройства, которая выпущена под лицензией BSD. PauloBlaze - это реализация VHDL с открытым исходным кодом под лицензией Apache.

. Первоначально проект PicoBlaze назывался KCPSM, что означает «Программируемый конечный автомат с постоянным (K) кодированием» (ранее - «PSM Кена Чепмена»). Кен Чапман был разработчиком систем Xilinx, который разработал и внедрил микроконтроллер.

Содержание
  • 1 Создание экземпляра
  • 2 Производительность
  • 3 Примечания по архитектуре
  • 4 См. Также
  • 5 Внешние ссылки
  • 6 Ссылки
Создание экземпляра

При создании экземпляра микроконтроллера PicoBlaze в VHDL необходимо использовать соответствующее имя компонента KCPSM. Например, для процессора PicoBlaze3:

компонент kcpsm3 - это порт (адрес: out std_logic_vector (9 вниз до 0); инструкция: в std_logic_vector (17 вниз до 0); port_id: out std_logic_vector (7 вниз до 0); write_strobe: out std_logic ; out_port: out std_logic_vector (7 вниз до 0); read_strobe: out std_logic; in_port: в std_logic_vector (7 вниз до 0); прерывание: в std_logic; interrupt_ack: out std_logic; сброс: в std_logic; clk: в std_logic); конечный компонент;
Производительность

Все инструкции выполняются за два тактовых цикла, что делает производительность основного набора команд детерминированной. Время реакции на прерывание составляет не более пяти тактов. В целях оптимизации ресурсов два ядра PicoBlaze могут совместно использовать один и тот же PROM 1k x 18 инструкций, используя преимущества двухпортовой реализации этого блока на ПЛИС Xilinx.

Примечания по архитектуре

В документации Xilinx для PicoBlaze требуется всего 96 частей FPGA. Небольшой размер реализации частично достигается за счет довольно жесткого разделения стороны последовательности команд (счетчик программ, стек вызовов-возврата, подразумеваемый указатель стека и бит разрешения прерывания) от стороны выполнения (ALU, файл регистров, оперативная память RAM, Z / C биты состояния). Единственная информация, которая течет от вычислительной стороны к стороне упорядочивания, - это ноль и биты состояния ALU при проверке условными инструкциями JUMP и CALL. Невозможно реализовать вычисленные переходы или указатели функций. Единственная информация, которая течет от стороны упорядочивания к стороне выполнения, - это поля операндов: регистр назначения (4 бита), код операции ALU (шесть битов), необязательный регистр источника (4 бита), необязательное 8-битное непосредственное значение / адрес порта, необязательный 6-битный адрес блокнота. Не существует механизма для проверки значения указателя стека, содержимого стека с 31 записью, бита разрешения прерывания или содержимого памяти программ.

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

PicoBlaze плохо подходит для программирования на компилируемых языках, таких как C. В дополнение к отсутствию поддержки указателей функций, нет инструкций или режимов адресации для ускорения соглашения о вызовах на основе стека. Для PicoBlaze требуется две инструкции для реализации PUSH или POP и две инструкции для реализации относительной адресации от указателя стека, назначенного программным обеспечением. PicoBlaze лучше подходит для оптимизированного вручную соглашения о вызовах на основе регистров. Это не препятствует использованию стека данных, подобного Forth, и на самом деле PicoBlaze хорошо подходит для этого подхода, если 64-байтовая оперативная память предлагает достаточно места.

См. Также
Внешние ссылки

Процессор и производные:

Инструменты:

Литература
Примечания
Библиография
Последняя правка сделана 2021-06-02 05:05:04
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте