読者です 読者をやめる 読者になる 読者になる

Tech と Culture

テクノロジーとカルチャー

LEONシステムのコンフィグレーション GR-XC3S-1500(Xilinx)編 5

USBに関する設定GUIが立ち上がります。
leon-xconfig23.jpg
USBはコマーシャルライセンスのみですので使用できません。
Nextボタンをクリックします。

UART,Timer,割り込みコントローラ, GPIOに関する設定GUIが立ち上がります。
leon-xconfig24.jpg

Linuxをブートしたときにコンソール出力をUARTにしてteratermでホストに表示する方法とVGAフレームバッファをコンソールにする方法がありますが、ハードウェアとしてのUARTは組み込んでおきます。
割り込みコントローラとタイマーは必須です。
GPIOは無くても動作しますが、FPGAに余裕があるので、デフォルト通りに組み込んでおきます。
ここもデフォルト通り何も変更せずに Next ボタンを押します。

spacewireに関する設定GUIが立ち上がります。
leon-xconfig25.jpg
spacewireもGPLライセンスでは公開されていませんので、使用できません。

Next ボタンをクリックします。

KeyboardとVGA interfaceに関するGUIが立ち上がります。
leon-xconfig26.jpg
PS/2インターフェースとVGAフレームバッファを使用します。
Next ボタンをクリックします。

VHDL Debuggingに関するGUIが立ち上がります。
leon-xconfig27.jpg
デフォルトのままにします。
設定がすべて終りましたので、Main Menuと書かれているボタンをクリックします。VHDL Debuggingに関するGUIが消えます。

leon-xconfig1.jpg

最初に立ち上がったGUIに戻り、 Save and Exitボタンをクリックします。確認されますので、OKボタンをクリックします。
これでコンフィグレーションが終了しました。
公式にサポートされているボードでは、そのボード構成にあわせたコンフィグレーションがデフォルトとして設定されてあるので、ほとんど修正はありません。今回もEDCLのIPアドレスを変更しただけです。
LEONシステムを使い慣れてくると、様々な変更をしたくなってきます。その時は同じ方法でコンフィグレーションを変更します。

コンフィグレーションを終了すると、同じディレクトリにある config.vhd が変更されます。
実際はこのファイルに変更した変数を記憶させ、各RTLがこのファイルの変数をスイッチとして参照するという仕組みになっています。

ちなみにconfig.vhdは以下のように定数変数の設定が延々と続くファイルです。
configtxt.jpg

このファイルを各RTLが読み込んでスイッチとしています。

同じディレクトリに leon3mp.vhdというファイルが存在します。これが所謂トップモジュールのRTLです。
これまで設定した周辺IPがLEON3プロセッサにAMBAバスで接続され、FPGAのIOピンと接続されたものです。

その中の、例えばEthernetコアのインスタンスの部分を読んでみると以下のように記述されています。

leon3mpvhd.jpg

config.vhdの中で設定される CFG_GRETHという定数変数の値によってインスタンスするかどうかが決定されていることが分かります。 その他ポートの接続にも多数の定数変数が使用されていることが分かります。