ArmFrogs-ALICE / FPGA Sample Project Manual...

40
ArmFrogs-ALICE / FPGA Sample Project Manual -AES- MN080028-01 製品名称: ArmFrogs-ALICE (SCA, A4/A6) 製品型番: BS080007-000010-00 / BS080007-000011-00 全 14 枚 (本シート含む) ( 添付資料 : 無 )

Transcript of ArmFrogs-ALICE / FPGA Sample Project Manual...

Page 1: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

MN080028-01

製品名称: ArmFrogs-ALICE (SCA, A4/A6)

製品型番: BS080007-000010-00 / BS080007-000011-00

全 14 枚 (本シート含む) ( 添付資料 : 有 無 )

Page 2: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

i

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

目次

1. 適用 ................................................................................................................. 1

1.1. 製品バリエーション ...................................................................................................................... 1

2. 用語集 .............................................................................................................. 1

3. 関連図書 ........................................................................................................... 1

4. 禁止事項 ........................................................................................................... 1

5. 注意事項 ........................................................................................................... 1

6. SoC ................................................................................................................. 2

6.1. STD-A4/SCA-A4 .................................................................................................................... 2

6.2. STD-A6/SCA-A6 .................................................................................................................... 2

7. 開発環境 ........................................................................................................... 3

7.1. 開発ツール .............................................................................................................................. 3

7.2. FPGA コンフィギュレーションデータ ..................................................................................................... 3

8. ハードウェア .......................................................................................................... 4

9. FPGA 構成 ......................................................................................................... 5

9.1. FPGA ブロック図 ........................................................................................................................ 5

9.2. ソースファイル ............................................................................................................................ 5

9.3. IO ピン .................................................................................................................................. 6

9.4. クロック ................................................................................................................................... 6

9.5. リセット ................................................................................................................................... 6

9.6. LED ..................................................................................................................................... 7

9.7. 汎用 IO ................................................................................................................................. 7

9.8. 汎用スイッチ ............................................................................................................................. 7

9.9. 拡張コネクタ ............................................................................................................................ 7

10. AES 暗号機能 ..................................................................................................... 8

10.1. AES 暗号化機能 ...................................................................................................................... 8

10.2. モード .................................................................................................................................... 8

10.3. AES 復号化機能 ...................................................................................................................... 8

10.4. 暗号化動作中表示 LED ............................................................................................................. 8

10.5. 暗号化実行中信号出力 .............................................................................................................. 9

10.6. 暗号化実行周期設定機能 ........................................................................................................... 9

10.7. 暗号機能の使用方法 ................................................................................................................. 10

11. メモリマップ ........................................................................................................... 11

Page 3: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

ii

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12. レジスタ .............................................................................................................. 11

12.1. FPGA Information Register-(0x00) ......................................................................................... 12

12.2. HW Control Register-(0x04).................................................................................................. 13

12.3. External Signals Control Register 1-(0x08) ............................................................................. 14

12.4. External Signals Control Register 2-(0x0C) ............................................................................. 15

12.5. Encryption Setting Register-(0x10) ........................................................................................ 16

12.6. Encryption Control Register-(0x14) ........................................................................................ 16

12.7. Reserved-(0x18) ................................................................................................................. 16

12.8. Reserved-(0x1C) ................................................................................................................. 16

12.9. Text Set Register 1-(0x20).................................................................................................... 17

12.10. Text Set Register 2-(0x24).................................................................................................... 17

12.11. Text Set Register 3-(0x28).................................................................................................... 17

12.12. Text Set Register 4-(0x2C) ................................................................................................... 17

12.13. Encryption Key Register 1-(0x30) .......................................................................................... 18

12.14. Encryption Key Register 2-(0x34) .......................................................................................... 18

12.15. Encryption Key Register 3-(0x38) .......................................................................................... 18

12.16. Encryption Key Register 4-(0x3C) .......................................................................................... 18

12.17. Encrypt Data Register 1-(0x40) ............................................................................................. 19

12.18. Encrypt Data Register 2-(0x44) ............................................................................................. 19

12.19. Encrypt Data Register 3-(0x48) ............................................................................................. 19

12.20. Encrypt Data Register 4-(0x4C) ............................................................................................ 19

13. FPGA データ生成方法............................................................................................. 20

13.1. rbf ファイルの生成方法 ................................................................................................................ 20

14. 使用手順 ........................................................................................................... 23

14.1. 接続 ..................................................................................................................................... 23

14.2. シリアルコンソール ....................................................................................................................... 24

14.2.1. ドライバのインストール .............................................................................................................. 24

14.2.2. ターミナルプログラムの設定 ........................................................................................................ 24

14.3. 起動とログイン .......................................................................................................................... 24

14.4. ネットワーク接続 ........................................................................................................................ 25

14.4.1. IP アドレス設定 .................................................................................................................... 25

14.4.2. 共有フォルダへのアクセス .......................................................................................................... 26

14.4.3. リモートログイン ..................................................................................................................... 27

14.5. 電源 OFF ............................................................................................................................... 28

15. アプリケーション開発 ................................................................................................ 29

15.1. ソフトウェア開発 ......................................................................................................................... 29

15.1.1. サンプルプログラムのコンパイル..................................................................................................... 29

15.1.2. ソースコードの編集................................................................................................................. 29

15.2. FPGA コンフィギュレーションデータの書き換え ......................................................................................... 29

15.3. デバッグ .................................................................................................................................. 30

Page 4: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

iii

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

16. Appendix .......................................................................................................... 31

16.1. SD カードから起動できなくなった場合................................................................................................. 31

16.2. 共有フォルダへのアクセスができない場合 .............................................................................................. 35

16.2.1. ネットワークエラーダイアログが表示される場合 ................................................................................... 35

16.2.2. 資格情報の入力後にエラーが発生する場合 .................................................................................... 35

17. 変更履歴 ........................................................................................................... 36

Page 5: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

1

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

1. 適用

本書は、GopherTec 社製 FPGA ボード ArmFrogs-ALICE 用 FPGA サンプルプロジェクト(DP080034/DP080036)のマニュアルです。

ArmFrogs-ALICE には、搭載する部品が異なるバリエーションがあります。

1.1. 製品バリエーション

表 1-1 に ArmFrogs-ALICE の製品バリエーションを示します。製品バリエーションは製品番号ラベルに記載しており、以降、バリエーションを

表す場合は表 1-1 の略称を使用します。本マニュアル記載のサンプルプロジェクトは SCA 研究用としての使用を考慮した AES 暗号化機能を

搭載した FPGA サンプルプロジェクトですが、いずれのバリエーションでも動作可能です。但し、搭載される FPGA に合致したプロジェクトを使用す

る必要があります。

表 1-1:製品バリエーション

略称 製品番号 用途 搭載 FPGA

STD-A4 BS080007-000000-00 標準品 5CSEBA4U19C8SLN

STD-A6 BS080007-000001-00 標準品 5CSEBA6U19C8N

SCA-A4 BS080007-000010-00 SCA 研究用 5CSEBA4U19C8SLN

SCA-A6 BS080007-000011-00 SCA 研究用 5CSEBA6U19C8N

2. 用語集

本書で使用される用語について、表 2-1 にて説明します。

表 2-1:用語集

用語 説明

SCA Side Channel Attack (サイドチャネル攻撃)

SoC Cyclone V SoC

HPS Hard Processor System (Cyclone V SoC 内の ARM ベースプロセッサ部)

FPGA Field Programming Gate Array (Cyclone V SoC 内の FPGA 部)

0xXX 16 進数表現

0bXX 2 進数表現

3. 関連図書

関連図書を表 3-1 に記載します。

表 3-1:関連図書

図書番号 図書名

MN080014-00 ArmFrogs-ALICE Hardware Manual

DP080034-00 ArmFrogs-ALICE(SCA-A4) Simple AES FPGA Project

DP080036-00 ArmFrogs-ALICE(SCA-A6) Simple AES FPGA Project

4. 禁止事項

ArmFrogs-ALICE 用としてサンプルプロジェクトはボードの購入者に限りご使用下さい。ゴフェルテックの承認なく、ゴフェルテックから提供するデ

ータ類を第三者へ公開・提供することは出来ません。

5. 注意事項

本 FPGA プロジェクトは ArmFrogs-ALICE のサンプルとしての用途であり、動作を保証するものではありません。また、本サンプルの内容は予

告なく変更する場合があります。

Page 6: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

2

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

6. SoC

搭載している SoC の主な仕様を以下に示します。詳細はメーカのデータシート等を参照して下さい。FPGA サンプルプロジェクトは基板に搭載

されている SoC 用を使用して下さい。

6.1. STD-A4/SCA-A4

表 6-1:STD-A4/SCA-A4 搭載 SoC 仕様

項目 内容 備考

メーカ Intel Corporation

シリーズ Cyclone V SoC SE シリーズ

型式 5CSEBA4U19C8SLN

CPU コア Cortex-A9, Single core

Logic Elements 40K

ALMs 15,880

Registers 60,376

M10K memory 2,700 kbit

MLAB memory 231 kbit

Variable-precision DSP blocks 84

18 x 18 multipliers 168

Package U484

Speed Grade 8 Slowest

Operation Temperature Commercial Tj=0 to 85

6.2. STD-A6/SCA-A6

表 6-2:STD-A6/SCA-A6 搭載 SoC 仕様

項目 内容 備考

メーカ Intel Corporation

シリーズ Cyclone V SoC SE シリーズ

型式 5CSEBA6U19C8N

CPU コア Cortex-A9, Dual core

Logic Elements 110K

ALMs 41,910

Registers 166,036

M10K memory 5,570 kbit

MLAB memory 621 kbit

Variable-precision DSP blocks 112

18 x 18 multipliers 224

Package U484

Speed Grade 8 Slowest

Operation Temperature Commercial Tj=0 to 85

Page 7: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

3

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

7. 開発環境

7.1. 開発ツール

FPGA 開発環境を表 7-1 に示します。記載しているバージョンはサンプルプロジェクト作成時のものであり、デバイスが対応していれば他のバー

ジョンも使用可能です。但し、操作内容などが本書に記載している内容と異なる場合があります。

表 7-1:FPGA 開発環境

項目 設定 備考

ツール名 Quartus Prime Lite Edition 無償バージョン

メーカ Intel Corporation 旧 Altera

バージョン Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition

OS Windows 10

Quartus Prime Lite Edition は無償で使用出来る Intel 社の開発ツール(一部、機能制限があります)であり、Intel 社の Web サイトか

らダウンロードしてインストールします。ダウンロードやインストールの詳細は Intel 社の Web サイトを参照下さい。

製品に付属しているサンプルプロジェクトを使用するためには、Sample FPGA Project フォルダ内にあるフォルダ(DP080036-…)を使用する

パソコンにコピーします。Quartus Prime を起動し、File-Open Project...でコピーしたフォルダ内にある ArmFrogs-ALICE.qpf を選択して

開くとサンプルプロジェクトを開くことが出来ます。図 7-1 に Quartus Prime でサンプルプロジェクトを開いた画面を示します。

図 7-1:サンプルプロジェクト

7.2. FPGA コンフィギュレーションデータ

FPGA のコンフィギュレーションは HPS によるコンフィギュレーションのみに対応しており、FPGA コンフィギュレーションファイル(*.rbf)は microSD

カード内に保存して使用します。コンフィギュレーションデータの生成方法は 13 章を参照して下さい。

Page 8: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

4

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

8. ハードウェア

ArmFrogs-ALICE のハードウェア機能ブロックを図 8-1 に示します。各部の詳細については、ArmFrogs-ALICE のハードウェアマニュアルを

参照して下さい。

図 8-1:ハードウェア機能ブロック図

USB HPS

32bit

JTAG JTAG

FPGA

Ethernet PHY

RGMII

UART

Ethernet RJ-45

USB2.0 (Device)

MicroSD SD/SDIO

LED

Pin Header

Pin Header

GPIO (4 bit)

DC Jack (DC5V)

RESET

Power Regulator

I2C

UART/USB

DDR3 (1 GByte)

EEPROM (128 kbit)

GPIO (4 bit)

LED 4 bit

Switch 4 bit

GPIO (4 bit)

Clock

(25 MHz)

RESET BUTTON

Clock (25 MHz)

GPIO (20 bit)

DIFF-GPIO (12 pair)

Power

Switch Internal Powers

External Connector

Power (I/O)

External

Connector

Power (I/O)

Reset

Page 9: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

5

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

9. FPGA 構成

9.1. FPGA ブロック図

FPGA の機能ブロックを図 9-1 に示します。HPS と FPGA はレジスタでのみ接続されており、設定や指示、結果の取得等は全てレジスタを経

由して行います。

図 9-1:FPGA 機能ブロック図

9.2. ソースファイル

Verilog-HDL で記述したソースファイルはプロジェクトフォルダ以下にある「src」フォルダ内に保存しています。表 9-1 にソースファイルの概要を

示します。

表 9-1:HDL ソースファイル一覧

ファイル名 機能

top.v 最上位

registers.v HPS から操作されるレジスタ

enc_ctrl.v 暗号機能の最上位

aes_key_expansion.v ラウンドキー生成機能

aes_subbyte_32b.v 32 bit 入力 SubBytes 処理

key_sbox_table.v Key Expansion 用 Sbox 変換テーブル

aes_enc.v AES 暗号機能のトップファイル

aes_mixcol.v MixColumn 処理

aes_mixcol_body.v MixColumn 処理本体

aes_subbyte_128b.v 128 bit 入力 SubBytes 処理(テーブルを使用)

aes_sbox_table.v AES 暗号用 Sbox 変換テーブル

HPS

Cyclone V SoC

AXI

registers

encode controller

Clock (50MHz)

key expansion

subbyte

Reset

aes encoder

mix columns

alice_qsys

Switch LED GPO

Page 10: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

6

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

9.3. IO ピン

FPGA の IO 接続ピンや I/O Standard はサンプルプロジェクトの制約ファイル(ArmFrogs-ALICE.qsf)等を参照して下さい。

9.4. クロック

FPGA 内のクロックは HPS 部で生成した 50MHz クロックを使用しています。

9.5. リセット

FPGA 内のリセットは HPS 部で生成したリセットを使用しています。このリセットは 50MHz クロックに同期したリセットです。

Page 11: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

7

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

9.6. LED

FPGA によって制御される LED(LED5~LED8)は表 9-2 の機能を組み込んでいます。

表 9-2:LED

LED 機能名 詳細

FPGA1 (LED5) FPGA 動作中 FPGA のリセットが解除され、動作中に 2 回点滅を繰り返し

FPGA2 (LED6) 暗号化実行中 暗号化実行中に点灯

FPGA3 (LED7) レジスタ制御 レジスタ操作によって点灯/消灯が可能

FPGA4 (LED8) レジスタ制御 レジスタ操作によって点灯/消灯が可能

9.7. 汎用 IO

FPGA によって制御される汎用 IO(JP3)は表 9-3 の機能を組み込んでいます。暗号化実行中信号出力詳細は 10.5 章を参照して下さ

い。

表 9-3:汎用 IO

JP3 機能名 詳細

JP3-1 ピン 暗号化実行中

JP3-2 ピン レジスタ制御 レジスタ操作によって H/L 出力が可能

JP3-3 ピン レジスタ制御 レジスタ操作によって H/L 出力が可能

JP3-4 ピン レジスタ制御 レジスタ操作によって H/L 出力が可能

JP3-5 ピン GND -

JP3-6 ピン GND -

9.8. 汎用スイッチ

FPGA に接続されている汎用スイッチ(SW1)は表 9-4 の機能を組み込んでいます。

表 9-4:汎用スイッチ

SW1 機能名 詳細

SW1-1 レジスタ制御 レジスタで ON/OFF を読み取り可能

SW1-2 レジスタ制御 レジスタで ON/OFF を読み取り可能

SW1-3 レジスタ制御 レジスタで ON/OFF を読み取り可能

SW1-4 レジスタ制御 レジスタで ON/OFF を読み取り可能

9.9. 拡張コネクタ

拡張コネクタへは FPGA 信号が直接接続され、レジスタ操作によって出力を操作することが可能です。

Page 12: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

8

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

10. AES 暗号機能

ArmFrogs-ALICE はサイドチャネル攻撃研究用として設計されたボードです。サンプルプロジェクトでは、シンプルな AES 暗号化機能を実装

しています。

10.1. AES 暗号化機能

AES は 128 ビットのみに対応し、SubBytes 処理はテーブルを使用しています。

10.2. モード

Key は FPGA 内部のレジスタに設定することが出来、モードは ECB のみに対応しています。ECB モードであるため、Key Expansion は Key

設定時にのみ動作し、暗号化中には動作しません。

10.3. AES 復号化機能

復号化機能は搭載していません。

10.4. 暗号化動作中表示 LED

暗号化実行中は基板上にある LED6 が点灯します。

図 10-1:LED6(暗号化実行中)

LED6

(暗号化実行中に点灯)

Page 13: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

9

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

10.5. 暗号化実行中信号出力

オシロスコープ等を使用して波形を観測する際のトリガ用信号として、暗号化実行中を示す信号を汎用 IO ピンへ出力しています。

図 10-2:トリガ用信号測定ポイント

暗号化実行中信号は暗号化実行中に Low となる信号です。

図 10-3:暗号化実行中信号

10.6. 暗号化実行周期設定機能

本 FPGA では、暗号化を実行すると停止するまで連続で暗号化を行います。連続して実行する際の暗号化の周期はレジスタで設定すること

が出来ます。

図 10-4:暗号化周期

暗号化周期は Encryption Setting Register(12.5 章)で設定します。レジスタ設定値×20 ns の周期で暗号化を実行します。周期設

定は暗号化を実行していない状態で行って下さい。また、600 ns 以下に設定した場合は正常に動作しない可能性があります。

暗号化実行中

暗号化処理

ラウンド処理 最終処理

JP3-1 (暗号化実行中=Low)

JP3-5,6 (GND)

暗号化実行中信号

暗号化周期

Page 14: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

10

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

10.7. 暗号機能の使用方法

暗号機能の基本的な使用方法を図 10-5に示します。工場出荷時のmicroSDカードにある「sample.c」も併せて参考にして下さい。尚、

暗号化したデータは Encrypt Data Register で読み取ることが出来ます。

図 10-5:暗号機能の使用方法

暗号化周期設定?

開始

Encryption Setting Register 設定

Key 設定?

Encryption Key Register 設定

Encryption Control Register

KSET に 1 を書き込み

Encryption Control Register 読取

KSET=1? Y

N

Text 設定?

Text Set Register 設定

暗号化開始?

Encryption Control Register

ACT に 1 を書き込み

暗号化終了?

Encryption Control Register ACT に 0 を書き込み

終了

Y

N

Y

Y

Y

N

N

N

Y

N

Page 15: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

11

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

11. メモリマップ

HPS から見た FPGA slaves のアドレスマップを表 11-1 に示します。HPS から見た FPGA レジスタのベースアドレスは 0xC000_0000 で

す。サンプルプロジェクトでのレジスタはアドレスの下位 7 ビットのみをデコードしているため、FPGA slaves 領域は全てレジスタ(128 Byte)のエイ

リアスになります。

表 11-1:HPS to FPGA メモリマップ

Base Address Area Target Memo

0xC000_0000 960 MByte レジスタ FPGA slaves

12. レジスタ

本書内で記述するレジスタアクセス記号の定義を表 12-1 に示します。

表 12-1:レジスタアクセス記号定義

記号 定義

× 未使用

R/W リードライト可能

R リードのみ可能

W ライトのみ可能

R/W1C リード可能且つ、1 を書込むことにより 0 クリア

レジスタの一覧を表 12-2 に示します。FPGA slaves 領域内は以下のエイリアスとなります。

表 12-2:レジスタ一覧

オフセット レジスタ 参照 ページ

0x00 FPGA Information Register 12.1 12

0x04 HW Control Register 12.2 13

0x08 External Signals Control Register 1 12.3 14

0x0C External Signals Control Register 2 12.4 15

0x10 Encryption Setting Register 12.5 16

0x14 Encryption Control Register 12.6 16

0x18 Reserved 12.7 16

0x1C Reserved 12.8 16

0x20 Text Set Register 1 12.9 17

0x24 Text Set Register 2 12.10 17

0x28 Text Set Register 3 12.11 17

0x2C Text Set Register 4 12.12 17

0x30 Encryption Key Register 1 12.13 18

0x34 Encryption Key Register 2 12.14 18

0x38 Encryption Key Register 3 12.15 18

0x3C Encryption Key Register 4 12.16 18

0x40 Encrypt Data Register 1 12.17 19

0x44 Encrypt Data Register 2 12.18 19

0x48 Encrypt Data Register 3 12.19 19

0x4C Encrypt Data Register 4 12.20 19

: Reserved - -

0x7C Reserved - -

Page 16: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

12

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12.1. FPGA Information Register-(0x00)

0x00

31-24 DEV[07-00]

23-16 FUN[07-00]

15-8 REV[15-08]

7-0 REV[07-00]

Bit(s) Name Description Access 初期値

31-24 DEV

Target FPGA Device 搭載可能な FPGA バリエーション

0x02 : STD-A6/SCA-A6 0x01 : STD-A4/SCA-A4

R ←

23-16 FUN

FPGA Sample Function

サンプルプロジェクト機能 0x03 : Reserved 0x02 : Simple AES

0x01 : Standard

R 0x02

15-0 REV

FPGA Revision

FPGA レビジョン 0x0001 : 初期リリース版

R ←

Page 17: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

13

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12.2. HW Control Register-(0x04)

0x04

31-24 × × × × × × × ×

23-16 × × × × SW1-4 SW1-3 SW1-2 SW1-1

15-8 × × × × JP3-4 JP3-3 JP3-2 JP3-1

7-0 × × × × LED8 LED7 LED6 LED5

Bit(s) Name Description Access 初期値

31-12 Reserved Reserved × 0

19 SW1-4 SW1-4

1 : ON 0 : OFF

R -

18 SW1-3 SW1-3

1 : ON

0 : OFF

R -

17 SW1-2 SW1-2

1 : ON

0 : OFF

R -

16 SW1-1

SW1-1

1 : ON 0 : OFF

R -

15-12 Reserved Reserved × 0

11 JP3-4 JP3-4

1 : High

0 : Low

R/W 0

10 JP3-3

JP3-3

1 : High 0 : Low

R/W 0

9 JP3-2

JP3-2

1 : High 0 : Low

R/W 0

8 JP3-1

JP3-1 暗号化実行中(ラウンド実行中)に Low

1 : High

0 : Low

R 1

7-4 Reserved Reserved × 0

3 LED8 LED8 (FPGA4)

1 : 点灯

0 : 消灯

R/W 1

2 LED7 LED7 (FPGA3)

1 : 点灯

0 : 消灯

R/W 1

1 LED6

LED6 (FPGA2)

暗号化実行中に点灯 1 : 点灯 0 : 消灯

R 0

0 LED5

LED5 (FPGA1) FPGA 動作中に点滅

1 : 点灯

0 : 消灯

R -

Page 18: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

14

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12.3. External Signals Control Register 1-(0x08)

0x08

31-24 × × × × × × × ×

23-16 × × × × SE20 SE19 SE18 SE17

15-8 SE16 SE15 SE14 SE13 SE12 SE11 SE10 SE09

7-0 SE08 SE07 SE06 SE05 SE04 SE03 SE02 SE01

Bit(s) Name Description Access 初期値

31-20 Reserved Reserved × 0

19 SE20

JP5-B12 シングルエンド信号用として設けている JP5 の信号を制御します。

1 : HIGH

0 : LOW

R/W 1

18 SE19 JP5-B11 R/W 1

17 SE18 JP5-B10 R/W 1

16 SE17 JP5-B9 R/W 1

15 SE16 JP5-B8 R/W 1

14 SE15 JP5-B7 R/W 1

13 SE14 JP5-B6 R/W 1

12 SE13 JP5-B5 R/W 1

11 SE12 JP5-B4 R/W 1

10 SE11 JP5-B3 R/W 1

9 SE10 JP5-A12 R/W 1

8 SE09 JP5-A11 R/W 1

7 SE08 JP5-A10 R/W 1

6 SE07 JP5-A9 R/W 1

5 SE06 JP5-A8 R/W 1

4 SE05 JP5-A7 R/W 1

3 SE04 JP5-A6 R/W 1

2 SE03 JP5-A5 R/W 1

1 SE02 JP5-A4 R/W 1

0 SE01 JP5-A3 R/W 1

Page 19: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

15

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12.4. External Signals Control Register 2-(0x0C)

0x0C

31-24 × × DRX6N DRX5N DRX4N DRX3N DRX2N DRX1N

23-16 × × DRX6P DRX5P DRX4P DRX3P DRX2P DRX1P

15-8 × × DTX6N DTX5N DTX4N DTX3N DTX2N DTX1N

7-0 × × DTX6P DTX5P DTX4P DTX3P DTX2P DTX1P

Bit(s) Name Description Access 初期値

31-30 Reserved Reserved × 0

29 DRX6N

JP4-B22 差動信号用として設けている JP4 の信号を制御します。JP4 への配線は差動信号用としてますが、本サンプルではシングルエンドの出力信号として使用します。

1 : HIGH 0 : LOW

R/W 1

28 DRX5N JP4-B21 R/W 1

27 DRX4N JP4-B19 R/W 1

26 DRX3N JP4-B18 R/W 1

25 DRX2N JP4-B16 R/W 1

24 DRX1N JP4-B15 R/W 1

23-22 Reserved Reserved × 0

21 DRX6P JP4-A22 R/W 1

20 DRX5P JP4-A21 R/W 1

19 DRX4P JP4-A19 R/W 1

18 DRX3P JP4-A18 R/W 1

17 DRX2P JP4-A16 R/W 1

16 DRX1P JP4-A15 R/W 1

15-14 Reserved Reserved × 0

13 DTX6N JP4-B13 R/W 1

12 DTX5N JP4-B12 R/W 1

11 DTX4N JP4-B10 R/W 1

10 DTX3N JP4-B9 R/W 1

9 DTX2N JP4-B7 R/W 1

8 DTX1N JP4-B6 R/W 1

7-6 Reserved Reserved × 0

5 DTX6P JP4-A13 R/W 1

4 DTX5P JP4-A12 R/W 1

3 DTX4P JP4-A10 R/W 1

2 DTX3P JP4-A9 R/W 1

1 DTX2P JP4-A7 R/W 1

0 DTX1P JP4-A6 R/W 1

Page 20: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

16

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12.5. Encryption Setting Register-(0x10)

0x10

31-24 × × × × × × × ×

23-16 × × × × × × × ×

15-8 × × × × × × × ×

7-0 CYC[7-0]

Bit(s) Name Description Access 初期値

31-8 Reserved Reserved × 0

7-0 CYC Encryption Cycle

暗号処理の周期を設定します。暗号化実行中は変更しないで下さい。また、1 回の暗号化実行時間以下に設定した場合には正常に動作しない可能性があります。

R/W 0x20

(640ns)

12.6. Encryption Control Register-(0x14)

0x14

31-24 × × × × × × × ×

23-16 × × × × × × × ×

15-8 × × × × × × × ×

7-0 × × × × × × KSET ACT

Bit(s) Name Description Access 初期値

31-2 Reserved Reserved × 0

1 KSET

Encryption Key Set 1 を書き込むことでラウンドキーを生成します。そのため、設定した Key を適用するた

めには、本ビットに 1 を書き込む必要があります。 ラウンドキー生成中は 1 が読み取られるので、本ビットに 1 を書き込み後、0 になるのを確認してから暗号化を開始して下さい。

R/W 0

0 ACT Encryption Active

1 を書き込むことで暗号化を開始し、0 に設定されるまで連続して暗号化を行いま

す。

R/W 0

12.7. Reserved-(0x18)

本アドレスは Reserved です。

12.8. Reserved-(0x1C)

本アドレスは Reserved です。

Page 21: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

17

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12.9. Text Set Register 1-(0x20)

0x20

31-24 TEXT[031-024]

23-16 TEXT[023-016]

15-8 TEXT[015-008]

7-0 TEXT[007-000]

Bit(s) Name Description Access 初期値

31-0 TEXT TEXT 1

平文設定 1 R/W 0

12.10. Text Set Register 2-(0x24)

0x24

31-24 TEXT[063-056]

23-16 TEXT[055-048]

15-8 TEXT[047-040]

7-0 TEXT[039-032]

Bit(s) Name Description Access 初期値

31-0 TEXT TEXT 2

平文設定 2 R/W 0

12.11. Text Set Register 3-(0x28)

0x28

31-24 TEXT[095-088]

23-16 TEXT[087-080]

15-8 TEXT[079-072]

7-0 TEXT[071-064]

Bit(s) Name Description Access 初期値

31-0 TEXT TEXT 3

平文設定 3 R/W 0

12.12. Text Set Register 4-(0x2C)

0x2C

31-24 TEXT[127-120]

23-16 TEXT[119-112]

15-8 TEXT[111-104]

7-0 TEXT[103-096]

Bit(s) Name Description Access 初期値

31-0 TEXT TEXT 4

平文設定 4 R/W 0

Page 22: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

18

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12.13. Encryption Key Register 1-(0x30)

0x30

31-24 KEY[031-024]

23-16 KEY[023-016]

15-8 KEY[015-008]

7-0 KEY[007-000]

Bit(s) Name Description Access 初期値

31-0 KEY Encryption Key 1

Key 設定 1 R/W 0

12.14. Encryption Key Register 2-(0x34)

0x34

31-24 KEY[063-056]

23-16 KEY[055-048]

15-8 KEY[047-040]

7-0 KEY[039-032]

Bit(s) Name Description Access 初期値

31-0 KEY Encryption Key 2

Key 設定 2 R/W 0

12.15. Encryption Key Register 3-(0x38)

0x38

31-24 KEY[095-088]

23-16 KEY[087-080]

15-8 KEY[079-072]

7-0 KEY[071-064]

Bit(s) Name Description Access 初期値

31-0 KEY Encryption Key 3

Key 設定 3 R/W 0

12.16. Encryption Key Register 4-(0x3C)

0x3C

31-24 KEY[127-120]

23-16 KEY[119-112]

15-8 KEY[111-104]

7-0 KEY[103-096]

Bit(s) Name Description Access 初期値

31-0 KEY Encryption Key 4

Key 設定 4 R/W 0

Page 23: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

19

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

12.17. Encrypt Data Register 1-(0x40)

0x40

31-24 ENC[031-024]

23-16 ENC[023-016]

15-8 ENC[015-008]

7-0 ENC[007-000]

Bit(s) Name Description Access 初期値

31-0 ENC Encrypt Data 1

暗号化データ 1 R 0

12.18. Encrypt Data Register 2-(0x44)

0x44

31-24 ENC[063-056]

23-16 ENC[055-048]

15-8 ENC[047-040]

7-0 ENC[039-032]

Bit(s) Name Description Access 初期値

31-0 ENC Encrypt Data 2

暗号化データ 2 R 0

12.19. Encrypt Data Register 3-(0x48)

0x48

31-24 ENC[095-088]

23-16 ENC[087-080]

15-8 ENC[079-072]

7-0 ENC[071-064]

Bit(s) Name Description Access 初期値

31-0 ENC Encrypt Data 3

暗号化データ 3 R 0

12.20. Encrypt Data Register 4-(0x4C)

0x4C

31-24 ENC[127-120]

23-16 ENC[119-112]

15-8 ENC[111-104]

7-0 ENC[103-096]

Bit(s) Name Description Access 初期値

31-0 ENC Encrypt Data 4

暗号化データ 4 R 0

Page 24: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

20

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

13. FPGA データ生成方法

FPGA コンフィギュレーションは microSD カードに保存した rbf ファイルを使用します(JTAG によるコンフィギュレーションを除く)。以下に、rbf フ

ァイルの生成方法を記します。

13.1. rbf ファイルの生成方法

rbf ファイルは FPGA のコンパイルによって生成される sof ファイルを用いて作成します。

➢ Quartus で Compile Design を実行

Compile Design が完了するとプロジェクトフォルダ下にある[output_files]フォルダ内に sof ファイル(サンプルプロジェクトの

場合は[ArmFrogs-ALICE.sof])が生成されます。

➢ rbf ファイルの生成

Quartus で[File]-[Convert Programming File...]を実行し、sof ファイルから rbf ファイルを生成します。

FPGA のコンフィギュレーションはファイル名が「output_file.rbf」のファイルを使用します。そのため、rbf ファイルのファイル名は

「output_file.rbf」として下さい。

Convert Programming File を実行し、図 13-1 のように設定します。

項目 設定

Programming file type Raw Binary File (.rbf)

Mode Passive Parallel x16

File name output_file.rbf

図 13-1:Output programming file の設定

Page 25: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

21

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

次に、生成した sof ファイル(output_files フォルダ内)を選択して Add します。SOF Data を選択した状態で[Add File…]

をクリックし、output_files フォルダ内にある生成した sof ファイルを選択します。

図 13-2:sof ファイルの Add

sof ファイルのプロパティで圧縮を有効にします。Add した sof ファイルを選択した状態で Properties をクリックし、SOF File

Properties Window の Compression をチェックして圧縮を有効にします。

図 13-3:sof ファイルの Properties 設定

SOF Data を選択した状態で

Add File...をクリックし、sof ファイルを選択

Compression をチェック

sof ファイルを選択

Properties をクリック

Page 26: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

22

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

Generate をクリックして、rbf ファイルを生成します。フォルダを指定しない場合、プロジェクトファルダに生成されます。

図 13-4:rbf ファイルの生成

Generate をクリック

Page 27: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

23

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

14. 使用手順

本章では、ArmFrogs-ALICE の使用準備及び電源投入から電源切断までの手順を説明します。尚、ホスト PC として Windows マシンの

使用を想定しています。

14.1. 接続

電源スイッチが OFF になっている状態で、図 14-1 に示すように SD カードの挿入とケーブル接続を行って下さい。

No 内容 備考

1 AC/DC コンバータ 付属品

2 Ethernet ケーブル CAT5 以上のケーブルを使用して下さい

3 USB ケーブル USB A - microB ケーブル

4 SD カード 付属品

5 電源スイッチ 写真の左が OFF 右が ON

図 14-1:接続図

ArmFrogs-ALICE には Linux(Ubuntu)を搭載していますので、電源スイッチを OFF にする前にシャットダウン

処理(14.5 章参照)が必要です。

電源を接続前に電源スイッチが OFF になっていることを確認して下さい。

2

付属の AC/DCコンバータを使用

LAN 等へ接続

ホスト PC の USB

ポートへ接続

4

3 1

5

Page 28: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

24

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

14.2. シリアルコンソール

14.2.1. ドライバのインストール

ArmFrogs-ALICE のシアルコンソールは、Windows 上の USB 仮想 COM ポート(シリアルコンソールが USB ケーブルを介してホスト PC の

COM ポートにつながっているように見えます)として使用出来ます。

ホスト PC の OS が Windows10 の場合、ArmFrogs-ALICE を接続するとデバイスドライバが自動的にインストールされます。自動的にイン

ストールされない場合(インストール画面が表示されない場合)は Silicon Labs 社の Web サイトから「CP210x USB-UART ブリッジ VCP ドラ

イバ」を検索し、ダウンロード/インストールして下さい。

14.2.2. ターミナルプログラムの設定

ホスト PC にて TeraTerm 等のターミナルプログラムを起動し、シリアルポートに接続します。図 14-2 は TeraTerm を使用した際の接続例

です。

図 14-2:接続時のシリアルポート選択の例

シリアルポート設定を表 14-1 に示します。

表 14-1:シリアルポートの通信設定

項目 内容

Baud rate 115200

Data 8 bits

Parity none

Stop 1 bit

Flow control none

14.3. 起動とログイン

電源スイッチを ON にすると、20~30 秒で Linux が起動します。参考までに、起動時の処理概要(1)~(4)を示します。

1) Preloader、u-boot の起動

2) u-boot により、FPGA コンフィギュレーション実行

3) u-boot により、Linux カーネルイメージロード/実行

4) Linux 起動完了

Linux 起動後、シリアルポートにログインプロンプトが表示されます。表 14-2 のユーザーアカウントを使用してログインして下さい。

表 14-2:出荷時に登録されているユーザーアカウント

ユーザー名 パスワード

user user

Page 29: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

25

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

14.4. ネットワーク接続

ネットワークに接続する際の手順を以下に示します。尚、シリアルコンソールのみを使用する場合にネットワークの接続は必要ありません。

14.4.1. IP アドレス設定

出荷時のネットワーク設定を表 14-3 に示します。

表 14-3:出荷時の IP アドレス

項目 内容

IP アドレス 192.168.0.10

ネットマスク 255.255.255.0

デフォルトゲートウェイ 192.168.0.1

IP アドレスの変更が必要な場合、ネットワーク設定ファイル「/etc/network/interfaces」を書き換えた後、再起動します。以下に手順を示

します。

1) エディタの起動

エディタにて設定ファイルを開きます。以下のコマンドは、vi エディタを使用して設定ファイルを編集するものです。

sudo vi /etc/network/interfaces

interfaces フ ァ イル の 編 集 に は 管 理 者 権 限 が 必 要 です 。 こ のた め 上 記 の 例 で は 「 sudo 」 コ マ ン ド 経 由 で「 vi

/etc/network/interfaces」コマンドを実行しています。尚、コマンド実行時にはパスワード入力を求められますので、「user」を

入力して下さい。

2) 設定ファイルの編集

interfaces ファイルの以下の部分をネットワーク環境に合わせて変更します。

address 192.168.0.10

netmask 255.255.255.0

gateway 192.168.0.1

3) 再起動

変更内容を保存した後、再起動します。

sudo reboot

ホスト PC と ArmFrogs-ALICE のネットワーク部アドレス(表 14-3 の場合、192.168.0 の部分)が異なると通信

出来ませんので、IP アドレスの変更が必要となります。

Page 30: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

26

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

14.4.2. 共有フォルダへのアクセス

ArmFrogs-ALICE 上では Samba サーバが動作しており、ホームディレクトリ(/home/user)を Windows の共有フォルダとしてエクスポー

トしています。以下に、共有フォルダへのアクセス手順を示します。

1) エクスプローラーのアドレスバー(通常はフォルダのフルパスが表示される部分)に「\\192.168.0.10」を入力し、「Enter」キーを

押します。

図 14-3:アドレスバーへの入力

2) 表示された「user」フォルダをダブルクリックすると、以下のダイアログが表示されますので、「ユーザー名」、「パスワード」を入力します。

図 14-4:資格情報の入力ダイアログ

3) 正常にログインできると/home/user ディレクトリの内容がエクスプローラーに表示されます。

図 14-5:共有フォルダの内容表示

Page 31: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

27

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

14.4.3. リモートログイン

SSH を使用してネットワーク経由で ArmFrogs-ALICE にログインすることが出来ます。本章では TeraTerm を使用した場合の例を示しま

す。尚、以下の説明ではネットワーク設定は出荷時設定のままとしています。

1) TeraTerm の「新しい接続」で図 14-6 に示す設定を行ったあと「OK」ボタンを押します。

図 14-6:接続設定

2) セキュリティー警告が表示されるので「続行」ボタンを押します。

図 14-7:TeraTerm のセキュリティー警告

Page 32: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

28

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

3) SSH 認証画面にて、ユーザー名とパスフレーズを入力した後、「OK」ボタンを押します。

図 14-8:SSH 認証画面

4) ログインが正常に完了すると、図 14-9 のようにプロンプトが表示されます。

図 14-9:ログイン後プロンプト

14.5. 電源 OFF

電源を OFF する場合、電源スイッチを OFF にする前にターミナル画面にて以下のコマンドを入力して下さい。

sudo halt

コマンドを入力するとシャットダウン処理が実行されます。以下のメッセージが表示された後、電源スイッチを OFF にして下さい。

System halted.

Page 33: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

29

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

15. アプリケーション開発

15.1. ソフトウェア開発

ArmFrogs-ALICE には GNU C/C++コンパイラ、make 等の開発ツールがあらかじめインストールされていますので、すぐにソフトウェア開発

がスタート出来ます。サンプルプログラムは FPGA レジスタを使用して LED の点灯/消灯を行う「ctrl_led」と AES 暗号機能を実行するサンプル

の 2 種類を用意しています。

15.1.1. サンプルプログラムのコンパイル

ArmFrogs-ALICE には C 言語で記述したサンプルプログラムが格納されています。以下に、サンプルプログラムのコンパイルおよび実行手順を

示します。

1) サンプルプログラムのソースコードディレクトリに移動します

LED 制御サンプルプログラム : cd /home/user/sample/led

AES 暗号機能サンプルプログラム : cd /home/user/sample/aes

2) make コマンドを実行します。

make

3) 実行ファイルが作成されます

LED 制御サンプルプログラム : ctrl_led

AES 暗号機能サンプルプログラム : sample

4) プログラムを実行すると使用方法が表示されます。本プログラムの実行には管理者権限が必要です。搭載されている機能の詳細

についてはソースファイルで確認下さい。

LED 制御サンプルプログラム : sudo ./ctrl_led

AES 暗号機能サンプルプログラム : sudo ./sample

15.1.2. ソースコードの編集

ターミナル画面からソースコードを編集する場合には、vi エディタが使用出来ます。また、14.4.2 章の手順に従って共有フォルダへアクセスし、

ホスト PC(Windows 機)からファイルを直接編集することも可能です。但し、ファイルの編集には EUC の改行コードに対応したエディタを使用し

て下さい。

15.2. FPGA コンフィギュレーションデータの書き換え

FPGA コンフィグレーションデータの書き換え方法について説明します。FPGA コンフィグレーションは、起動時に SD カード上の

「output_file.rbf」ファイルを読み込んで実行されます。FPGA コンフィギュレーションデータの書き換えは「output_file.rbf」ファイルを上書きする

ことで行います。

1) 13 章の手順に従って FPGA コンフィギュレーションデータを作成します。このときファイル名を「output_file.rbf」にして下さい。

2) ホスト PC で共有フォルダを開きます(14.4.2 章参照)。

3) 共有フォルダの「user」ディレクトリ(最上位ディレクトリ)に手順(1)のファイルをコピーします。

4) シリアルコンソールで以下のコマンドを実行し、コンフィギュレーションデータを上書きします。

sudo cp output_file.rbf /mnt/boot

5) 再起動します。

sudo reboot

共有フォルダに「output_file.rbf」を書き込んだ後にコピーする方法を示しましたが、「output_file.rbf」は SD カードに直接書き込むことも可

能です。但し、SD カードに直接書き込む場合は他のファイル(起動ファイル等)を破損してしまわないよう、十分注意して行って下さい。

Page 34: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

30

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

15.3. デバッグ

ArmFrogs-ALICE には「debug」という名前のプログラムが格納されています。これは、物理メモリ空間にコマンドラインからアクセスするための

プログラムであり、FPGA の動作確認を主な目的とするプログラムです。動作不良の原因がソフトにあるのか FPGA にあるのかわからない場合など

の障害切り分けに使用出来ます。

以下コマンドにて起動して下さい。尚、物理メモリ空間にアクセスするために管理者権限が必要となりますので、sudo コマンドを使用します。

sudo ./debug

「debug」プログラム起動後に「?」と「Enter キー」を入力すると、使用方法が表示されます。尚、ソフトウェアのデバッグツールとしては gdb がイ

ンストールされています。

Page 35: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

31

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

16. Appendix

16.1. SD カードから起動できなくなった場合

本章では、ArmFrogs-ALICE 付属の SD カードを出荷時の状態に復元する手順を示します。SD カードの復元には Linux 環境(仮想

Linux マシン等)が必要です。それらの環境は別途準備して下さい。

1) SD カードイメージの準備

ArmFrogs-ALICE 付属ディスク(DVD)の sdimg ディレクトリから Linux 環境の任意のディレクトリに sdimg.tgz をコピー

します。

2) SD カードイメージの展開

以下のコマンドにて sdimg.tgz を展開します。展開後、sdimg という名前のディレクトリが作成されます。

sudo tar xvzf sdimg.tgz

3) SD カード挿入準備

SD カードのデバイス名を調べるため、挿入前のパーティション情報を調べます。以下のコマンドを、SD カード挿入前に実行しま

す。

cat /proc/partitions

以下に実行結果の例を示します。

4) SD カード挿入とデバイス名の確認

SD カード挿入後に、手順 3)と同じコマンドを実行します。

cat /proc/partitions

実行結果を比較することで、SD カードのデバイス情報が確認できます。以下に実行結果の例を示します。

上記の例では赤字の部分が手順 3)の実行結果例との差分です。この場合、SD カード全体のデバイス名は sdc になります。

また SD は sdc1,sdc2,sdc3 の 3 つのパーティションに分割されていることが分かります。

major minor #blocks name

1 0 65536 ram0

・ ・ ・ 11 0 1048575 sr0

8 0 375074048 sda

8 1 370878464 sda1

8 2 1 sda2

8 5 4193280 sda5

major minor #blocks name

1 0 65536 ram0

・ ・ ・ 11 0 1048575 sr0

8 0 375074048 sda

8 1 370878464 sda1

8 2 1 sda2

8 5 4193280 sda5

8 32 15558144 sdc

8 33 1024 sdc1

8 34 16384 sdc2

8 35 15540719 sdc3

ここで調べたデバイス名は以降の手順で使用します。以降の手順で間違ったデバイスに対するオペレーションを行った場

合、デバイスの内容を破壊することがありますので、十分ご注意下さい。

Page 36: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

32

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

5) デバイスのアンマウント

SD カードを挿入すると、自動的にマウントされることがあります。そのような場合は以下のコマンドを実行して、アンマウントして下

さい。以下のコマンドにおいて sdc1~sdc3は、手順 4)で調べたパーティション名です。

sudo umount /dev/sdc1

sudo umount /dev/sdc2

sudo umount /dev/sdc3

6) u-boot の環境変数領域初期化

以下のコマンドにて u-boot の環境変数領域を初期化します。コマンドの「of=/dev/」に続くパラメータに、手順 4)で調べたデ

バイス名を使用します(以下のコマンドは、SD カードのデバイスが/dev/sdc の例)。

sudo dd if=/dev/zero of=/dev/sdc bs=512 count=8 seek=2

7) パーティション分割

SD カードのパーティションを分割するため、fdisk コマンドを実行します。

sudo fdisk /dev/sdc

まず、「p」コマンドを使用して、現在のパーティション情報を表示します。既存のパーティションが存在する場合は、「d」コマンドを

使用してすべて削除します。その後、「n」、「t」コマンドを使用して、パーティション分割/設定します。

デバイス 起動 Start 最後から セクタ Size Id タイプ

/dev/sdc1 2048 4095 2048 1M a2 不明

/dev/sdc2 4096 36863 32768 16M 6 FAT16

/dev/sdc3 36864 31116287 31079424 14.8G 83 Linux

最初のパーティションのサイズを 1Mbyte、タイプ ID を a2 に設定します。2 番目のパーティションのサイズを 16Mbyte、タイプ

ID を 6 に設定します。3 番目のパーティションは 4GByte 以上で、タイプ ID は 83(デフォルト値)に設定します。以下に、コマンド

の実行例を示します。

Page 37: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

33

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

--------------------------------------------------------------------------------

コマンド (m でヘルプ): n Partition type

p primary (0 primary, 0 extended, 4 free)

e extended (container for logical partitions)

Select (default p):

Using default response p.

パーティション番号 (1-4, default 1):

First sector (2048-31116287, default 2048):

Last sector, +sectors or +size{K,M,G,T,P} (2048-31116287, default 31116287): +1M

Created a new partition 1 of type 'Linux' and of size 1 MiB.

--------------------------------------------------------------------------------

コマンド (m でヘルプ): n Partition type

p primary (1 primary, 0 extended, 3 free)

e extended (container for logical partitions)

Select (default p):

Using default response p.

パーティション番号 (2-4, default 2):

First sector (4096-31116287, default 4096):

Last sector, +sectors or +size{K,M,G,T,P} (4096-31116287, default 31116287): +16M

Created a new partition 2 of type 'Linux' and of size 16 MiB.

--------------------------------------------------------------------------------

コマンド (m でヘルプ): n Partition type

p primary (2 primary, 0 extended, 2 free)

e extended (container for logical partitions)

Select (default p):

Using default response p.

パーティション番号 (3,4, default 3):

First sector (36864-31116287, default 36864):

Last sector, +sectors or +size{K,M,G,T,P} (36864-31116287, default 31116287):

Created a new partition 3 of type 'Linux' and of size 14.8 GiB.

--------------------------------------------------------------------------------

コマンド (m でヘルプ): t パーティション番号 (1-3, default 3): 1

Partition type (type L to list all types): a2

Changed type of partition 'Linux' to '不明'.

--------------------------------------------------------------------------------

コマンド (m でヘルプ): t パーティション番号 (1-3, default 3): 2

Partition type (type L to list all types): 6

Changed type of partition 'Linux' to 'FAT16'.

--------------------------------------------------------------------------------

コマンド (m でヘルプ): p Disk /dev/sdc: 14.9 GiB, 15931539456 bytes, 31116288 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x00000000

デバイス 起動 Start 最後から セクタ Size Id タイプ /dev/sdc1 2048 4095 2048 1M a2 不明

/dev/sdc2 4096 36863 32768 16M 6 FAT16

/dev/sdc3 36864 31116287 31079424 14.8G 83 Linux

--------------------------------------------------------------------------------

コマンド (m でヘルプ): w

The partition table has been altered.

Calling ioctl() to re-read partition table.

Syncing disks.

Page 38: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

34

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

8) フォーマット

手順 2)で作成されたディレクトリに移動します。

cd sdimg

以下コマンドを実行して、SD をフォーマットします。

sudo ./format sdc

9) SD カードを抜いた後、再度挿入します。

10) ブートイメージの書込み。

Preloader、u-boot イメージを書き込みます。

sudo ./wrboot sdc

11) FPGA、Linux イメージの書込み

FPGA イメージ(出荷時イメージ)、Linux カーネルイメージ、Linux ルートファイルシステムを書き込みます。

sudo ./instroot sdc

ルートファイルシステムの書込みは、数分かかることがあります。

以上で SD カードの復元は終了です。

Page 39: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

35

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

16.2. 共有フォルダへのアクセスができない場合

16.2.1. ネットワークエラーダイアログが表示される場合

共有フォルダへのアクセスにおいて、図 16-1 に示すエラーダイアログが表示される場合は以下の項目を確認して下さい。

図 16-1:ネットワークエラーダイアログ

1) ArmFrogs-ALICE のネットワーク設定がどのようになっているか(ifconfig 等で確認)

2) アドレスバーへ入力した ArmFrogs-ALICE の IP アドレスが上記で調査した内容と合っているか

3) ArmFrogs-ALICE、及びホスト PC の IP アドレスにおいて、ネットワーク部のアドレスが一致しているか

(ネットマスクが一致しているか、ネットマスクのビットがセットされている部分の IP アドレスが一致しているか)

16.2.2. 資格情報の入力後にエラーが発生する場合

共有フォルダへのアクセスにおいて、「資格情報」の入力、(ユーザー名、パスワード入力)後にアクセスが出来ないことがあります。この場合、まず

ユーザー名、パスワードが正しいことを確認下さい。ユーザー名、パスワードが正しいにも関わらず、アクセス出来ない場合、「資格情報」を削除し

た後、再起動することで問題解決することがあります。以下に、「資格情報」を削除する手順を示します。

1) Windows の「ファイル名を指定して実行」ウインドウから、以下のコマンドを実行して下さい。

rundll32 keymgr.dll KRShowKeyMgr」

2) 図 16-2 のウインドウが表示されますので、ArmFrogs-ALICE の IP アドレスと一致する項目を削除します。

図 16-2:資格情報の管理画面

3) ArmFrogs-ALICE、及びホスト PC を再起動します。

Page 40: ArmFrogs-ALICE / FPGA Sample Project Manual -AES-FPGA内のリセットはHPS部で生成したリセットを使用しています。このリセットは50MHzクロックに同期したリセットです。

MN080028-01

36

ArmFrogs-ALICE / FPGA Sample Project Manual -AES-

17. 変更履歴

Rev. 日付 内容

00 2019.10.24 新規作成

01 2020.01.17

・7.1 章に Quartus でプロジェクトを開くまでの記述を追加

・10.6 章 暗号化実行周期設定機能

周期設定時間の誤記修正 (レジスタ設定値×10ns → レジスタ設定値×20ns)

正常動作させる周期設定の誤記修正 (300ns → 600 ns)

・12.5 章 Encryption Setting Register-(0x10)

Encryption Cycle 初期値の誤記修正 (320 ns → 640 ns)