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-байтовая память блокнота предлагает достаточно места.
См. Также [ править ]
Внешние ссылки [ править ]
Процессор и производные:
- PicoBlaze на сайте Xilinx
- Руководство пользователя PicoBlaze
- Пользовательские ресурсы PicoBlaze
- Реализация пикоблаза в LabVIEW FPGA на стартовой плате Xilinx Spartan 3E
- PacoBlaze: синтезируемый поведенческий клон Verilog с открытым исходным кодом от PicoBlaze
- Описание реализации PacoBlaze
- NanoBlaze: модель VHDL с универсальными шаблонами для определения различных размеров
- PauloBlaze: модель VHDL с открытым исходным кодом, полностью совместимая с ISA kcpsm6
Инструменты:
- Ассемблер Picoblaze с открытым исходным кодом
- Отладчик PicoBlaze, разработка программного обеспечения и аппаратного обеспечения RTL с помощью ModelSim
- MDS, профессиональная IDE для Linux и Windows
- FIDEx, ассемблерная IDE для Linux, MAC и Windows
- pBlazASM, ассемблер и симулятор с открытым исходным кодом для Windows [ постоянная мертвая ссылка ]
- pBlazIDE, ассемблерная среда разработки для Windows
- kpicosim, IDE ассемблера с открытым исходным кодом для Linux
- Opbasm, кроссплатформенный макроассемблер Open Picoblaze для kcpsm3 и kcpsm6
Ссылки [ править ]
- Примечания
- ^ «8-битный микроконтроллер PicoBlaze» (PDF) . Xilinx, Inc . Проверено 25 июня 2007 .
- ^ «Руководство пользователя 8-битного встроенного микроконтроллера PicoBlaze» (PDF) . Xilinx, Inc. Архивировано из оригинального (PDF) 27 сентября 2007 года . Проверено 25 июня 2007 .
- ↑ Понг П. Чу (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