Поддержка генерации HDL-кода

Вы можете использовать Simulink® для быстрого прототипирования оборудования проектов. Wireless HDL Toolbox™, при использовании с HDL- Coder™, поддерживают генерацию HDL-кода. Инструменты HDL Coder генерируют независимый от цели синтезируемый Verilog® и VHDL® код для программирования FPGA или разработки и проекта прототипов ASIC.

Поддержка генерации HDL-кода в Wireless HDL Toolbox

Большинство блоков в Wireless HDL Toolbox поддерживает генерацию HDL-кода.

Следующие блоки предназначены только для симуляции и не поддерживаются для генерации HDL-кода:

  • Frame To Samples

  • Samples To Frame

  • FIL Frame To Samples

  • FIL Samples To Frame

Другие блоки, поддерживающие генерацию HDL-кода

Другие MathWorks® продукты также включают блоки, поддерживаемые для генерации HDL-кода, которые можно использовать для создания своего проекта.

В браузере библиотеки Simulink можно найти библиотеки блоков, поддерживаемых для генерации HDL-кода, в библиотеках HDL Coder, Communications Toolbox HDL Support DSP System Toolbox HDL Support блоков и других.

Чтобы создать библиотеку поддерживаемых HDL блоков из всех ваших установленных продуктов, введите hdllib (HDL Coder) в MATLAB® командная строка. Для выполнения этой команды требуется лицензия HDL Coder.

Можно также просмотреть блоки, поддерживаемые для генерации HDL-кода, в документации путем фильтрации списка ссылок на блоки. Щелкните Blocks на синей панели в верхней части окна справки, затем установите флажок HDL code generation в нижней части левого столбца. Блоки перечислены в соответствующих продуктах. Для перехода между продуктами и категориями можно использовать таблицу содержимого в левом столбце.

Смотрите раздел «Расширенные возможности > Генерация HDL-кода» на каждой странице блока для блока реализации, свойств и ограничений для генерации HDL-кода.

Потоковая выборка интерфейса в HDL

Потоковый пример типа данных шины управления, используемый блоками Wireless HDL Toolbox, сведен в отдельные сигналы в HDL.

В VHDL интерфейс заявлен как:

  PORT( clk             :   IN    std_logic;
        reset           :   IN    std_logic;
        enb             :   IN    std_logic;
        in0             :   IN    std_logic_vector(7 DOWNTO 0); -- uint8
        in1_start       :   IN    std_logic;
        in1_end         :   IN    std_logic;
        in1_valid       :   IN    std_logic;
        out0            :   OUT   std_logic_vector(7 DOWNTO 0); -- uint8
        out1_start      :   OUT   std_logic;
        out1_end        :   OUT   std_logic;
        out1_valid      :   OUT   std_logic
        );

В Verilog интерфейс заявлен как:

  input   clk;
  input   reset;
  input   enb;
  input   [7:0] in0;  // uint8
  input   in1_start;
  input   in1_end;
  input   in1_valid;
  output  [7:0] out0;  // uint8
  output  out1_start;
  output  out1_end;
  output  out1_valid;

Похожие темы