Actualmente tengo una entidad 'sumador' con dos arquitecturas: (1) RippleCarryAdder (2) CarryLookAheadAdder.
Pongo todas las definiciones en un solo archivo VHDL de la siguiente manera:
entity adder is
generic (N: integer := 16);
Port ( Cin : in STD_LOGIC;
x : in std_logic_vector (N - 1 downto 0);
y : in std_logic_vector (N - 1 downto 0);
s : out std_logic_vector (N - 1 downto 0);
Cout : out STD_LOGIC);
end adder;
architecture RippleCarryAdder of adder is
begin
...
end RippleCarryAdder;
architecture CarryLookAheadAdder of adder is
begin
...
end CarryLookAheadAdder
Al utilizar ISE 14.7 Xilinx puedo ver que la herramienta tiene dificultades para distinguir correctamente dos arquitecturas asociadas a la entidad "sumador". Solo reconoce la última arquitectura especificada en el archivo (en este caso, 'CarryLookAheadAdder').
Supongo que hay algo con el dominio de archivo, o tal vez algunas reglas que rigen la declaración de arquitectura que no conozco. Es extraño que la documentación de VHDL no haya hablado sobre arquitectura múltiple y estructura de archivos. ¿Debo usar dos archivos y copiar la declaración de entidad en ambos? ¿Puede apuntar a una página que analice adecuadamente el formato de múltiples arquitecturas admitido por Xilinx ISE? (por ejemplo, la palabra clave de configuración no es compatible y tengo que recurrir a otro formato para enlazar arquitecturas).