19
Altera Corporation 1 AN-351-1.1/JP ébíËÉTÉ|Å[Ég Application Note 351 この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用 ください。設計の際には、最新の英語版で内容をご確認ください。 Nios II エンベデッド・プロセッサ・ デザインのシミュレーション はじめに 製品の迅速な市場投入に対する要求の高まりに伴い、エンベデッド・プロセッサ・ デザインを包括的に検証する重要性が増してきました。このため、エンベデッド・ プロセッサを選択するときに考慮すべき重要事項は、プロセッサと一緒に提供さ れる検証ソリューションです。Nios ® II エンベデッド・プロセッサ・デザインは、 以下の項目を含む幅広い検証ソリューションをサポートします。 ボード・レベル検証 アルテラは、Nios II エンベデッド・プロセッサ・シ ステムのハードウェアとソフトウェアの両方を検証するための、汎用性に優 れたプラットフォームを提供する多数の開発ボードを提供しています。デ バッガ内蔵の Nios II 統合開発環境 (IDE) を使用して、開発ボードまたはカ スタム・ボードで動作するデザインを検証することができます。Nios II IDE デバッガの詳細は、 Nios II IDE オンライン・ヘルプに記載されています。プ ロセッサと交信するハードウェア・コンポーネントは、SignalTap ® II エンベ デッド・ロジック・アナライザを使用して、より細かくデバッグすることが できます。 SignalTap II エンベデッド・ロジック・アナライザについ て詳しくは、 AN 323: Using SignalTap II Embedded Logic Analyzers in SOPC Builder Systemsおよび AN 446: Debugging Nios II Systems with the SignalTap II Logic Analyzerを参照し てください。 レジスタ転送レベル (RTL) シミュレーション — RTL シミュレーションは、プ ロセッサとそのペリフェラル・セット間の連携動作をデバッグする強力な手 段です。ターゲット・ボードのデバッグ時には、システム内部深く埋もれた 信号を観測するのが困難な場合がよくあります。 RTL シミュレーションによ り、設計者はデザイン内のすべてのレジスタおよび信号を機能的に精査でき るため、この問題が軽減されます。SOPC Builder および Nios II IDE によっ て自動的に生成されるシミュレーション環境を使用して、 ModelSim ® ツール で、Nios II ベースのシステムを容易にシミュレーションすることができま す。 このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、 RTL シミュレーション環境を生成するプロセスについて 説明します。また、 ModelSim ツール内での Nios II RTL シミュレーションの実行 プロセスについても説明します。 2007 11 ver 1.1

Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Altera CorporationAN-351-1.1/JP

この資料は英語版を翻訳したもので、内容に相違がください。設計の際には、最新の英語版で内容をご

2007年 11月 ver 1.1

生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用

Nios IIエンベデッド・プロセッサ・デザインのシミュレーション

Application Note 351

確認ください。

はじめに 製品の迅速な市場投入に対する要求の高まりに伴い、エンベデッド・プロセッサ・デザインを包括的に検証する重要性が増してきました。このため、エンベデッド・プロセッサを選択するときに考慮すべき重要事項は、プロセッサと一緒に提供される検証ソリューションです。Nios® IIエンベデッド・プロセッサ・デザインは、以下の項目を含む幅広い検証ソリューションをサポートします。

■ ボード・レベル検証 —アルテラは、Nios IIエンベデッド・プロセッサ・システムのハードウェアとソフトウェアの両方を検証するための、汎用性に優れたプラットフォームを提供する多数の開発ボードを提供しています。デバッガ内蔵の Nios II 統合開発環境 (IDE) を使用して、開発ボードまたはカスタム・ボードで動作するデザインを検証することができます。Nios II IDEデバッガの詳細は、Nios II IDEオンライン・ヘルプに記載されています。プロセッサと交信するハードウェア・コンポーネントは、SignalTap® IIエンベデッド・ロジック・アナライザを使用して、より細かくデバッグすることができます。

SignalTap II エンベデッド・ロジック・アナライザについて詳しくは、「AN 323: Using SignalTap II Embedded LogicAnalyzers in SOPC Builder Systems」および「AN 446: DebuggingNios II Systems with the SignalTap II Logic Analyzer」を参照してください。

■ レジスタ転送レベル (RTL)シミュレーション — RTLシミュレーションは、プロセッサとそのペリフェラル・セット間の連携動作をデバッグする強力な手段です。ターゲット・ボードのデバッグ時には、システム内部深く埋もれた信号を観測するのが困難な場合がよくあります。RTLシミュレーションにより、設計者はデザイン内のすべてのレジスタおよび信号を機能的に精査できるため、この問題が軽減されます。SOPC Builderおよび Nios II IDEによって自動的に生成されるシミュレーション環境を使用して、ModelSim®ツールで、Nios II ベースのシステムを容易にシミュレーションすることができます。

このアプリケーション・ノートでは、Nios IIデザイン例、SOPC Builder、およびNios II IDEを使用して、RTLシミュレーション環境を生成するプロセスについて説明します。また、ModelSimツール内での Nios II RTLシミュレーションの実行プロセスについても説明します。

1ébíËÉTÉ|Å[Ég

Page 2: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

ご使用になる前に

本資料では、読者が SOPC Builderでの作業経験があり、ModelSimシミュレータに精通していると仮定しています。また、Nios IIベースのシステムをシミュレーションしたい場合は、以下のソフトウェアがインストールされている必要があります。

■ Quartus® II v7.1 Service Pack 1以降

■ ModelSim-Altera 6.1g以降、あるいはModelSim PE、SE、または EE

■ Nios II Embedded Development Suite 7.1以降

SOPC Builderのシミュレーション環境のセットアップ

デザイン例を開くには、以下の手順を実行します。

1. 使用するHDLに応じて、以下の 1つを行います。

● VHDLがプライマリHDLの場合、<Nios II install directory>/examples/

vhdl/niosII_stratixII_2s60/standardディレクトリを見つけて、このフォルダをNios IIシミュレーション・フローをテストする場所にコピーします。以下、このフォルダをコピーする場所を <your project directory>

と呼びます。

● Verilog HDLを使用する場合は、<Nios II install directory>/examples/

verilog/niosII_stratixII_2s60/standard ディレクトリを見つけて、このフォルダを Nios II シミュレーション・フローをテストする場所にコピーします。以下、このフォルダをコピーする場所を <your project

directory>と呼びます。

2. Quartus IIソフトウェアを実行します。

3. FileメニューのOpen Projectをクリックします。

4. < your project directory >\standardに移動します。

5. NiosII_stratixII_2s60_standard.qpfを選択します。

6. Openをクリックします。

7. Tools メニューで、SOPC Builder をクリックします。SOPC Builder ダイアログ・ボックスが表示されます(図 1)。

2 Altera Corporation2007年 11月

Page 3: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

ご使用になる前に

図 1. SOPC Builderダイアログ・ボックス

メモリ初期化

Nios IIデザインのシミュレーションを実行するには、シミュレーションの前にソフトウェア・コードを含むすべてのメモリを初期化しなければなりません。Nios IIベースのシステムでは、メモリ初期化ファイルはNios II IDEに作成されます。これは、Nios II IDEを使用して、ソフトウェア・プロジェクトと派生するメモリ初期化ファイルの両方を作成して、コンパイルするためです。以降の項では、Nios IIIDEを使用してシミュレーション用のメモリ初期化ファイルを作成する方法について説明します。

シミュレーションには、汎用およびベンダ固有の 2種類のメモリ・モデルを使用できます。このアプリケーション・ノートでは、汎用メモリ・モデルについて説明します。表 1に、異なるタイプのメモリと対応するシミュレーション・モデルを示します。

Altera Corporation 32007年 11月 ébíËÉTÉ|Å[Ég

Page 4: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

各メモリ・タイプのシミュレーションについて詳しくは、表 1に記載された技術資料を参照してください。

JTAG UARTの設定

SOPC Builderを使用して、シミュレーション中にホスト・プロセッサに送信されるデータ・ストリームを生成するように JTAG UART をカスタマイズできます。JTAG UARTが Nios IIプロセッサにデータを送信するには、以下の 2つの方法があります。

■ Simulated input character streamダイアログ・ボックスを使用する。■ Interactive stimulus/responseウィンドウを作成する。

シミュレーションのための JTAG UART のセットアップについて詳しくは、「Quartus IIハンドブック Volume 5」の「JTAG UARTコア」の章を参照してください。

シミュレーションのために JTAG UARTをセットアップするには、SOPC Builderの System Contentsタブで以下の手順を実行します。

1. jtag_uart ペリフェラルをダブル・クリックします。JTAG UART ダイアログ・ボックスが表示されます。

2. Simulationタブを選択します。

3. Create ModelSim alias to open an interactive stimulus/response ウィンドウをオンにします。

4. Finishをクリックします。

表 1. アルテラが提供するシミュレーション・モデル

メモリ・タイプ シミュレーション・モデル 技術資料

オンチップ・メモリ 汎用メモリ・モデル 「Quartus II ハンドブック Volume 4」の「Building MemorySubsystems Using SOPC Builder」の章

オフチップ SRAM ベンダ固有モデル 「Quartus II ハンドブック Volume 4」の「Building MemorySubsystems Using SOPC Builder」の章

フラッシュ 汎用メモリ・モデル 「Quartus II ハンドブック Volume 4」の「Building MemorySubsystems Using SOPC Builder」の章

SDRAM 汎用メモリ・モデル ● 「Quartus IIハンドブック Volume 4」の「Building MemorySubsystems Using SOPC Builder」の章

● 「Quartus IIハンドブック Volume 5」の「SDRAM ControllerCore」の章

4 Altera Corporation2007年 11月

Page 5: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

ご使用になる前に

図 2に、JTAG UARTの設定例を示します。

図 2. JTAG UARTシミュレーション設定

PIO設定

SOPC Builder を使用して、デザインで入力ポートを備えた任意の PIO ペリフェラルの入力を初期化することもできます。例えば、方向が双方向(トライ・ステート)ポート、入力ポートのみ、または入力ポートと出力ポートの両方に設定された PIOを、SOPC Builderでのシミュレーション用に初期化することができます。

詳細は、「Quartus II ハンドブック Volume 5」の「PIO コア」の章を参照してください。

デザイン例で PIOを初期化するには、以下の手順を実行します。

1. button_pioをダブル・クリックします。

2. PIOダイアログ・ボックスで、Simulationタブをクリックします。

3. Drive inputs to フィールドに、入力ポートでドライブする初期値を入力します。図 3を参照してください。

Altera Corporation 52007年 11月 ébíËÉTÉ|Å[Ég

Page 6: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

4. Finishをクリックします。

図 3. PIOシミュレーション設定

SOPC Builderシミュレーション設定

デザインにおいて JTAG-UARTおよびPIOのシミュレーション設定をセットアップした後、シミュレーション・ファイルの生成をイネーブルにする必要があります。ModelSimソフトウェアへのパスをセットアップするには、SOPC Builderで以下の手順を実行します。

1. ToolsメニューのOptionsをクリックします。

2. Category フィールドで、HDL Simulator を選択します。Application Pathボックスで、ModelSim実行ファイルが存在するディレクトリに移動します。例えば、ModelSim-Alteraの場合、このディレクトリは、<ModelSim installationdirectory>\win32aloemです。

3. Finishをクリックします。

6 Altera Corporation2007年 11月

Page 7: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

ご使用になる前に

4. System Generationタブをクリックします。

5. Simulationオプションをイネーブルにします。図 4を参照してください。

6. Generateをクリックします。

図 4. SOPC Builderシミュレーション・ファイルの生成

Altera Corporation 72007年 11月 ébíËÉTÉ|Å[Ég

Page 8: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

SOPC Builderで生成されるシステム・シミュレーション・ファイル

デザインのこの時点で、SOPC Builderはシステムを生成し、表 2に示すとおり、メモリ初期化ファイル以外のシミュレーションに必要なすべてのファイルを作成しています。これらのシミュレーション・ファイルは、<your projectdirectory>\NiosII_stratixII_2s60_standard_simディレクトリにあります。

Nios II IDEを使用したメモリ初期化ファイルの生成

この項では、Nios II IDE を使用してシミュレーションのセットアップを終了し、ソフトウェアのテスト・プロジェクトを作成して、シミュレーションで使用されるメモリの初期化に必要なファイルを生成する方法を説明します。Nios II IDEの動作について詳しくは、Nios II IDEオンライン・チュートリアを参照してください。

Nios II IDEプロジェクトの作成

以下の手順を実行し、Nios II IDEを使用してソフトウェア・プロジェクト例の生成とコンパイルを行います。

1. Nios II IDE ソフトウェアを実行します。SOPC Builder の System GenerationタブのNios II IDEをクリックします。

2. Fileメニューで、Newをポイントして Projectをクリックします。

3. New Project ダイアログ・ボックスで、Altera Nios II を選択し、C/C++Applicationをクリックします。

4. Nextをクリックします。

5. Nameフィールドに、ソフトウェアのプロジェクト名として hello_world_projectを入力し、システムのPTFファイルの場所に移動してSOPC BuilderSystem を指定します。システムの PTF ファイルは、<your projectdirectory>\standard ディレクトリにあります。

表 2. Nios IIシミュレーション用に生成された SOPCファイル

ファイル拡張子 説明

.mpf ModelSimプロジェクト・ファイル。このファイルは、SOPC Builderが ModelSimパスを検出した場合に作成されます。

.do ModelSimマクロ実行スクリプト。setup_sim.doスクリプトは、15ぺージの表 3に記載されるマクロを初期化します。wave_presets.doスクリプトは、波形ウィンドウに表示されるデフォルト信号のリストを生成します。

.dat 16進形式のメモリ初期化ファイル。これらのファイルはシミュレーションにのみ使用されます。.dat ファイルは、UART などのシステムのコンポーネントを初期化するために作成されます。デザインで使用されるメモリをロードするために、Nios II IDEを使用して追加の .datファイルを生成する必要があります。

8 Altera Corporation2007年 11月

Page 9: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II IDE を使用したメモリ初期化ファイルの生成

6. 図 5に示すとおり、Select Project Templateフィールドから Hello Worldを選択します。

図 5. Nios II IDEの New Project Wizard

7. Nextをクリックします。

8. New Project wizard の次ページで、Create a new system library named をオンにします。

9. Finishをクリックします。

シミュレーションのためのシステム・ライブラリの変更

シミュレーション準備の次の作業は、プロジェクトのシステム・ライブラリ・パラメータを変更することです。コードをコンパイルするメモリを指定し、コードのオーバーヘッドを軽減してシミュレーション速度を向上させるために、以下の手順を実行します。

Altera Corporation 92007年 11月 ébíËÉTÉ|Å[Ég

Page 10: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

1. Nios II IDE の Nios II C/C++ Projects パネルにあるシステム・ライブラリhello_world_project_syslib[NiosII_stratixII_2s60_standard] を右クリックし、Propertiesをクリックします。

2. Properties for hello_world_project_syslibダイアログ・ボックスからSystemLibraryを選択します。

3. System Library ページは、デザインで標準出力および標準入力に使用される通信デバイスを指定します。図 6を参照してください。System Libraryページは、実行時に CPUによって使用されるメモリも指定します。

a. Program memory、Read-only data memory、Read/write data memory、Heap memory、および Stack memoryフィールドを sdramに設定します。

b. stdout、stderr、および stdinフィールドを jtag_uartに設定します。

c. ModelSim only, no hardware supportをオンにします。

その他のデフォルト設定は変更しないでください。

4. OKをクリックします。

図 6. System Libraryのプロパティ

10 Altera Corporation2007年 11月

Page 11: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II IDE を使用したメモリ初期化ファイルの生成

システム・ライブラリはこの時点で、プログラム・メモリ(ここでは、SDRAM)にダウンロードしてModelSimツールでシミュレーションできる実行可能イメージを作成するように変更されています。ModelSim only, no hardware supportをオンにすると、シミュレータで現在のプロジェクトが実行中であることがコンパイラに通知されます。コンパイラはスタートアップ・コードのセクションを削除して、シミュレーション速度を向上させます。特に、命令キャッシュとデータ・キャッシュはシミュレーション中は初期化されず、リード /ライト・データ・メモリの BSSセクションはクリアされません。これらの拡張機能により、デザインがModelSimツールでシミュレーションされる速度が向上します。ただし、結果のソフトウェア・イメージはターゲット・ボードでは動作しません。

ソフトウェア・イメージをターゲット・ボードにダウンロードする前に、System Library Contents フィールド内の ModelSim only, nohardware support オプションをディセーブルにして、ソフトウェア・プロジェクトを再コンパイルする必要があります。

Hello World Projectの Cコード

シミュレーションするデザイン例は、<your project directory>\standard\software\hello_world_projectディレクトリ内のhello_word.c ファイルに基づいています。このファイルは単に、ターゲット・ボードの JTAG UARTへのメッセージを出力するだけです。 プロジェクトのソース・コードを表示するには、Nios II IDEC/C++projectsパネルの hello_world_project フォルダを開いて、hello_world.cファイルをダブル・クリックします。例 1に、このファイルのソース・コードを示します。

例 1.#include <stdio.h>int main (){ printf("Hello from Nios II!\n");

return 0;}

開発ボードの PIO LEDに書き込むには、例 2に示すとおり、hello_world.cソース・ファイルを変更し、IOWR_ALTERA_AVALON_PIO_DATAマクロを使用して値を LEDに書き込みます。

例 2.#include <stdio.h>#include "system.h"#include "altera_avalon_pio_regs.h"

int main (){ int i;

printf("Hello from Nios II!\n");

Altera Corporation 112007年 11月 ébíËÉTÉ|Å[Ég

Page 12: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

for(i=0;i<256;i++) { IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,i); }

return 0;}

Adobe PDF ファイルから hello_world.c ファイルに modified

hello_world.cソース・コードをコピー・アンド・ペーストする場合は、クォーテーション・マークを削除して Nios II IDEで再入力しなければならないことがあります。PDFファイルからのクォーテーション・マークにより、Nios II IDEで Buildエラーが発生する場合があります。

例 2 で行った変更は、altera_avalon_pio_regs.h ファイルで定義されるIOWR_ALTERA_AVALON_PIO_DATAマクロを使用して、LEDに値を書き込みます。IOWR_ALTERA_AVALON_PIO_DATAルーチンは、PIOのベース・アドレスと PIOに書き込まれる値の 2つの引数を取ります。この例の場合、PIOのベース・アドレスは、system.hファイルで定義されており、LED_PIO_BASEとなります。

PIO ペリフェラルにアクセスするときは、altera_avalon_pio_regs.h

ヘッダ・ファイルで定義される IOWR_ALTERA_AVALON_PIO_DATAおよび IORD_ALTERA_AVALON_PIO_DATAマクロを使用します。

ソフトウェア・プロジェクトのコンパイル

hello_world.cソース・コードおよびシステム・ライブラリを変更して、ModelSimシミュレータでより高速で動作する実行可能イメージを生成した後、プロジェクトをコンパイルして、シミュレーションのためにシステム内でメモリを初期化するのに使用される .datファイルを生成します。

Nios II IDEでソフトウェア・プロジェクトをコンパイルするには、以下の手順を実行します。

1. Nios II IDEのNios II C/C++ Projectsパネルで、hello_world_projectを選択します。

2. hello_world_projectを右クリックし、Build Projectをクリックします。

コンパイルが完了すると、<your project directory>\standard\NiosII_stratixII_2s60_standard_sim プロジェクトの .dat ファイルが初期化されます。この場合、sdram.dat には、Nios II IDEでコンパイルされた hello_world.cファイルに対する実行可能イメージが含まれます。

12 Altera Corporation2007年 11月

Page 13: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II IDE を使用したModelSim ツールの起動

Nios II IDEを使用したModelSimツールの起動

Nios II IDEを使用して、ModelSimシミュレータを起動して、シミュレーションを実行するようにシミュレータをセットアップできます。シミュレータ起動後、シミュレーション・プロセスでは Nios II IDEは無用です。以後のすべてのシミュレーション・コマンドはModelSimシミュレーション・ツールで実行されます。

以下の手順を実行して、プロジェクトを実行するようにModelSimシミュレータをセットアップします。

1. Nios II IDEの Nios II C/C++ Projectsパネルで、hello_world_project を選択します。

2. Runメニューの Runをクリックします。

3. Runダイアログ・ボックスの ConfigurationsウィンドウのNios II ModelSimアイコンを選択します。

4. Newをクリックします。

5. ModelSim パスが、確実に ModelSim ツールの実行ディレクトリを指すようにしてください。このパスが正しくない場合は、6ページの「SOPC Builderシミュレーション設定」で説明するとおり、SOPC Builder を使用してModelSimパスの位置を指定できます。

6. Runをクリックします。

Runをクリックすると、ModelSimシミュレータが起動して、setup_sim.doスクリプトをコンパイルし、ユーザーがシミュレーションを実行するのを待ちます。

Altera Corporation 132007年 11月 ébíËÉTÉ|Å[Ég

Page 14: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

ModelSimツールを使用したシミュレーションの実行

Nios II IDE から ModelSim ツールを起動した後、setup_sim.do スクリプトが実行され、使用可能なマクロがModelSimコンソール・ウィンドウに表示されます(図 7)。これらのマクロにより、デザイン・ファイルのロードやデザインのデフォルト信号の表示が容易になります。

図 7. Nios II IDEで Runをクリックした後のModelSimシミュレータ

14 Altera Corporation2007年 11月

Page 15: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II IDE を使用したModelSim ツールの起動

使用可能なマクロを表 3で説明します。

以下の手順を実行して、ModelSim シミュレータ内でシミュレーションを実行します。

1. ModelSim コンソール・ウィンドウで s を入力して、デザインをロードする sマクロを実行します。

2. jtag_uart_driveマクロを実行して、hello_world.cソース・コードの printf文の出力を表示するインタラクティブ端末ウィンドウを起動します。

3. wマクロを実行し、システムに自動的に生成されたサンプル信号があるModelSim波形ウィンドウを表示します。これらの信号は機能別になっており、デバッグに役立つ信号が含まれます。表 4に、デフォルト波形に含まれる信号を示します。

表 3. Nios IIシミュレーション・マクロ

マクロ 説明

s Nios IIプロセッサおよびペリフェラルのソース・コードを再コンパイルして、シミュレーション用の ModelSim作業ライブラリにデザインを再ロードします。このマクロはシミュレーション全体をリセットします。

c これはレガシー・コマンドで、Nios II IDEで生成されるデザインに対してはサポートされません。その目的はソース・コードを再コンパイルし、システム・メモリを再初期化することです。Nios II デザインの場合、推奨するメモリ再初期化方法は、Nios IIIDEでデザインを再コンパイルして、Nios II IDEコンパイルの完了後に ModelSimシミュレータでデザインを再開することです。

w wave_presets.doファイルをロードします。このファイルには定義済みの ModelSim波形ウィンドウ情報が含まれています。wave_presets.doファイルは、チップ上に存在するすべてのプロセッサおよびペリフェラルからの共通信号をロードし、ModelSim波形ウィンドウを表示します。

l list_presets.doファイルをロードします。このファイルには定義済みのModelSimリスト・ウィンドウ情報が含まれています。list_presets.doファイルは、チップ上に存在するすべてのプロセッサおよびペリフェラルからの共通信号をロードし、ModelSimリスト・ウィンドウを表示します。

h ヘルプ。使用可能なマクロおよびそれらの機能のリストを表示します。

<UART name>_log オプション。システムの各 UARTに対して、システム生成の前に SOPC Builder内のディスプレイ・インタラクティブ出力ウィンドウをオンにした場合は、このマクロが作成されます。このマクロを実行すると、UARTからの TXDデータを表示する端末画面に似たウィンドウが開きます。

<UART name>_drive オプション。システムの各 UARTに対して、システム生成の前に SOPC Builder内のインタラクティブ / スティミュラス応答ウィンドウをオンにした場合は、このマクロが作成されます。このマクロを実行すると、シミュレーション中に仮想データを UARTRXD信号に送信できる端末画面に似たウィンドウが開きます。

Altera Corporation 152007年 11月 ébíËÉTÉ|Å[Ég

Page 16: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

4. ここで、標準 ModelSim コマンドを使用して ModelSim シミュレータでデザインを実行できます。ただし、いくつかの信号を波形ウィンドウに追加して、PIOペリフェラルの動作を観測することができます。PIOペリフェラルの動作を表示するには、Workspaceウィンドウ内の simタブをクリックします。(Workspaceウィンドウが開いていない場合は、ViewメニューでWorkspaceをクリックします。)

表 4. シミュレーション波形に表示される信号

信号グループ 説明

cpu インストラクションのフェッチおよびデータのリードとライトに関連する信号。d_ プリフィックスで始まるこのグループの信号は、CPU データ・マスタに関連しています。これらの信号は、CPUデータ・マスタがメモリまたはメモリ・マップド・ペリフェラルに対してリードまたはライト・アクセスを実行するタイミングに関する情報を提供します。i_プリフィックスで始まる信号は、CPUインストラクション・マスタに関連しています。これらの信号は、CPUインストラクション・マスタがメモリからのインストラクションにアクセスするタイミングを示します。

sdram 以下を示す信号。● Avalon®バス・モジュールと SDRAMコントローラ間のインタフェース● SDRAMコントローラと SDRAMデバイス間のインタフェース● SDRAMコントローラ・ロジック内部の信号

Avalonバス・モジュールからSDRAMコントローラへの信号には、プリフィックス az_が付いています。例えば、az_addrはアドレス・バス入力です。

SDRAMコントローラからAvalonバス・モジュールへの信号には、プリフィックス za_ が付いています。例えば、za_data はコントローラから Avalonバス・モジュールへのデータです。

SDRAM コントローラと外部 SDRAM デバイス間の信号には、プリフィックス zs_ が付いています。例えば、zs_ras_n はロウ・アドレス・ストローブ信号です。SDRAMコントローラ・ロジック内部の信号には、システム・クロック (clk)やSDRAMコントローラが実行している現在の動作(コード)などがあります。

onchip_ram_64_kbytes onchip_ram_64_kbytes メモリに対するアドレス、データ、およびコントロール信号。

jtag_uart JTAG UARTへの Avalonインタフェース信号を表示します。

uart1 Bus Interface UART バス・インタフェースを表示する信号。これらの信号は、UART に対する Avalonアドレスおよびデータ信号を表示します。

uart1 Internals UART 送信 (TX) および受信 (RX) データ・レジスタを示す内部 UART 信号。これらの信号は 8ビットの TXおよび RXレジスタをASCIIテキストにデコードするため、シミュレーション波形に文字を表示できます。TXレディおよびRXキャラクタ・レディ信号も表示されます。

16 Altera Corporation2007年 11月

Page 17: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II IDE を使用したModelSim ツールの起動

5. Workspace ウィンドウで、test_bench フォルダと dut フォルダを開いて、the_led_pioを選択します。

6. Objects ウィンドウで、chipselect と out_port を選択します。(Objectsウィンドウが開いていない場合は、ViewメニューのDebug Windowsをポイントして、Objectsをクリックします。)図 8を参照してください。

図 8. ModelSimのWorkspaceおよび Objectsウィンドウ

7. 選択された信号を波形ウィンドウ内にドラッグします。

8. ModelSim コンソールで run 800 us を入力して、800 マイクロ秒の間シミュレーションを実行します。

9. シミュレーション終了後、端末ウィンドウに hello_world.c ファイルからのprintf文が表示されるはずです。また、図 9に示すとおり、波形ウィンドウに追加した PIO信号を拡大表示して、CPUが PIOにライト・アクセスするのを観察します。

Altera Corporation 172007年 11月 ébíËÉTÉ|Å[Ég

Page 18: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

Nios II エンベデッド・プロセッサ・デザインのシミュレーション

図 9. シミュレーション結果

まとめ シミュレーションと検証はデザイン・プロセスの重要な部分です。ModelSimツールを使用したボード・レベルのデバッグおよび RTLシミュレーションで、Nios IIプロセッサを包括的に検証することができます。RTLシミュレーションは、プロセッサおよびペリフェラル・セットの内部深くに埋め込まれた信号を精査できるため、特にコンフィギュレーション可能なシステムにとってデザイン・プロセスの重要な部分です。

改訂履歴 表 5に、このアプリケーション・ノートの改訂履歴を示します。

表 5. 改訂履歴

日付およびドキュメント・バージョン

変更内容 概要

2007年 11月 v1.1 Nios IIプロセッサ 7.2のリリースにより更新。 スクリーンショットを更新

2004年 5月 v1.0 初版 —

18 Altera Corporation2007年 11月

Page 19: Nios II エンベデッド・プロセッサ ... · このアプリケーション・ノートでは、Nios II デザイン例、SOPC Builder、および Nios II IDE を使用して、RTL

改訂履歴

Altera Corporation 19

101 Innovation DriveSan Jose, CA 95134www.altera.comTechnical Support:www.altera.com/support/Literature Services:[email protected]

Copyright © 2007 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company,the stylized Altera logo, specific device designations, and all other words and logos that are identified astrademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of AlteraCorporation in the U.S. and other countries. All other product or service names are the property of their re-spective holders. Altera products are protected under numerous U.S. and foreign patents and pendingapplications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor productsto current specifications in accordance with Altera's standard warranty, but reserves the right to make chang-es to any products and services at any time without notice. Altera assumes no responsibility or liabilityarising out of the application or use of any information, product, or service describedherein except as expressly agreed to in writing by Altera Corporation. Altera customersare advised to obtain the latest version of device specifications before relying on any pub-lished information and before placing orders for products or services.