Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo corregir errores de vivado

Cómo corregir errores de vivado

Uso de Vivado Logic Analyzer

En chipscope, generalmente hay dos métodos para configurar las señales que deben capturarse.

1. Agregue el archivo cdc, luego busque y agregue la señal en la lista de redes.

2 Agregue el IP Core de ICON, ILA y VIO.

primer método Método, la modificación del código es pequeña, el nivel de diseño y el nombre del cable de red se conservan correctamente y la interfaz gráfica facilita la búsqueda de las señales que deben capturarse

El segundo método requiere una mayor cantidad de cambios de código y requiere familiaridad con la configuración de IP relevante. La ventaja es que puede controlar

ICON y llamar a VIO.

Del mismo modo, Vivado también tiene dos métodos de configuración.

1. Encuentre señales relevantes en la lista de red sintetizada, haga clic derecho para abrir el menú y luego configure la marca de depuración

2 Agregue ILA, IP Core de VIO

<. p> El primer método es muy similar al primer método de chipscope:

1. Ambos deben integrarse antes de configurarse

2. cable de red El nombre se utiliza para facilitar la búsqueda de señales;

3. No todas las señales que no se pueden capturar se muestran en gris en el chipscope y no hay una opción de depuración de marcas en vivado. p>

En el menú contextual;

El segundo método es más similar a Vivado y es compatible con la IP de ISE, por lo que puede llamar directamente a la IP relevante de chipscope.

Durante la depuración, es solo usar Chipscope, también puede usar la IP ILA de Vivado para el diseño.

Pero el mayor problema es que Vivado no proporciona la IP de ICON para la selección, enterrando aún más el estado de ICON.

Además, el primer catálogo de IP de Vivado proporcionaba ICON, ILA y VIO IP Core de Chipscope para elegir. Actualmente, estas IP han sido canceladas y solo se admite el propio ILA/VIO IP Core de Vivado.

Aquí se proporciona un código de diseño muy simple para la investigación sobre Vivado Logic Analyzer.

`escala de tiempo 1ns / 1ps

módulo Nexy_4 (

entrada I_CLK,

salida [3:0] O_ST_COUNTER,

salida O_TIMECOUNTER_OUTPUT

);

cable CLK_100;

clk_wiz_0 CLK_UNIT

(

. clk_in1 (I_CLK),

.clk_out1 (CLK_100),

.locked ()

reg [7:0] ] startup_counter = 'b0;

siempre @ (posedge CLK_100)begin

if (startup_counter == 8'b11111111)begin

startup_counter lt = 8' b00000011;

fin else comenzar

startup_counter lt; = startup_counter 8'b1;

fin

fin

asignar O_ST_COUNTER = startup_counter[7:4];

cable [47:0] TimeCounter_Result_wire;

reg [47:0] TimeCounter_Result_reg = 'b0;

reg TimeCounter_Output;

siempre @ (posedge CLK_100)begin

TimeCounter_Result_reg lt; = TimeCounter_Result_wire

fin

TimeCounter TimeCounter_Unit (

.CLK ( CLK_100 ), // cable de entrada CLK

.A ( 2'b01 ), // cable de entrada [1: 0] A

. C (TimeCounter_Result_reg), // cable de entrada [47: 0] C

.P (TimeCounter_Result_wire)

// cable de salida [47: 0] P

);

siempre @ ( posedge CLK_100 )begin

TimeCounter_Output lt = TimeCounter_Result_reg[47]; /p>

end

asignar O_TIMECOUNTER_OUTPUT = TimeCounter_Output;

endmodule

Un método para seleccionar señales para capturar en la Netlist sintetizada.

Solo las señales en Redes se pueden configurar para marcar la depuración.

Esto es muy irrazonable en principio. En la interfaz de captura de Chipscope, solo se pueden capturar señales Reg, mientras que Vivado es Net, lo cual es muy irrazonable desde un punto de vista práctico. Los LUT se pueden capturar directamente, lo cual es inapropiado para el diseño en términos de principio y tiempo.

En Configurar depuración, la herramienta analizará automáticamente el dominio del reloj de la señal y agregará el reloj. En casos excepcionales, puede modificar el dominio del reloj haciendo clic derecho en Seleccionar dominio del reloj.

La siguiente página establece la profundidad de almacenamiento. En comparación con ChipScope, no es necesario configurar el ancho de la señal con anticipación, pero Vivado se configura automáticamente de acuerdo con la señal capturada.

Después de la configuración, puede modificar las propiedades de ILA Core en las propiedades. Después de confirmar que todo está correcto, procedemos a la Implementación.

Sin embargo, a partir de los resultados de la implementación, podemos ver que aunque se captura la señal LUT, la IP de ILA ha agregado registros para el aislamiento. Teniendo en cuenta este resultado, el diseño ILA de Vivado sigue siendo excelente.

Pero aun así, no se puede configurar la marca de depuración para la señal Reg en la lista de red, lo cual de hecho es una explicación difícil de entender.

Finalmente, la configuración de Vivado Logic Analyzer se reflejará en el archivo XDC en forma de script Tcl.

Después de completar la implementación, genere el archivo de bits, abra el Administrador de hardware, descargue y configure la FPGA y comience a usar Vivado Logic Analyzer.

1. Después de descargar el archivo de bits, la interfaz se muestra a continuación.

2. Hay un problema aquí. En Vivado 2014.2, la ventana Debug Probes no se abre automáticamente. Puede encontrar la ventana en el menú de Windows.

3. La interfaz después de abrir la ventana Debug Probes es como se muestra a continuación.

4. En Debug Probes, arrastre la señal que debe observarse a la Configuración básica del disparador para configurar la señal del disparador.

5. Después de configurar la señal de disparo, puede comenzar a capturar la señal.

6. Cada conjunto de condiciones de activación se puede configurar con Operador, Radix y Valor para establecer condiciones de activación específicas. También se pueden combinar varias condiciones de activación.

7. Para facilitar la observación, configure los datos en la profundidad de datos de la ventana en 16 datos.

8. Vuelva a capturar los datos después de configurarlos. Puede ver que solo se capturan 16 datos a la vez.

9. Puede configurar el número de ventanas. Aquí, el Número de ventanas se establece en 2, lo que representa dos ventanas. Los datos capturados cada vez son 4.

10. Después de volver a activarlo, puede ver que se activó dos veces y las condiciones de activación son las mismas cada vez, es decir, startup_counter = 8'h03. Como puedes ver en los dos contadores siguientes, hay dos capturas una tras otra.

De hecho, de forma similar a chipscope, puedes establecer las condiciones para capturar datos.

1. Configure el modo de captura en BÁSICO.

2. En Configuración básica del disparador, puede ver la interfaz de Configuración básica de captura.

3. Como puede ver en las dos imágenes anteriores, la señal de activación es starup_counter, la condición de activación es 03, la condición de captura es 88 y la posición de activación es 7.

4. A juzgar por el diagrama de resultados de la captura, se capturaron 16 datos de una sola vez y la condición de activación está en la posición del séptimo dato, y se capturará la condición de activación. Además, los datos antes y después de la condición de activación solo se capturarán cuando el bit de datos sea 88.

5. Establezca la posición del disparador en 0 y luego capture nuevamente. Puede ver que el primer dato es la condición del disparador y los datos posteriores solo se capturarán si son 88.

6. Aquí se realiza una comparación preliminar entre las funciones de ChipScope y Vivado Logic Analyzer.

ChipScope Vivado Logic Analyzer Basic

Se admiten múltiples valores de disparo

Se admite combinación de condiciones de disparo

Se admite la selección de posición de disparo

Compatibilidad con disparador de múltiples ventanas

Compatibilidad con disparador repetido

Compatibilidad con captura condicional

El estado del disparador 16 de la máquina de estado no es compatible

No se admite el soporte auxiliar del contador

No se admite la visualización del bit de bandera No se admite

La función de disparo repetido no se trata en el artículo.

Como puede verse en la tabla, la función de ChipScope parece ser relativamente poderosa. Aunque Vivado es más conveniente al configurar señales de captura, no parece tan conveniente como ChipScope al depurar.

Cabe señalar que Vivado no proporciona estas funciones, pero no las proporciona en la función Básica. El uso de Advancedd se describirá en una publicación de blog posterior.