2009-2012 The MathWorks, Inc. HDL Coder HDL Verifier R2006b-R2013a 新機能紹介
R2012a 以降の HDL プロダクト名称変更 Simulink HDL Coder MATLAB からの HDL 生成機能 HDL Coder MATLAB Coder が必須 EDA Simulator Link System Object FIL 新機能追加 HDL Verifier 2
2009-2012 The MathWorks, Inc. HDL Coder ( 旧 Simulink HDL Coder) R2012a から MATLAB コードからの HDL 生成機能追加に伴い 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 ( センサーデータ ) Digital Controller Embedded Processor 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 色 高さなどのオプション 今後 Simulink ブロックで提供予定 Dividers Waves Cursors Names/Labels Analog Display Format Logical transitions 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
2009-2012 The MathWorks, Inc. HDL Verifier( 旧 EDA Simulator Link) R2009b から EDA Simulator Link MQ/IN/DS がマージされ EDA Simulator Link に変更 R2012a から EDA Simulator Link から HDL Verifier に名称変更
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 V5- LX110T, 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 Kintex7 Virtex6 ( Virtex5 Virtex4 Spartan6 Spartan3A-DSP ( Spartan3E * for Turnkey) for FIL) * Only 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