¿Cómo definir un reloj en Quartus II?

2

Tengo este pedazo de código aquí:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity first is
port(
a : in STD_LOGIC_VECTOR(3 downto 0);
b : in STD_LOGIC_VECTOR(3 downto 0);
result : out STD_LOGIC_VECTOR(3 downto 0);
clk : in STD_LOGIC
);
end first;

architecture behavioral of first is
begin
process(clk)
begin
result <= a + b;
end process;
end behavioral;  

En Quartus II, ¿cómo puedo decirle al software que quiero que 'clk' sea un reloj para poder averiguar la frecuencia máxima (Fmax) a la que se puede ejecutar este diseño? Cada vez que compilo mi diseño, aparece el mensaje "No hay relojes definidos en el diseño".

    
pregunta gilianzz

3 respuestas

1

El problema es que en realidad no tiene reloj, o para ser más precisos, no se usa . Comprueba tu proceso:

process(clk)
begin
    result <= a + b;
end process;

Este proceso no usa el reloj. Probablemente quisiste hacer esto:

process(clk)
begin
    if rising_edge(clk) then
        result <= a + b;
    end if;
end process;

Este código usa el reloj y Quartus debería reportarlo.

Actualizar

Si este es su nivel superior, no tendrá un valor fmax para el reloj porque no tiene una ruta de registro a registro. Sus señales de entrada a y b no están registradas, por lo tanto, la ausencia de ruta de registro a registro. Puedes resolver esto fácilmente:

process(clk)
begin
    if rising_edge(clk) then
        a_r <= a;
        b_r <= b;
        result <= a_r + b_r;
    end if;
end process;
    
respondido por el Jonathan Drolet
0

Su diseño tiene una señal llamada clk , pero no se usa como reloj. Debe agregar if(rising_edge(clk)) en el cuerpo del proceso.

Una vez que modifique su diseño, Quartus detectará que clk se usa como reloj y podrá continuar con su análisis de Fmax.

    
respondido por el Dmitry Grigoryev
0

Una vez que haya incluido un reloj en su lógica (ver otras respuestas), puede echar un vistazo a timequest, la herramienta de sincronización en Quartus. Puede usar timequest para crear un archivo sdc para restringir su diseño (o puede escribir uno manualmente). A menudo tiene sentido decirle a Quartus qué es el Fmax que necesita, ya que entonces puede intentarlo.
Si tiene varios relojes, esto es particularmente importante porque entonces las herramientas pueden priorizar las cosas que necesitan ir más rápido a expensas de las cosas menos críticas.

    
respondido por el Will

Lea otras preguntas en las etiquetas