pregunta sobre la síntesis e implementación de Vivado

0

Uso Vivado para programar mi tarjeta Basys-3 y tengo una pregunta rápida acerca de la síntesis y la implementación. Noté que cuando Vivado conoce las entradas de una entidad, calcula el resultado directamente y este cálculo no se realiza en el núcleo de FPGA.

Por ejemplo, tengo un algoritmo de cifrado que toma la clave de cifrado y el texto simple como entrada y devuelve el texto cifrado como salida, si declaro dos señales iguales a la clave y al plano, el cálculo del cifrado no se realizará En la ficha pero en el momento de la síntesis. ¿Hay alguna manera de deshabilitar el "comportamiento" de Vivado?

    
pregunta Cedric

2 respuestas

2

¿Hay atributos que se pueden usar para desactivar bits de optimización lógica? Estas herramientas son REALMENTE buenas para eliminar la lógica no utilizada y para simplificar la lógica que se utiliza, y desea que sean buenas en ese aspecto.

Los atributos se definen en cierta medida para su implementación, para Vivado, consulte el capítulo 2 de UG901 en particular, los atributos "no tocar" y tal vez los atributos "mantener".

    
respondido por el Dan Mills
0

Puede, con un poco de esfuerzo, hacer que la herramienta de síntesis deje sus constantes solas. Pero creo que es una mala idea:

  1. Usted corre el riesgo de que el número de puertos de E / S exceda el recuento de pin de chip. En algunas herramientas, la síntesis podría seguir funcionando, pero Colocar & La ruta no lo hará.
  2. La lógica no será la misma en comparación con cuando agrega el código real para establecer las señales de entrada y acceder al resultado. Tu análisis de tiempo estará apagado.

Un método que recomendaría es agregar lógica, lo que hace que la herramienta no pueda eliminar sus señales. Idealmente, una interfaz simple que establece todas las señales de entrada y lee las señales de salida. No tiene que usar realmente esa interfaz en la vida real.

Esta publicación muestra un código que escribió (pero nunca intentó en la vida real) hacer esto: ¿Cómo puedo asignar una entrada de std_logic_vector de 256 bits? Incluso debería funcionar cuando está conectado a una interfaz maestra SPI real

    
respondido por el Oldfart

Lea otras preguntas en las etiquetas