54
1 © 2012 The MathWorks, Inc. FPGAをターゲットとした モーター制御系のモデルベースデザイン 株式会社エルセナ 技術第1古村 正幸 MathWorks Japan インダストリーマーケティング部 柴田 克久

FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

1© 2012 The MathWorks, Inc.

FPGAをターゲットとした モーター制御系のモデルベースデザイン

株式会社エルセナ

技術第1部古村

正幸

MathWorks Japan インダストリーマーケティング部

柴田

克久

Page 2: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

2

Agenda

前半

– Introduction (MathWorks)

本セッションの目標

なぜモデルベースデザインなのか?

MATLAB/SimulinkによるモデルベースデザインとFPGA開発

後半

– FPGAをターゲットとしたモーター制御の モデルベースデザイン(エルセナ様)

Page 3: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

3© 2012 The MathWorks, Inc.

Introduction

MathWorks Japan インダストリーマーケティング部

柴田

克久

Page 4: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

4

本セッションの目標は…..

FPGAをターゲットとしたモーター制御をモデルベースで

開発してみましょう!

プロセッサターゲットへの実装と比較してみましょう!

Page 5: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

5

従来の開発フローの課題

実機検証パラメータ適合

実機検証パラメータ適合

システム設計(ハード/ソフト)

システム設計(ハード/ソフト)

要求分析要求分析

ユニット設計ユニット設計

実装実装

ユニット検証ユニット検証

製品認証製品認証

ハード製作ハード製作

紙ベースの仕様書曖昧な記述要求仕様の誤解や不整合

を誘発仕様ミスのチェックが困難

実機検証の限界ハード/ソフトの協調設計・

全体最適化が困難検証作業の前倒しが困難

で手戻り多発テストの自動化・繰り返しが

困難実験・計測・再現が困難な

問題(極限テストや異常テス

ト等)

実機・試作機製作高コスト・工数大再利用が困難

ハンドコーディングプログラマ依存の品質大規模化による工数増大

Page 6: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

6

モデルベースデザインとは?

構想・設計・試作・検証といった開発プロセスをモデル& シミュレーションに基づき実施する開発手法

シミュレーション

による設計プラント解析

コントローラ設計

制御系検証

モデルからの

自動コード生成リアルタイムシミュレーション

用コード生成

量産用組込みコード生成

C/C++ HDL

実機/モデルを統合

したテスト・検証リアルタイム

シミュレーション

モデル生成コード検証

モデリング

「実行可能な仕様書」

プラントモデル

コントローラモデル

プラントモデル:制御対象の静/動

特性を表現したモデル

コントローラモデル:制御器・制御

アルゴリズムを表現したモデル

Page 7: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

7

ユーザー様の声:

自動車業界

アイシン・エィ・ダブリュ株式会社

久保様, 「JMAAB活動紹介」, JMAAB Open Conference 2009

Page 8: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

8

MATLAB/SimulinkによるFPGA開発の利点

モデルによるシミュレーション– “実行可能な仕様書”モデルによる情報共有

– 実機動作前の十分な机上検討による品質向上

アルゴリズムやシステムモデルからHDLを自動生成

– 手書きコーディングによるエラーを抑制し、記述工数を削減

– コード品質の均一化

– モデル⇔コード間のトレーサビリティ

モデル、コード、実機を統合した検証

– 異なる設計環境間でやり取りされる情報の一貫性を維持

– モデルを再利用したテストベンチで検証を効率化

– FPGA開発ツールとの親和性の高い連携

Page 9: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

9

ブロック線図ベースGUI

時間ベースのシミュレーション– 複雑なデータフロー/制御ロジックを

見やすい形で記述

– フィードバックループ

– 遅延の挿入

– マルチレートデジタル信号

– 並列処理の表現

構造を維持しながら固定小数点化

高速なシミュレーション

「実行可能な仕様書」モデルをFPGA 設計・実装に活用

モデルによるシミュレーション Simulink

Page 10: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

10

モデル上で設計を詳細化 Simulink

実ハードウェア回路を考慮したモデルに詳細化

– パイプライン処理

– 演算器のリソースシェアリングの設定

– ターゲットのアーキテクチャを考慮し、実現手段を選択

(例:Sin/Cos演算:LUT or CORDIC)

Page 11: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

11

アルゴリズムやシステムモデルからHDL自動生成 HDL Coder

ターゲット依存しない

VHDL/Verilog生成

– VHDL (IEEE1076-1993)– Verilog (IEEE1364-2001)

テストベンチ生成– VHDL/Verilogテストベンチ

– MATLABテストベンチ

– Simulinkテストベンチ

FPGA開発ツールとの連携

–ターンキーワークフロー

汎用FPGAに容易に実装

SimulinkMATLAB

Verilog / VHDL

Page 12: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

12

設計ターゲットに応じて最適なエントリを選択 HDL Coder

データパス:Simulinkブロック、MATLAB Functionブロック

コントロールロジック:Stateflow、MATLAB Functionブロック

既存IP(HDL):Cosimulationブロック、BlackBox機能

Data PathAlgorithm

Data PathAlgorithm

Control LogicCPU, Controller, Bus IFControl Logic

CPU, Controller, Bus IF

SimulinkMATLAB

Page 13: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

13

モデル⇔

HDLコード間のトレーサビリティ HDL Coder / Simulink Verification and Validation

リソース数(乗算、加算、

レジスタ、RAMなど)

リソース数(乗算、加算、

レジスタ、RAMなど)

HDLプロパティによる

最適化結果

HDLプロパティによる

最適化結果

VHDL/Verilog(HTLM形式で表示)

VHDL/Verilog(HTLM形式で表示)

モデルの表示モデルの表示

VHDL/Verilog コード

VHDL/Verilog コード

VHDL/Verilog(HTLM形式で表示)

VHDL/Verilog(HTLM形式で表示)

モデル上の名前を継

承(ポート、信号線、

process)

モデル上の名前を継

承(ポート、信号線、

process)

双方向リンク対応箇所を

ハイライト表示

双方向リンク対応箇所を

ハイライト表示

Page 14: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

14

モデル、コード、実機を統合した検証 HDL Verifier

MATLAB/SimulinkとHDLシミュレータ

との協調シミュレーション環境

– ハンドコードHDLの検証

– IPのアルゴリズム検証・評価

– VHDL, Verilog HDL, SystemC, SystemVerilogに対応

– Cadence Incisive, Mentor Graphics Questa/ModelSim

FPGA-in-the-Loop– MATLAB、Simulinkの両方と協調

– モデルの一部をFPGA上で実行

– FPGA上で高速にHDL検証

– カスタムボードにも対応

実装実装

コード生成 検証

SoCVirtual Platform

Processor

C, C++ SystemCVHDL,Verilog

FPGA/ASIC

アルゴリズム検討アルゴリズム検討

システム設計システム設計

Page 15: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

15

HDLシミュレーターとの協調シミュレーション HDL Verifier

MATLAB/Simulinkの両環境に対応

>> cosimWizardでオブジェクトを自動生成

– SimulinkのCo-simブロックだけでなく、MATLABオブジェクトも生成

– System ObjectのストリーミングでMATLABでも高速実行

モデルをテストベンチとして再利用し、HDL検証を効率化

Page 16: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

16

FILS: FPGA-in-the-Loop Simulation HDL Verifier

参照モデル

FILWizardで FILインターフェース

生成

MATLABおよび

Simulinkによる

テストベンチを利用可能

設計が実際のFPGA上で

動作することを確認

Gbit Ethernetで FPGAボードと接続

MATLAB/Simulink環境とFPGAの協調

Page 17: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?

17

FPGA開発ツールとの高い親和性 HDL Coder

HDLワークフローアドバイザ

– FPGAベンダの開発ツールと連携

– モデルチェック、HDL生成、合成・配置配線までを統合

– ターゲット上での実装結果からモデルの修正を示唆

– 最大遅延パス(クリティカルパス)をハイライト

クリティカルパスを表示し て修正すべき点を指示

クリティカルパスを表示し て修正すべき点を指示

Page 18: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 19: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 20: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 21: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 22: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 23: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 24: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 25: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 26: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 27: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 28: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 29: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 30: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 31: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 32: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 33: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 34: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 35: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 36: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 37: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 38: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 39: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 40: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 41: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 42: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 43: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 44: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 45: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 46: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 47: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 48: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 49: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 50: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 51: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 52: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 53: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?
Page 54: FPGAをターゲットとした モーター制御系のモデル …...2 Agenda 前半 – Introduction (MathWorks) 本セッションの目標 なぜモデルベースデザインなのか?