VybridArmFrogs-ORANGEマルチセンサーユニットArmFrogs-UNITIAサーバーシステムサーバー周辺機器FPGAサンプルコードその他サンプルコードPopuCount_I32_ACM3232ビット入力のポピュレーションカウンタ、およびアキュームレータ(積算カウンタ)です。クロック毎にイネーブル信号と32ビットベクタを入力すると、ベクター中の'1'の数(最小0個、最大32個)を数え、32ビットカウンタで積算します。アキュームレータではポピュレーションカウンタの計数結果を足しこんでいきます。256ビット等の長いベクターに対しても、32ビット単位で時分割に入力することで、積算した値、すなわちベクター全体での'1'の数を簡単に得ることが可能です。非同期リセット入力です。パワーオン時、またはシステムリセット時にアサートして下さい。RSTを除く全ての信号は、このクロックの立ち上がりに同期している想定です。アキュームレータ(積算カウンタ)のクリア信号です。1にするとアキュームレータをゼロクリア(現在までの積算結果をゼロクリア)します。ソース上ではFFで受けた後に使用しています。ポピュレーションカウンタのイネーブル信号です。1にすると、そのタイミングのPOPU_IN[31:0]中の’1’の数を計数し、その結果をアキュームレータに積算します。ソース上ではFFで受けた後に使用しています。すると、CNT_CLRが優先され、そのタイミングのPOPU_IN[31:0]の値によらず、アキュームレータはゼロクリアされます。ポピュレーションカウンタの計数対象ベクターです。ソース上ではFFで受けた後に使用しています。アキュームレータ(積算カウンタ)の出力です。CNT_CLR、CNT_EN、POPU_INの入力FFのため、それら入力からのレイテンシは2です。POPU_IN[31:0]に対するポピュレーションカウント結果で、0~32の値を取ります。CNT_CLR、CNT_EN、POPU_INの入力FFのため、それら入力からのレイテンシは1です。※特に注記のない限り、信号は全て正論理です。本ソースコードはVerilog版のみとなっております。詳細は下記の資料ダウンロードをクリックください。ソースコード自体は当社WEBストアにて販売しております。PopuCount_I32_ACM32資料ダウンロード。