[FPGA] FPGA ボードで学ぶ組込みシステム開発入門を使って-1

こんにちは

初めてDE10-liteというFPGAボードを手にいれました。

どの様にすれば使いこなせるのかわからないので、教科書となるような本「FPGAボードで学ぶ組込みシステム開発入門 Intel FPGA編」を購入しました。なかなか高価で。

これをつかってD10-liteの使い方を勉強したいと思います。 教科書に沿っていくため、自分で理解できなかったことなど、多少つまづいたところを主に書いていきたいとおもいます。

教科書をもっていないかたは意味不明かもしれません!

環境

まず環境から

PC : Windows 10 pro 64bit

ボード : DE10-Lite(Max 10)

教科書: FPGAボードで学ぶ組込みシステム開発入門 Intel F

[ 2-  7セグメントデコーダの設計]

教科書どおりに進んで

p48 [回路記述ファイルの追加]

で ファイルを追加するのですが、例題のファイルを作っていない場合は

Notepad++などでファイルを作っておきます。

ファイル名は seg7dec.v になります。

[ボードの選択]

で Board > Family > MAX 10 を選択し

Available boards で MAX 10 DE10-Lite を選択します。

なお Create top-level design file のチェックは外します。

次にピンアサインの話が教科書で出てきますが、これの資料は出版社のサポートのページからダウンロードしてくるようです。

そこから必要な資料DE10-Liteをダウンロードしてきます。

ピンアサインに関する資料は

DE10-Lite_pin.qsfのようです。

さてピンアサインの読込みについては教科書のp53に書いてあるとおりにファイル(qsf)を選択します。

コンパイル

コンパイルは Quartus Prime Lite Edition を立ち上げたあと、すでにサンプルのseg7dec.vが作ってあるならば、File > Open でそのファイルを選びます。

ピンアサインは教科書をp53を参考にしてファイル(qsf)を選択します。

Processing > Start Compilation を選択して実行させます。

私の場合はエラーがでました。教科書のサンプル写し間違いが2つほどありました。

エラーがなければコンパイルは終了します。

いくつかのWarningがでますが、組み合わせ回路ではClockの設定がないためのようです。このサンプルではスタティック的な動作なのでWarningは無視するそうです。

シミュレータ

教科書には載っていませんが7セグメントデコーダのシミュレーションをしてみます。シミュレーションをするには、テストベンチというファイルを作る必要があります。面倒なのですが、これからFPGAで回路を試作する場合など重要だと思われますので、ここではテストベンチのテンプレートの作り方を含めて進めて行きたいと思います。

これについての良い資料がここにありました。ほとんどそのまま資料に沿っていけば目的までいく事ができます。 本当に助かりました。

Simulation

Quartus Prime Lite Editon の Assignments > Settings を選択します。

現れた Settingsから EDA Tool Settings 項の中にSimulation ありますのでそれを選択します。

Tool name で ModelSim-Altera を選択

Format for output netlist で verilog HDL を選択

あとはそのままにして OK をクリックします。

次にI/O の設定を読み込ませるために合成をおこないます。

Processing > Start Compilation を選択します。

しばらく時間がかかりますが Task の欄にチェックが入れば終わりです。というかエラーがなければOKです。

テストベンチのテンプレートの生成

テストベンチのファイルを最初から作るのは大変ですのでテンプレートを使って作ります。

ModelSim

いよいよ ModelSimの起動です。

Quartus Prime Lite Edition > Tools > Run Simulation Tool > RTL Simulation を選択します。

もしも ModelSimが起動しないときは((たとえばPATHが通っていないなど)

Tools > Options > EDA Tool Options を選択して、現れた表の一番下にある ModelSim の欄に表示がなされていなければ 右はしの …. をクリックして

C:\intelFPGA_lite\18.1\modelsim_ase\win32aloem\

を探します。 右端の \  は忘れずに。

これで

再度 Quartus Prime Lite Edition > Tools > Run Simulation Tool > RTL Simulation を選択します。

ModelSimが起動しますので

図のように左端の下にあるLibraryを選択して rtl_work を選択して中にある SEG7DEC_vlg_tst を右クリックして Edit を選択します。

その中の以下の項目にテストする内容を追加します。

————————————————————-

initial

begin

// code that execut

es only once 

// insert code here –> begin

// –> end

$display(“Running testbench”);  

end

—————————————————————  

テストする内容の追加

————————————————————-

initial 

begin

// code that executes only once

// insert code here –> begin

#100

SW = 4’b0001;

#150

SW = 4’b0011;

#100

SW = 4’b1000;

#100

SW = 4’b0111;

#150

SW = 4’b1001;

#100

SW = 4’b1110;

#100

SW = 4’b1111;

#100

SW = 4’b0000;

#100

// –> end

$display(“Running testbench”);    

end

—————————————————————

残りの部分は全てコメントアウトします。

//always

// optional sensitivity list

// @(event1 or event2 or …. eventn)  

//begin

// code executes for every event on sensitivity list

// insert code here –> begin

//@eachvec;

// –> end

//end

とします。

Save します。

再び

Library > rtl_work > SEG7DEC_vlg_tst

を右クリックして

Recompile を選択します。エラーがなければ先に進みます。

再び

SEG7DEC_vlg_tst を右クリックして

Simulate を選択します。Yesをクリックします。

ModelSimの図の下にWave がありますのでそこをクリックします。

SEG7DEC_vlg_tstのファイルの代わりにWave-Defaultが表示されますので、そこの観測したい信号を追加します。

Objects > SW を選択して右クリックし Add Waveを選択します。

同様に HEX0 も右クリックして Add Waveを選びます。

シミュレーションの実行

ModelSim > Simulate >  Run-All

結果は

となりました。

これを今度は実機で確かめたいと思います。

コンフィグレーション

実際に動作の確認をするには

コンフィグレーションを行う必要があります。

コンフィグレーションの起動は

Quartus prime Lite Edition > Tools > Programmer です。

Hardware Setupの項が No Hardwareになっていると動作しませんので、ここで

Hardware Setupを選択してCurrently selected hardware:の項で、USB-Blaster を選びます。なおdriverをインストールしていないと選択できません。driverのインストールについては教科書に説明がありますのでそちらをご覧下さい。

次に Start を選択するとDE10-liteにデータがロードされます。

スライドSW0~SW3をhexで入力すると7 segmentが0~8まで表示されます。

教科書の2-2のみでは初心者にとっては、動作させるまでの手続きがすべて書いていないため動作確認できるまでには大変でした。 

コメント