Comenzando con la definición de VHDL de wikipedia
VHDL (lenguaje de descripción de hardware VHSIC) es una descripción de hardware
lenguaje utilizado en la automatización del diseño electrónico para describir digital y
sistemas de señal mixta como matrices de puertas programables en campo y
circuitos integrados. VHDL también puede usarse como propósito general
lenguaje de programación paralelo
VHDL se usa principalmente para describir circuitos digitales para ASIC o FPGA, pero se puede usar para sistemas analógico-digitales (señal mixta) o incluso para describir procesos paralelos.
'evento significa un cambio en una señal digital, que es un borde . Combinado con '1' , se define un borde ascendente . Esto es casi lo mismo que la función rising_edge (clk) . Aquí la leve diferencia entre ellos (para usuarios avanzados).
Entonces, si no usas el evento, estás describiendo un proceso activado durante el alto nivel de clk. Por ejemplo, para un ciclo de trabajo de 50MHz de 40MHz, el reloj está en estado '1' durante 12.5ns. ¿Qué pasa con el contador durante estos 12.5ns? ¿Cuántas veces contarán durante estos 12.5ns? Y lo más importante, ¿ el sistema en el que se escribió este código es capaz de incrementar un contador usando un nivel de reloj? Probablemente no, aunque su simulador le dé los mismos resultados. Tenga cuidado con los resultados del simulador , porque los simuladores son diferentes a los sintetizadores y pueden proporcionar resultados muy diferentes.
VHDL es un lenguaje generalista que se usa ampliamente para describir circuitos digitales. Entonces, cada fabricante tiene sus plantillas óptimas para describir contadores, registros, memorias ... Y clock'event and clock = '1' o rising_edge (clk) son estándares de facto para describir el flanco ascendente de una señal que figura en la lista de sensibilidad. De la misma manera, si describe un restablecimiento asíncrono, coloca una señal de restablecimiento en la lista de sensibilidad y un nivel alto o bajo que inicializa el registro todo el tiempo que se recibe la señal, no en un instante definido con un borde.
process (clock, reset)
begin
if reset='1' then
count <= (others => '0');
elsif clock='1' and clock'event then
<count> <= <count> + 1;
end if;
end process;
Para resumir , cada fabricante de lógica programable utiliza un conjunto limitado y definido de definiciones VHDL para describir sus sistemas. Le recomiendo que busque las plantillas VHDL o Verilog para Xilinx o Altera. El sintetizador entiende correctamente que estas plantillas se traducen a elementos de un chip lógico programable en particular, o ASIC u otros sistemas.