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
¿Funcionará este módulo como un flip flop D en mi fpga? ¿Alguna sugerencia? Actualmente no tengo mi FPGA, pero estoy tratando de averiguar si este diseño vale la pena o no.
Podría funcionar, pero es difícil decir qué hará el sintetizador con eso. Es una idea mucho mejor usar un bloque siempre cuando quieras usar un reloj.
No, no como un flip-flop. Es un pestillo D.
La diferencia ocurre cuando el reloj está alto. Un flip-flop registrará la entrada, d, en el borde del reloj. El pestillo d 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 me importa (no importa lo que sea).
Un flip-flop d cambiaría solo en el borde (o algún tiempo después, dependiendo de la demora).
Diseño digno? -- Como sabrá, este no es el método más simple y, por lo general, no sería un método recomendado para crear un latch o un flip-flop de anuncios.
greg
FarhadA