0

基本的なカウンターの例があります。カウンターは6ビット幅です。

reg[5:0] currcounterval_reg;
always @(posedge clk_g0)
    currcounterval_reg <= currcounterval_reg+ 1'b1; 

私の制約 クロックは Virtex 7 チップで 83 Mhz (912ns 周期) で動作しています。カウンタにはリセットがなく、出力はボード ピンに接続されています。回路を実行すると、添付の (ハードウェア実行) o/p に示すように、信号の切り替えが見られます。添付のスクリーンショットで、カウンターを見ると、7(7) の後に '8' になるはずですが、ビット 2 が他よりも遅くゼロになるため、最初に '12' に切り替わります。2 つのカウンターの o/p を比較する xor ゲートを下流に持っています。この問題に巻き込まれないようにするにはどうすればよいですか?

制約のために私が何をしても、それは消えません。切り替えを削除するためのいくつかの戦略を手伝ってください。

ご不明な点がございましたら、お気軽にお問い合わせください。

ここで私の波形を見つけることができます http://i.imgur.com/btEMiFD.png?1

ありがとう。

4

2 に答える 2

2

XOR 出力を同期させる必要があります。XOR 出力は、カウンタをインクリメントするのと同じ立ち上がりエッジでクロックされる FF の D 入力に接続する必要があります。FF の Q 出力を XOR 出力ではなく FPGA ピンに接続します。

2 つのカウンターの組み合わせロジック遅延とルーティング遅延を一致させようとしないでください。2 つのカウンターから XOR ゲートまでの遅延パスはほぼ確実に異なるため、(Virtex 7 のような) 高速 XOR はグリッチを生成します。適切な同期設計では、次のクロック エッジの前に組み合わせロジック出力が有効であることのみを気にするため、重要ではありません。

于 2013-10-05T12:53:10.313 に答える