15ビットの入力にセットされたビットの数をカウントする回路
-
13-09-2019 - |
質問
どの4入力LUT(ルックアップテーブル)を用いて15ビットの入力にセットされたビットの数をカウントする面積効率の良い回路を構築します。出力は、明らかに、4ビット(カウント0-15)です。いくつかは、それは9個のLUTを使用して行うことが可能だと主張します。
解決
私はそれが次に、第1のカウンタステージ(4表)、キャリー(3,3テーブル)を有する2段加算器です10でそれを行うことができます。
私は、私は完全に各LUTを使用していなかったので、もっと良い方法があると疑われるが、時にはシンプルなデザインは、余分なコストの価値があります。私は他のアプローチを試してみましたが、まだ10を必要に応じています。
あなたの宿題に頑張ってください。 (:
他のヒント
まあ、私はあなたが始められるでしょう。ルックアップテーブルのあなたの最初の層は次のようになります。
0 0 0 0 = 00
0 0 0 1 = 01
0 0 1 0 = 01
0 0 1 1 = 10
0 1 0 0 = 01
0 1 0 1 = 10
0 1 1 0 = 10
0 1 1 1 = 11
1 0 0 0 = 01
1 0 0 1 = 10
1 0 1 0 = 10
1 0 1 1 = 11
1 1 0 0 = 10
1 1 0 1 = 11
1 1 1 0 = 11
1 1 1 1 = 00
、あなたの15ビット入力渡ってそれらの4スプレッドの出力を取ると、次のようになり二つの新しいルックアップテーブルを介してそれらを渡します:
0 0 0 0 = 000
0 0 0 1 = 001
0 0 1 0 = 010
0 0 1 1 = 011
0 1 0 0 = 001
0 1 0 1 = 010
0 1 1 0 = 011
0 1 1 1 = 100
1 0 0 0 = 010
1 0 0 1 = 011
1 0 1 0 = 100
1 0 1 1 = 101
1 1 0 0 = 011
1 1 0 1 = 100
1 1 1 0 = 101
1 1 1 1 = 110
...というように。もちろん、あなたがすべてゼロと1層目の同じ出力を生成するすべてのものの問題を解決する必要があるとしています。
そして、私は完全に間違っている可能性があります。
ビットの数をカウントする
ここではいくつかのCコード: Cコードの「1」のビット数をカウントします。あなたのハードウェアにこれを変換する必要があります。
所属していません StackOverflow