module mod3counter(
input clk,
output [1:0] q
);
wire rst ;
nand a1(rst,q[0],q[1]);
tff t1(clk, rst, q[0]);
tff t2(q[0],rst,q[1]);
endmodule
module tff(
input clk,rst,
output reg q
);
initial q = 0 ;
always @(negedge clk or negedge rst) begin
if(~rst) q <= 0;
else q <= ~q ;
end
endmodule
El banco de pruebas es simplemente dos líneas de código que ejecutan el reloj.