最初のページ 戻る 次へ 最後のページ

回路記述(ジョンソンカウンタ)

/*4bit Johnson Counter*/

module johnsonCounter4(clk,clr,pr,q);

input clk,clr,pr;

output [3:0] q;

reg [3:0] q;

always @(posedge clk or negedge clr or negedge pr) begin

if(!clr) q <= 4'b0000;

else if (!pr) q <= 4'b1111;

else

case (q)

4'b0000 : q <= 4'b0001;

4'b0001 : q <= 4'b0011;

4'b0011 : q <= 4'b0111;

4'b0111 : q <= 4'b1111;

4'b1111 : q <= 4'b1110;

4'b1110 : q <= 4'b1100;

4'b1100 : q <= 4'b1000;

4'b1000 : q <= 4'b0000;

default : q <= 4'b0000;

endcase

end

endmodule

clr,prはclkより優先(非同期)

リングカウンタ本体

clr=1,pr=1,

clk立ち上がりクロックで動作

default は異常シーケンス時の処理