以下の内容はhttps://msyksphinz.hatenablog.com/entry/2025/10/10/040000より取得しました。


Pulp Platform の AXI デザイン概要

PUPL の AXI コンポーネントが非常に有益なので、AIに頼んでどういうコンポーネントが含まれているのかサマライズしておく。

github.com

AXIコンポーネント カテゴリ別一覧表

1. 基本定義・インターフェース

ファイル名 主要モジュール名 簡単な説明
axi_pkg.sv axi_pkg AXIプロトコルに必要な型定義、定数、関数を含むSystemVerilogパッケージ。バーストタイプ、応答タイプ、アドレス計算関数などを定義
axi_intf.sv AXI_BUS, AXI_LITE AXI4およびAXI4-LiteインターフェースのSystemVerilogインターフェース定義
axi_join.sv axi_join_intf 2つのAXIインターフェースを結合するコネクタ
axi_lite_join.sv axi_lite_join_intf 2つのAXI-Liteインターフェースを結合

2. プロトコル変換

ファイル名 主要モジュール名 簡単な説明
axi_to_axi_lite.sv axi_to_axi_lite AXI4+ATOPからAXI4-Liteへのコンバータ。アトミック操作とバーストをサポート
axi_lite_to_axi.sv axi_lite_to_axi AXI4-LiteからAXI4へのアダプタ
axi_lite_to_apb.sv axi_lite_to_apb AXI4-LiteからAPB4へのブリッジ

3. データ幅変換

ファイル名 主要モジュール名 簡単な説明
axi_dw_converter.sv axi_dw_converter AXIバスのデータ幅を変換。アップサイザーまたはダウンサイザーをインスタンス化
axi_dw_downsizer.sv axi_dw_downsizer データ幅ダウンサイズ変換モジュール。広いマスタを狭いスレーブに接続
axi_dw_upsizer.sv axi_dw_upsizer データ幅アップサイズ変換モジュール。狭いマスタを広いスレーブに接続
axi_lite_dw_converter.sv axi_lite_dw_converter AXI4-Liteデータ幅変換モジュール

4. ID管理

ファイル名 主要モジュール名 簡単な説明
axi_id_prepend.sv axi_id_prepend AXI IDのMSBをプレペンド/ストリップするモジュール
axi_id_remap.sv axi_id_remap AXI IDをリマップ。広いID空間を狭いID空間にマッピング
axi_id_serialize.sv axi_id_serialize トランザクションをシリアライズしてAXI IDを削減
axi_serializer.sv axi_serializer 全てのAXIトランザクションを単一ID(ゼロ)にシリアライズ

5. バースト処理

ファイル名 主要モジュール名 簡単な説明
axi_burst_splitter.sv axi_burst_splitter AXI4バーストをシングルビートトランザクションに分割。ラッピングバーストとATOPsはサポートせず
axi_burst_splitter_gran.sv axi_burst_splitter_gran AXI4バーストをより細かい粒度で分割する内部モジュール
axi_burst_unwrap.sv axi_burst_unwrap ラッピングAXI4バーストをインクリメンティングバーストに分割

6. クロスバー・マルチプレクサ

ファイル名 主要モジュール名 簡単な説明
axi_xbar.sv axi_xbar AXI4+ATOP完全結合クロスバー。任意の数のスレーブおよびマスタポートをサポート
axi_xbar_unmuxed.sv axi_xbar_unmuxed AXI4+ATOPクロスバーの非多重化版。マルチプレクサなしの内部実装
axi_interleaved_xbar.sv axi_interleaved_xbar AXIクロスバーのインターリーブバージョン(実験的)
axi_lite_xbar.sv axi_lite_xbar AXI4-Lite完全結合クロスバー
axi_xp.sv axi_xp AXIクロスポイント(XP)。同型スレーブおよびマスタポートを持つクロスバー
axi_mux.sv axi_mux AXI4マルチプレクサ。複数のスレーブポートを1つのマスタポートに多重化
axi_lite_mux.sv axi_lite_mux 複数のAXI4-Liteスレーブポートを1つのマスタポートに多重化

7. デマルチプレクサ

ファイル名 主要モジュール名 簡単な説明
axi_demux.sv axi_demux 1つのAXI4+ATOPスレーブポートを複数のマスタポートにデマルチプレクス
axi_demux_simple.sv axi_demux_simple axi_demuxの内部モジュールで、デマルチプレクスロジックのコアを実装
axi_lite_demux.sv axi_lite_demux 1つのAXI4-Liteスレーブポートを複数のマスタポートにデマルチプレクス

8. メモリインターフェース

ファイル名 主要モジュール名 簡単な説明
axi_to_mem.sv axi_to_mem AXI4+ATOPスレーブモジュール。AXIバーストをメモリストリームに変換
axi_to_detailed_mem.sv axi_to_detailed_mem AXI4+ATOPスレーブモジュール。AXIバーストを詳細なメモリストリームに変換
axi_to_mem_banked.sv axi_to_mem_banked AXI4+ATOPからバンクドSRAMメモリスレーブへの変換。並列読み書きをサポート
axi_to_mem_interleaved.sv axi_to_mem_interleaved AXI4+ATOPからSRAMメモリへの変換。読み書きの並列処理とリードバイパス機能を提供
axi_to_mem_split.sv axi_to_mem_split AXI4+ATOPからメモリプロトコルへの変換。リードとライトチャネルを完全に分離
axi_from_mem.sv axi_from_mem メモリリクエストをAXI4プロトコルに変換するプロトコルアダプタ
axi_lite_from_mem.sv axi_lite_from_mem メモリリクエストをAXI4-Liteプロトコルに変換
axi_sim_mem.sv axi_sim_mem AXIスレーブポートを持つシミュレーション専用の無限メモリ
axi_zero_mem.sv axi_zero_mem AXI4+ATOPスレーブモジュール。ゼロデータのみを返し、書き込みは無視

9. タイミング調整・バッファリング

ファイル名 主要モジュール名 簡単な説明
axi_cut.sv axi_cut AXI4カットモジュール。入出力間の全組み合わせパスを遮断してタイミングを緩和
axi_multicut.sv axi_multicut 複数のAXI4カットをインスタンス化。長いAXIバスのタイミングプレッシャーを緩和
axi_fifo.sv axi_fifo AXI4 FIFOモジュール。各チャネルにFIFOをインスタンス化してバッファリング
axi_fifo_delay_dyn.sv axi_fifo_delay_dyn AXIバスを動的に遅延およびバッファリングするモジュール
axi_delayer.sv axi_delayer AXIチャネルをランダムに遅延させる合成可能なモジュール

10. クロックドメインクロッシング (CDC)

ファイル名 主要モジュール名 簡単な説明
axi_cdc.sv axi_cdc AXIインターフェースのクロックドメインクロッシング(CDC)モジュール。5つのチャネルそれぞれにCDC FIFOをインスタンス化
axi_cdc_dst.sv axi_cdc_dst AXI CDCのデスティネーションクロックドメイン側モジュール
axi_cdc_src.sv axi_cdc_src AXI CDCのソースクロックドメイン側モジュール

11. トラフィック制御・フィルタリング

ファイル名 主要モジュール名 簡単な説明
axi_throttle.sv axi_throttle AXI4+ATOPバスをスロットル。未処理トランザクション数を制限
axi_atop_filter.sv axi_atop_filter アトミック操作(ATOPs)をフィルタリングし、ATOPをサポートしないスレーブに対してSLVERRで応答
axi_inval_filter.sv axi_inval_filter AXI4 AWチャネルを監視し、シングルキャッシュラインの無効化リクエストを発行

12. チャネル分離・結合

ファイル名 主要モジュール名 簡単な説明
axi_rw_join.sv axi_rw_join 1つのリードスレーブと1つのライトスレーブを1つのリード/ライトマスタに結合
axi_rw_split.sv axi_rw_split 1つのリード/ライトスレーブを1つのリードマスタと1つのライトマスタに分割

13. 検証・テスト

ファイル名 主要モジュール名 簡単な説明
axi_bus_compare.sv axi_bus_compare 2つのAXIバスチャネルを比較する合成可能なテストモジュール。FPGAベースの検証で使用
axi_chan_compare.sv axi_chan_compare 2つのAXIチャネルを比較する非合成可能なモジュール。シミュレーション専用
axi_slave_compare.sv axi_slave_compare 2つのAXIスレーブを比較する合成可能なテストモジュール
axi_test.sv 複数のテストモジュール AXI検証用の各種テストモジュール集(ドライバ、モニタ、ランダムマスタなど)
axi_dumper.sv axi_dumper AXIトランザクションをログファイルに書き込むシミュレーション専用モジュール

14. その他のユーティリティ

ファイル名 主要モジュール名 簡単な説明
axi_modify_address.sv axi_modify_address AXI4バスのアドレスを変更するモジュール
axi_err_slv.sv axi_err_slv AXIエラー応答スレーブ。常にDECERRまたはSLVERRで応答
axi_lfsr.sv axi_lfsr AXI4 LFSRスレーブデバイス。擬似乱数応答を生成
axi_lite_lfsr.sv axi_lite_lfsr AXI4-Lite LFSRスレーブデバイス。擬似乱数応答を生成
axi_lite_mailbox.sv axi_lite_mailbox 2つのAXI4-Liteスレーブポートと割り込みを持つメールボックス
axi_lite_regs.sv axi_lite_regs 読み取り専用および保護機能を備えたAXI4-Liteレジスタ



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2025/10/10/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14