domingo, 15 de octubre de 2017

Convertir un modelo de Simulink a código VHDL con HDL Coder [Ejemplo 1]

Para este primer ejemplo, generarémos el código VHDL para una función booleana sencilla de la forma X = AB xor C desde un diagrama en Simulink.

Bloques requeridos
HDL Coder > Commonly Used Blocks > In1
HDL Coder > Commonly Used Blocks > Out1
HDL Coder > Logic and Bit Operations > Logical Operators

Diagrama
Una vez terminado el bloque debemos irnos a la pestaña Code > HDL Code > Generate HDL. Si no hay ningún error deberá aparecer lo siguiente en la ventana de comandos:

### Generating HDL for 'Ejemplo_HDL'.
### Starting HDL check.
### Begin VHDL Code Generation for 'Ejemplo_HDL'.
### Working on Ejemplo_HDL as hdlsrc\Ejemplo_HDL\Ejemplo_HDL.vhd.
### Creating HDL Code Generation Check Report Ejemplo_HDL_report.html
### HDL check for 'Ejemplo_HDL' complete with 0 errors, 3 warnings, and 0 messages.
### HDL code generation complete. 


Por defecto el código generado aparecerá en el directorio  hdlsrc\. El código generado para este ejemplo es el siguiente:

-- -------------------------------------------------------------
--
-- File Name: hdlsrc\Ejemplo_HDL\Ejemplo_HDL.vhd
-- Created: 2017-10-14 23:09:58
--
-- Generated by MATLAB 8.5 and HDL Coder 3.6
--
--
-- -------------------------------------------------------------
-- Rate and Clocking Details
-- -------------------------------------------------------------
-- Model base rate: 0
-- Target subsystem base rate: 0
--
-- -------------------------------------------------------------
-- -------------------------------------------------------------
--
-- Module: Ejemplo_HDL
-- Source Path: Ejemplo_HDL
-- Hierarchy Level: 0
--
-- -------------------------------------------------------------
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;
ENTITY Ejemplo_HDL IS
PORT( A : IN std_logic;
B : IN std_logic;
C : IN std_logic;
X : OUT std_logic
);
END Ejemplo_HDL;
ARCHITECTURE rtl OF Ejemplo_HDL IS
-- Signals
SIGNAL Logical_Operator_out1 : std_logic;
SIGNAL Logical_Operator1_out1 : std_logic;
BEGIN
Logical_Operator_out1 <= A AND B;
Logical_Operator1_out1 <= Logical_Operator_out1 XOR C;
X <= Logical_Operator1_out1;
END rtl;
view raw Ejemplo_HDL.vhd hosted with ❤ by GitHub

No hay comentarios: