6

4 入力 LUT (ルックアップ テーブル) を使用して、15 ビット入力のセット ビット数をカウントする面積効率の良い回路を構築する方法。出力は明らかに 4 ビット (0 ~ 15 をカウント) です。9 つの LUT を使用して実行できると主張する人もいます。

4

3 に答える 3

2

では、始めましょう。ルックアップ テーブルの最初のレイヤーは次のようになります。

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

そのうちの 4 つを 15 ビット入力に分散し、出力を取得して、次のような 2 つの新しいルックアップ テーブルに渡します。

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 が同じ出力を生成するという問題を解決する必要があります。

そして、私は完全に間違っているかもしれません。

于 2009-07-15T01:16:44.763 に答える
1

10 でできます。最初のカウンター ステージ (4 つのテーブル)、次にキャリー付きの 2 ステージの加算器 (3 および 3 テーブル) です。

各 LUT を完全に使用したわけではないので、もっとうまくやる方法があるのではないかと思いますが、単純なデザインは余分なコストをかける価値がある場合があります。私は他のアプローチを試みましたが、それでも10が必要でした。

宿題頑張ってください。(:

于 2009-07-17T18:36:04.357 に答える
-5

ここに、ビット数をカウントするいくつかのCコードがあり ます。 「1」ビット数をカウントするCコード。これをハードウェアに変換する必要があります。

于 2009-07-15T01:32:32.263 に答える