¿Es posible generar un pulso de reinicio interno en verilog con machxo3lf fpga?

0

Tengo una placa sin entrada de reinicio para mi diseño. Pero necesito reiniciar al inicio de la fpga. ¿Existe una solución verilog para generar este pulso?

    
pregunta FabienM

2 respuestas

1

Finalmente encontré la solución gracias a lvd y tom-carpenter . Muchos FPGA pueden inicializar allí los registros a 0 y nada más. Es el caso de machxo3.

Entonces hacer eso me funciona:

reg [3:0] rst_cnt = 0;
wire rst_n = rst_cnt[3];

always @(posedge clk)
if( !rst_n )
    rst_cnt <= rst_cnt + 1;

La cadena de herramientas de síntesis de celosía (incluso con synplify) ignora la declaración inicial si no es una "fuerza" o una inicialización de memoria.

    
respondido por el FabienM
1

La hoja de datos en MachXO dice que

  

Los registros MachXO en PFU y sysI / O se pueden configurar para que sean SET o   REINICIAR. Después de encender y configurar el dispositivo, el dispositivo entra en   modo de usuario con estos registros SET / RESET de acuerdo con el   configuración, permitiendo que el dispositivo ingrese a un estado conocido para   función del sistema predecible.

Por lo tanto, lo más simple que puede hacer es configurar todos los regs que deben inicializarse con la construcción initial verilog o el equivalente comprendido por las herramientas.

Si aún necesita un pulso de restablecimiento 'tradicional', puede hacerlo de la siguiente manera:

reg [3:0] rst_cnt;

wire rst_n = rst_cnt[3];

initial rst_cnt=4'd0;

always @(posedge clk)
if( !rst_n )
    rst_cnt <= rst_cnt + 4'd1;

Este código se basa nuevamente en la capacidad de establecer valores iniciales (encendido) para los flipflops de MachXO.

    
respondido por el lvd

Lea otras preguntas en las etiquetas