FPGA restricción SDC adecuada para el pulso hsync

1

Tengo un diseño en el que los datos de video ingresan a través del receptor alttera de lvds de altera. Uno de los bits paralelos que sale del otro lado representa H-Sync, que aparecerá durante algunos ciclos de reloj en cada línea de video horizontal. Un bloque siempre en el diseño utiliza h-sync para contarlos, así que algo como siempre @ (posedge hsync) ...

Ahora Quartus me dice que ha decidido que hsync es un reloj que recibo y luego me dice que no está limitado. ¿Qué tipo de restricción pondría aquí? ¿Lo declaro reloj y hago que tenga un ciclo de trabajo muy desequilibrado? El período de Hsync es bastante grande en comparación con el reloj de video, pero la parte positiva del pulso es de unos pocos relojes de video de ancho.

    
pregunta confused

1 respuesta

2

Sincronización y detección de borde de la entrada hsync con algo como esto:

reg hsync_reg = 0;
reg hsync_delay_reg = 0;
wire hsync_posedge = hsync_reg & ~hsync_delay_reg;

always @(posedge clk) begin
    hsync_reg <= hsync;
    hsync_delay_reg <= hsync_reg;
end

Luego cuente los pulsos de hsync_posedge con algo como esto:

reg [7:0] count_reg = 0;

always @(posedge clk) begin
    if (rst) begin
        count_reg <= 0;
    end else if (hsync_posedge) begin
        count_reg <= count_reg + 1;
    end
end

En este caso, todo está cronometrado por reloj y no necesita ninguna restricción de tiempo especial. Esto también se conoce como usar hsync_posedge como habilitación de reloj , ya que es más o menos equivalente a enrutar la señal a la entrada 'habilitar' en un flip flop.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas