Flip Flop estructural D en Verilog

2
module dFlipFlop(
    input clk,
    input d,
    output q
    );
wire w1,w2,q_n;

assign w1 = ~(d & clk);
assign w2 = ~(~d & clk);

assign q = ~(w1 & q_n);
assign q_n = ~(w2 & q);

endmodule

¿este módulo funcionará como un flip flop en mi fpga? ¿Alguna sugerencia? Actualmente no tengo mi FPGA, pero estoy intentando averiguar si este diseño es digno o no.

    
pregunta Cameron Belt

2 respuestas

3

Podría funcionar, pero es difícil decir qué hará el sintetizador con eso. Es una idea mucho mejor usar un bloque siempre cuando se quiere usar un reloj.

    
respondido por el alex.forencich
0

No, no como un flip-flop. Es un pestillo D

.

La diferencia se produce cuando el reloj está alto. Un flip-flop registrará la entrada, d, en el borde del reloj. El d latch permitirá que el valor registrado cambie cuando el reloj esté alto.

Una tabla de verdad de D-Latch se vería así:

Clk  D  |  Q(t+1)
-----------------
 0   x  |   Q(t)
 1   0  |    0
 1   1  |    1

x = no importa (no importa lo que sea).

Un flip-flop d cambiaría solo en el borde (o algún tiempo después de depender de la demora).

¿Diseño digno? - Como sabrás, este no es el más simple y, por lo general, no sería un método recomendado para crear un pestillo d o un flip-flop.

    
respondido por el abliviax

Lea otras preguntas en las etiquetas