An industry-proven Modeling Kit for Virtual Prototypes Laurent Maillet-Contoz STMicrolectronics Pascal Chauvet Marketing VP, Magillem 実績のある仮想プロトタイピング向け モデリング・キット Laurent Maillet-Contoz STMicrolectronics Pascal Chauvet Marketing VP, Magillem Motivations • Virtual prototyping: a recognized technique for pre-silicon activities • Good modeling practices must be spread over modeling teams • Model developer productivity • Coding guidelines • Model reuse and exchange internally or with partners • Model portability across CAD environments • Leverage on standards Offer a modeling kit for virtual prototypes Unification of modeling style Easy model maintenance increased productivity of model developers Model/model and model/tool interoperability 3 動機 • 仮想プロトタイピング: シリコン完成前の作業を実現する技術 • 優れたモデリング経験を全モデリング・チームに拡散 • モデル開発者の生産性 • コーディング・ガイドライン • モデルの再利用、社内またはパートナ企業とのやり取り • CAD環境におけるモデルの相互活用 • 標準規格との相互作用 仮想プロトタイプ向けモデリング・キットの提案 モデリング・スタイルの統一 容易なモデルのメンテナンス モデル開発者の生産性向上 モデル間、モデル-ツール間の相互運用 4 Overview • Magillem signed an OEM agreement with ST Microelectronics to distribute their internal TLM Modeling solution • The Magillem ESL solution includes: • TLM IP Packaging • Full synchronization between the IP-XACT representation and its documentation • TLM IP assembly • SystemC Simulation environment • TLM IP and Platform life cycle management 5 概要 • マジレムはSTマイクロエレクトロニクス社のTLMモデリング・ ソリューションを販売するためのOEM契約を締結しました。 • マジレムESLソリューションに包含されるもの: • TLM IPパッケージング • マジレムが提供しているIP-XACT環境、およびドキュメント・ツールとの 完全な親和性 • TLM IPアセンブリ • SystemCシミュレーション環境 • TLM IPおよびプラットフォームのライフサイクル管理 6 Overview TLM IP Packaging • TLM IP Packaging includes: • TLM Modeling Kit for SystemC source code generation • Detailed later • BlockForge GUI tool to capture IP interfaces (wire and transactional ports and interfaces) and customize the IP icon • IP-XACT generation from various formats: word documentation, Excel sheet, RTL IPXACT description • Scripting API (in various languages) 7 概要 TLM IPパッケージング • TLM IPパッケージングに包含されるもの: • SystemCソースコード生成向けTLMモデリング・キット • 詳細は後述 • IPインタフェース(ワイヤ、トランザクション・ポートおよびインタフェース) のキャプチャ、およびIPアイコンのカスタマイズ向けBlockForge GUI ツール • ワード文章、エクセル・シート、RTL IP-XACT記述等のさまざまなフォー マットからIP-XACTを生成 • スクリプトAPI (さまざまな言語をサポート) 8 Overview TLM IP Assembly • TLM IP assembly includes: • Full support for hierarchy editing • Full SystemC TLM Netlisting • Full support for TLM sockets and payload • Netlister includes stubbing of unconnected ports • Full IP-XACT semantic checks • Possibility to customize these checks • GUI or Scripting API (TCL, Python, Ruby and Java) • Easy IP connection 9 概要 TLM IPアセンブリ • TLM IPアセンブリに包含されるもの: • 階層編集の完全なサポート • 完全なSystemC TLMネットリスト • TLMソケットとペイロードを完全サポート • ネットリストには未接続ポートのスタブを含む • IP-XACTセマンティックの完全なチェック • チェッカのカスタマイズ可能 • GUIとスクリプトAPI (TCL, Python, Ruby and Java) • IPの容易な接続 10 Overview SystemC Simulation • SystemC Simulation environment includes: • Automatic generation of Makefiles • For the major EDA simulators (Cadence, Synopsys, Mentor) • For Accellera SystemC Simulator • Configurable environment • Can select SystemC and GCC version and location • Dependency checks • IP repository infrastructure 11 概要 SystemCシミュレーション • SystemCシミュレーション環境に包含されるもの: • Makefileの自動生成 • メジャーEDAシミュレータ向け (Cadence, Synopsys, Mentor) • Accellera SystemCシミュレータ向け • 設定可能な環境 • SystemC、GCCのバージョンとロケーションを選択可能 • 依存関係チェック • IP再利用インフラ 12 Virtual prototype constituents 13 DBG Processor Model Interconnect model I/O IP TLM Model param Command line Config manager System address map Register bank IP Parameters 仮想プロトタイプ構成要素 14 DBG プロセッサ ・モデル インターコネクト・モデル I/O IP TLM モデル システム アドレス マップ レジスタ・バンク パラメータ コマンドライン 設定管理 IP パラメータ TLM model constituents Interconnect interface Register bank modeling Reset Behaviour Wire Frequency Voltage Messaging Model parameters To be implemented by model developer 15 TLMモデル構成要素 インターコネクト・インタフェース レジスタ バンク モデル リセット ビヘイビア ワイヤ 周波数 電圧 メッセージ モデル パラメータ ビヘイビアはモデル開発者によって実装 16 Modeling kit TLM modeling methodology & training SystemC IEEE 1666 TLM platform assembly IPXact IEEE 1685 Register bank support Configuration capabilities TLM Model TLM communication protocols SystemC TLM 1&2 I/F OSCI CCI Monitoring capabilities SCV Build infrastructure (tlm_infra) 17 モデリング・キット TLM プラットフォーム アセンブリ IPXact IEEE 1685 TLMモデリング 手法とトレーニング SystemC IEEE 1666 レジスタ・バンク サポート 設定機能 TLM モデル TLM コミュニケーション プロトコル SystemC TLM 1&2 I/F OSCI CCI モニタリング機能 SCV ビルド環境 (tlm_infra) 18 Rationale to support standards • Model/Model interoperability • Integrate models coming from different IP suppliers • Deliver subsystems and/or virtual platforms to customers • Model/Tool interoperability • Benefit from CAD tools support • Benefit from best-in-class tools from various providers • Ensure model portability across CAD environments • SystemC and IP-XACT standards are required and complementary 19 標準規格をサポートする理由 • モデル間相互運用 • 異なるIPベンダから提供されるモデルの統合 • サブシステムおよび/または仮想プラット フォームを顧客に提供 • モデル-ツール間相互作用 • CADツール サポートにおける利点 • 各社から提供される最上のツールを利用でき る利点 • CAD環境に依存しないモデルの実現 • SystemC とIP-XACTという補完的な両標準 規格が必要 20 Register bank modeling Running on Cadence VSP & Synopsys Virtualizer Mapping Reserved WO tlm_patac … Generic Bus API tlm_tac RW Bus Accesses RO Field Field Field R1 Field R2 Field Field R3 Field Field Field Field R4 Field Field Field Field Field Field SYNCHRO R5 Register Bank void model::side_effect(tlm_register_context & c) { … } User Code RO Introspection API IP-XACT TLM Skeleton Register scireg Snps api … CAD Tools tlm_message Access Logs 21 レジスタ・バンクのモデリング Cadence VSP & Synopsys Virtualizer上で実行 マッピング Reserved WO tlm_patac … Generic Bus API tlm_tac RW バス・アクセス RO Field Field Field R1 Field R2 Field Field R3 Field Field Field Field R4 Field Field Field Field Field Field SYNCHRO R5 Register Bank void model::side_effect(tlm_register_context & c) { … } ユーザ・コード RO Introspection API IP-XACT TLM スケルトン レジスタ・ scireg Snps api … CADツール tlm_message アクセス・ログ 22 TLM communication protocols (1) • A service & user convenience layer on top of systemC standards • Ensure standard compliance by construction • Implement compatibility rules for interoperability • Provide extra services on top of standard APIs • Endianness management, address alignment, error checking, payload extensions add-ons Model wire synchro stream frequency TLM‐1 I/F SystemC voltage patac TLM‐2 I/F IEEE 1666‐2011 23 TLMコミュニケーション・プロトコル(1) • “A service & user convenience layer”をSystemC標準規格上 で実現 • 標準互換構造 • 相互運用のための互換ルールを実装 • 標準API上で特別なサービスを提供 • エンディアン管理、アドレスのアライメント、エラー・チェッカ、 ペイロード拡張アドオン Model wire synchro stream frequency TLM‐1 I/F SystemC voltage patac TLM‐2 I/F IEEE 1666‐2011 24 TLM communication protocols (2) • Improve productivity of model developer • Simple read/write API calls instead of low level standard APIs (1 to 100 lines) • Model developers can focus on IP spec, not on modeling infrastructure • Improve maintainability of models • Facilitate alignment of models with evolutions of standards • Unified messaging & logging mechanism wire synchro stream frequency TLM‐1 I/F SystemC voltage Model patac TLM‐2 I/F IEEE 1666‐2011 25 TLMコミュニケーション・プロトコル(2) • モデル開発者の生産性の改善 • 低レベル標準APIの代わりにシンプルなリード/ライトAPIを提供 (1 to 100 lines) • モデリング・インフラではなく、IPの仕様にフォーカス可能 • モデルのメンテナンス性の改善 • 標準規格の進化に対するモデルの追従が容易 • 統一された メッセージおよびログのメカニズム Model wire synchro stream frequency TLM‐1 I/F SystemC voltage patac TLM‐2 I/F IEEE 1666‐2011 26 TLM model generator ‐ <spirit:register> <spirit:name>ASCTXBUFFER</spirit:name> <spirit:description>Transmit Buffer</spirit:description> <spirit:addressOffset>0x04</spirit:addressOffset> <spirit:size>16</spirit:size> <spirit:access>write‐only</spirit:access> ‐ <spirit:reset> <spirit:value>0x000</spirit:value> </spirit:reset> ‐ <spirit:parameters> ‐ <spirit:parameter> <spirit:name>longDescription</spirit:name> <spirit:value>This is transmit buffer with size 512x9 if FIFOs are enabled through the control register otherwise buffer size is 1x9. The data to be transmitted through UART is written to this buffer.</spirit:value> </spirit:parameter> </spirit:parameters> </spirit:register> ‐ <spirit:register> <spirit:name>ASCRXBUFFER</spirit:name> <spirit:description>Receive Buffer</spirit:description> <spirit:addressOffset>0x08</spirit:addressOffset> <spirit:size>16</spirit:size> <spirit:access>read‐only</spirit:access> ‐ <spirit:reset> <spirit:value>0x000</spirit:value> </spirit:reset> ‐ <spirit:parameters> ‐ <spirit:parameter> <spirit:name>longDescription</spirit:name> <spirit:value>This is RxBuffer with size 512x10 if FIFOs are enabled through the control register otherwise buffer size is 1x10 . The data recieved through the UART is stored in the RxBuffer.</spirit:value> </spirit:parameter> </spirit:parameters> </spirit:register> Interconnect interface Register bank modelin g Produces SystemC model skeleton Register instantiation and decoding Bus sockets instantiation Point to point communication (IT, etc) Reset Behavior Wire Frequen cy Voltage Messaging Model parameters Behavior to be implemented by model developer 27 TLMモデル・ジェネレータ ‐ <spirit:register> <spirit:name>ASCTXBUFFER</spirit:name> <spirit:description>Transmit Buffer</spirit:description> <spirit:addressOffset>0x04</spirit:addressOffset> <spirit:size>16</spirit:size> <spirit:access>write‐only</spirit:access> ‐ <spirit:reset> <spirit:value>0x000</spirit:value> </spirit:reset> ‐ <spirit:parameters> ‐ <spirit:parameter> <spirit:name>longDescription</spirit:name> <spirit:value>This is transmit buffer with size 512x9 if FIFOs are enabled through the control register otherwise buffer size is 1x9. The data to be transmitted through UART is written to this buffer.</spirit:value> </spirit:parameter> </spirit:parameters> </spirit:register> ‐ <spirit:register> <spirit:name>ASCRXBUFFER</spirit:name> <spirit:description>Receive Buffer</spirit:description> <spirit:addressOffset>0x08</spirit:addressOffset> <spirit:size>16</spirit:size> <spirit:access>read‐only</spirit:access> ‐ <spirit:reset> <spirit:value>0x000</spirit:value> </spirit:reset> ‐ <spirit:parameters> ‐ <spirit:parameter> <spirit:name>longDescription</spirit:name> <spirit:value>This is RxBuffer with size 512x10 if FIFOs are enabled through the control register otherwise buffer size is 1x10 . The data recieved through the UART is stored in the RxBuffer.</spirit:value> </spirit:parameter> </spirit:parameters> </spirit:register> SystemCモデルのスケルトン生成 レジスタのインスタンシエーション とデコーディング バス・ソケットのインスタンシエーション ポイント・ツー・ポイント通信 (IT等) インターコネクト・インタフェー ス レジスタ バンク モデリン グ リセット ビヘイビア ワイヤ 周波数 電圧 メッセージ モデル パラメータ ビヘイビアはモデル開発者によって実装 28 Build infrastructure for virtual prototype RedHat 4/5/6, Ubuntu, Windows, 32b, 64b IP Models v1, v1.1, … v2, v2.1, v3 Gcc 4.1, 4.7, 4.8, MSVC, … Virtual prototype build generator SystemC reference implementation (2.2, 2.3, 2.3.1), Incisive, Virtualizer External libraries & tools • Virtual prototypes are built from a portfolio of reusable models available in various versions • Need to support various OS, compilers, SystemC simulators • Writing makefiles manually is a pain 29 仮想プラットフォーム向けビルド環境 RedHat 4/5/6, Ubuntu, Windows, 32b, 64b IPモデル v1, v1.1, … v2, v2.1, v3 Gcc 4.1, 4.7, 4.8, MSVC, … 仮想 プラットフォーム ビルド ジェネレータ SystemC reference implementation (2.2, 2.3, 2.3.1), Incisive, Virtualizer 外部ライブラリ とツール • さまざまなバージョンに対応できる、再利用可能なモデルのポート フォーリオを用いて仮想プロトタイプを構築 • さまざまなOS、コンパイラ、SystemCシミュレータのサポートが必要 • 手書きによるMakefile作成は苦痛 30 Models and platforms filetree CORE Repository INTC MEM TMR R o u t e r 31 Model1 Model2 Model3 MyPlatform CMP PLT Model1 EXT MyPlatform v1 v1.1 include/*.h src/*.cpp include/*.h src/*.cpp v1 V2 Core include/*.h src/*.cpp v1 Tlm_local_setup.pl ‐I<core_headers_path> ‐L<core_lib_path> include/*.h src/*.cpp Model2 v1 include/*.h src/*.cpp .../somewhere/core_repo/include/*.h .../somewhere/core_repo/lib/*.so モデルとプラットフォームのファイル構造 CORE Repository INTC MEM TMR R o u t e r 32 Model1 Model2 Model3 MyPlatform CMP PLT Model1 EXT MyPlatform v1 v1.1 include/*.h src/*.cpp include/*.h src/*.cpp v1 V2 Core include/*.h src/*.cpp v1 Tlm_local_setup.pl ‐I<core_headers_path> ‐L<core_lib_path> include/*.h src/*.cpp Model2 v1 include/*.h src/*.cpp .../somewhere/core_repo/include/*.h .../somewhere/core_repo/lib/*.so OS Redhat 6 CC gcc 4.8 SystemC 2.3.1 PLT myplatform v2 CMP Model1 v1.1 CMP Model2 v1 CMP Model3 v2 EXT Core v2 Build generator OS Compiler SystemC Design Package Build generator Model 1 v1/include v1/src v1.1/include v1.1/src Model 2 v1/include v1/src v2/include v2/src Model 3 v1/include v1/src v2/include v2/src Myplatform v1/include v1/src v2/include v2/src Core v1/tlm_local_setup.pl v2/tlm_local_setup.pl Makefile 33 OS Redhat 6 CC gcc 4.8 SystemC 2.3.1 PLT myplatform v2 CMP Model1 v1.1 CMP Model2 v1 CMP Model3 v2 EXT Core v2 ビルド・ジェネレータ OS デザイン・パッケージ Model 1 v1/include v1/src v1.1/include v1.1/src Model 2 v1/include v1/src v2/include v2/src Compiler SystemC ビルド・ジェネレータ Model 3 v1/include v1/src v2/include v2/src Myplatform v1/include v1/src v2/include v2/src Core v1/tlm_local_setup.pl v2/tlm_local_setup.pl Makefile 34 TLM Modeling Kit Overview Key Benefits • Proven technology • ST Microelectronics is one of the major technology driver of the SystemC and TLM working groups • ST Microelectronics and its customers have been using this technology in Production for more than 7 years • Ensures TLM Compliancy and Improves ProductivityTLM ctivity • Industrial use 35 TLMモデリング・キット概要 主な特長 • 実績のあるテクノロジ • STマイクロエレクトロニクスはSystemCおよびTLMワーキング・グループ における主要なテクノロジ・ドライバの1社 • STマイクロエレクトロニクスおよび顧客は、製品開発向けに本テクノロジを 7年以上活用 • 準拠と生産性の改善を実現 • 産業用途 36 Conclusion IP Specification Modeling Engineers Expertise High added value TLM Modeling on top of standards Methodology TLM TLM1.0, TLM 2.0 incl. Communication in IEEE 1666-2011 APIs revision IEEE 1666-2011 C++ class library SystemC SOC Specification TLM Model Bit accurate Register accurate Functionally correct Communicates through transactions Variable timing accuracy IP IP IP Interconnect TLM model IP IP SoC Virtual Prototype Deployed in product groups since 2005 Proven on main complex SoCs Built on top of state‐of‐the art standards TLM Modeling Kit is part of the Magillem Unified ESL Solution 37 まとめ IP 仕様 Modeling Engineers Expertise High added value TLM Modeling on top of standards Methodology TLM TLM1.0, TLM 2.0 incl. Communication in IEEE 1666-2011 APIs revision IEEE 1666-2011 C++ class library SystemC SOC 仕様 TLM Model Bit accurate Register accurate Functionally correct Communicates through transactions Variable timing accuracy IP IP IP Interconnect TLM model IP IP SoC 仮想プロトタイプ 設計グループ内で2005年から開発 主要な大規模SoCによる実績 最新の標準規格上で構築 TLMモデリング・キットはマジレムの統合ESLソリューションの一部 38
© Copyright 2024 Paperzz