Estoy trabajando en VHDL y estoy obteniendo un error en un proceso DMUx.
Error: “Se esperaba la palabra clave ‘end'” y “Se esperaba la declaración de la unidad de diseño”.
El código del proceso es:
DMux: proceso(Din, A)
begin
S1(0) <= Din cuando A(1 downto 0) = "00";
else otros => '0';
S1(1) <= Din cuando A(1 downto 0) = "01";
else otros => '0';
S1(2) <= Din cuando A(1 downto 0) = "10";
else otros => '0';
S1(3) <= Din cuando A(1 downto 0) = "11";
else otros => '0';
end proceso;
No puedo ver qué es lo que me falta en este ejemplo.
davy.ai
Hay dos errores en el código del proceso proporcionado:
El error “se esperaba la declaración de la unidad de diseño” es causado por la falta de declaraciones de entidad y arquitectura que rodean el código del proceso. Un código VHDL debe tener al menos una declaración de entidad y una declaración de arquitectura para considerarse como una unidad de diseño.
Por lo tanto, el código debe modificarse de la siguiente manera para ser una unidad de diseño completa:
En el código modificado, primero declaramos la entidad “DMux” con su lista de puertos. Luego, definimos la arquitectura “Behavioral” que incluye el código del proceso. Al final del proceso, incluimos la declaración “end process DMux_proc;” como se requiere. Además, agregamos una línea de código para asignar todos los demás bits de “S1” a ‘0’ cuando la entrada “A” sea mayor o igual a “100”.