VHDL/VerilogによるコードベースからSimulinkによるモデルベースへ

Similar documents
アルゴリズム開発からHDL実装へのパス

画像処理回路のASIC実装へ向けたHDL Coder適用事例

SimscapeプラントモデルのFPGAアクセラレーション

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

Presentation Title

AMS Expoコンテンツ

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

SimulinkによるReal-Time Test環境の構築

Microsoft PowerPoint - 01_Vengineer.ppt

PowerPoint プレゼンテーション

Presentation Title

Quartus II クイック・スタート・ガイド

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ

Quartus II クイック・スタートガイド

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

f2-system-requirement-system-composer-mw

MATLAB/SimulinkによるAMS活用事例 ~Mixed-Signal Library 2.0のご紹介~

ModelSim-Altera - RTL シミュレーションの方法

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

Managing and Sharing MATLAB Code

機能検証トレーニング コース一覧

「電子政府推奨暗号の実装」評価報告書

! STEP 2. Quartus Prime のダウンロード WEB ブラウザで以下の URL を開きます 2 ページ中段の Quartus Prime 開発ソフトウェア ライト エディ

回路シミュレータ/MATLABリンク~詳細回路設計におけるシステムレベル検証~

AMS Expoコンテンツ

Microsoft PowerPoint - EMPro_ADS_co_design_draft.ppt [互換モード]

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

制御のためのSimulink入門

VelilogHDL 回路を「言語」で記述する

Microsoft PowerPoint - D2_NEC福井様_発表資料 pptx

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

<4D F736F F F696E74202D C190DD B A CB48D65208E DC58F49205B8CDD8AB B83685D>

Verilog HDL による回路設計記述

Microsoft PowerPoint LC_15.ppt

0630-j.ppt

USRPセットアップ

Simulinkモデル開発における工夫事例

デジタル回路入門

MATLAB EXPO 2019 Japan プレゼン資料の検討

遅延デジタルフィルタの分散型積和演算回路を用いたFPGA実装の検討

Microsoft Word - 実験4_FPGA実験2_2015

Presentation Title

インテル(R) Visual Fortran コンパイラ 10.0

MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~

Quartus II はじめてガイド - EDA ツールの設定方法

MATLAB/Simulinkを利用したモデルベース開発のトレンドと将来展望

Expo 2014

PowerPoint プレゼンテーション

電卓の設計 1

オンチップ・メモリ クイック・ガイド for Cyclone III

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor

ソフトウェア基礎技術研修

商用監視ソフトウェアユーザの Zabbix 移行へ朗報 Zabbix Event Viewer のご紹介 【本邦初公開】

CANapeを用いたラピッドコントロールプロトタイピングのバイパス手法による制御モデル開発

Signal Processing Toolbox

Quartus II はじめてガイド - EDA ツールの設定方法

9 WEB監視

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

JP-2-Develop Websites and Components in AEM v6x_(V3_after QA)_1111

PSIM Version 9

リファレンスアプリケーション RefApp7

IBIS

学生 23 省メモリ指向一枚超解像 アーキテクチャとその FPGA 実装 北海道大学大学院情報科学研究科 大平貴徳 真田祐樹 築田聡史 五十嵐正樹 池辺将之 浅井哲也 本村真人 1

Virtex-6 Clocking

MATLAB EXPO 2015 Japan 次世代モデルベース検証ソリューションで テスト・デバッグ改善

Microsoft PowerPoint - 3.3タイミング制御.pptx

計算機アーキテクチャ

Introduction to System Identification

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

目次 1. CAD インターフェイス (3D_Analyzer&3D_Evolution) ユーザーインターフェイス機能強化 (3D_Analyzer&3D_Evolution)... 3 レポート... 3 クリッピング機能... 4 言語... 4 表示オプション

2/17 目次 I. はじめに... 3 II. 操作手順 (Controlの場合) 断面の作成 寸法測定 異なる断面間の寸法測定 繰り返し処理...11 III. 操作手順 (Verifyの場合) 断面の作成... 1

履歴 修正日 内容 2011/01/18 第 1 版制定 2012/10/ 版 内容 Bee Beans Technologies 社から配布されているネットワーク プロセッサ (SiTCP) のライブラリ使用方法を解説した文書です SiTCP の概要や各信号意味などは別文書 SiTCP

Python によるジオプロセシング スクリプト入門

ディエンベディングとは冶具やケーブルによる観測信号の劣化を S パラメータデータを利用して計算により補正する TX 冶具ケーブル 被測定物の出力 De-Embedding 冶具 ケーブル等の影響を受けた波形 冶具 ケーブル等の S パラメータデータ TX 被測定物の出力 冶具 ケーブル等の影響のない

3. 回路図面の作図 回路図の作成では 部品など回路要素の図記号を配置し 要素どうしを配線するが それぞれの配線には 線番 などの電気的な情報が存在する 配線も単なる線ではなく 信号の入力や出力など部品どうしを結び付ける接続情報をもたせることで回路としての意味をもつ このように回路図を構成する図面は

Microsoft Word - RefApp7インストールガイド.doc

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

本操作マニュアルは ATLYS ボードと一緒に Digilent 社オプションモジュールである VmodCAM - Stereo Camera Module のリファレンスデザインをそのまま流用した操作手順のご紹介になります リファレンスデザインは他にもWEB に掲載ございますので 活用頂き 本操作

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

PowerPoint Presentation

SysMLに関する操作方法について

スライド 1

Nios II Flash Programmer ユーザ・ガイド

Xilinx XAPP645 Virtex-II Pro デバイス アプリケーション ノート『シングル エラー訂正およびダブル エラー 検出』

Source Insight

Transcription:

VHDL/Verilog によるコードベースから Simulink によるモデルベースへ MathWorks Japan アプリケーションエンジニアリング部シニアアプリケーションエンジニア松本充史 2012 The MathWorks, Inc. 1

出展 : 日本経済新聞 2012/7/3 記事 2

アジェンダ HDL プロダクツ概要と採用実績 HDL 生成と検証のための基本機能 より高度な使い方設定による回路パフォーマンスの違い HDL と FPGA のテスト検証 3

MathWorks が提供する HDL 関連製品 HDL Coder MATLAB, Simulink, Stateflow から HDL 生成 Filter Design HDL Coder フィルタの HDL 生成 アルゴリズム開発 生成 Processor システム設計 実装 検証 VHDL, C, C++ SystemC Verilog FPGA ASIC Virtual Platform HDL Verifier HDL と FPGA の検証 SystemC 生成 4

日本国内 HDL Coder 新規ライセンス導入数推移産業別とアプリケーション別 2012 年は 10/17 までのデータ 5

アジェンダ HDL プロダクツ概要と採用実績 HDL 生成と検証のための基本機能 より高度な使い方設定による回路パフォーマンスの違い HDL と FPGA のテスト検証 6

一般的な RTL 設計 : 同期回路設計とは 一般的に FPGA/ASIC 設計には同期回路設計が用いられる フリップフロップ (FF) の間に挟んだ論理回路で構成 論理回路の転送時間がCLK 周期を超えないよう設計 FF 間の転送時間だけ考えれば良いので設計が容易 FF FF FF FF clk 7

同期回路設計を考慮した Simulink モデル FF に相当する Delay ブロックと処理ブロックで構成 動作合成ではない Delay ブロックのパラメータによる自動挿入機能 Distributed Pipelining 元モデルはデバイス依存しない ( 再利用性高い ) 設計資産 低 ~ 高抽象度まで用意されたブロック 低抽象度 :+,, AND など HDL 記述同等 高抽象度 :Sin/Cos, フィルタ, 誤り訂正 (RS) FFT ベクタ信号等 オレンジ色は FF に相当する Delay ブロック 8

HDL Coder を使った ASIC/FPGA 実装フロー MATLAB/Simulink Fixed-Point Toolbox Simulink Fixed Point HDL Coder Simulinkリファレンスモデル設計実装用モデル作成固定小数点化 HDLプロパティ設定 HDL 生成チェッカー HDL 生成 HDL Verifier (ModelSim, Incisive) 論理合成ツール (Design Compiler, RTL Compiler SynplifyPro, QuartusⅡ, ISE など ) HDL シミュレーション 検証 論理合成 配置配線 ASIC FPGA 9

HDL Coder モデルの作成対応するエントリ Simulink データパス系システム全体 ブロック生成 Stateflow ステートマシンコントロールロジック MATLAB データパスコントロールロジック MATLAB HDL 生成 HDL 生成 10

固定小数点データ型設定設定内容は生成 HDL に反映 Product( 乗算 ) ブロックの設定画面 丸め設定オーバーフロー処理 Inherit( 継承 ) double, single, int8, 16, 32 fixdt( 任意ビット幅 ) 11

HDL ブロックプロパティ / コードプロパティ モデルから多様な HDL 生成するためのパラメータ Area/Speed に影響 多入力時の構造 入出力パイプラインレベル BlackBox 化 パイプライン挿入 階層フラット化 リソースシェア フィルタの回路アークテクチャ (Distributed Arithmetic, Parallel, Serial) 12

コード生成レポートで得られる情報 リソース数 ( 乗算 加算 レジスタ RAM など ) HDL プロパティによる最適化結果 モデル HDL 双方向対応表 VHDL/Verilog (HTML 形式で表示 ) モデル上の名前を継承 ( ポート 信号線 process) 双方向リンク対応箇所をハイライト表示 VHDL/Verilog (HTML 形式で表示 ) モデルの表示 13

MATLAB コードから HDL 生成 アルゴリズムとテストベンチを作成 GUI 起動 自動固定小数点化 ( テストベンチ基準 ) 最適化機能 RAM Mapping Distributed Pipelining Resource Sharing Loop Unrolling HDL プロパティ設定 ( 最適化 スタイル ) HDL/MATLAB Function ブロック生成 HDL シミュレーション 検証 14

HDL 協調シミュレーションと FPGA-in-the-Loop HDL Verifier 提供機能 MATLAB と Simulink を HDL や FPGA のテスト環境として利用 生成 / 手書き HDL の検証 豊富な信号生成 可視化解析機能を利用 データ通信 TCP/IP, Shared Mem 信号パターン制御入力期待値可視化 解析プラントモデルアナログ回路 Simulink TCP/IP HDL Simulator MATLAB FPGA Board 15

HDL ワークフローアドバイザ 提供するワークフロー FPGA-in-the-Loop Turnkey Generic FPGA 包含する機能 FPGA プロジェクト生成 HDL チェック 生成 検証 論理合成 配置配線 (FPGA ベンダツール連携 ) バックアノテーション 16

アジェンダ HDL プロダクツ概要と採用実績 HDL 生成と検証のための基本機能 より高度な使い方設定による回路パフォーマンスの違い HDL と FPGA のテスト検証 17

よくある質問 HDL Coderで生成した回路のパフォーマンスは? (Area/Speed) 使用するブロック モデルの書き方 / 設定に 依存します 18

同じ処理でも表現の抽象度を選択可能例 :FIR/IIR フィルタの実装に使用できるブロック Simulink 基本ブロックを使用 FDATool, FilterBuilder からモデル生成可能 Delay(FF) Gain( 乗算 ) Add( 加算 ) 要素ブロックで構成 既存の構造にない柔軟なカスタマイズが可能 修正が面倒 ( 個別のブロックを修正 ) だがライブラリ化 ( マスクブロック化 ) することも可能 19

同じ処理でも表現の抽象度を選択可能例 :FIR/IIR フィルタの実装に使用できるブロック Tapped Delay とベクタ演算で Gain/Product を使用 シフトレジスタ ( ベクタ出力 ) 乗算 ( ベクタ同士の要素ごとの演算 ) 修正が比較的容易 可読性高い 構造変更出来ない ベクタデータの総和 20

同じ処理でも表現の抽象度を選択可能例 :FIR/IIR フィルタの実装に使用できるブロック DSP System Toolbox の Digital/FIR/Biquad Filter を使用 FDATool, FilterBuilder からモデル生成可能 抽象度が高く パラメータ 構造の修正容易 Distributed Arithmetic やシリアル化など豊富な実現構造を選択可 21

回路面積 : 固定小数点設定による影響 使用ブロック :Discrete FIR Filter 入力ビット幅 :[8, 12, 16, 18, 22, 26] に変更 Logic Element DSP Fmax 自動生成 ~MATLAB でグラフ化 入出力ビット幅の増加に伴い LE 数増加 Fmax 低下 FIR symmetric 24 tap Device: Cyclone IV EP4CE115F29C7 22

設定の最適化を行う固定小数点ツール GUI Simulink Fixed Point 提供機能 一時的にデータ型変更 ( 浮動小数点 ) に設定理想状態を確認 一覧を表示 : ブロック 固定小数点設定 シミュレーション Min/Max オーバーフロー警告 オーバーフロー警告 最適化の方法 安全マージン 23

固定小数点ツール実行前後の回路面積比較 ツール実行の効果オーバーフローの解消と冗長ビットが削減されることで回路面積 (LE 数 ) が 5987 5612 に縮小 (6.3% 削減 ) 左 : 実行前 右 : 実行後 24

ブロックによる生成コードの違い : Sin/Cos Simulink/ Math Operations/ Trigonometric Function CORDIC アルゴリズム使用ビット幅だけでなく 繰り返し回数 設定で精度が変化 Simulink/ Lookup Tables/ 1-D Lookup Table 1 周期分フルに LUT を使用入力 出力の Table を自分で定義 Simulink/ Lookup Tables/ Sine DSP System Toolbox/ Signal Operations/ NCO(Numeric Controlled Oscillator) 1/4 波長の Table データの符号と向きを切り替えて使用 マスクサブシステム内の設定を変更して使用する必要あるので注意 本来は信号生成用に使用する 設定により SIN/COS 計算が可能 1/4 波長 LUT を使用現在さらにパフォーマンス UP に向けて 開発継続中 25

各 Sin 計算ブロックの回路パフォーマンス 8bit 入出力 12bit 入出力 Logic Element DSP Fmax 左から Trigonometric, 1-D LUT, Sine, NCO CORDIC(Trigonometric) は速度 面積共にバランス良 1-D Lookup Table はビット幅によって大きく異なる Device: Cyclone IV EP4CE115F29C7 26

回路面積 ( 演算器の使用個数 ) の低減 HDL ブロックプロパティ :Sharing 複数の乗算器やサブシステムの処理を 時分割で共有して計算 回路面積の低減 3 1 6 7 2 8 4 5 9 9 4 5 7 4 8 2 パラレル化 6 1 3 6 8 24 35 36 4 シリアル化 27

パイプライン自動挿入によるクロック速度の向上 HDL ブロックプロパティ :Distributed Pipelining 設定画面 Pipeline が自動挿入 複数パス間のタイミング調整用レジスタ Pipeline レジスタ 28

リソースシェアリング ( 左 ) とパイプライン挿入 ( 右 ) の結果 Logic Element DSP Fmax 左から SharingFactor = [0, 3, 6, 12] 左から OutputPipeline = [0, 4, 8, 12, 16] Sharing:DSP 使用個数を低減 OutputPipeline の効果はあるレベルで飽和 29

HDL 生成 + 論理合成 + パフォーマンス評価の自動化 プログラミングで自動化とカスタマイズを行い 様々なパターンでコード生成を行った For ループ for ループによるパラメータ変更 論理合成スクリプトの設定 ( デバイス ) HDL 生成 >>makehdl システムコマンドによる合成ツール実行 合成レポートファイルからデータ収集 30

HDL 生成 + 論理合成 + パフォーマンス評価の自動化 プログラミングで自動化とカスタマイズを行い 様々なパターンでコード生成を行った For ループ for ループによるパラメータ変更 論理合成スクリプトの設定 ( デバイス ) HDL 生成 >>makehdl システムコマンドによる合成ツール実行 合成レポートファイルからデータ収集 31

HDL 生成 + 論理合成 + パフォーマンス評価の自動化 プログラミングで自動化とカスタマイズを行い 様々なパターンでコード生成を行った For ループ for ループによるパラメータ変更 論理合成スクリプトの設定 ( デバイス ) HDL 生成 >>makehdl システムコマンドによる合成ツールの実行 合成レポートファイルからデータ収集 32

HDL 生成 + 論理合成 + パフォーマンス評価の自動化 プログラミングで自動化とカスタマイズを行い 様々なパターンでコード生成を行った For ループ for ループによるパラメータ変更 論理合成スクリプトの設定 ( デバイス ) HDL 生成 >>makehdl システムコマンドによる合成ツール実行 合成レポートファイルからデータ収集 33

HDL 生成 + 論理合成自動化に役立つコマンド コマンド説明例 makehdl get_param set_param hdlget_param hdlset_param fixdt regexp HDL 生成 Simulink ブロックプロパティの取得 Simulink ブロックプロパティの設定 HDL ブロックプロパティの取得 HDL ブロックプロパティの設定 固定小数点データ型設定 正規表現文字列の検索 makehdl(modelname, 'TargetDirectory', dir, 'EDAScriptGeneration','on', 'HDLSynthTool','Quartus', 'HDLSynthInit',SynthScript) get_param(gcb, Gain') set_param(gcb, Gain, 15 ) hdlget_param(gcb, SharingFactor ) hdlget_param(gcb, all ) % 全て取得 hdlset_param(gcb, SharingFactor,4) dtinput = fixdt(1, 16, 14); % 符号付き 16bit 小数部 14bit regexp(textdata,';+ s+[ d, d]+ s', 'match','warnings') % s スペース, d 数値の文字列検索 dos/system システムコマンド実行 dos( quartus_sh t tclfilename ) 34

アジェンダ HDL プロダクツ概要と採用実績 HDL 生成と検証のための基本機能 より高度な使い方設定による回路パフォーマンスの違い HDL と FPGA のテスト検証 35

可視化 解析環境としての MATLAB を利用したデバッグ 数値演算 解析 可視化のプログラミング関数を豊富に提供 ユーザがプログラミングする手間と時間を削減 制御系の各種応答 周波数スペクトル 画像 3D 表示 フィルタ設計 解析 36

デザインのテストベンチとしての Simulink Simulink 基本機能 連続 離散のソルバ ( アナログ デジタル ) 各ドメインを数式化してモデリング ( アナログ デジタル回路 メカ 油圧など ) 時間軸シミュレーション オプション製品 信号処理 通信 画像処理 制御などアプリケーションに特化したブロック 物理モデリングに対応したブロック : 電気回路 RF 特性 (S-Parameter) モーター バッテリー メカ 油圧など 37

HDL シミュレータとの連携テスト HDL Verifier 機能 手書き HDL の場合 HDL シミュレータとのインターフェースを生成 Simulink ブロックまたは MATLAB コード >> cosimwizard HDL Coder で自動生成 協調シミュレーションモデルを自動生成 GUI またはコマンド >> makehdltb(gcb) 38

FPGA ボードとの連携テスト (HDL Verifier 機能 ) FPGA-in-the-Loop Simulation(FIL) 手書き HDL の場合 FPGA ボードとのインターフェースブロックを生成 Simulink ブロックまたは MATLAB コード >> filwizard HDL Coder で自動生成 HDL ワークフローアドバイザで FPGA-in-the-Loop を選択 FIL モデルが自動生成 汎用開発ボードとカスタムボードに対応 Xilinx:ML401/2/3, ML505/6/7, ML605, SP601/5, XUP Atlys Spartan-6, XUPV5-LX110T Altera:ArriaII GX, Cyclone III, IV GX, DE2-115, NIOS II EEK カスタムボード登録ウィザード >>fpgaboardmanager 39

ユーザ導入効果とシミュレーション高速化 FPGA-in-the-Loop Simulation(FIL) ユーザ効果 Simulink 従来検証方法 ( 論理合成後ゲートレベル ) FIL 時間 60 分 200 時間以上 4 分 30 秒 13 倍 2000 倍 テストボード :ML605 適用回路 : 無線デジタル信号処理回路論理規模 :FF:25,000, LUT:20,000, 36KBRAM:150, DSP48E1:130 FIL 高速化のポイント 期待値との照合は To File ブロックを使用 (Simulink モデルと照合しない ) フレームベース信号の利用 (DSP System Toolbox 機能 ) アクセラレータの使用 40

まとめ HDL 生成によりデザインの設計期間が短縮 使用ブロックや HDL プロパティ設定により様々なパターンで HDL 生成可能 HDL Coder の回路パフォーマンスはモデル次第 MATLAB プログラムにより HDL 生成や論理合成の作業を自動化 HDL や FPGA の検証環境として MATLAB/Simulink の可視化 解析機能を利用 41

お問合せ先 お問い合わせ先 email : service@mathworks.co.jp TEL : 03-6367-6700 この資料に関する技術的なご質問 デモプログラムのお問い合わせ先 MathWorks アプリケーションエンジニアリング部松本充史 email : atsushi.matsumoto@mathworks.co.jp 42