JR2BMU logo

FPGAボード Cmod S7を導入してみた(2)

  FPGAボードと開発手順の概要は前回ご紹介しました。今回はLED1つを点灯させるまでの手順をご紹介します。 (Digilent公式もご参照ください。)

1.新規プロジェクトの作成

  Vivadoを開き、トップ画面で"Create project"を選択します。ウィザードが表示されるので、画像の通りに進めてください。⑥のボード選択ではCmod S7-25を選んでください。デフォルトではインストールされていないので、初回はインストールが必要です。ボードデータは公式ページ3.からダウンロードしてください。

cmods7

2.Constraint fileの追加

  Constraint file(.xdc)はデバイスの入出力状態を規定するファイルです。ボード上のI/Oの割り当ては公式のテンプレートが用意されていますので、ダウンロードして解凍しておきます。
  ① Add sourcesでウィザードが表示され、② Add or Create constraints --> ③ Next --> ④Add Filesを選択します。⑤で解凍したテンプレート"Cmod-S7-25-Master.xdc"指定します。⑥にチェックを入れると、.xdcファイルがプロジェクトフォルダ内にコピーされるので、自由に変更できます。Constraint fileが追加できたら、⑦Finishでウィザードを閉じます。
  次の場所にConstraint fileが追加されているので、開いて編集します。
    \(プロジェクト名)\(プロジェクト名).srcs\constrs_1\imports\digilent-xdc-master
今回は端子E2に接続されたLED1つのみを使用しますので、20行目頭のコメント"#"を外します。また、get portsの端子名をledとしておきます。これで、HDLファイルでledという名前で接続できます。4bitのledはプルダウンです(一方、RGB LEDはプルアップ)。
cmods7
cmods7

3.Design Sourceの追加

  次に図の手順に従いDesign Sourceを追加します。① Add sourcesでウィザードが表示され、② Add or Create Design sources --> ③ Next --> ④Create Filesを選択します。HDL言語はVerilog, VHDL, SystemVerilogが選択できます(ファイルごとに異なる言語を用いることも可能)。今回はSystemVerilogを使用します(⑤)。SystemVerilogはVerilogが拡張されたもので、基本的な文法は共通しています。完了(⑥)するとI/O設定のウィンドウが開きます(⑦)が、エディタ内で後から変更可能です。
  作成した.svファイルを開きます。ヘッダやモジュール名(blink)、I/O情報(output led)はファイル作成時に入力したものが含まれています。コードはmodule xxx (xxx);行とendmodule行の間に追記します。LEDの端子をHighに接続するだけなので、HDLコードは以下の1行だけ追加してください。

cmods7
cmods7

3.RTL解析

  RTL解析ではHDLコードから推定された接続状況を確認できます。今回はLEDの端子をHighに接続しているだけなので自明な結果が表示されるのみです。

cmods7

4.Simulation

  ここではHDLコードに基づいて動作シミュレーションが行えます。そのために次の手順でテストベンチを作成します。① Add sourcesでウィザードが表示され、② Add or Create Simulation sources --> ③ Next --> ④Create Filesを選択しテストベンチを作成します(⑤~⑥)。テストベンチは被測定モジュールの入出力を包含した仮想のモジュールで、任意の入力を与えたときの出力をモニタします。テストベンチ自体は仮想のモジュールなので入出力は不要です(⑦)。
  テストベンチもVerilog, VHDL, SystemVerilogで記載します。これらの言語には実装を前提としないテストベンチ用のコードも用意されています。今回のテストベンチは単純で、ネットの定義とモジュールの宣言の2行を追加します。

cmods7
cmods7

  Runsimulation --> Run bahavioral simulationをクリックするとシミュレーションがスタートします。デフォルトの設定では、シミュレーションは1us後に一時停止します。今回は定常状態なので1usで十分です。シミュレーション結果を図に示します。自明な結果ですが、led端子がHighとなっていることが分かります。もう少し複雑な回路のシミュレーションは次回ご紹介します。

cmods7

5.Synthesis

  次に①Run synthesisをクリックし論理合成を開始します。単純な回路ですが、環境によっては数分かかります。論理合成が完了すると、③Open synthesized designから合成後の回路を確認できます。今回は単にバッファを繋いだだけになりました。

cmods7

6.Implementation

  次に①Run implementationをクリックしチップ内への配置・配線情報の生成を開始します。これも、環境によっては数分かかります。完了後の回路はOpen implemented designから確認できます。また、配置・配線時のレポートも確認できます。

cmods7

7.Generate bitstream

  Implementationが完了したらGenerate bitstreamからプログラムファイルを生成します。

cmods7

8.Program

  最後にボードへの書き込みです。FPGAボードをUSBでPCに接続してください。Open target --> Auto connectで接続されたハードウェアを自動で検索し、接続してくれます(①)。接続が完了したら、Program device --> xc7s25_0をクリック(③)し、プログラムを行います(④)。USBポートから一番遠いLEDが点灯したら成功です。

cmods7


次回はもう少し複雑な回路のテストベンチについてご説明します。

©JR2BMU All rights reserved.

inserted by FC2 system