« いろんなソフトで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

コメント

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)