« いろんなソフトでEmacs | メイン | 冷やさなくてもいいプロジェクタ »
2005年05月26日
Verilogとの戯れ(続)
Verilogとの戯れの続き。3ビットのアップカウンタを書いてみる。シミュレーションではちゃんとカウントしてるし、合成された回路をみても、ちゃんと動くはずの回路になっている。まるで教科書に出てきそうな、エッジトリガDFFと組み合わせ論理回路のフォードバックからなる、きれいな順序回路だ。Timingレポートをみても、セットアップもホールドも遅延も、クロック周期(100ns)からみたら問題ない。
でもCPLD(XC9636)に焼くと、こんな順番でカウントする。(ちゃんと8クロック周期なのがなやましい)
000 -> 111 -> 110 -> 001 -> 100 -> 011 -> 010 -> 101 -> (戻る)
ハザードっぽいな。しかしどこだ?
module count3(CK, Q);
input CK;
output [2:0] Q;
reg [2:0] count;
always @(posedge CK) begin
count <= count + 1;
end
assign Q = count;
endmodule
投稿者 akita : 2005年05月26日 14:01
トラックバック
このエントリーのトラックバックURL:
http://akita11.jp/mt/mt-tb.cgi/134