fpgaをターゲットとした モーター制御系のモデル …...2 agenda 前半 –...

Post on 15-Mar-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1© 2012 The MathWorks, Inc.

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

株式会社エルセナ

技術第1部古村

正幸

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

柴田

克久

2

Agenda

前半

– Introduction (MathWorks)

本セッションの目標

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

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

後半

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

3© 2012 The MathWorks, Inc.

Introduction

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

柴田

克久

4

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

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

開発してみましょう!

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

5

従来の開発フローの課題

実機検証パラメータ適合

実機検証パラメータ適合

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

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

要求分析要求分析

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

実装実装

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

製品認証製品認証

ハード製作ハード製作

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

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

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

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

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

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

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

ト等)

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

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

6

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

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

シミュレーション

による設計プラント解析

コントローラ設計

制御系検証

モデルからの

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

用コード生成

量産用組込みコード生成

C/C++ HDL

実機/モデルを統合

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

シミュレーション

モデル生成コード検証

モデリング

「実行可能な仕様書」

プラントモデル

コントローラモデル

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

特性を表現したモデル

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

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

7

ユーザー様の声:

自動車業界

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

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

8

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

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

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

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

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

– コード品質の均一化

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

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

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

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

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

9

ブロック線図ベースGUI

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

見やすい形で記述

– フィードバックループ

– 遅延の挿入

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

– 並列処理の表現

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

高速なシミュレーション

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

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

10

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

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

– パイプライン処理

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

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

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

11

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

ターゲット依存しない

VHDL/Verilog生成

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

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

– MATLABテストベンチ

– Simulinkテストベンチ

FPGA開発ツールとの連携

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

汎用FPGAに容易に実装

SimulinkMATLAB

Verilog / VHDL

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

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)

双方向リンク対応箇所を

ハイライト表示

双方向リンク対応箇所を

ハイライト表示

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

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

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

15

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

MATLAB/Simulinkの両環境に対応

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

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

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

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

16

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

参照モデル

FILWizardで FILインターフェース

生成

MATLABおよび

Simulinkによる

テストベンチを利用可能

設計が実際のFPGA上で

動作することを確認

Gbit Ethernetで FPGAボードと接続

MATLAB/Simulink環境とFPGAの協調

17

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

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

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

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

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

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

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

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

top related