HDL Coder - MathWorks

HDL Coder
HDL Verifier
R2006b-R2013a 新機能紹介
®
©2009 - 2012 The MathWorks, Inc.
®
®
®
R2012a以降のHDLプロダクト名称変更
Simulink
HDL Coder
MATLABからの
HDL生成機能
HDL Coder
※MATLAB Coderが必須
EDA
Simulator Link
System Object
FIL新機能追加
HDL Verifier
2
®
®
R2012aからMATLABコードからのHDL生成機能追加に伴いHDL Coderに名称変更
©2009 - 2012 The MathWorks, Inc.
HDL Coder
(旧Simulink HDL Coder)
®
®
対応ブロック関連(1/2)
 サポートブロック
 R2007a: Sign
 R2007b: Unit Delay Enabled , Divide, sqrt, Rate Transition,
Up/DownSample, Dual Port RAM
 R2008a: Discrete-Time Integrator, conj, reciprocal, FIR Decimation
Filter, Discrete FIR Filter, CIC Decimation Filter, NCO, Sine Wave,
Saturation, Simple Dual Port RAM, Single Port RAM, PN Sequence
Generator
 R2008b: CIC Interpolation Filter, FIR Interpolation Filter, LMS Adaptive
Filter, Extract Bits, DocBlock, FFT, HDL Counter, Bitwise Operator
 R2009a: Saturation Dynamic, Go To, From, Biquad Filter, Enabled
Subsystem
 R2009b: Streaming FFT, Triggered Subsystem, Lookup Table(n-D),
Prelookup, Direct Lookup Table(n-D), Discrete FIR Filter
5
®
®
対応ブロック関連(2/2)
 サポートブロック
 R2010a: Trigonometric Function(CORDIC sin, cos, sincos), Reset付き
Delay, Reset& Enable付きDelay, PID, Repeat, BPSK
Modulator/Demodulator, M-PSK Modulator/Demodulator, QPSK
Modulator/Demodulator, Convolutional Interleaver/Deinterleaver,
Viterbi Decoder
 R2010b: FIFO, QAM Mod/Demod, General Multiplexed
Interleaver/Deinterleaver, Convolutional Encoder
 R2011a: cos+jsin, Magnitude-Angle to Complex, Global Goto/From
 R2012a: Discrete Transfer Fcn, Bus Creator/Selector, CRC Generator,
Programmable Filter, PID/Integrator with reset
 R2012b: RS Encoder/Decoder HDL Optimized, State Transition Table
 R2013a: NCO HDL Optimized, Bias, Relay, Dot Product, 複数入力の
MinMax, 符号有無の異なる3入力以上の加減算器
6
®
®
対応System Object
 サポートSystem Object
 R2012a: comm.BPSKModulator, PSKModulator, QPSKModulator,
ConvolutionalDeinterleaver, ConvolutionalInterleaver, ViterbiDecoder,
dsp.Delay, Maximum, Minimum
 R2012b: comm.BPSKDemodulator, QPSKDemodulator,
PSKDemodulator, RectangularQAMDemodulator,
RectangularQAMModulator , dsp.BiquadFilter, hdlram
 R2013a: comm.HDLCRCGenerator, comm.HDLCRCDetector,
comm.HDLRSEncoder, comm.HDLRSDecoder, dsp.HDLNCO
7
®
®
Programmable Filterに対応したDiscrete FIR
Filterブロック(DSP System Toolbox)
より使いやすくなった
HDLブロックプロパティ
8
®
®
最適化関連
 R2010b:リソースシェアリングに対応
 R2011a:リソースシェアリング機能においてフィードバックループ(IIRフィル
タなど)に対応
 R2011a:複数パスの遅延の調整
 R2011b:中間信号の最小化、Interpolation FilterのSerial/DA対応
Serial Implementationでの乗算器のPipeline対応
 R2012a:Tree構造のAdder/Multiplier/MinMaxに対して分散Pipeline対応、
Serial ArchitectureのFIRフィルタにおいて複素信号対応、
サブシステム階層のフラット化(リソースシェアリング範囲の拡大)、
MATLABコードのループやベクタに対するStreaming対応
 R2012b:Biquad Filterブロックがリソースシェアリングに対応、
Discrete FIR Filterブロックがマルチチャンネル対応
 R2013a:シングルレートでのリソースシェアリング、
MATLAB Functionブロック内のリソースシェアリング
Sqrt, 1/Sqrt, 除算をシングルレートのままコード生成
複素乗算器がシェアリング、Distributed Pipeliningに対応
Delay Balancingをサブシステムごとに設定可能
9
®
®
各種最適化機能
HDL Coder
 パラメータ設定による時分割リソースシェアリング⇒小面積化
 分散パイプライン自動挿入⇒クロック高速化、モデルの再利
用性向上
 RAMマッピング⇒DelayブロックをBRAM用HDL生成
Distributed
Pipelining
On
RAM
Mapping
On
RAM
12
®
®
シングルレートのシェアリング
1000 cycles
制御対象
100 KHz
(センサーデータ)
Embedded
Processor
Digital
Controller
FPGA
clk = 100MHz
マルチレート
(従来)


シングルレートで
サイクル数(レイテンシ)
を指定
13a
面積最適化のためにオーバー
クロッキングが不要
StreamingとSharingに対応
13
®
®
生成コードのバリエーション関連
 R2008b/9a:Digital Filterから生成するアーキテクチャの追加
 CSD, FCSD, Distributed Arithmetic
 R2007b:マルチレートモデル対応
 R2008a:複素データ対応
FPGA ベンダツールとのインタフェース機能の追加
 R2008b:Constantブロックでの ’Z’(High-Z) ,’X’(不定)値に
対応
 R2009a:ROMコードの生成に対応
 R2012a:Altera/XilinxのFloating Point演算ライブラリに対応
 R2013a:AXI4-Lite, AXI4-Stream Videoインターフェース生成
14
®
®
FPGAベンダFloating Pointライブラリへの
自動マッピング
 Altera Megafunction Floating Pointライブラリ
 Xilinx LogiCORE IP Floating Pointライブラリ
 Single/Doubleサポート
15
®
®
FPGAベンダFloating Pointライブラリへの
自動マッピング
デバイス固有の
リソース情報
自動的に必要な
パイプラインを挿入
16
®
®
対応しているFloating Pointライブラリ
Xilinx LogiCORE
Altera Megafunction
17
®
®
HDLプロパティ設定






HDLコントロールファイルの自動生成(R2008a)
パラメータでの入出力パイプライン処理に対応(R2008a)
分散パイプライン処理に対応(R2008b)
Global Over Sampling Clockに対応(R2009b)
Simulinkサブシステムの分散パイプライン対応(R2010a)
HDLコントロールファイルを廃止し、GUIで設定が可能
(R2010b)
 Multi Clockに対応(R2011a)
18
®
®
HDLプロパティ設定
 MATLAB FunctionブロックにおけるPersistentをRAMにマッピ
ング(R2011b)
 コメントヘッダのTime/Dateスタンプの無効化(R2011b)
 リユースサブシステムに対するチューナブルパラメータ設定
(R2011b)
 MATLAB Functionに対する分散パイプライン対応(R2011b)
 HDLプロパティのファイル保存(R2012b)
19
®
®
エントリー関連
 Variable-Step Solverに条件付きで対応(R2008a)
 Embedded MATLAB Functionからのコード生成に対応(R2007a)
 Embedded MATLAB Functionでのデフォルトデータタイプ設定
に対応(R2008a)
 Stateflowでの固定小数点データタイプに対応(R2007a)
 Stateflowの真理値表からのコード生成に対応(R2008b)
 Stateflowでのイベント入力に対応(R2009b)
 MATLAB Functionブロックにおける構造体データタイプからの
コード生成に対応(R2011b)
 MATLAB-to-HDLフローからMATLAB Functionブロック生成
(R2012b)
 MATLAB-to-HDLフローからSystemGenerator BlackBoxブロッ
ク生成(R2012b)
20
®
®
テストベンチ関連
 設定パラメータの追加(R2008a)
 テストベンチのデータ部をファイル分割(R2008a)
 HDL検証用Simulinkモデル(EDA Simulator Linkモデル)の自
動生成機能(R2009b)
 ワークフローアドバイザでモデルテストベンチと実行を自動化
(R2012b)
 データにTextI/Oを使ったテストベンチ生成(Verilog)(R2013a)
21
®
®
ユーザビリティ
 MATLAB EditorのVHDL/Verilog Syntaxへの対応(R2009b)
 レポートファイルの生成とモデルとのリンク機能の追加
(R2009a)
 要求ドキュメントとのリンク機能の追加(R2009b)
 Goto/Fromブロックの階層をまたいだ使用に対応(R2011a)
 下位階層サブシステムからのコード生成対応(R2012a)
 SystemGeneratorブロックを含むモデルからのHDL生成が自
動化に対応(R2012a)
 Bus信号に対応(R2012a)
 Simulinkモデルエディタの改善(Simulink機能)(R2012b)
 コード生成レポートにモデルのWeb表示(R2012b)
 Logic Scope(DSP System Toolbox機能)(R2013a)
22
®
®
Simulink R2012bの画面







タブブラウザ風の画面構成により階層間の移動が容易に
エディタのレスポンス向上:パラメータ画面開く、回転、配線
配線のルーティングアルゴリズムを改善
シミュレーションのステップバック機能追加
保存形式の変更
ブロックのコメントアウト機能
モデルの解析機能
 アップデートアドバイザ
 パフォーマンスアドバイザ
などなど多数
23
®
®
Stateflow新機能:状態遷移表
 R2012bから状態遷移図だけでなく状態遷移表が追加
 抜け・漏れの確認が容易
>> sf_seqrec_STT
遷移条件
遷移アクション
遷移先状態
状態アクション
24
®
®
コード生成レポートにモデルのWeb表示
 モデルの階層間の移動、パラメー
タの表示
 VHDL/Verilogソースとのリンク
 非MATLAB環境で一般的なブラウ
ザを利用して表示可能
 デザインレビューなどに活用
 Simulink Report Generatorライセ
ンスが必要
25
®
®
Logic Analyzer System Object(コード)
複数ロジックデータの表示
 DSP System Toolboxで機能提供
 System Objectコードによる表示
dsp.LogicAnalyzer
 カーソルで所望ポイントの値を表示
 アナログ/デジタル表示
 各種フォーマットでの表示
Binary, Hex, Octal, Signed/
Unsigned decimal
 色、高さなどのオプション
Dividers
Logical
transitions
Waves
 今後Simulinkブロックで提供予定
Cursors
Names/Labels
Analog Display
Format
26
®
®
ワークフローアドバイザ
 HDL Workflow AdvisorでXILINX ISEとの連携(R2010a)
 同Altera QuartusIIとの連携(R2010b)
 ターゲットに開発ボードを追加、コンフィギュレーションファイル
のダウンロード機能を追加(R2011a)
 対応ボード:Speedgoat IO301, 303, 311, 325, ML401, ML402, ML506,
SP605, Spartan-3A DSP1800A, XUP Atlys Spartan-6
 FPGA-in-the-Loopでの検証メニュー追加(R2011b)
 Alteraの開発ボードがターンキー機能に対応(R2012a)
 対応ボード: Arria II GX FPGA dev kit, Cyclone III FPGA dev kit,
Cyclone IV GX FPGA dev kit, DE2-115 dev board (from Terasic)
 カスタムボード対応(FIL, Turnkey)(R2012b)
27
®
®
MATLABからHDL生成関連
 R2012a:MATALBからHDL生成機能の追加
 R2012b:固定小数点化における静的レンジ解析、シミュレーシ
ョンにおけるレンジのヒストグラム解析機能追加
ユーザ指定によるパイプライン挿入に対応
28
®
®
R2012a新機能
MATLABからのHDLコード生成
 浮動小数点MATLABコード⇒固定小数点化⇒HDL生成
 Advisor機能により統合されたGUIからコード生成
29
®
®
MATLAB⇒HDL生成フロー
アルゴリズムとテストベンチを作成
GUI起動
自動固定小数点化(テストベンチ基準)
HDLプロパティ設定(最適化、スタイル)
 最適化機能
• RAM Mapping
• Distributed Pipelining
• Resource Sharing
• Loop Unrolling
HDL生成
論理合成(QuartusII/ISE連携)
30
®
®
MATLABコードからMATLAB
Functionブロックの生成
 MATLABファイル⇒HDL
のワークフローで
浮動⇒固定小数点化
 固定小数点化した
MATLABコードから
Simulinkで使用するため
のMATLAB Functionブロ
ックを自動生成
31
®
®
MATLABコードからHDL生成における浮動=>固
定小数点変換新機能
シミュレーション結果による
最小/最大値の計算
静的解析による各変数の
最小/最大値の計算
シミュレーション結果から
ヒストグラムを表示、
カバーするレンジの設定が可能
32
®
®
R2009bからEDA Simulator Link MQ/IN/DSがマージされEDA Simulator Linkに変更
R2012aからEDA Simulator LinkからHDL Verifierに名称変更
©2009 - 2012 The MathWorks, Inc.
HDL Verifier(旧EDA Simulator Link)
®
®
HDL Cosimulation











Cosimブロックの無効化スイッチ追加(R2007a)
TCL送信のためのMATLAB関数tclHDLSim追加(R2007b)
TimeScaleFactorの自動計算機能追加(R2008b)
Direct Feedthroughにより組み合わせ回路だけの検証に対応
(R2010a)
Batch, CLI(Command Line Interface)モードの追加(R2010a)
edaCosimAssist機能によりブロック生成をサポート(R2010b)
VCD Fileブロックがアクセラレータに対応(R2010b)
64bit Windowsに対応(R2010b)
edaCosimAssist機能が名称変更してcosimWizardに(R2011a)
ModelSim 10.0a, 6,6dに対応(R2011b)
可変ステップ連続ソルバに対応(R2011b)
34
®
®
HDL Cosimulation
 SystemObjectを使ったMATLABコードでのコシムに対応
(R2012a)
 ModelSim 10.0cに対応(R2012a)
 Simulink Design Verifierとの連携(R2012a)
 HDL Coderのワークフローアドバイザでモデルテストベンチと
実行を自動化(R2012b)
 MATLABワークフローアドバイザでモデルテストベンチの生成
35
®
®
Simulink Design Verifierとの連携
フルカバレッジテストベクタ生成
自動生成
Simulink Verification &
Validationによる
カバレッジレポート
フルカバレッジの
テストベクタを自動生成
36
®
®
Simulink Design Verifierとの連携
フルカバレッジテストベクタ生成
フルカバレッジの
テストベクタ
HDLシミュレータでカバレ
ッジオプションを追加する
ことでカバレッジ測定
協調
シミュレーション
自動生成(HDL Coder)ま
たはマニュアル作成のテス
トベンチモデル
37
®
®
MATLAB System Objectによるシミュレーション
HDL Verifier新機能
 System Object:高速ストリーミング処理が可能なMATLAB
オブジェクト
 HDL協調シミュレーションをストリーミングで高速実行
 >> cosimWizardでオブジェクトを自動生成
38
®
®
FPGA-in-the-Loop Simulation(FIL)
 FPGAボード高速動作でのプロトタイプ検証(R2011a)
 Xilinx対応ボード:Xilinx SP601, SP605, XUP Atlys
Spartan-6, ML605, ML505, ML506, ML507, XUP V5LX110T, ML401, ML402, ML403
 Altera対応ボード(R2012a):Arria II GX FPGA dev kit,
Cyclone III FPGA dev kit, Cyclone IV GX FPGA dev kit,
DE2-115 dev board (from Terasic), Nios II Embedded
Evaluation Kit, Altera DSP Stratix V(R2013a)
FPGA
in-the
loop
39
®
®
FPGA-in-the-Loop Simulation(FIL)
 R2012b:カスタムボード対応
SystemObjectに対応
1000Baseだけでなく100 Base-T Ethernet対応
 R2013a :Altera DSP Dev Kit Stratix Vに対応
MATLABのワークフローアドバイザでFILテストベンチを生成
40
®
®
カスタムボード設定用GUI
 Wizardでカスタムボードの設定・登録が可能に
 FPGA-in-the-LoopとFPGA Turn Keyに対応
>> fpgaBoardManager
41
®
®
対応FPGAボードの追加
 Altera FPGA Families:





Cyclone III
Cyclone IV E
Cyclone IV GX
Arria II GX
Stratix IV
 Xilinx FPGA Families







*Only
Kintex7
Virtex6 (
for Turnkey)
Virtex5
Virtex4
Spartan6
Spartan3A-DSP (
for FIL)
Spartan3E*
supported in Turnkey Workflow
42
®
®
Alteraボード用HSMCカード対応
 Terasic Ethernet-HSMC カード対応
 AlteraボードにEthernet用ドーターボードを追加し、FIL実行が可能に
 GMII / RGMII モードに対応
43
®
®
TLM Generator




SystemC TLM2.0に準拠したコード生成に対応(R2010a)
制限を緩和:入力または出力だけのモデルに対応(R2010b)
テンポラルデカップリングに対応(R2010b)
必須オプションの変更(R2013a)
 Simulink Coderが必須オプションに変更、Embedded Coderは不要
44
®
®
Golden Model
45
®
®
Golden Model
Codegen
Virtual Platform
46
®
®
Generated
Cosim Model
Virtual Platform
Cosim
HDL Simulator
47
®
®
Generated FIL
Model
Virtual Platform
FIL
FPGA Development Board
HDL Simulator
48