カウンター/タイマーIC?

編集:念のために言うと、これは「買い物」に関する質問ではありません。私は非常に速いカウンターを作るための正しいテクニックを探しています。

=====

以下の機能を備えたカウンター/タイマーICを探しています。

  • > 10MHz max count rate
  • ≥ 32 bit depth (preferably >40 bit)
  • preferably, a built-in preset or compare function

これを使用して、一連のイベントをカウントし、そのカウントが指定された値に達すると割り込みをかけます。次のイベントの前(100ns以下)に割り込みが非常に速く発生する必要があるので、マイクロコントローラの代わりにディスクリートロジックを使用します。

現在、私は 74LVC161 のような4ビットカウンターでプロトタイプを作成しています。しかし、最終的にはそれらのうちの少なくとも8つをカスケードしなければならなくなり、それが彼らの伝播遅延限界に近づきます(私は11MHzの最大周波数を計算します)。

この問題に対するより良い解決策はありますか? CPLD/FPGAを使って巨大な同期カウンタを作成しても構いませんが、経験がなく、必要なゲート/ロジックユニットの数がわかりません。最善のアプローチは何ですか?

0
10 MHzの信号に40ビットのカウンタが必要だと思うのはなぜですか。ロールオーバーするのに1日以上かかります。
追加された 著者 BrainSlugs83,
それがアイデアです。私はおそらく数日間実行する必要があるでしょういくつかのアプリケーションがあります。パルスパワーを材料に加えると、結晶構造がゆっくりと変化します。
追加された 著者 Colin Marcus,
「買い物」の質問のように聞こえにくいようにこれを編集することをお勧めします。問題は興味深いものであり、特定の部分の検索としてそれを表現しているため、閉じるべきではありません。
追加された 著者 RoyC,

4 答え

あなたが正しく理解しているなら(パルスを数え、特定の数のパルスでパルスを出す)、あなたは実際には本当に速いマイクロコントローラ(20MHzで十分であるべきです)出力ピンに直接接続してください。

このような場合、マイクロコントローラは、レジスタを設定して無限ループ(またはスリープ)に入るだけでよく、マイクロコントローラでの割り込みやコード実行は必要ありません。

最近のマイクロコントローラでは、16ビットのプリスケーラが追加された32ビットなので、2つ以上のタイマーを必要としないでしょう。これは、2 ^ Nの倍数をカウントする場合に便利です。

2
追加された
私はPICマイクロコントローラを見ましたが、彼らはこの機能を持っていないようでした。何を考えていますか?正確な数値が必要なので、プリスケーラを使用したくありません。
追加された 著者 Colin Marcus,

高速プロセッサ(例えばCortex M3 @ 64MHz)は、〜16nsのクロックサイクルを持ち、100ns以内で割り込みに応答します。他に何もすることがなく、単に「カウンタ値を調べる」ループを実行すると、はるかに高速になります。 (おそらく32ビット以上にするためにはSWカウンタとハードウェアカウンタを組み合わせる必要があります)

For a very fast >40 bit counter you can use an FPGA. As to how much code/gates you need depends on what action you want to perform. My guess is even the smallest one will suffice.

あなたはVerilogのようなHDL言語を学び、そしてツールセットで学習曲線を通過する必要があるでしょう。デザインが選択したFPGAに収まるかどうかは、ツールからもわかります。しかし結局、あなたの「行動」がそれほど複雑でなければ、それはあなたが望むことをすることができる可能性が非常に高いです。

2
追加された

これはFPGAで簡単に行うことができますが、私はあなたがあなたが説明したことのためにそれほど複雑なものが必要だとは思わない。

  • すでに持っている4ビットのICでは、ターミナルカウント(TC)出力があります。それを次のカウンタのカウントイネーブル入力(CEP)に入力すると、カウンタが同期します。非常に広いカウンターを設計することは可能であるべきです。

  • イベント発生後の同期遅延を小さくするには、比較する目標値をイベント発生の1サイクル前に発生する値に設定してから、結果をフリップフロップで1サイクル遅延します。

比較器を単純にするために、私自身の好みは、(p)リセット時に目標値がロードされるダウンカウンタを設計することです。カウンタが0になると終了します。必要に応じて、コンパレータの出力を同期させるためにフリップフロップを追加し、1をテストするようにカウンタを設計するか、プリセットから1を引きます。

  • あなたが持っているICと同じようなことができます。プリセット/ロード値を(最大カウンター値 - 目標期間)として選択すると、最後のTC出力はカウントが終了したときに1サイクルアクティブになります。

Just to digress a bit, a shift register is often considered one of the fastest counters you can make since there are no comparators or adders. However, since you need one latch (or flip-flop) per counter value, this is not what you want for a >= 32 bit counter.

1
追加された

小さなFPGAでもこれを簡単に実行できます。ザイリンクス、ラティスなどの評価ボードを入手して入手できます。 Pick and HDL(VHDLとVerilogが一般的なものです)、そしてあなたは無料でこのプロジェクトのための十分なツールをダウンロードできるはずです。

CPLDの中にはそれを実現できるものもあるかもしれませんが、FPGAを使用すれば、使用可能なリソースをあまり使用しないため、リソースについて心配する必要はおそらくないでしょう。

FPGAとプロセッサを組み合わせることで、どちらか一方がうまくいかない多くの問題を解決できます。

0
追加された