Estoy tratando de construir un contador de 8 bits en Verilog. Necesito específicamente crear un módulo que instalé 8 veces. He seguido el diagrama a continuación (y asumí que solo puedo desarrollarlo para hacerlo de 8 en lugar de 4 bits). Parece que lo que he construido es un registro de desplazamiento, puede cambiar unos y ceros, en lugar de 0001 - > 0011 Necesito 0001 - > 0010 (duh!). Me siento como si hubiera malinterpretado el diagrama del circuito, ya que mi lógica parece de otra manera sólida. Cualquier ayuda muy apreciada!
TFlipFlop:
module tflfl(t, clk, clr, q);
input t;
input clk;
input clr;
output reg q;
always@(posedge clk, negedge clr)
begin
if(~clr)
q <= 1'b0;
else
q <= t;
end
endmodule
Implementación modular:
tflfl t1(.t(enable), .clk(clock), .clr(reset), .q(q0));
tflfl t2(.t(q0), .clk(clock), .clr(reset), .q(q1));
tflfl t3(.t(q1 && q0), .clk(clock), .clr(reset), .q(q2));
tflfl t4(.t(q2 && q1 && q0), .clk(clock), .clr(reset), .q(q3));
tflfl t5(.t(q3 && q2 && q1 && q0), .clk(clock), .clr(reset), .q(q4));
tflfl t6(.t(q4 && q3 && q2 && q1 && q0), .clk(clock), .clr(reset), .q(q5));
tflfl t7(.t(q5 && q4 && q3 && q2 && q1 && q0), .clk(clock), .clr(reset), .q(q6));
tflfl t8(.t(q6 && q5 && q4 && q3 && q2 && q1 && q0), .clk(clock), .clr(reset), .q(q7));