Optimización de Altera: "Atascado en GND debido a un puerto atascado data_in"

4

Estoy compilando el código Verilog con el compilador Quartus II, y parece que casi todo el código se está optimizando. El "informe de compilación" dice que muchos de mis registros se eliminan durante la síntesis porque

  

Atascado en GND debido a un puerto atascado data_in

o

  

Atascado en GND debido a un puerto atascado clock_enable

¿Qué significan esos mensajes oscuros? ¿Qué es data_in y clock_enable ? (Ciertamente no son algunas de mis señales).

    
pregunta Randomblue

3 respuestas

6

Obtiene los mensajes "Atascado en GND" cuando la herramienta de síntesis determina que una señal en particular es constante y nunca cambia. Las señales pueden atascarse en GND (tierra), lo que significa que siempre son bajas (tiene un valor de 1'b0 ) o pueden atascarse en VCC (tensión de alimentación positiva) cuando una señal se afirma constantemente alta (tiene un valor de 1'b1 ).

Debido a que la señal es constante, las herramientas de síntesis pueden realizar ciertas optimizaciones que podrían resultar en una reducción de la lógica hasta el punto en que todo el diseño se optimice. Por ejemplo, supongamos que su módulo recibe la señal del pin A, la invierte y la emite al pin B. Si la herramienta de síntesis determina que una señal del pin A siempre es 1'b1 , entonces puede optimizar su módulo y simplemente conducir 1'b0 al pin B.

Según su descripción, parece que data_in es una entrada para FPGA y clock_enable es una señal que marca el reloj (es decir, habilita o inhabilita el reloj). Si tiene ese clock_enable atascado, todo lo que está impulsado por el reloj que marca la señal se puede optimizar bastante.

Lo más probable es que tenga este problema porque le falta una conexión para una señal, o no especificó las asignaciones de pines. Consulte el manual PinPlanner para obtener más información sobre cómo realizar asignaciones de pines. Puede activarlo directamente desde Quartus y su GUI es bastante sencilla, lo que le brinda buenos menús desplegables para señales y amp; pines, etc. Si eso no ayuda, tendrá que buscar en el registro de síntesis para obtener más detalles sobre los pines atascados y rastrear sus orígenes hasta el momento en que encuentre cables desconectados y / o una lógica defectuosa que haga esas señales atascadas.

    
respondido por el user8459
1

Estas señales son señales de post-síntesis de nivel inferior. Puede leer el primero diciendo "la entrada de datos a un flip-flop siempre es cero. No necesita este flip flop; solo conectaré 0 a lo que son las unidades"

    
respondido por el Brian Carlton
1

Si "casi todos" se está optimizando el diseño, es probable que tenga modelos de caja negra (_bb) para IP del proveedor (por ejemplo, Ethernet, PCIe) especificados para síntesis, en lugar de núcleos cifrados generados. En el caso de PCIe, esto dejará a toda la lógica del usuario desconectada y lista para ser eliminada.

En Quartus, asegúrese de haber agregado archivos .qip a su proyecto en lugar de a los archivos _bb.v. Esto puede variar según el núcleo exacto que esté utilizando.

    
respondido por el shuckc

Lea otras preguntas en las etiquetas