0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ずっとFPGA初心者(その1:リスタート)

Posted at

FPGA初心者(かつハードウェア素人)が再度トライ

5年前に購入したFPGA評価ボードを長い間ほったからしにしていたのであるが、久しぶりに触ってみたくなので、ついでに記録を残す。

評価ボード

すでに販売中止となっている、Odyssey MAX10 FPGA Eval Kit

開発環境

Alteraはずっと前にIntelに買収されていた。ここから、無料版(Lite)の開発環境一式をDownloadする。(インテルのアカウントが必要だったかもしれない。)

  • Quartus Prime (includes Nios II EDS)
  • ModelSim-Intel FPGA Edition (includes Starter Edition)
  • MAX 10 FPGA device support
    これらすべてを同じフォルダーにダウンロードしておけば、Quartusインストール時に、ModelSimもMax 10関連ファイルも同時にインストールされる。

まずは参考サイト

プロジェクト作成

Quartusを起動。New Project Wizardを用いる。
NewProjectWizard.png
プロジェクト名などを入れ、Empty Projectとする。
NewProjextWizard2.png
NewProjextWizard3.png
Add Filesでは何もせずスキップ。
NewProjextWizard4Skip.png
Odyssey Max10ボードを選択。
NewProjextWizard5.png
EDA Tool Settingsはとりあえず後回し(スキップ)。
NewProjextWizard6Skip.png
作成したプロジェクトのサマリが表示され、プロジェクト作成完了。
NewProjextWizard7Summary.png

VHDLファイル

ボード上の2つのボタンを押したらLEDが点灯、、を実現する。「File」-「New」で「VHDL File」を選択。
FileNewDesignFile.png

btn_led.vhd
library ieee;
use ieee.std_logic_1164.all;

entity btn_led is
 port (
   BUTTON0, BUTTON1:	in std_logic;
   LED0, LED2: 		out std_logic);
end btn_led;

architecture rtl of btn_led is 
begin
   LED0 <= BUTTON0 or BUTTON1;
   LED2 <= BUTTON0 and BUTTON1;
end rtl;

btn_led.vhdとして保存する。記述ミスなどのチェック(Start Analysis & Elaboration)を実施。
Start Analysis & Elaboration.png
問題がなければ、次のように表示される。
Start Analysis & Elaboration Result.png

論理シミュレーション

これを参考に、次のテストベンチファイルをつくる。

testsim.vhd
library ieee;
use ieee.std_logic_1164.all;

entity testsim is
end testsim;

architecture sim of testsim is 
  constant t : time := 1 ns;
  signal BUTTON0, BUTTON1, LED0, LED2 : std_logic;

  component btn_led
    port (BUTTON0, BUTTON1 : in std_logic;
          LED0, LED2	   : out std_logic );
  end component;

  begin
    u1 : btn_led
      port map (BUTTON0 => BUTTON0, BUTTON1 => BUTTON1,	LED0 => LED0, LED2 => LED2);
  push : process begin
    BUTTON0 <= '0'; BUTTON1 <= '0'; wait for t * 100;
    BUTTON0 <= '1'; BUTTON1 <= '0'; wait for t * 200;
    BUTTON0 <= '0'; BUTTON1 <= '1'; wait for t * 300;
    BUTTON0 <= '1'; BUTTON1 <= '1'; wait for t * 400;
    BUTTON0 <= '0'; BUTTON1 <= '0'; wait;
  end process push;
end sim;

Settingでシミュレーションの設定を行う。ModelSim-Alteraを選択し、Test Benchesをクリック。
EDASimulation.png
testbench.png
さきほどのテストベンチファイルを指定、1500ns動作させる。
testbenchsetting11.png

シミュレーション開始

RTL Simulationをクリック。
RTLSimulation.png
すると、ModelSimが起動し、
ModelSimResult.png
のような結果が得られる。

ボードにプログラミング

Pin Plannerを使ってピンアサイン

AssignPinPlanner.png
Odyssey MAX10の回路図によると、LED0はL13、LED2はK12、ボタン0はK13、ボタン1はJ12にアサインされている。たとえば、回路図には

のような記載が見つかる。

PinPlanner.png
のようにアサイン。上述した参考サイトに従って、I/O Standardは1.5Vにした(詳細不明)。

コンフィグレーション

参考サイトに従って、「Single Compressed Image」を選択(「Assignments」->「Device」->「Device and Options」->「Configuration」->「Configuration mode」)。
DevicePinOption.png
SingleCompressedImage.png

コンパイル

StartCompilation.png
終了後のメッセージは次のようなもの。
CompileSuccess.png

ボードにプログラム転送

USB Blasterの互換品利用。Programmerをクリック。

ToolsProgrammer.png

Startをクリックして転送する。
SofProgramSuccess.png

sofファイルはRAMでの動作用、pofファイルはボードの不揮発性領域に書き込んで使用するもの。pofファイルを、Add Filesで選択した場合は、次のように表示される。
pofファイル.png

実験

押して確認するのみ。完了。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?