TEL:086-227-0113
info@gopher-tec.jp
TOP page 製品情報 FPGAソース PopuCount_I32_ACM32
PopuCount_I32_ACM32

32ビット入力のポピュレーションカウンタ、およびアキュームレータ(積算カウンタ)です。
クロック毎にイネーブル信号と32ビットベクタを入力すると、ベクター中の'1'の数(最小0個、最大32個)
を数え、32ビットカウンタで積算します。
アキュームレータではポピュレーションカウンタの計数結果を足しこんでいきます。256ビット等の長い
ベクターに対しても、32ビット単位で時分割に入力することで、積算した値、すなわちベクター全体での
'1'の数を簡単に得ることが可能です。

Name I/O  Description 
RST in 非同期リセット入力です。
パワーオン時、またはシステムリセット時にアサートして下さい。
CLK
in 同期クロックです。
RSTを除く全ての信号は、このクロックの立ち上がりに同期している想定です。
CNT_CLR in アキュームレータ(積算カウンタ)のクリア信号です。
1にするとアキュームレータをゼロクリア(現在までの積算結果をゼロクリア)します。
ソース上ではFFで受けた後に使用しています。
CNT_EN in ポピュレーションカウンタのイネーブル信号です。
1にすると、そのタイミングのPOPU_IN[31:0]中の’1’の数を計数し、
その結果をアキュームレータに積算します。
ソース上ではFFで受けた後に使用しています。
CNT_EN とCNT_CLRを同時に1 にすると、CNT_CLRが優先され、
そのタイミングのPOPU_IN[31:0]の値によらず、アキュームレータはゼロクリアされます。
POPU_IN[31:0] in ポピュレーションカウンタの計数対象ベクターです。
ソース上ではFFで受けた後に使用しています。
ACM_OUT[31:0] out アキュームレータ(積算カウンタ)の出力です。
CNT_CLR、CNT_EN、POPU_INの入力FFのため、それら入力からのレイテンシは2です。
(内部信号として)
POPU_OUT[5:0]
- POPU_IN[31:0]に対するポピュレーションカウント結果で、0~32の値を取ります。
CNT_CLR、CNT_EN、POPU_INの入力FFのため、それら入力からのレイテンシは1です。
※特に注記のない限り、信号は全て正論理です。
本ソースコードはVerilog版のみとなっております。
詳細は下記の資料ダウンロードをクリックください。
ソースコード自体は当社WEBストアにて販売しております。

PopuCount_I32_ACM32
資料ダウンロード