Estoy aprendiendo VHDL y estoy tratando de hacer un MUX Genérico simple. Es mi código:
GenericMUX.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
use IEEE.NUMERIC_STD.ALL;
-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity GenericMUX is
-- n: siendo 2**n la cantidad de entradas del MUX
generic (n : integer);
Port ( input : in STD_LOGIC_VECTOR(2**n downto 0);
sel : in STD_LOGIC_VECTOR(n downto 0);
MUX_OUT : out STD_LOGIC);
end GenericMUX;
architecture Behavioral of GenericMUX is
begin
MUX_OUT <= input(to_integer(unsigned(sel)));
end Behavioral;
MUX.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;
-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity MUX is
generic (n : integer := 3);
Port ( input : in STD_LOGIC_VECTOR(2**n downto 0);
sel : in STD_LOGIC_VECTOR(n downto 0);
MUX_OUT : out STD_LOGIC);
end MUX;
architecture Behavioral of MUX is
component GenericMUX is
-- n: siendo 2**n la cantidad de entradas del MUX
generic (n : integer);
Port ( input : in STD_LOGIC_VECTOR(2**n downto 0);
sel : in STD_LOGIC_VECTOR(n downto 0);
MUX_OUT : out STD_LOGIC);
end component;
begin
x1 : GenericMUX generic map (n) port map (input, sel, MUX_OUT);
end Behavioral
Con Xilinx ISE 14.5 obtengo este error en MUX.vhd
:
ERROR: HDLCompiler: 849 - "C: / Documents and Configuración / Propietario / Escritorio / Xilinx FPGA / GenericMUX / MUX.vhd "Línea 53: EOF inesperado.
La línea 53 es end Behavioral
. Intenté limpiar el proyecto, creando uno nuevo, pero no sé qué está mal. Tal vez parte de mi código genere este mensaje de error incorrecto.