PicoBlaze

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

PicoBlaze — общее название серии свободно распространяемых Soft-процессорных ядер, созданных фиромой Xilinx для своих ПЛИС (FPGA и CPLD). В основе PicoBlaze лежит архитектура 8-битного RISC-процессора; скорость работы на ПЛИС семейства Virtex 4 может достигать 100 MIPS. Процессор имеет 8-битные порты данных и адреса, обеспечивающие доступ к разнообразной периферии.

PicoBlaze распространяется в виде исходного кода на языке VHDL для свободного использования, но только на продуктах фирмы Xilinx. Имеется специальное инструментальное программное обеспечение, в том числе, созданное сторонними организациями (Mediatronix и др.). Существует также PacoBlaze — модифицированное ядро PicoBlaze, распространяемое под лицензией BSD.

Изначально проект «PicoBlaze» носил имя KCSPM, что означает «Constant(K) Coded Programmable State Machine» — программируемый конечный автомат с постоянной программой. Создатель проекта — Кен Чапман (Ken Chapman) — инженер Xilinx, разработавший и реализовавший PicoBlaze[1] (альтернативная расшифровка аббревиатуры KCPSM — «Ken Chapman’s PSM»).

При вставке 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 включает:

  • 16 регистров общего назначения размером по 1 байту;
  • память команд на 1024 инструкции;
  • счетчик команд
  • АЛУ с флагами CARRY и ZERO (размер операндов - 1 байт);
  • внутреннее ОЗУ на 64 байта;
  • 256 входных и выходных портов;
  • стек вызовов на 31 ячейку (CALL/RETURN stack);
  • порт прерывания.

Кроме того, ядро PicoBlaze:

  • выполняет все без исключения команды за два такта, при этом тактовая частота может доходить до нескольких сотен МГц;
  • быстро реагирует на прерывания (в худшем случае - за 5 тактов);
  • в версии KCPSM-3 оптимизировано для архитектуры Xilinx Spartan-3: занимает всего 96 ячеек (slices) и 1 блок RAM;
  • в версии KCPSM-6 оптимизировано для архитектуры Xilinx Spartan-6, Virtex®-6, и FPGA седьмой серии: занимает всего 26 ячеек;

Программы для PicoBlaze необходимо писать на ассемблере (имеется специальный симулятор).

Специальные возможности [править]

С помощью специальных программных средств программа для PicoBlaze может быть заменена непосредственно в файле прошивки ПЛИС (с расширением bit). С помощью специальных программных средств можно загружать программу для PicoBlaze непосредственно в ПЛИС через интерфейс JTAG.

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

Примечания [править]

  1. PicoBlaze 8-bit Microcontroller(недоступная ссылка — история). Xilinx, Inc.. Проверено 25 июня 2007.
  2. PicoBlaze 8-bit Embedded Microcontroller User Guide(недоступная ссылка — история). Xilinx, Inc.. Проверено 25 июня 2007.