Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Создание [ править ]

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

Компонент  kcpsm3  является  порт  (  адрес  :  из  STD_LOGIC_VECTOR ( 9  Downto  0 );  инструкция  :  в  std_logic_vector ( 17  Downto  0 );  port_id  :  из  std_logic_vector ( 7  Downto  0 );  write_strobe  :  из  std_logic ;  out_port  :  из  std_logic_vector ( 7  Downto  0 );  read_strobe  :  из 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 . [3] В дополнение к отсутствию поддержки указателей функций [ сомнительно ] , нет инструкций или режимов адресации для ускорения соглашения о вызовах на основе стека. Для PicoBlaze требуются две инструкции для реализации PUSH или POP и две инструкции для реализации относительной адресации от программно назначенного указателя стека. PicoBlaze лучше подходит для оптимизированного вручную соглашения о вызовах на основе регистров. Это не исключает использования стека данных, подобного Forth , и фактически PicoBlaze хорошо подходит для этого подхода, если 64-байтовая память блокнота предлагает достаточно места.

См. Также [ править ]

Внешние ссылки [ править ]

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

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

Ссылки [ править ]

Примечания
  1. ^ «8-битный микроконтроллер PicoBlaze» (PDF) . Xilinx, Inc . Проверено 25 июня 2007 .
  2. ^ «Руководство пользователя 8-битного встроенного микроконтроллера PicoBlaze» (PDF) . Xilinx, Inc. Архивировано из оригинального (PDF) 27 сентября 2007 года . Проверено 25 июня 2007 .
  3. Понг П. Чу (2008). Прототипирование ПЛИС с помощью VHDL Примеры: версия Xilinx Spartan-3 . Wiley & Sons. ISBN 978-0-470-18531-5.
Библиография
  • Иванов Вл. Использование процессора PicoBlaze для управления светофором. Кибернетики и информационных технологий, 15, 5, Marin Дринов, 2015, Интернет ISSN 1314-4081 , DOI : 10,1515 / Cait-2015-0023 . С. 131 - 139. SJR: 0.212