Un error con VHDL

#1
Tengo este código de VHDL:

"library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.numeric_bit.ALL;
entity Contador is
Port (
segmento : out STD_LOGIC_VECTOR (6 downto 0);
punto : out STD_LOGIC;
posicion : out STD_LOGIC_VECTOR (3 downto 0);
clk : in STD_LOGIC);
end Contador;
architecture Behavioral of Contador is
signal entradaNumerica: unsigned (3 downto 0);
begin

process (clk)
begin

entradaNumerica<="0000";
punto<='1';
posicion<="1110";

if clk' event and clk='0' then
entradaNumerica<=entradaNumerica+1;
end if;
end process;
end Behavioral;
"

Pero me dá el sátanico problema en la linea en negrita:

"ERROR:Xst:827 - "C:/Users/Idir/Desktop/Universidad/Electronica/practica1/Contador.vhd" line 49: Signal entradaNumerica cannot be synthesized, bad synchronous description. The description style you are using to describe a synchronous element (register, memory, etc.) is not supported in the current software release.
"

Y que he estado leyendo por ahí manuales y demás y me decia que era por la colocación del flanco de reloj, que se debía de colocar al principio del IF, cosa que ya he hecho pero sigo sin entender el problema.


Muchas gracias.
 
#2
Una descripcion correcta, te lo pongo para una sola senial y vos amplialo a todas:

process(reset, clk)
begin
if (reset = '0') then
a <= "0000";
elsif (clk'event and clk = '1') then
a <= a + '1';
end if;
end process;

Tenes que pensar como funciona un flip flop, o un registro con el que construis un contador, con el reset se le define su valor inicial y luego cambia en cada flanco del clock
 
Última edición:
#3
La síntesis no me da ningún problema, pero al simular me arroja un error cuando pruebo con el Din.
Ingreso el número exacto de bits de entrada, pero me dice ser un valor no apropiado.
¿Cómo puedo corregirlo?
Gracias.
PHP:
entity Blo_aux is
    Port ( Din : in  STD_LOGIC_VECTOR (31 downto 0);
           DirA : out  STD_LOGIC_VECTOR (4 downto 0);
           DirB : out  STD_LOGIC_VECTOR (4 downto 0);
           DirC : out  STD_LOGIC_VECTOR (4 downto 0);
           Shamt : out  STD_LOGIC_VECTOR (4 downto 0);
           Din_ExtS : out  STD_LOGIC_VECTOR (15 downto 0);
           OPC : out  STD_LOGIC_VECTOR (5 downto 0);
           Func : out  STD_LOGIC_VECTOR (5 downto 0)
           );
end Blo_aux;

architecture Behavioral of Blo_aux is
begin
    process(Din)
    begin
    DirA <= Din(25 downto 21);
    DirB <= Din(20 downto 16);
    DirC <= Din(15 downto 11);
    Shamt <= Din(10 downto 6);
    Din_ExtS <= Din(15 downto 0);
    OPC <= Din(31 downto 26);
    Func <= Din(5 downto 0);
   end process;
end Behavioral;
 

Temas similares

Arriba