2

別のスタックオーバーフローの質問への回答として、このデジタル ロジック ダイアグラムを投稿しました。Verilog または VHDL でコーディングされ、最終的に FPGA に実装されるロジック システムについて説明します。

代替テキスト http://img145.imageshack.us/img145/5125/bitshifterlogicdiagramkn7.jpg

図の番号付きのボックスは、フィールド内のビットを表します。各フィールドにはKビットがあり、現在のビットとマスクのビットはコンピュータ システムによって提供されます (ラッチ レジスタまたは同等のものを使用)。のビットは、同じコンピューター システムに読み戻されます。

私が投稿した解決策は、マスクフィールドに少なくとも 1 つのビットが設定されていて、現在のビット フィールドに正確に 1 つのビットが設定されている限り機能します。アイデアは、コンピューター システムが何らかのタスク (元の質問でのスケジューリング操作) を実行した後、次のビット フィールドが現在のビット フィールドになるというものです。

そこで、私の質問は次のとおり です。現在のビット フィールドがすべてゼロである (ビットが設定されていない)という特殊なケースを適切に処理するには、このシステムをどのように変更しますか? 現状では、 current のすべてのビットがゼロの場合、 maskのビットが何に設定されていても、出力もゼロになります。

理想的には、currentがすべてゼロの場合、 maskの最下位の設定ビットをnextに設定する必要があります。また、システムは、論理ゲートを指数関数的に追加することなく、任意のビット数 (K) まで拡張可能である必要があります。元の質問の精神は、任意の数のビットに対して簡単に実装できるソリューションを考え出すことでした。

参照:このスタックオーバーフローの質問

4

1 に答える 1

2

私なら、FPGA のユーザーに、入力時にビットの 1 つを 1 に設定する必要があることを伝えます。

ただし、それが好みのソリューションではない場合、すべての Current 入力を最初に大きな NOR ゲートに事前に供給するという考えの何が問題なのですか (そのため、すべての入力が false の場合にのみ出力が true になります)。Current[1] が AND ゲートに入る前に NOR ゲートの出力と OR されることを除いて、すべての Current ラインも AND ゲートに進みます。

そうすれば、すべての Currents が false の場合、Current[1] は AND ゲートに入って true になります。

私はブール代数を理解していますが、生のハードウェアで作業したことがないことに注意してください-正しいタイミングを確保するために、すべての入力信号を AND ゲートにバッファリングする必要があると思いますが、それよりもよく知っていると思います私。

次の図は、SO がそのコード/プリ ブロックを修正する場合に備えて残されています。最新の SO 更新により、それらが詰め込まれたようです (固定幅フォントではなくプロポーショナルのままです)。とにかく、eJames のグラフィカルなダイアグラムの方が優れています。

これが私の図ですが、あなたのものより少しエレガントではありません:-):

               +-------------------+
               |                   |
               |     +----         |
Current[1]-----+------\   \        |
                       |NOR|o--+   |
Current[2-k]---+------/   /    |   |
               |     +----     |   |
               |              +\   /+
               |              | \_/ |
             +---+            |  OR |
              \ /Buffer        \   /
               +                ---
               |                 |
             +---+             +---+
             |2-k|             | 1 |    <- These signals feed 
             +---+             +---+       into your AND gates.

于 2009-01-28T06:10:27.517 に答える