デモ AXI メモリーのデザイン例

おすすめの用途:

  • デバイス: 不明

  • Quartus®: v13.0

author-image

投稿者:

このデザイン例では、Qsys システム向けのシンプルな Verilog カスタム・メモリー・コンポーネントの、AMBA* AXI*-3 サブ・インターフェイスを示します。この例を独自のカスタム AXI サブ・インターフェイスのベースとして使えます。また、コンポーネントには、オプションの Avalon® ストリーミング (Avalon-ST) インターフェイス、および Avalon® Memory-Mapped (Avalon-MM) インターフェイスが含まれており、複数のインターフェイス規格を 1 つのコンポーネントで使用する方法を示します。

Quartus® II ハンドブック では、この例を使用して、知的財産 (IP) コンポーネントを、コンポーネント・エディターおよびカスタム・ハードウェア Tcl コマンドとパッケージ化するプロセスを示しています。この例にある HDL ファイルを使用すると、Qsys コンポーネントの作成 (PDF)章に説明されているように、Component Editor を使用して独自のシンプルなハードウェア Tcl (_hw.tcl) ファイルを作成する方法を見るのに役立ちます。また、付属の _hw.tcl ファイルを参照して、ハードウェア Tcl コマンドの高度な使用を確認できます。これに含まれるのは、Qsys のパラメーター化 UI および既存のインターフェイスをオプションとしてカスタマイズするための、派生パラメーター、検証コールバック、およびエラボレーション・コールバックです。ハードウェア Tcl コマンドの詳細については、コンポーネント・インターフェイス Tcl リファレンス (PDF) 章を参照してください。

Qsys を使用したカスタム・コンポーネントを含むシステム作成に関する詳細は、Quartus® II ハンドブックの Qsys を使用したシステム作成 (PDF) 章を参照してください。

このデザイン例を使用

ファイル demo_axi3_memory.zip をダウンロードし、コンテンツを解凍します。このデザイン例では、Altera® コンプリート・デザイン・スイート (ACDS) バージョン 13.0 以降が必要です。

ZIP ファイルには、/ip サブディレクトリー内に、下記の IP コンポーネント・ファイルが含まれています。

  • デザインファイル demo_axi_memory.sv および single_clock_ram.sv

  • コンポーネントを Qsys 向けにパッケージ化する、カスタム・ハードウェア Tcl ファイル demo_axi_memory_hw.tcl
  • シミュレーション出力でメッセージ作成に使用する SystemVerilog パッケージファイル /verification_lib/verbosity_pkg.sv (これは、Quartus® II ソフトウェア・インストール・ディレクトリーでも次の名称で検索できます。/ip/altera/sopc_builder_ip/verification/lib/verbosity_pkg.sv)

このコンポーネントを独自の Qsys システムで使用するには、/ip サブディレクトリーを、解凍した ZIP ファイルから Quartus® II プロジェクト・ディレクトリーにコピーします。このプロジェクトで Qsys システムを作成または開く際、Qsys は /ip サブディレクトリーにある IP コンポーネントを検出し、そのコンポーネントを Memories and Memory Controllers/On-Chip カテゴリ下にある、LibraryProject セクションにあるリストに追加します。

また、ZIP ファイルには、/ip/simulation サブディレクトリー内に、スタンドアロン・コンポーネントをシミュレートする、以下のファイルも含まれています。

  • テストベンチ・ファイル tb_mem.sv
  • Mentor Graphics* ModelSim* でシミュレーションを実行するスクリプト run_sim.tcl と、コンポーネントの動作を示す波形をディスプレイする mem.do ファイル

ModelSim でシミュレーションを実行するには、作業ディレクトリーを、解凍した ZIP ファイルにある /ip/simulation サブディレクトリーに設定します。ソースコード run_sim.tcl を入力します。

さらに、ZIP ファイルには、以下の Quartus® II ソフトウェア・ファイルも含まれています。

  • Qsys システムにおけるコンポーネントのインスタンス化を示す、シンプルなテスト Qsys システム test.qsys
  • オプションでテスト Qsys システムを生成およびコンパイルできる、ダミーの Quartus® II ソフトウェア・プロジェクト・ファイル test.qpf、test.qsf、test.sdc

テスト Qsys システムの一部としてインスタンス化されたコンポーネントを表示するには、Quartus® II ソフトウエアにある test.qpf プロジェクト・ファイルを開き、Qsys にある test.qsys ファイルを開きます。System Contents タブの Name または Description 欄にあるコンポーネントをダブルクリック (またはコンポーネントを右クリックして Edit を選択) して、パラメーター・エディターを表示します。

このデザインの使用には、インテル® デザイン例ライセンス契約の条件が適用されます。

デザインの詳細

Qsys コンポーネント例には、以下のインターフェイスが含まれています。

AXI-3 サブ・インターフェイス

AXI サブ・インターフェイスは、オンチップ・メモリー・ブロックにメモリーがマップされたインターフェイスです。このインターフェイスは、メモリーブロックの書き込みおよび読み取りができる、AXI または Avalon-MM メイン・インターフェイスが制御することを意図したものです。パラメーターは、AXI ID 信号の幅、サブアドレス幅、およびデータ幅を指定します。

Avalon-STインターフェイス

このコンポーネントを Qsys でインスタンス化する際、オプションの Avalon-ST ソース・インターフェイスの有効またはディスエーブルを選択できます。このインターフェイスは、テレフォニー・アプリケーションから着想を得たものです。これは、トーン (DTMF、通話中、発信音、呼び出し音) がすべてバイトの繰り返しストリームとして保存され、必要に応じて特定のポートに切り替えられるものです。Avalon-ST ポートが提供するこうした 1 つのストリームは、開始アドレス、停止アドレス、およびこれら 2 つのアドレスを含めその間の RAM に保存されたデータにより定義されるものです。ワードは開始アドレスから停止アドレスまでの順番で出力されます。各ワードは MSB を最初に出力します。このデモバージョンでは、停止アドレスが開始アドレスより大きくなることを想定しています。

例として、以下のメモリーコンテンツを考慮します。
開始アドレス: 0xbeef_0742
0xdace_32f7
停止アドレス: 0xb0de_13ef
結果としてバイトストリームは、次のようになります。be-ef-07-42-da-ce-32-f7-b0-de-13-ef-be-ef-07

Avalon-MM CSR インターフェイス

Avalon-MM インターフェイスは、上述のストリーミング・ポートを制御するための、シンプルな制御状態レジスター (CSR) です。このインターフェイスは、Avalon-ST インターフェイスがイネーブルドの場合にのみ必要で、Avalon-ST インターフェイスがディスエーブルの時は無効化されます。パラメーターは、Avalon® サブアドレス幅およびデータ幅を指定します。

制御レジスターは、メモリーのアドレス範囲とは別のアドレス範囲にあり、ベースアドレスはシステム・メモリーマップ内で都合のよい任意の場所に割り当てることができます。以下の表は、各制御レジスターの目的の一覧です。

Qsys パラメーター・エディター

以下のスクリーンショットは、Qsys におけるデモ AXI メモリー・コンポーネント向けのパラメーター・エディター UI を示しています。