• 検索結果がありません。

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

N/A
N/A
Protected

Academic year: 2021

シェア "FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法"

Copied!
10
0
0

読み込み中.... (全文を見る)

全文

(1)

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

ver. 8.1 2009 年 3 月

1. はじめに

Nios® II 開発ボードに実装されているメモリ用のコンポーネントは、SOPC Builder の中にあらかじめ用意されています。 しかし、実際に基板を作成した場合には、Nios II 開発ボードに実装されているメモリと同じ仕様の製品でない限り、SOPC Builder であらかじめ用意されたメモリ用のコンポーネントを使用することはできません。

この場合、新たに使うメモリ用のコンポーネントを作成する必要があります。

この資料では、Nios II システムをはじめとする アバロン・MM(メモリ・マップド)・インタフェース (SOPC Builder によって生 成されるアルテラオリジナルのバス) のシステムへ FPGA 外部の汎用メモリを接続する方法の一例を示します。

メモリ用のコンポーネントを作成する際に、Component Editor という機能を使用します。

Component Editor の詳細は、アルテラ社の資料 Quartus® II Handbook Volume 4 : SOPC Builder の chapter 6 Component Editor をご覧ください。

資料URL : http://www.altera.com/literature/hb/qts/qts_qii54005.pdf

この資料は、Quartus II 8.1、Nios II 8.1 に対応しています。

2. 概要

SOPC Builder に登録されていない新たなコンポーネントを作成する場合、Component Editor という ウィザードを使用します。 このComponent Editor を用いることで下記のコンポーネント化が行えます。 a) 新たに追加したいハードウェアのファイル(VHDL、Verilog-HDL)のコンポーネント化 b) 新たに追加したいハードウェアとの接続部分のみのコンポーネント化 この資料では新たにシステムへ追加したいハードウェアを FPGA の外部メモリと想定していますので、メモリとの接続部分 のハードウェアのみのコンポーネント化を行います。 アバロン・インターコネクト・ファブリックは、リード用とライト用でデータバスが独立していますが、FPGA の外部メモリは、通 常、リード用とライト用でデータバスが共通です。 したがって、アバロン・MM・インタフェースと FPGA の外部メモリのバスを接続するためには、トライステートの機能を設け、 双方向ポートを用意する必要があります。

SOPC Builder 内のコンポーネントとして提供されている Avalon® Tri-State Bridge (アバロン・トライステート・ブリッジ)を使 用することでトライステートの機能を設けます。 この資料で紹介する例では、外部に接続するメモリを SRAM とし、想定しているポートを以下に示します。 表1 のポート名は、アバロン・インターコネクト・ファブリックとメモリの接続部分のポートに定義した名前です。 表1 ポート仕様 ポート名 役割 ビット幅 メモリから見た方向 ext_address アドレス 18 入力 ext_data データ 32 双方向 sram_cs_n チップ・セレクト 1 入力 sram_we_n ライト・イネーブル 1 入力 sram_oe_n アウトプット・イネーブル 1 入力 sram_be_n バイト・イネーブル 4 入力

(2)

3. 操作方法

3-1. コンポーネントの作成(Component Editor の設定)

1. SOPC Builder を開きます。(Quartus II の Tools メニュー > SOPC Builder または ボタンをクリック) 2. SOPC システムの名前をタイプし、生成させる言語を選択します。

3. File メニューから New Component 、もしくは New ボタンをクリックすると Component Editor ウィンドウが表示されま す。

(3)

5. 表1 で示したポートを順番に設定していきます。

まず、アドレス・ポート(ext_address) の設定をします。Name 欄にポート名、 “ext_address” をタイプします。

Interface 欄はプルダウンメニューより “new_Avalon_Memory_Mapped_Tristate_Slave…” を選択します。Interface 欄 に avalon_tristate_slave が表示されます。

Signal Type は、プルダウンメニューより “address” を選択します。 Width 欄には、18 を入力します。 Direction は input を選択します。 Signals タブで用意されている入力項目の説明を、表 2 よりご確認ください。 表2 入力欄の説明 入力欄 説明 Name ポート名を入力 Interface このポートと接続されるインタフェースの規格を選択(アバロン・MM・インタフェースの マスタ、スレーブ、アバロン・トライステート・ブリッジ、もしくはグローバル信号など) Signal Type Interface で選択した規格に定義されている中のどのポートと接続するのかを選択

Width このポートの幅を定義

Direction 追加するメモリやハードウェア側から見たポートの向きを定義

6. 残りのポートも 5 と同じ手順で追加します。

データ・ポート(ext_data) の Direction の設定は “bidir” になりますのでご注意ください。 表1(1 ページ)通りにポートを追加すると、以下のようになります。

(4)

7. Interfaces タブを選択し、Name 欄は、アバロン・トライステート・スレーブの名前を定義します。

Type 欄は “Avalon _Memory_Mapped_Tristate _Slave” を選択します。 Associate Clock 欄はインタフェースに入力す るクロックを選択します。

8. Timing で各メモリが要求する Setup、Read Wait、Write Wait、Hold の時間を調節します。 Unit で設定するタイミングの単位として “Cycles” 、“ns” のどちらかを選択します。

Units を “ns” として “1 ns” 等細かい単位でタイミングの入力することが可能ですが、実際にシフトできるタイミングの 最小単位は、入力された周波数に依存した時間のサイクル数になります。50 MHz のクロックを入力している場合“1 ns” と設定していても、実際のシフトは “20 ns” となります。

Show deprecated parameters にチェックを入れ、Deprecated の設定を表示させます。Deprecated の Memory device にチ ェックを入れます。

(5)

9. Component Wizard タブを選択し、Class Name 、Display Name にコンポーネント名、Component Group にグループ名を 入力します。

ここで登録したグループ名、コンポーネント名で SOPC Builder 上の “System Contents” タブに追加されます。

10. Component Wizard の Finish ボタンをクリックすると、Save Change のウィンドウが表示されますので、“Yes, Save” をク リックします。

Class Name : System Contents タブの左枠のペリフェラ ル一覧に表示される名前。 Display Name : システムに追加されたとき使用される 名前。HDL ファイルへの記述にはこの名 前が使用されます。 ペリフェラル一覧の中の作成したコンポーネントを 追加するグループを選択します。 User_logic のように任意のグループ名を入力する と新しいグループが作成されます。

(6)

11. SOPC Builder の System Contents タブに 9 項で入力した名前のグループ内に、作成したメモリ・インタフェースのコン ポーネントが登録されます。

3-2. コンポーネントを SOPC Builder システムに追加

(ここでは、Nios II のマスタ・コンポーネントがあらかじめ用意されていることを想定しています。)

1. 新たに作成したメモリ・インタフェースのコンポーネントを SOPC Builder のシステムへ追加します。

2. System Contents タブの Bridges and Adapters グループの Memory Mapped カテゴリより “Avalon-MM Tristate Bridge” を選択し Add… ボタンをクリックします。

(7)

3. Avalon-MM Tristate Bridge ウィンドウで Registered へチェックを入れ、Finish ボタンをクリックします。

4. Avalon Tri-State Bridge のマスタと、追加したメモリ・インタフェースのコンポーネントを接続します。

5. Nios II のコンポーネントのウィザードを開くと、Reset Vector の項目と Exception Vector の項目があり、システムへ追加 したメモリ・インタフェースのコンポーネントが選択できるようになります。

(8)

6. SOPC Builder 上の各コンポーネントのベースアドレスが他のコンポーネントと重なっていれば、重ならないようにアドレ スを配置してください。

7. システムの設定が完了したら、SOPC Builder の Generate ボタンをクリックし、システム生成します。

3-3. Quartus II でハードウェア・デザインを作成

1. SOPC Builder でシステムの生成が終了すると、シンボル(システムのトップ・デザイン・ファイル)にメモリ用に定義したポ ートが生成されているのが確認できます。

(9)

3-4. Nios II IDE の設定

Nios II IDE でアプリケーション・プログラムをビルドする際に、プログラム・メモリとして、システムへ追加したメモリ・インタフェ ースのコンポーネントが選択できるようになります。

※ Nios II IDE の使用方法の詳細は

(10)

参照

関連したドキュメント

る、関与していることに伴う、または関与することとなる重大なリスクがある、と合理的に 判断される者を特定したリストを指します 51 。Entity

攻撃者は安定して攻撃を成功させるためにメモリ空間 の固定領域に配置された ROPgadget コードを用いようとす る.2.4 節で示した ASLR が機能している場合は困難とな

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

Desk Navigator グ ループ 通常業務の設定」で記載されているRidoc Desk Navigator V4への登録 方法に加えて新製品「RICOH Desk

Q-Flash Plus では、システムの電源が切れているとき(S5シャットダウン状態)に BIOS を更新する ことができます。最新の BIOS を USB

本表に例示のない適用用途に建設汚泥処理土を使用する場合は、本表に例示された適用用途の中で類似するものを準用する。

NPO 法人の理事は、法律上は、それぞれ単独で法人を代表する権限を有することが原則とされていますの で、法人が定款において代表権を制限していない場合には、理事全員が組合等登記令第

A:スマートフォンアプリ 「MYGUEST」 を使用して一括登録する場合 ・・・・・・・・・・・ 10ページ