入門チュートリアル - デザインの処理
FPGA ベースデザインのキャプチャが終了したら、次は、ソースファイルを処理する論理ステップに移ります。これは、デバイスベンダの配置配線ツールに入力するソースネットリストのファイルを得て、デザインをコンパイル、論理合成するプロセスです。
選択された物理デバイスにデザインが適合し、FPGA プログラミングファイルを生成できるように、プロセスは配置配線ツールの実行を継続します。このプログラミングファイルは、プロセスチェーンの最終ステップ、つまり、物理的な FPGA デバイスへのデザインのプログラミングへつながります。
全体的なプロセスの流れは、ソースファイルのキャプチャから物理的デバイスのプログラミングまで、Devices ビューから実行されます。
- Altium Designer の Devices ビューがアクティブ (View » Devices View) になっていることを確認してください。
- Live オプションが有効で、Connected 表示が緑であることを確認してください。
このビューは、検出された物理的 FPGA デバイスに関連するコントロールを行います。このチュートリアルで説明するハードデバイスチェーンでは、物理的デバイスの 'Process Flow' として参照されています(図 1)。
図 1. 物理的 FPGA デバイスに関連する Process Flow。この Process Flow では、以下の追加条件に合致するものについてだけ説明しています:
- 使用するドータボートに合った FPGA デバイス用のベンダツールがインストールされていること。
- チェーン内のデバイス用アイコンの下のドロップダウンフィールドに、適切な
Project / Configuration
ペアが表示されていること。プロジェクトに、検出された物理的デバイスへのデザインをターゲットにした、制約条件ファイルが含まれているコンフィギュレーションがある場合には、適正なペアが存在します。
自動コンフィギュレーション機能を実行していた場合は、ドータボードデバイスをターゲットにした制約条件ファイルを含む、このチュートリアル用の適切なコンフィギュレーションが既に存在しています。従って、Project / Configuration
のエントリは、Simple_Counter / ConfigurationName
として表示されます(例えば、図 1 の Simple_Counter / NB2DSK01_08_DB30_06
)。
Process Flow そのものは、4 つの別々のステージから成り立っていて、各ステージの出力が次のステージの入力になります。Process Flow の全体は Progran FPGA ボタンを直接クリックして実行させることができます。ただし、フローの最後のステージでは、各ステージを順番に実行することも大切です。
stage ボタンの左側にある矢印アイコンをクリックして、現在のステージを含むフローの全てのステージを実行することができます。
- Compile ボタンをクリックします。このステージでは、関連する FPGA プロジェクト内のソースドキュメントをコンパイルします。プロジェクトにプロセッサコアが含まれている場合は、関連する組込みソフトウェアプロジェクトもこのステージで一緒にコンパイルします。チュートリアルではプロセッサのない簡単なデザインになので、このステージの Design Compiler は単に電気的エラーと作図エラーを検証するためだけに使用します。既に前の項目でプロジェクトをコンパイルしているので、このステージは容易でしょう!
コンパイルのプロセスにおけるフィードバックは Messages パネルで見ることができます。いずれかのステージが完了すれば、関連するインジケータが緑に変わります。
Synthesize ボタンをクリックします。論理合成中にソースドキュメントは中間 VHDL ファイルに変換され、その後、ベンダの配置配線ツールに最適な形でトップレベルの EDIF ネットリストが合成されます。特定の FPGA デバイスをターゲットにして、デザイン内のコンポーネントに関連する論理合成モデルファイルが検索され、該当の論理合成出力フォルダにコピーされます。
図 2. フローの論理合成ステージで生成されたファイル。
論理合成が成功すると、Generated [ConfigurationName]
と言う名前のフォルダが作成されます。生成されたフォルダには、EDIF (Simple_Counter.edf
)、VHDL (Simple_Counter.vhd
)、論理合成ログ (Simple_Counter_Synth.log
) ファイルがあります。
論理合成のプロセスにおけるフィードバックは Messages パネルで見ることができます。
Build ボタンをクリックします。このステージでは、ターゲットの物理的 FPGA デバイス用のデザインを完成させるため、Altium Designer はベンダの配置配線ツールを呼び出して実行します。
図 3. Build プロセスにおける配置配線ステージの開始。
以下のサブステージ(5 つ)がそれぞれ順に実行されます:
Translate Design: Process Flow の論理合成のステージで生成されたトップレベルの EDIF ネットリストと論理合成モデルファイルを使用して、NGD(Native Generic Database)フォーマットのファイルを生成します。
Map Design To FPGA: FPGA のプリミティブにデザインがマッピングされます。
Place and Route: 低レベルのデザイン記述を(マッピングのステージから)利用して、FPGA 内に目的の論理を配置する方法を導き出します。配置後に目的の相互接続が配線されます。
Timing Analysis: 定義された任意のタイミングにおける制約条件下で、デザインのタイミングを解析します。特定の制約条件が無い場合(このチュートリアルには該当しません)、デフォルトのリストが使用されます。
Make Bit File: デザインを物理デバイスにダウンロードするのに必要なプログラミングファイルを生成します。
ビルドのプロセスにおけるフィードバックは、Messages パネルで見ることができます。ベンダに関する詳細なフィードバックについては、Output パネル(メインデザインウィンドウの下側にある System ボタンに関するメニューからアクセス)で見ることができます。
ステージが終了したら、Results Summary ダイアログが表示されます。このダイアログは、ターゲットデバイス内で使用されるそれぞれのリソースと関連付けた要約情報を、任意のタイミング情報と共に提供します。このダイアログを閉じます
Program FPGA ボタンをクリックします。ビルドのステージで作成されたプログラミングファイルは、ドータボード上の物理的 FPGA デバイスにダウンロードされます。ダウンロードは、PC からデスクトップ NanoBoard への JTAG リンクを通して実行されます。その過程は、Altium Designer のステータスバーに表示されます。
図 5. プログラミングプロセスの開始。
デザインがダウンロードされると、Devices ビューの物理デバイスアイコンの下にあるテキストが Reset
から Programmed
に変わります。ハードウェア側では、ドータボードの 'Program'
LED が緑に点灯し、デザインが物理デバイスにロードされたことを示します。
- NanoBoard 上の DIP スイッチを以下のように設定してください:
- Switch 8: ON にしてください。止まっていたカウンタがスタートし LED が左から移動します。
- Switch 7: ON にしてください。止まっていたカウンタがスタートし LED が右から移動します。
- Switch 6: ON にしてください。カウンタがストップしスイッチ 7、8 は OFF になります。
- NanoBoard 上の
'DAUGHTER BD TEST/RESET'
ボタンを押して、LED をクリアします。
- プロジェクトを保存します。
デスクトップ NanoBoard 上のユーザ LED が全て同時にオンになります。これは、ツイストリングカウンタを構成すると言う当初の目的とは違っています! これは、NanoBoard 上のリファレンスクロックが 20MHz であるためです。ここは、MHz のファクタでクロックをスローダウンさせ、LED が順に表示されるようにする必要があります。入門チュートリアル - デザイン階層の検討 のセクションでは、いくつかの分周器を追加して、この課題をクリアしていきます。その上で、FPGA デザインにおける階層の使用についても検討します。