An industry-proven Modeling Kit for Virtual Prototypes

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