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

Nios II 簡易シミュレーション

N/A
N/A
Protected

Academic year: 2021

シェア "Nios II 簡易シミュレーション"

Copied!
13
0
0

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

全文

(1)

Nios II 簡易シミュレーション

ver. 8.1 2009 年 3 月

1. はじめに

この資料は、別資料である『Nios® II 簡易チュートリアル』を終えた後、Nios II システムのデザインを ModelSim® で、RTL

シミュレーションを行う場合の操作マニュアルです。

この資料では、ModelSim-Altera を使用していますが、ModelSim PE、ModelSim SE でも同様にシミュレーションが可能で す。

この資料においてのシミュレーション環境は、Quartus® II, Nios II 8.1, ModelSim-Altera 6.3g です。

2. 操作方法

以下に、Nios II のシステムを ModelSim-Altera にてシミュレーションを行う手順を示します。

1. 『Nios II 簡易チュートリアル』を終えた後のハードウェア・デザインを、SOPC Builder で再度、ジェネレートします。 2. 『Nios II 簡易チュートリアル』で作成した Nios II IDE のソフトウェア・プロジェクトを開き、再度、ビルドを実行します。 3. Nios II IDE 上から ModelSim-Altera を起動します。

ここからは、ModelSim-Altera での操作になります。 4. 各コンポーネント(HDL ファイル)のコンパイルとロードを行うためのスクリプトを実行します。 5. Wave ウィンドウを立ち上げるスクリプトを実行します。 6. シミュレーション実行のコマンドを入力し、シミュレーションを実行します。 7. シミュレーション結果を確認します。

2-1. SOPC Builder の設定

① 『Nios II 簡易チュートリアル』では、E:¥simple_work フォルダに simple_tutorial というプロジェクトを用意しました。 この資料でも、同じフォルダ構成を例として進めていきます。

simple_work フォルダ内の simple_tutorial.qpf ファイルをダブルクリックして、Quartus II のプロジェクトを開きます。 ② simple_tutorial のプロジェクトで SOPC Builder を起動します

(2)

③ jtag_uart のコンポーネントを開きます。

jtag_uart_0 のコンポーネントをダブルクリックし、Simulation タブを選択します。

シミュレーションを実行中に、コンソール画面に表示される printf のキャラクタ出力や、ユーザのキャラクタ入力を仮 想 的 に 行 え る イ ン タ ラ ク テ ィ ブ ・ ウ ィ ン ド ウ を 使 用 す る た め に 、 “Create ModelSim alias to open an interactive stimulus/response window” にチェックを入れます。

Finish をクリックします。

④ 使用する ModelSim-Altera のパスを確認します。 SOPC Builder の Tools ⇒ Option を選択します。

⑤ Options ウィンドウの HDL Simulator Options 欄では ModelSim-Altera を選択します。

Application Path 欄には、使用する ModelSim-Altera の実行ファイル(.exe)があるフォルダまでのパスを正しく設定し ます。

(3)

⑥ SOPC Builder で再度ジェネレートを実行します。

System Generation タブを選択し、“Simulation. Create project simulator files.” にチェックを入れます。 File ⇒ Save で SOPC Builder の設定を保存し、Generate をクリックします。

⑦ SOPC Builder のジェネレートが終了すると、“<SOPC Builder で生成したシステム名>_sim” フォルダに拡張子 が、.mpf、.do、.dat のファイルが生成されます。 ここで、生成されたファイルについては、以下の表1 をご覧ください。 表1 _sim フォルダのファイル 拡張子 説明 .mpf ModelSim-Altera のプロジェクトファイル 但し、ModelSim-Altera までのパスを正しく設定しなければ生成されない。 .do ModelSim のマクロ実行スクリプト・ファイル setup_sim.do : 表 2 で紹介されているマクロ実行のためのスクリプト・ファイル

wave_presets.do : ModelSim-Altera の wave ウィンドウへ追加するノードリストを生成する ためのスクリプト・ファイル

.dat

ヘキサデシマル・フォーマットのメモリ初期値ファイル

UART 等の初期値ファイルは、SOPC Builder のジェネレートを実行した時に生成される。 メモリの初期値ファイルは、Nios II IDE でソフトウェアをビルドした時に完成する。

(4)

⑧ 生成されたトップのファイル(sopc_system.vhd)をテキスト・エディタなどで開くと、そのファイルの最も下の方にテストベ ンチの記述があります。

このチュートリアルでは行いませんが、任意の入力波形を与えたい場合、メモリ・モデルのコンポーネントを宣言する 場合、ライブラリ記述をする場合は、編集を行ってください。

SOPC Builder で生成言語を VHDL にした場合、以下のような記述になります。

ここで、<ALTERA_NOTE> の間に任意の記述をしておけば、SOPC Builder で Generate を実行しても、そのままの 記述内容が保存されます。

<例>

-- <ALTERA_NOTE> CODE INSERTED BETWEEN HERE --add your libraries here

--AND HERE WILL BE PRESERVED </ALTERA_NOTE>

また、生成言語を Verilog にした場合でも、テストベンチ内の <ALTERA_NOTE> の間に記述をすることで SOPC Builder で Generate を実行しても、そのまま記述が保存されます。

2-2. Nios II IDE の設定

① 『Nios II 簡易チュートリアル』を行った際に作成した、Nios II IDE のソフトウェア・プロジェクト内の、“hello_nios.c” を 開きます。

遅延を発生させている部分をシミュレーションの対象から省き、PIO のアクセスを中心にシミュレーションがきるように、 “hello_nios.c” 内の usleep() 関数をコメントアウトし保存します。

② 『Nios II 簡易チュートリアル』 を行った際に作成した Nios II IDE のソフトウェア・プロジェクトのシステム・ライブラリ の設定を変更します。

プ ロ ジ ェ ク ト の 中 か ら soft_test を 選 択 後 、 右 ク リ ッ ク ⇒ System Library Properties を選 択 し 、 Properties for soft_test_syslib ウィンドウの左枠から “System Library” を選択し、次ページの画面を表示させます。

プログラムメモリを選択し、“ModelSim only, no hardware support” にチェックを入れます。

“ModelSim only , no hardware support” にチェックを入れることで、シミュレーション上では、キャッシュメモリ、BSS 領 域のなどの初期化動作を省きます。

(5)

③ ソフトウェアをビルドします。

soft_test を選択後、右クリック ⇒ Build Project をクリックします。 ビルドが終了後、メモリの初期値ファイルの(.dat ファイル)が完成します。

2-3. ModelSim-Altera の設定

① ModelSim-Altera を Nios II IDE から立ち上げます。

(6)
(7)

③ Project 欄で、soft_test が選択されていていることを確認します。 また、ModelSim path をブラウズボタンより、設定します。 使用する ModelSim-Altera の実行ファイル(.exe ファイル)が存在しているフォルダまでを指定し、シミュレータ・ツー ルのパスを確認し、Run ボタンをクリックします。 ModelSim-Altera が起動します。 ④ ModelSim-Altera が起動すると、自動的に “setup_sim.do” が実行されるため、表 2(次ページ)のマクロが使用できる ようになります。

(8)

表2 マクロの説明 マクロ名 説明 Nios II プロセッサやペリフェラルのコンパイル、ロードを行う。 s このマクロを実行すると、実行中のシミュレーションは、リセットされる。 Nios II 用ではなく、Nios 用の古いマクロで、ソースをリコンパイルし、再びメモリの初期 値ファイルを生成させるマクロ。 c

但し、Nios II の開発環境では、Nios II IDE でソフトウェアをビルドする際に、メモリ初 期値ファイルを生成するので、Nios II 開発環境においては使用しない。

w wave_presets.do ファイルを実行することで、ModelSim の wave ウィンドウにシステム内 のプロセッサやペリフェラルの主要なノードをセットする。

UART のインタラクティブ・ウィンドウの起動。 UART 名_drive

UART からの TXD が確認できる。 run <time> <unit> シミュレーションを実行する。ex. run 300 us

h マクロの説明を表示(ヘルプ)

2-4. シミュレーションの実行

(9)

② jtag_uart コンポーネントのインタラクティブ・ウィンドウを表示させるため、jtag_uart_0_drive ()と入力し、コマンドを実 行します。

hello_world.c 内の printf で記述されたキャラクタがこのウィンドウで確認できます。

(10)

④ cpu、オンチップ・メモリ、jtag_uart のノードは “w” マクロを実行することで wave ウィンドウへ追加されますが、それ 以外のノードを追加したい場合には、以下の方法で追加可能です。

<例>

PIO コンポーネントの信号を wave ウィンドウへ追加する場合

1. Workspace ウィンドウで sim タブを選択し、test_bench ⇒ dut ⇒ the_pio を選択 2. Objects ウィンドウに pio のコンポーネントのノードが表示されるので、必要なノードを選択 3. wave ウィンドウへマウスで“ドラッグ&ドロップ”することで追加 【 補足 】 wave ウィンドウ上で信号間に境界線を追加する方法 1. 境界線を入れたい信号を選択(境界線が入るのは選択した信号の上になります) 2. マウスで右クリック ⇒ Insert Divider を選択

3. Wave Divider ウィンドウが開くので、Divider Name に 境界線の名前(任意)を入力し OK をクリック ドラッグ&ドロップ

(11)

⑤ シミュレーションを実行します。

“run 300 us” とタイプし、シミュレーションを実行します。

シミュレーションの実行後、wave ウィンドウで波形を確認することができます。 270 us 以降の pio コンポーネントの信号に着目してください。

hello_nios.c のソース内での pio コンポーネントへのデータアクセスが実際の LED の点滅に反映されていることが確認できま す。

インタラクティブ・ウィンドウを確認すると、printf の出力キャラクタも確認できます。 【 wave ウィンドウ 】

(12)
(13)

横浜本社 〒222-8563 横浜市港区新横浜 1-5-5 マクニカ第二ビル TEL 045-476-2155 FAX 045-476-2156 大阪営業所 〒532-0011 大阪市淀川区西中島 6-1-3 アストロ新大阪第二ビル 7 階 TEL 06-6307-7670 FAX 06-6307-7671 名古屋営業所 〒460-0003 名古屋市中区錦 1-6-5 名古屋錦シティビル 7 階 TEL 052-202-1024 FAX 052-202-1025 宇都宮営業所 〒321-0953 宇都宮市東宿郷 4-2-24 センターズビル 7 階 TEL 028-637-4488 FAX 028-637-4489 弊社より資料を入手されましたお客様におかれましては、下記の使用上の注意を一読いただいた上でご使用ください。 1. 本資料は非売品です。許可無く転売することや無断複製することを禁じます。 2. 本資料は予告なく変更することがあります。 3. 本資料の作成には万全を期していますが、万一ご不明な点や誤り、記載漏れなどお気づきの点がありましたら、弊社までご一報いただければ幸いです。 4. 本資料で取り扱っている回路、技術、プログラムに関して運用した結果の影響については、責任を負いかねますのであらかじめご了承ください。 5. 本資料は製品を利用する際の補助的な資料です。製品をご使用になる場合は、英語版の資料もあわせてご利用ください。

参照

関連したドキュメント

などに名を残す数学者であるが、「ガロア理論 (Galois theory)」の教科書を

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

オーディエンスの生徒も勝敗を考えながらディベートを観戦し、ディベートが終わると 挙手で Government が勝ったか

Altera Nios II フォルダを展開し、Existing Nios II software build tools project or folder into workspace を選択します(図 2–9 を参 照)。.

成 26 年度(2014 年度)後半に開始された「妊産婦・新生児保健ワンストップ・サービスプロジェク ト」を継続するが、この事業が終了する平成 29 年(2017 年)

下山にはいり、ABさんの名案でロープでつ ながれた子供たちには笑ってしまいました。つ

「あるシステムを自己準拠的システムと言い表すことができるのは,そのシ