Генерация HDL-кода от Vision HDL Toolbox

Что такое генерация HDL-кода?

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

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

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

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

  • Frame To Pixels (visionhdl.FrameToPixels)

  • Pixels To Frame (visionhdl.PixelsToFrame)

  • FIL Frame To Pixels (visionhdl.FILFrameToPixels)

  • FIL Pixels To Frame (visionhdl.FILPixelsToFrame)

  • Measure Timing (visionhdl.MeasureTiming)

Потоковая передача пиксельного интерфейса в HDL

Пиксельная шина потоковой передачи и тип данных структуры, используемый блоками Vision 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_hStart      :   IN    std_logic;
        in1_hEnd        :   IN    std_logic;
        in1_vStart      :   IN    std_logic;
        in1_vEnd        :   IN    std_logic;
        in1_valid       :   IN    std_logic;
        out0            :   OUT   std_logic_vector(7 DOWNTO 0); -- uint8
        out1_hStart     :   OUT   std_logic;
        out1_hEnd       :   OUT   std_logic;
        out1_vStart     :   OUT   std_logic;
        out1_vEnd       :   OUT   std_logic;
        out1_valid      :   OUT   std_logic
        );

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

  input   clk;
  input   reset;
  input   enb;
  input   [7:0] in0;  // uint8
  input   in1_hStart;
  input   in1_hEnd;
  input   in1_vStart;
  input   in1_vEnd;
  input   in1_valid;
  output  [7:0] out0;  // uint8
  output  out1_hStart;
  output  out1_hEnd;
  output  out1_vStart;
  output  out1_vEnd;
  output  out1_valid;