module bcdCounter(
input logic clk,
input logic rst,
output logic Q0,
output logic Q1,
output logic Q2,
output logic Q3,
output [3:0] out
);
assign out = {Q3,Q2,Q1,Q0};
logic clr;
assign clr = ~(Q3 & Q1);
jkFlipFlop flipFlop1(.J(1'b1), .K(1'b1), .rst(rst), .clk(clk), .clr(clr), .Q(Q0));
jkFlipFlop flipFlop2(.J(1'b1), .K(1'b1), .rst(rst), .clk(Q0), .clr(clr), .Q(Q1));
jkFlipFlop flipFlop3(.J(1'b1), .K(1'b1), .rst(rst), .clk(Q1), .clr(clr), .Q(Q2));
jkFlipFlop flipFlop4(.J(1'b1), .K(1'b1), .rst(rst), .clk(Q2), .clr(clr), .Q(Q3));
endmodule