Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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生成、合成・配置配線までを統合
– ターゲット上での実装結果からモデルの修正を示唆
– 最大遅延パス(クリティカルパス)をハイライト
クリティカルパスを表示し て修正すべき点を指示
クリティカルパスを表示し て修正すべき点を指示