レベルでカウンタ回ったら?
Lo->Hiで1回
Hi->Loで1回
それぞれ回るだけだが何か?

always@(A) begin
counter <= counter + 1;
end

だろ?