Actualmente tengo una entidad 'sumador' con dos arquitecturas: (1) RippleCarryAdder (2) CarryLookAheadAdder.
Puse todas las definiciones en un solo archivo VHDL como se muestra a continuación:
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
Usando 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 del archivo, o tal vez algunas reglas que rigen la declaración de arquitectura de las que no estoy al tanto. Es extraño que la documentación de VHDL no hable sobre múltiples arquitecturas y estructuras de archivos. ¿Debo usar dos archivos y copiar la declaración de entidad en ambos? ¿Puede señalar una página que analice adecuadamente el formato de múltiples arquitecturas compatible con Xilinx ISE? (por ejemplo, la palabra clave de configuración no es compatible y tengo que recurrir a otro formato para enlazar arquitecturas).
Nunca he intentado nada de esto y no he usado ISE en años. No sé si admite configuraciones originales y, sinceramente, no me sorprendería si no lo hiciera. Como todos los demás decían, sugeriría actualizar a Vivado
Ok, creo que tengo la respuesta correcta:
Podemos poner 'entidad' en un archivo separado y 'arquitectura1' en otro archivo, y 'arquitectura2' nuevamente en otro archivo. Entonces terminaremos teniendo 3 archivos separados. Aquí el orden de compilación sí importa. Primero se debe compilar el archivo que contiene la definición de 'entidad' y luego las arquitecturas. Xilinx ISE tiene una opción que le permite establecer el orden de compilación manualmente. También podemos poner los tres en un solo archivo, la entidad viene primero y las arquitecturas siguen.
ISE 8.1i hasta 14.7 no admite correctamente múltiples arquitecturas y configuraciones CORRECTAMENTE. Las únicas configuraciones que acerté son:
--stack-size=nnnn
opción, ahora obsoleta. Si ya está usando ghdl-0.34dev, considere informar esto (deje en claro que es un problema de la versión de Windows) con testcase en github.com/tgingold/ghdl/issues
usuario_1818839
Adder1 : entity work.my_ent(my_arch1) generic map () port map ();
De lo contrario, podría ser el momento de aprender las configuraciones.Dr. Ehsan Alí
usuario_1818839
Dr. Ehsan Alí
Claudio Avi Chami
Dr. Ehsan Alí
usuario_1818839