TEL:086-227-0113
info@gopher-tec.jp
TOP page 製品情報 FPGAサンプルコードリポジトリ RoundRobin Arbiter
RoundRobin Arbiter

8つのリクエストをラウンドロビン方式で調停するアービタ(=調停回路)モジュールです。
VHDL版はVHDL2005で、Verilog版はVerilog95で記載されています。
ラウンドロビンには様々なインプリメントがありますが、ここでは固定優先順位方式のアービタを
ベースに、その入力・出力をそれぞれ左右逆方向にシフトさせる方式を採用しています。
シフト量を決めるレジスタをどのように巡回させるかで、通常のラウンドロビン方式から重み付けの
アンバランスなタイプまで、様々なバリエーションのアービタを構成することができます。
ラウンドロビン方式のアービタをまだ回路設計したことのない方、その仕様は理解できる
もののどうやってラウンドロビン方式を構成すれば良いかヒントが欲しい方は、是非本モジュール
でご確認下さい。目からウロコ、かもしれません。

Port I/O  Description 
RST in 非同期リセット入力(Active High)です。
パワーオン時、またはシステムリセット時にアサートして下さい。
CLK
in 下記の全信号の同期クロックです。
REQ[7:0] in 8本のリクエスト入力(Active High)です。
CLKに同期した信号を入力してください。
REQ[7:0]の優先順位は、リセット解除時には7>6>5>…>0の順になっています。
1つ、または複数のREQがアサートされると、その時点で最も優先順位の高いもの
に対して、GNTが1つだけアサートされます。これをGNT[N]とすると、GNT[N]の
アサートと同時に次回の調停用に優先順位が変更され、サービスされたREQ[N]は
次回最低順位に、その隣のREQ[N-1]が最高順位に変わります。
例えば、REQ[3]がサービスされGNT[3]がアサートされたとすると、次回の優先順位は、
2>1>0>7>6>5>4>3と変わります。
GNT[7:0] out 8本のグラント信号(Active High)です。
GNT[7:0]は常にどれか1つだけしかアサートされません。
また一度GNTがアサートされると、それに対応するREQがネゲートされるまで保持
されます。
※特に注記のない限り、信号は全て正論理です。
本ソースコードはVHDL版とVerilog版となっております。
詳細は下記の資料ダウンロードをクリックください。

RoundRobin Arbiter
資料ダウンロード