6. component editor corporation 6–3 2008 年5 月 component editor の起動...

12
Altera Corporation 6–1 2008 5 この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用 ください。設計の際には、最新の英語版で内容をご確認ください。 6. Component Editor はじめに この章では、 SOPC Builder Component Editor について説明していま す。Component Editor は、SOPC Builder のコンポーネントを記述する _hw.tcl ファイルの作成と編集を行うための GUI を提供します。 Component Editor は、以下の作業に使用します。 コンポーネント・ハードウェア内のモジュールを記述する Verilog HDL ファイルまたは VHDL ファイルを指定する。 コンポーネントのインタフェースを定義し、インタフェースの機能 に関する情報を提供する。 コンポーネントの各インタフェースの信号を指定し、各インタ フェース信号の動作を定義する。 スレーブ・インタフェースで使用されるクロック・インタフェース を決定するなど、インタフェース間の関係を指定する。 コンポーネントの構造または機能を変更するパラメータを宣言し、 ユーザーがコンポーネントのインスタンスをパラメータ化するため のユーザー・インタフェースを定義する。 開発フローでのComponent Editorの使用方法については、 SOPC Builder Component Development Flow Using the Component Editor Overviewを参照してください。 Avalon コンポーネント・インタフェースの情報は、 Avalon Component Interfaces Supported in the Component Editor Version 7.2 and Later参照してください。 一般的な Avalon インタフェースの変更例については、 Examples of Changes to Typical Avalon Interfaces for the Component Editor Version 7.2 and Laterを参照してください。 コンポーネントのアップグレードの情報は、 Upgrading Your Component with SOPC Builder Component Editor Version 7.2 and Laterを参照してく ださい。 QII54005-8.0.0

Upload: phamkhue

Post on 02-May-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Altera Corporation 6–12008年 5月

この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際には、最新の英語版で内容をご確認ください。

6. Component Editor

はじめに この章では、SOPC Builderの Component Editorについて説明しています。Component Editorは、SOPC Builderのコンポーネントを記述する_hw.tcl ファイルの作成と編集を行うための GUI を提供します。Component Editorは、以下の作業に使用します。

■ コンポーネント・ハードウェア内のモジュールを記述する VerilogHDLファイルまたは VHDLファイルを指定する。

■ コンポーネントのインタフェースを定義し、インタフェースの機能に関する情報を提供する。

■ コンポーネントの各インタフェースの信号を指定し、各インタフェース信号の動作を定義する。

■ スレーブ・インタフェースで使用されるクロック・インタフェースを決定するなど、インタフェース間の関係を指定する。

■ コンポーネントの構造または機能を変更するパラメータを宣言し、ユーザーがコンポーネントのインスタンスをパラメータ化するためのユーザー・インタフェースを定義する。

開発フローでのComponent Editorの使用方法については、「SOPC BuilderComponent Development Flow Using the Component Editor Overview」を参照してください。

Avalonコンポーネント・インタフェースの情報は、 「Avalon ComponentInterfaces Supported in the Component Editor Version 7.2 and Later」を参照してください。

一般的な Avalonインタフェースの変更例については、「Examples ofChanges to Typical Avalon Interfaces for the Component Editor Version7.2 and Later」を参照してください。

コンポーネントのアップグレードの情報は、 「Upgrading Your Componentwith SOPC Builder Component Editor Version 7.2 and Later」を参照してください。

QII54005-8.0.0

6–2 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

Component Editor の使用方法については、以下の項を参照してください。

■ Component Editorの起動方法については、6–3ページの「ComponentEditorの起動」を参照してください。

■ コンポーネントを説明するHDLファイルの指定については、6–3ページの「HDL Filesタブ」を参照してください。

■ インタフェース信号の指定については、6–4ページの「Signalsタブ」を参照してください。

■ Avalon-MMタイプのインタフェース信号の指定については、6–7ページの「Interfacesタブ」を参照してください。

■ パラメータの指定については、6–7ページの「Component Wizardタブ」を参照してください。

■ コンポーネントの保存については、6–8ページの「コンポーネントの保存」を参照してください。

■ 保存した後のコンポーネントの変更については、6–9ページの「コンポーネントの編集」を参照してください。

■ コンポーネントのインスタンスのパラメータ化に使用する UI については、6–9ページの「コンポーネント GUI」を参照してください。

コンポーネントについて詳しくは、「Quartus IIハンドブック Volume 4」の「Component Interface Tcl Reference」の章を参照してください。Avalon-MMインタフェースについて詳しくは、「Avalon InterfaceSpecifications」を参照してください。

コンポーネントのハードウェア構造

Component Editorは、以下の特徴を持つコンポーネントを作成します。

■ 1つのコンポーネントには1つまたは複数のインタフェースがあります。通常、インタフェースは Avalon-MM マスタまたはスレーブを意味します。SOPC Builderシステムの最上位モジュールの入出力信号となる、エクスポートされたコンポーネント信号を指定することもできます。この信号は SOPC Builder システムの外部のロジックに接続できます。Component Editor を使用すると、以下のようなAvalon インタフェースの任意の組み合わせでコンポーネントを構築できます。● Avalon-MMマスタおよびスレーブ● Avalon-STソースおよびシンク● 割り込みの送信側と受信側● クロック入力および出力● Nios IIカスタム命令のマスタ・インタフェースとスレーブ・インタフェース

● コンジット(トップレベルへの信号のエクスポート用)

Altera Corporation 6–32008年 5月

Component Editorの起動

■ 各インタフェースは 1つまたは複数の信号で構成されます。■ コンポーネントは、SOPC Builderシステムの内部でインスタンス化されるロジックを表すことができます。あるいはシステム外部とSOPC Builderシステムとのインタフェース・ロジックを記述することができます。

Component Editorの起動

SOPC BuilderのComponent Editorを起動する場合、FileメニューのNewComponentをクリックします。Component Editorが起動すると、Component Editorの使用方法を説明する Introductionタブが表示されます。

Component Editor は、関連性のある設定をグループ化した複数のタブを提示します。Component Editor の下にあるメッセージ・ウィンドウには、ワーニングとエラー・メッセージが表示されます。

Component Editor の各タブには、タブの使用方法を説明するオン・スクリーン情報が表示されます。各タブの左上にあるAboutと表記された三角をクリックすると、これらの命令が表示されます。Component Editorの詳細については、Quartus® IIオンライン・ヘルプも参照できます。

コンポーネント作成プロセスの進行に合わせて、左から右にタブを移動します。

HDL Filesタブ HDL Files タブのテーブルに、コンポーネント内のすべての HDL ファイルが指定されます。HDL Filesタブを使用して、コンポーネント・ロジックを記述する Verilog HDL ファイルまたは VHDL ファイルを指定します。ファイルはテーブルでの表示と同じ順序で、Quartus II ソフトウェアやModelSimなどのツールに渡されます。

また、Component Editorを使用して、SOPC Builderシステム外部のコンポーネントへのインタフェースを定義することもできます。この場合は、HDLファイルを指定しません。代わりに、Component Editorを使用して、手動でハードウェア・インタフェースを定義します。

HDLファイルを指定した後、Component Editorは Quartus II Analysis& Elaborationモジュールを呼び出してファイルを解析します。Component Editor は、トップレベル・ファイルですべてのモジュールに対して宣言された信号とパラメータを解析します。ファイルの解析に成功した場合、Component Editorの Signalsタブの Top Level Moduleリストに、すべてのデザイン・モジュールが表示されます。 HDLに複数のモジュールが含まれている場合は、Top Level Module リストから適切なトップレベルのモジュールを選択する必要があります。

6–4 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

すべてのファイルは、合成とシミュレーションのチェックボックスを使用して 1つのテーブルで管理されます。デフォルトでは、合成とシミュレーションの両方がチェックされ、すべてのファイルが追加されます。シミュレーション専用ファイルを追加するには、そのファイルの合成チェックボックスのチェックを外します。合成専用ファイルを追加するには、シミュレーション・ファイルのチェックを外します。トップレベル・ファイルのチェックボックスは、合成のためのトップレベル・ファイルを選択するために使用します。 上向きおよび下向き矢印を使用すると、HDLファイルの解析順序を指定できます。

トップレベル・モジュールが変更されると、Component Editorは既存のポート定義を基に、ベストエフォート信号マッチングを実行します。ポートがモジュールに存在しない場合、そのポートはポート・リストから削除されます。

Signalsタブ Signals タブは、トップレベル・コンポーネント・モジュール上の各信号の役割を指定するのに使用します。HDL Filesタブでファイルを指定している場合には、トップレベル・モジュールの信号が Signals タブに表示されます。

コンポートが Avalon 対応の外部ロジックへのインタフェースに HDLファイルを使用していない(非 HDLベースのコンポーネント)場合、外部ロジックへのインタフェースを含む信号を手動で追加する必要があります。Interfaceリストを使用すると、新しいインタフェースも作成できます。また Templatesメニューを使用すると、標準的なインタフェース信号を素早く信号リストに追加することもできます。

各信号はいずれかのインタフェースに所属し、そのインタフェースに対する正規の信号の種類が割り当てられている必要があります。

各信号は、Interface リストを使用してインタフェースに割り当てます。Avalon Memory-Mapped インタフェースと Avalon ST インタフェースに加えて、コンポーネントは一般にクロック・インタフェース、割り込みインタフェース、エクスポートされる信号用のコンジット・インタフェースを備えています。

Altera Corporation 6–52008年 5月

Signalsタブ

信号の種類およびインタフェースの自動認識のための信号の命名Component Editorは、ソースHDLファイルの信号の名前が以下の命名規則に従っている場合は、信号の種類とインタフェースを自動認識します。表 6–1に、信号の命名規則を示します。

Interface Nameの値を問わず、Component Editorは必要に応じて、その名前で自動的にインタフェースを作成して、信号を割り当てます。Signal Type は、インタフェースのタイプに対する有効な信号の種類のいずれかと一致する必要があります。_n を追加してアクティブ Low信号を示すことができます。表 6–2 に、Interface Type の有効な値を示します。

表 6–1.自動認識される信号名の規則

信号の種類 命名規則

特定のインタフェースに関連付けられた信号

<interface type>_<interface name>_<signal type>[_n]

表 6–2. <Interface Type>の有効な値

値 意味avs Avalon-MMスレーブ

avm Avalon-MMマスタ

ats Avalon-MMトライステート・スレーブ

atm Avalon-MMトライステート・マスタ

aso Avalon-STソース

asi Avalon-STシンク

cso クロック出力csi クロック入力inr 割り込みレシーバins 割り込みセンダcoe コンジットncm Nios II カスタム・インストラクション・

マスタncs Nios II カスタム・インストラクション・

スレーブ

6–6 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

例 6–1に、2つのAvalon-MMスレーブを推定するVerilog HDLモジュール宣言を示します。

例 6–1.信号名が自動的に認識される Verilog HDLモジュール

module my_slave_irq_component (// Signals for Avalon-MM slave port “s1” with irqcsi_clockreset_clk, //clockreset clock interfacecsi_clockreset_reset_n,//clockreset clock interfaceavs_s1_address,//s1 slave interfaceavs_s1_read, //s1 slave interfaceavs_s1_write, //s1 slave interfaceavs_s1_writedata, //s1 slave interfaceavs_s1_readdata, //s1 slave interfaceins_irq0_irq //irq0 interrupt sender interface);

input csi_clockreset_clk; input csi_clockreset_reset_n;input [7:0]avs_s1_address;input avs_s1_read; input avs_s1_write; input [31:0]avs_s1_writedata; output [31:0]avs_s1_readdata; output ins_irq0_irq;

/* ロジックをここに挿入 */endmodule

外部ロジックとのインタフェース用のテンプレート外部ロジックへのインタフェースを作成する場合は、Component EditorのTemplatesメニューを使用して、以下のテンプレートのような信号セットを追加できます。

■ Avalon-MM Slave■ Avalon-MM Slave with Interrupt■ Avalon-MM Master■ Avalon-MM Master with Interrupt■ Avalon-ST Source■ Avalon-ST Sink

Altera Corporation 6–72008年 5月

Interfacesタブ

テンプレートを追加した後、信号を追加または削除してインタフェースをカスタマイズできます。

Interfacesタブ Interfaces タブでは、コンポーネントのインタフェースをコンフィギュレーションし、各インタフェースの名前を指定できます。インタフェース名はインタフェースを識別し、SOPC Builder接続パネルにも表示されます。インタフェース名は、トップレベルの SOPC Builder システムで公開される信号を固有に識別するのにも使用されます。

さらに、Interfaces タブでは、各インタフェースの種類とプロパティをコンフィギュレーションすることもできます。例えば、Avalon-MM スレーブ・インタフェースには、適切な設定を必要とするタイミング・パラメータがあります。

古い Avalon-MM スレーブを新しいモデルに変換する場合、クロック入力、Avalonスレーブ、割り込みセンダの 3つのインタフェースが必要になります。Avalonスレーブを参照するには、割り込みセンダのパラメータを設定する必要があります。

Component Wizardタブ

Component Wizardタブには、新しいコンポーネントの表示に影響するオプションがあります。

識別情報コンポーネントを識別する情報は、以下のとおり指定できます。

■ Folder—トップレベルのHDLファイルの場所によって決定される、コンポーネントの場所を指定します。

■ Class Name—コンポーネントの内部名を指定します。内部名を使用するのは、このコンポーネントのインスタンスを含むシステムを保存するとき、およびスクリプトを使用してシステムを作成するときに、コンポーネント・タイプにこの内部名を使用するときです。

■ Display Name Version—SOPC Builder のこのコンポーネントに、ユーザーに見える名前を指定します。

■ Group—利用可能なコンポーネントのリストで、ユーザーのコンポーネントが表示される SOPC Builder のグループを指定します。未使用のグループ名を入力した場合、SOPC Builderはその名前で新しいグループを作成します。

■ Description—コンポーネントを説明します。■ Created By—コンポーネントの作成者を指定します。■ Icon—コンポーネントをコンポーネントを基準とするファイル・パスに関連付けます。アイコンは、.jpg、.gif、または .png のいずれのファイルでもかまいません。

6–8 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

■ Parameters—以下に説明するように、コンポーネントを作成するためのパラメータを指定します。

パラメータParameters テーブルでは、コンポーネントにユーザーがコンフィギュレーション可能なパラメータを指定できます。

コンポーネントHDLのトップレベルのモジュールでパラメータ(VerilogHDL、HDLでは parameters、または VHDLでは generics)が宣言されている場合、これらのパラメータは Parametersテーブルに表示されます。パラメータは、コンポーネントのインスタンスを作成または編集したときにユーザーに提示されます。Parametersテーブルを使用すると、各パラメータのユーザーによる編集の可否を指定できます。

以下のルールは、コンポーネント GUI を通じて公開される HDL パラメータに適用されます。

■ 編集可能なパラメータには、計算された式を含めることはできません。

■ パラメータNが信号の幅を定義する場合、信号幅はN-1..0の形式でなければなりません。

■ Verilog HDL SOPC BuilderシステムでVHDLコンポーネントが使用される、またはその逆のとき、数値パラメータは 32ビットの 10進整数でなければなりません。他の数値パラメータ・タイプを渡すと、その結果は予測不能です。

Preview the Wizardをクリックすると、いつでもコンポーネント GUIの表示を確認できます。

コンポーネントの保存

いずれかのタブで Finishをクリックするか、Fileメニューの Saveをクリックすると、コンポーネントを保存できます。Component Editor で指定する設定に基づいて、Component Editor はファイル名 < トップレベルのファイル名 >_hw.tcl のコンポーネント記述ファイルを作成します。Component Editorは、このファイルをコンポーネントのハードウェア・インタフェースを記述する HDL ファイルと同じディレクトリに保存します。HDLファイルを指定していない場合は、選択した任意の場所にコンポーネント記述ファイルを保存できます。

コンポーネント・ファイルは後で移動できます。例えば、他のユーザーが各自のシステムでコンポーネントをインスタンス化できるように、コンポーネント・ファイルをファイル・サーバーのディレクトリに保存できます。

Altera Corporation 6–92008年 5月

コンポーネントの編集

コンポーネントの編集

コンポーネントを保存し、Component Editor を終了した後、SOPCBuilder で保存したコンポーネントを編集できます。コンポーネントを編集するには、System Contentsタブの使用可能なコンポーネントのリストのコンポーネントを右クリックし、Edit Component をクリックします。

アルテラ提供のコンポーネントなど、Component Editor 以外で作成されたコンポーネントは編集できません。

コンポーネントの HDL を編集し、トップレベルのモジュールとのインタフェースを変更する場合は、HDLに加えた変更を反映するようにコンポーネントを編集する必要があります。

ソフトウェア・アサインメント

Tcl コマンドを使用して、ソフトウェア・アサインメントを作成できます。必要に応じて、ソフトウェア・アサインメントを任意のキーと値のペアとして登録できます。以下の例に、一般的な Tcl API スクリプトを示します。

例 6–2. Tcl APIスクリプトによる一般的なソフトウェア・アサインメント

set_module_assignment name[ value]set_interface_assignment name value ]

その結果、アサインメントは .sopcinfo ファイルに保存され、ダウンストリーム・コンポーネントに使用できます。

コンポーネントGUI

コンポーネントのインスタンス・パラメータを編集するには、SOPCBuilder ウィンドウの System Contents ペインでコンポーネントを選択し、Editをクリックします。

参考資料 この章では以下のドキュメントを参照しています。

■ 「Avalon Component Interfaces Supported in the Component EditorVersion 7.2 」

■ 「Avalon Interface Specifications 」■ 「Quartus II ハンドブック Volume 4」の「Component Interface Tcl

Reference」の章■ 「Examples of Changes to Typical Avalon Interfaces for the Component

Editor Version 7.2 and Later」■ 「Nios IIソフトウェア開発ハンドブック」

6–10 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

■ 「Quartus IIハンドブック Volume 4」の「SOPC Builder Components」の章」

■ 「SOPC Builder Component Development Flow Using the ComponentEditor Overview」

■ 「Upgrading Your Component with SOPC Builder Component EditorVersion 7.2 and Later」

改訂履歴 表 6–3に、本資料の改訂履歴を示します。

表 6–3.改訂履歴

日付およびドキュメント・バージョン 変更内容 概要

2008年 5月 v8.0.0 この章を以下のように大幅に編集● 章番号を変更。● ソフトウェア・アサインメントに関する項を新しく追加。

2007年 10月 v7.2.0 最新の GUI を説明するいくつかのパラグラフを更新。

2007年 5月 v7.1.0 V7.1 の主な機能の違いを反映してすべての項を更新。 5-2 ページの「Changes to Component Editorin Version 7.1」の項を追加。v7.1の新しいコンポーネント構造に対応して、「Component Editor Output」と「Re-editingComponents」の項を更新。Avalon テクノロジが変更されたため、Avalon用語を更新。旧「Avalonスイッチ・ファブリック」を「システム・インタコネクト・ファブリック」に変更。旧「Avalonインタフェース」を「Avalon Memory-Mappedインタフェース」に変更。ツールを使用した場合にユーザーに表示される内容を、特定の箇所を図示しないで簡単に反映したスクリーンショットを削除。すべての参考資料にリンクする参考資料の項を追加。HDL ファイル・タブを使用して、トップレベル・ファイルだけでなく、すべてのシミュレーション・ファイルを追加するよう指示する文を追加。

SOPC Builderコンポーネントのファイル構造は、このリリースで大幅に変更され、Component Editor への大幅な機能変更が要求されます。本資料は機能変更を反映して大幅に変更されました。可読性を高めるために更新が行われました。

2007年 3月 v7.0.0 前バージョンからの内容の変更はありません。 —

2006年 11月 v6.1.0 前バージョンからの内容の変更はありません。 —

2006年 5月 v6.0.0 前バージョンからの内容の変更はありません。 —

Altera Corporation 6–112008年 5月

改訂履歴

2005年 12月 v5.1.1 ● 5-4ページの「信号の種類およびインタフェースの自動認識に対応する信号の命名」の項を追加。

● 5-6ページの「外部ロジックへのインタフェース用のテンプレート」の項を追加。

● Saveコマンドの動作を明示。● すべてのスクリーンショットを更新

2005年 10月 v5.1.0 前バージョンからの内容の変更はありません。 —

2005年 5月 v5.0.0 初版 —

表 6–3.改訂履歴

日付およびドキュメント・バージョン 変更内容 概要

6–12 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4