ПикоБлейз
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:
component kcpsm3 is
port (
address : out std_logic_vector(9 downto 0);
instruction : in std_logic_vector(17 downto 0);
port_id : out std_logic_vector(7 downto 0);
write_strobe : out std_logic;
out_port : out std_logic_vector(7 downto 0);
read_strobe : out std_logic;
in_port : in std_logic_vector(7 downto 0);
interrupt : in std_logic;
interrupt_ack : out std_logic;
reset : in std_logic;
clk : in std_logic
);
end component;
Производительность [ править ]
Все инструкции выполняются за два такта, что делает производительность основного набора команд детерминированной. Реакция на прерывание составляет не более пяти тактов. В целях оптимизации ресурсов два ядра PicoBlaze могут использовать одну и ту же PROM инструкций 1k x 18, используя преимущества двухпортовой реализации этого блока на FPGA 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 лучше подходит для оптимизированного вручную соглашения о вызовах на основе регистров. Это не исключает использования стека данных, подобного Форту , и фактически PicoBlaze хорошо подходит для этого подхода, если 64-байтовая блокнотная память предлагает достаточно места.
См. также [ править ]
Внешние ссылки [ править ]
Процессор и производные:
- PicoBlaze на сайте Xilinx
- Руководство пользователя PicoBlaze
- Пользовательские ресурсы PicoBlaze
- Реализация picoblaze в LabVIEW FPGA на плате Xilinx Spartan 3E Starter.
- PacoBlaze: синтезируемый и поведенческий клон Verilog с открытым исходным кодом PicoBlaze.
- Описание реализации PacoBlaze
- NanoBlaze: модель VHDL с дженериками для определения различных размеров.
- PauloBlaze: модель VHDL с открытым исходным кодом, полностью совместимая с ISA kcpsm6.
Инструменты:
- Ассемблер Picoblaze с открытым исходным кодом
- Отладчик PicoBlaze, разработка программного обеспечения и оборудования RTL с помощью ModelSim
- MDS, профессиональная IDE для Linux и Windows
- FIDEx, ассемблерная среда разработки для Linux, MAC и Windows.
- pBlazASM, ассемблер и симулятор с открытым исходным кодом для Windows. [ постоянная мертвая ссылка ]
- pBlazIDE, ассемблерная среда разработки для Windows.
- kpicosim, ассемблерная среда разработки с открытым исходным кодом для Linux.
- Opbasm, кроссплатформенный ассемблер макросов Open Picoblaze для kcpsm3 и kcpsm6
- Симулятор PicoBlaze на JavaScript
Ссылки [ править ]
- Примечания
- ^ «8-битный микроконтроллер PicoBlaze» (PDF) . Ксилинкс, Инк . Проверено 25 июня 2007 г.
- ^ «Руководство пользователя 8-битного встроенного микроконтроллера PicoBlaze» (PDF) . Xilinx, Inc. Архивировано из оригинала (PDF) 27 сентября 2007 г. Проверено 25 июня 2007 г.
- ^ Понг П. Чу (2008). Прототипирование FPGA с помощью VHDL. Примеры: версия Xilinx Spartan-3 . Уайли и сыновья. ISBN 978-0-470-18531-5 .
- Библиография
- Иванов Вл. Использование процессора PicoBlaze для управления светофором. Кибернетика и информационные технологии, 15, 5, Марин Дринов, 2015, Онлайн ISSN 1314-4081 , doi : 10.1515/cait-2015-0023 , стр. 131–139. SJR:0,212.