quartus 入門~ - tottori...

54
組込基礎 Quartus 入門 ~ 鳥取大学 工学部 菅原 一孔 2019/10/1

Upload: others

Post on 31-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • 組み込みシステム基礎~ Quartus 入門~

    鳥取大学工学部

    菅原一孔

    2019/10/1 版

  • 初期設定

    22019/10/3

  • 初期設定 ~出力パス,フォントTools → Options

    2019/10/3 3

    MSゴシック,10points

    General -> Fonts

  • プロジェクトの作成

    42019/10/3

  • 保存用のフォルダの作成

    5

    HALFADDER

    エクスプローラでプロジェクト保存用のフォル

    ダを作っておく

    2019/10/3

    Quartus初期画面

  • 新しいプロジェクトの作成

    6

    File → New Project Wizard

    2019/10/3

  • 新しいプロジェクトの作成

    7

    CycloneII

    EP2C5Q208C8

    X:¥myVHDL¥HalfAdder

    プロジェクト名HalfAdder

    2019/10/3

  • 新規VHDLファイルの追加

    8

    File → New → VHDL File

    2019/10/3

  • プログラム例① HalfAdder

    9

    library IEEE;use IEEE.STD_LOGIC_1164.ALL;

    entity HalfAdder isport(A,B:in std_logic;

    S,C:out std_logic);end HalfAdder;

    architecture DATAFLOW of HalfAdder isbeginS

  • VHDLファイルの保存とコンパイル

    10

    File → Save As...

    コンパイル操作とコンパイルレポート

    HalfAdder

    保存するファイル名と回路名は一致させること

    2019/10/3

  • プロジェクトの保存

    11

    File → Save Project

    2019/10/3

  • 保存したプロジェクトの呼び出し

    12

    File → Open Project

    2019/10/3

  • ソースファイルの再表示

    13

    Fileタブ

    ファイルをダブルクリック

    2019/10/3

  • シミュレーション

    142019/10/3

  • シミュレーション入力信号の作成

    2019/10/3 15

    University Program VWF

    File->New

  • シミュレーション信号の選択

    2019/10/3 16

    Insert → Insert Node or Bus

    Node Finder

    Pins: all

  • NodeFinderによる信号の指定

    2019/10/3 17

    信号の指定

  • 信号パターンの設定

    2019/10/3 18

    値の指定

  • シミュレータの選択

    2019/10/3 19

    Simulation→ Option

  • ファンクショナルシミュレーションとタイミングシミュレーション

    2019/10/3 20

    Functional (RTL)シミュレーション• ハードウェアの機能を,レジスタおよび,レジスタ間の論理演算でモデリング

    • 論理演算は,論理演算式と条件分岐やループなどの制御文を使って表す

    • RTL設計の検証は,クロック・サイクルごとの論理動作をシミュレーションすることで実行

    Timing (ゲート・レベル)シミュレーション• ANDやNAND,OR,NOR,NOTなどの論理演算素子と,フリップフロップ(D,SR,JK)などの順序演算素子の組み合わせで,論理回路をモデリング

    • 回路の論理動作だけでなく,各素子や配線で生じる遅延も考慮した論理シミュレーションを行い,論理動作と共にタイミングも検証

  • シミュレーションの実行とその結果の確認

    2019/10/3 21

    シミュレーション結果により回路の動作の確認

    シミュレーションの実行Run Functional Simulation

  • 課題:直接的な記述の FullAdder

    2019/10/3 22

    A B Ci S Co

    0 0 0 0 0

    0 0 1

    0 1 0

    0 1 1 0 1

    1 0 0

    1 0 1

    1 1 0

    1 1 1

    FullAdderの真理値表

    S=

    Co=

    ① 右のFullAdderの真理値表を完成させSとCoをA,B,Ciで表せ

    ② ①で求めたFullAdderをVHDLで記述せよ

    ③ ②のFullAdderが正しく動作することをシミュレーションにより確認せよ

  • シンボルによる回路の入力

    232019/10/3

  • 新しいプロジェクトの設定 FullAdder

    24

    新しいプロジェクトのためのフォルダの準備とVHDLファイルのコピー

    新しいプロジェクトへVHDLファイルの登録エクスプローラでFullAdder

    フォルダを作成し,HalfAdderフォルダのHalfAdder.vhdファイルをコ

    ピーしておく

    FullAdder

    myVHDL¥FullAdder

    HalfAdder.vhd

    2019/10/3

  • HalfAdder (VHDL記述)を回路部品に

    25

    VHDLファイルで記述した回路の部品化

    Files → Create/Update

    2019/10/3

    Create Symbol Files for Current File

  • 回路図の入力

    26

    Files → New → Block Diagram/Schematic File

    2019/10/3

  • 回路部品の登録と呼び出し

    272019/10/3

  • 回路図の描画と保存

    28

    FullAdder

    2019/10/3

  • FullAdder

    292019/10/3

  • シミュレーション結果

    302019/10/3

  • 課題:Adder4

    2019/10/3 31

    これまでに構成したFullAdderを4つ接続し4ビットの加算器を構成せよ.Schematicな記述とする.

    B A

    Co

    Ci S

    A3:0B3:0

    S3:0

    Co

  • 実機 MU200-EK 上での実行

    332019/10/3

  • 初期設定~デバイス~

    2019/10/3 34

    ① Assignments → Device → General

    ② Device & Pin Options

    EP2C5Q208C8

  • 初期設定 ~コンパイル出力ファイル等

    35

    Raw Binary File [.rbf]

    2019/10/3

    Programming Files

    As input tri-stated

    Unused Pins

  • MU200-EK

    36

    テンキー

    ロータリースイッチ

    7Seg LED A~D

    FPGA

    DIP スイッチ

    LED

    2019/10/3 EP2C5Q208C8

  • 各スイッチ

    372019/10/3

    負論理:SWを押すと0,離すと1

  • 7segLEDの構成

    382019/10/3

  • 7segLED

    392019/10/3

  • 7segLEDとPushSWのピンアサイン

    40

    A5 76outp[5]

    A6 77outp[6]

    A7 80outp[7]

    A2 72outp[2]

    A3 74outp[3]

    A4 75outp[4]

    A1 70outp[1]

    SW4 43inp[3]

    SW5 44inp[2]

    SW6 45inp[1]

    SW7 46inp[0]

    2019/10/3

    A0 69outp[0]

  • 回路例② 7セグメントデコーダ seg7dec

    412019/10/3

  • 42

    1.新しいプロジェクト seg7dec の作成2.VHDL により seg7dec を記述3.コンパイル,シミュレーションを実行

    2019/10/3

  • プログラム例 Seg7Dec 1/2

    43

    --MU200-EK 7segLED test program--pushSW to 7segLED 0-9library ieee;use ieee.std_logic_1164.all;entity Seg7Dec isport(inp:in std_logic_vector(3 downto 0);outp:out std_logic_vector(7 downto 0)

    );end Seg7Dec;

    2019/10/3

  • プログラム例 Seg7Dec 2/2

    44

    architecture RTL of Seg7Dec isbegin process(inp) begin

    case inp iswhen "1111" => outp outp outp outp outp outp outp outp outp outp outp

  • ピンアサイメント seg7dec

    45

    Assignments → Pins

    入出力ピン:inp,outp

    2019/10/3

  • ピンアサイメント

    46

    入出力ピン一覧

    ソースファイルに記述しているピン名が表示されているので,ハードウエア構成に従いピン番号を設定する

    2019/10/3

  • PCからPM_MU200EKへダウンロード

    47

    FPGA コンフィギュレーションダウンロードボタンFPGA コンフィギュレーションダウンロードボタンをボードに書込みます。

    FPGA コンフィギュレーションファイル指定ファイル参照ダイアログを表示し、FPGA コンフィュレーションファイルを指定します。

    FPGA コンフィギュレーションファイルはrbf 形式

    2019/10/3

  • 注意:ダウンロードできなくなった場合

    48

    USBケーブルをMU200-EK本体から抜き,再度USBケーブルを接続後,5秒以内に新しいFPGA用のコンフィギュレーションデータをダウンロードする

    2019/10/3

  • 49

    参考:MMS PM_MU200EK Pin Assign Table

    2019/10/3

  • 50

    端子名 I/O ピン番号 信号、名称 備考

    システム

    CLK1 I 23 10MHz 発信器より

    CLK2 I 129 10MHz 発信器より

    RSTN I 206 RESET信号

    CEN I 176 Chip Enable信号 USBマイコンと接続

    CS I 175 Chip Select信号 USBマイコンと接続

    WEN I 173 Write Enable信号 USBマイコンと接続

    SRAMインタフェース

    SRAM_WEN O 15 SRAM Write Enable信号 SRAM(IDT71V416(IDT社))と接続

    SRAM_CSN O 14 SRAM Chip Select信号 SRAM(IDT71V416(IDT社))と接続

    SRAM_OEN O 30 SRAM Output Enable信号 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[0] O 197

    SRAMアドレス

    SRAM(IDT71V416(IDT社))と接続

    SRAM_A[1] O 198 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[2] O 199 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[3] O 200 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[4] O 201 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[5] O 203 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[6] O 205 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[7] O 207 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[8] O 208 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[9] O 1 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[10] O 2 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[11] O 3 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[12] O 4 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[13] O 5 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[14] O 6 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[15] O 8 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[16] O 10 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[17] O 11 SRAM(IDT71V416(IDT社))と接続

    SRAM_A[18] O 12 High Byte Enable SRAM(IDT71V416(IDT社))と接続

    SRAM_A[19] O 13 Low Byte Enable SRAM(IDT71V416(IDT社))と接続2019/10/3

  • 51

    H8インタフェースCYCLONE_A[0] I/O 185

    H8マイコン信号

    H8:44番ピン

    CYCLONE_A[1] I/O 187 H8:43番ピン

    CYCLONE_A[2] I/O 188 H8:42番ピン

    CYCLONE_A[3] I/O 189 H8:40番ピン

    CYCLONE_A[4] I/O 191 H8:39番ピン

    CYCLONE_A[5] I/O 192 H8:38番ピン

    CYCLONE_A[6] I/O 193 H8:37番ピン

    CYCLONE_A[7] I/O 195 H8:36番ピン

    CYCLONE_B[0] O 179

    H8マイコン信号(割り込み信号、テンキー用)

    H8:51番ピン

    CYCLONE_B[1] O 180 H8:52番ピン

    CYCLONE_B[2] O 181 H8:53番ピン

    CYCLONE_B[3] O 182 H8:54番ピン

    USBマイコン(Cypress)インタフェースINIT_DONE I/O 107

    コンフィギュレーション信号

    USBマイコンと接続

    NCONFIG I/O 26 USBマイコンと接続

    RDN I 171 USBマイコンと接続

    IFCLK I/O 170 USBマイコン用バスクロック USBマイコンと接続

    USB_CLK1 I 27 24MHzクロック USBマイコンと接続

    USB_CLK2 I 131 24MHzクロック USBマイコンと接続

    DCLK I 21

    コンフィギュレーション信号

    USBマイコンと接続

    DATA0 O 20 USBマイコンと接続

    CONF_DONE O 123 USBマイコンと接続

    NSTATUS I 121 USBマイコンと接続

    2019/10/3

  • 52

    7セグLED

    SEG_A[0]/FPGA_TP69 O,I/O 69

    7セグ(D5)or

    テストピン

    「7セグ」と「テストピン」両方に接続

    SEG_A[1]/FPGA_TP70 O,I/O 70

    SEG_A[2]/FPGA_TP72 O,I/O 72

    SEG_A[3]/FPGA_TP74 O,I/O 74

    SEG_A[4]/FPGA_TP75 O,I/O 75

    SEG_A[5]/FPGA_TP76 O,I/O 76

    SEG_A[6]/FPGA_TP77 O,I/O 77

    SEG_A[7]/FPGA_TP80 O,I/O 80

    SEG_B[0]/FPGA_TP81 O,I/O 81

    7セグ(D6)or

    テストピン

    SEG_B[1]/FPGA_TP82 O,I/O 82

    SEG_B[2]/FPGA_TP84 O,I/O 84

    SEG_B[3]/FPGA_TP86 O,I/O 86

    SEG_B[4]/FPGA_TP87 O,I/O 87

    SEG_B[5]/FPGA_TP88 O,I/O 88

    SEG_B[6]/FPGA_TP89 O,I/O 89

    SEG_B[7]/FPGA_TP90 O,I/O 90

    SEG_C[0]/SRAM_D[0] O,I/O 92

    7セグ(D9)or

    SRAM

    「7セグ」と「SRAM」両方に接続

    SEG_C[1]/SRAM_D[1] O,I/O 94

    SEG_C[2]/SRAM_D[2] O,I/O 95

    SEG_C[3]/SRAM_D[3] O,I/O 96

    SEG_C[4]/SRAM_D[4] O,I/O 97

    SEG_C[5]/SRAM_D[5] O,I/O 99

    SEG_C[6]/SRAM_D[6] O,I/O 101

    SEG_C[7]/SRAM_D[7] O,I/O 102

    SEG_D[0]/SRAM_D[8] O,I/O 103

    7セグ(D14)or

    SRAM

    SEG_D[1]/SRAM_D[9] O,I/O 104

    SEG_D[2]/SRAM_D[10] O,I/O 105

    SEG_D[3]/SRAM_D[11] O,I/O 106

    SEG_D[4]/SRAM_D[12] O,I/O 110

    SEG_D[5]/SRAM_D[13] O,I/O 112

    SEG_D[6]/SRAM_D[14] O,I/O 113

    SEG_D[7]/SRAM_D[15] O,I/O 114

    2019/10/3

    7segLED A

  • 53

    LED

    LED[0] O 47

    LED

    D7

    LED[1] O 48 D8

    LED[2] O 56 D10

    LED[3] O 57 D11

    LED[4] O 58 D12

    LED[5] O 59 D13

    LED[6] O 60 D15

    LED[7] O 61 D16

    Push SWインタフェースPSW[0] I 43

    Push SW

    SW4

    PSW[1] I 44 SW5

    PSW[2] I 45 SW6

    PSW[3] I 46 SW7

    DIPSWインタフェースDIPSW[0] I 116

    DIP SW

    SW3-0

    DIPSW[1] I 117 SW3-1

    DIPSW[2] I 118 SW3-2

    DIPSW[3] I 119 SW3-3

    DIPSW[4] I 120 SW3-4

    DIPSW[5] I 127 SW3-5

    DIPSW[6] I 128 SW3-6

    DIPSW[7] I 133 SW3-7

    2019/10/3

  • 54

    Flash/USBインタフェースFA[0] I 144

    Flashアドレス信号or

    USBマイコン信号

    USBマイコンと接続

    FA[1] I 145 USBマイコンと接続

    FA[2] I 146 USBマイコンと接続

    FA[3] I 147 USBマイコンと接続

    FA[4] I 149 USBマイコンと接続

    FA[5] I 150 USBマイコンと接続

    FA[6] I 151 USBマイコンと接続

    FA[7] I 152 USBマイコンと接続

    FA[8] I 160 USBマイコンと接続

    FA[9] I 161 USBマイコンと接続

    FA[10] I 162 USBマイコンと接続

    FA[11] I 163 USBマイコンと接続

    FA[12] I 164 USBマイコンと接続

    FA[13] I 165 USBマイコンと接続

    FA[14] I 168 USBマイコンと接続

    FA[15] I 169 USBマイコンと接続

    FD[0] I/O 134

    Flashデータ信号or

    USBマイコン信号

    USBマイコンと接続

    FD[1] I/O 135 USBマイコンと接続

    FD[2] I/O 137 USBマイコンと接続

    FD[3] I/O 138 USBマイコンと接続

    FD[4] I/O 139 USBマイコンと接続

    FD[5] I/O 141 USBマイコンと接続

    FD[6] I/O 142 USBマイコンと接続

    FD[7] I/O 143 USBマイコンと接続

    2019/10/3

  • 55

    VGA

    VGA_R O 31

    VGAコネクタ

    CN2

    VGA_G O 32 CN2

    VGA_B O 33 CN2

    VGA_H O 34 CN2

    VGA_V O 35 CN2

    ロータリーSW

    RSW[0] I 68

    Rotary SW

    SW2

    RSW[1] I 67 SW2

    RSW[2] I 64 SW2

    RSW[3] I 63 SW2

    テストピンFPGA_TP37 O 37

    テストピン

    テストピンと接続

    FPGA_TP39 O 39 テストピンと接続

    FPGA_TP40 O 40 テストピンと接続

    FPGA_TP41 O 41 テストピンと接続

    RCA

    RCA O 36 RCAピンジャック J1

    JTAGインタフェースTCK I/O 18

    JTAGTDO I/O 16

    TMS I/O 17

    TDI I/O 19

    ブザーインタフェースBZ O 115 ブザー BZ1

    2019/10/3