restricción de tiempo fgpa en la señal de habilitación

1

Tengo una pregunta sobre la configuración de restricciones de tiempo en las señales de habilitación.

En mi diseño vhdl utilizo una señal de habilitación, para activar cuando el proceso necesita muestrear mis datos de entrada. La señal de habilitación se deriva de los datos de entrada, utilizando otro componente vhdl.

Mi reloj es de 27MHz, pero la señal de activación está presente al máximo en cada segundo ciclo, por lo que su período es mínimo: 1 / 13.5MHz.

Cuando compilo mi diseño, recibo advertencias sobre las restricciones de tiempo de clk, debido a mi algoritmo. Pero, ¿puedo hacer alguna restricción de tiempo en el pin de habilitación? Esto podría hacer que el código vhdl se compile sin advertencias, ya que solo se requiere la mitad del período de clk.

test : process(reset, clk)
begin
  if reset = '0' then
     ... 
  elsif rising_edge(clk) then
    if en = '1' then
      ... vhdl algorithm is here ...
    end if;
  end if;
end process;
    
pregunta JakobJ

1 respuesta

2

Si puede garantizar que su habilitación nunca estará presente más rápido que una tasa particular, puede usar una restricción de ruta de varios ciclos para decirle esto a las herramientas. No dice qué familia de FPGA está utilizando, pero si busca en los archivos de ayuda de los proveedores para varios ciclos debería obtener la información que necesita.

Habiendo dicho eso, en mi experiencia, estas restricciones son difíciles de verificar. Comprobar que solo la lógica correcta está cubierta por ellos es difícil, y si alguna lógica adicional se incluye por accidente, el diseño tiene una infracción de tiempo latente que el diseñador desconoce.

Así que, a menos que no tenga otra opción, tiendo a apuntar a mejorar la velocidad del reloj (por ejemplo, utilizando un mejor sintetizador, o canalización, o ...). Entonces puedo ejecutar esa lógica a toda velocidad, aunque no tengo que hacerlo, y no tengo que preocuparme por la validación de restricciones de ruta de múltiples ciclos complejas.

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas