No estoy seguro si este código de Verilog D-Flip-Flop asíncrono tiene sentido

1

Este es mi código para un D-flip-flop async-reset-set. Estoy usando quartus y el módulo se compila, pero no hay manera de verificar si mi lógica es válida. Podría usar algunas opiniones externas.

El restablecimiento es asíncrono (1 = restablecer) y el conjunto se representa mediante habilitación.

Aquí está mi código:

module DFF_async(in, enable, clock, reset, out);
    input in, enable, clock, reset;
    output out;
    reg out;

    always @ (posedge clock or posedge reset)
        if(reset) begin
            out <= 1'b0;
        end else if (enable) begin
            out <= in;
        end 
endmodule
    
pregunta MMP

2 respuestas

1

Sí, es válido. No hay problema en utilizar otras señales como condiciones dentro de un proceso combinacional o secuencial.

Sin embargo, sólo un comentario. Usted dice que es asíncrono debido a la señal de reinicio, ¿verdad? Sabes que la habilitación solo se verificará en un flanco ascendente del reloj, ¿verdad?

Además, estoy de acuerdo con Plutonium Smuggler. Si desea verificar su diseño, probablemente debería escribir un banco de pruebas y observar su comportamiento en un simulador.

    
respondido por el gstorto
0

Su código funciona correctamente. Será mejor si utiliza etiquetas autoexplicativas. Y usa el código mínimo posible.

  

módulo DFF_async (D, reloj, reinicio, Q);       entrada D, reloj, reinicio;       salida Q;       reg Q;

always @ (posedge clock, reset)
    if(reset) 
        Q <= 1'b0;        else 
        Q <= D; endmodule
    
respondido por el tollin jose

Lea otras preguntas en las etiquetas