Verilog contador rizo FF T

#1
Hola a todos estoy usando el Xilinx para modelar el código en verilog y no he podio hacer que esta cosa funcione, la idea es que ya creé mi tabla de estados presentes, siguientes y sustituí en la ecuación característica del flip flop T. Tengo mi bloque del FLIP FLOP T y tengo un bloque con el estado de transición y tengo un bloque donde uno todos los bloques con cables. Y al final siempre me salen valores desconocidos en la salida (XXXX). ¿Alguna sugerencia? Por cierto, es un contador asíncrono de 4 bits.

Aquí el código


module flipflop_t(T,clk,Q);
input T,clk;
output Q;
reg Q;

always @ (posedge clk)
begin
if (T)
Q<=~Q;
end
endmodule


module transitions (D,C,B,A, TD,TC,TB,TA);
input D,C,B,A;
output TD,TC,TB,TA;

assign TD= B&C&D;
assign TC= C&D;
assign TB= D;
assign TA= C|~D|~A|B;

endmodule



module ripple_stuff (clock, Q_out);

input clock;
output [3:0] Q_out;
wire [3:0] Q_w, Trans_w;





flipflop_t fft3 (.T (Trans_w[3]), .clk(clock), .Q (Q_w[3]));
flipflop_t fft2 (.T (Trans_w[2]), .clk(~Q_w[3]), .Q (Q_w[2]));
flipflop_t fft1 (.T (Trans_w[1]), .clk(~Q_w[2]), .Q (Q_w[1]));
flipflop_t fft0 (.T (Trans_w[0]), .clk(~Q_w[1]), .Q (Q_w[0]));

transitions get_trans(.D (Q_w[3]), .C (Q_w[2]) , .B(Q_w[1]), .A (Q_w[0]),
.TD(Trans_w[3]), .TC(Trans_w[2]), .TB(Trans_w[1]), .TA(Trans_w[0]));

assign Q_out=Q_w;


endmodule
 
#2
Te conviene agregar logica de reset para que tus FF comiencen desde un estado inicial determinado.
 

Temas similares

Arriba