TEL:086-227-0113
info@gopher-tec.jp
TOP page 製品情報 FPGAサンプルコードリポジトリ Counter File 32bit x 256
Counter File 32bit x 256

DPRAMを記憶要素に用いて構成したカウンタファイルです。32ビット長のバイナリカウンタを256本収容
しています。RAMのI/O部にはマルチプレクサ・デマルチプレクサが存在するため、フリップフロップで
構成したカウンタ群と違い、複数のカウンタを同時監視・同時更新することはできませんが、使用する
フリップフロップやLUTは比べ物にならないほど少なく済むという利点があります。
使い方はRAMと同様で、更新したいカウンタを256本の中から選択して更新(カウントアップ、または
クリア)、そしてそれとは別に、読み出したいカウンタを256本の中から選択してリードするというもの
です。カウンタの更新と読み出しは別のポートから独立して実行可能なため、更新はハードロジックで、
読み出しはプロセッサ(ソフトウェア)で行うという使い方も可能です。
通信上の受信データを種類別に分類して計数するだけの統計情報カウンタや、ステートマシンの各ステート
における滞在クロック数をステートごとに計数するダイアグ用カウンタなど、機能上、脇役的なカウンタ
で、回路をあまり消費したくない、RAMが余っているといったケースで役に立つでしょう。

Port I/O  Description 
CLOCK in 本モジュールの基本クロック入力です。
全ての入力信号は本信号に同期させて入力して下さい。
CNT_CTL_SEL[7:0]
in RAMのアドレス線のように、更新すべきカウンタを選択するための信号です。
下記CNT_CTL_UP、CNT_CTL_CLRで操作するカウンタを選択して下さい。
CNT_CTL_SEL[7:0]はCNT_RD_SEL[7:0]とは無関係に入力することができます
CNT_CTL_UP in カウントアップのためのストローブ信号です。
本信号をアサートすると、CNT_CTL_SEL[7:0]で選択されたカウンタが+1されます。
同一カウンタに対して連続してカウントアップを行うことも可能です。
(一部のFPGA 用DPRAMで見られるRWアドレスコンクリクト問題にも対応しています)
CNT_CTL_CLR in カウントクリアのためのストローブ信号です。
本信号をアサートすると、CNT_CTL_SEL[7:0]で選択されたカウンタがゼロクリア
されます。
CNT_CTL_CLR とCNT_CTL_UPを同時にアサートすると、CNT_CTL_CLR が有効
となり、選択されたカウンタがゼロクリアされます(CNT_CTL_UP は無視されます)。
CNT_RD_SEL[7:0] in RAMのアドレス線のように、読み出すべきカウンタを選択するための信号です。
CNT_RD_SEL[7:0]はCNT_CTL_SEL[7:0]とは無関係に入力することができます。
CNT_RD_DOUT[31:0] our カウンタ値を出力するデータポートです。
CNT_RD_SEL[7:0]で読み出すべきカウンタを選択すると、次のクロックでカウント値が
出力されます。
SEM_OUT[7:0] out セマフォをレジスタとしてリードアウトするためのデータ出力です。
ビット7が1の時、使用中(=ロック中)であることを示します。
同ビットが0の時は、解放中(=アンロック中)であることを示します。
ビット6~0はプロセス識別用のタグ情報です。
※特に注記のない限り、信号は全て正論理です。
本ソースコードはVHDL版とVerilog版となっております。
詳細は下記の資料ダウンロードをクリックください。

Counter File 32bit x 256
資料ダウンロード