ご登録の解除は
運営事務局まで
お知らせ下さい

 
※アルファベット順
 

 
 

Intel_Logo
 
 
 
 
 
 
  • 2013年1月22日 SystemC Japan 2013の開催日が6月21日(金)に決定しました
 
※ クリックすると各工程の概要/ソリューションが表示されます
 

概要

SystemCとは?

SystemCは、1999年C/C++言語によってハードウェア設計を行うという目的でバージョン1.0として策定された標準仕様です。その後、2001年にバージョン2.0に拡張され、真のシステムレベル記述言語としての機能を備えるようになりました。SystemCは、C++言語を拡張し、従来のソフトウェア開発だけではなく、ハードウェア設計やシステム設計に対応した並列処理やデータ型をサポートしたクラス・ライブラリの総称です。2005年12月にはIEEE 1666として標準化され、SystemCはCベース設計におけるモデリング言語として不動の位置を占めています。

SystemC 2.0

SystemCは、バージョン1.0では、主にRTL設計を行うための言語としての仕様に留まっていました。しかし、バージョン2.0への拡張で、システムレベル設計に対応し、機能と通信(インターフェース)の分離という概念が盛り込まれ、システム記述言語と呼ぶにふさわしい仕様を備えるようになりました。機能と通信(インターフェース)を独立してモデリングできるようになったことで、システム・レベル・モデルの段階的なリファインを可能にし、異なる抽象度で記述されたモデルの混在や、チャネルのインプリメンテーション手法の探索など、数多くの利点を提供できるようになりました。
IEEE1666-2005では、データタイプとしてLogic Type(01XZ)、Logic/Bit Vectors、Arbitrary Precision Integersを、基本言語構造としてModules、Ports、Events、Interfaces、Channels、Processes等、基本チャネルとしてSignal、Timer、Mutex、Semaphore、FIFO等が定義されています。

OSCI TLM 2.0

近年のSystemC関連のホット・トピックスとして、2008年6月にOSCIで標準化されたOSCI TLM2.0があります。
TLM2.0は、メモリ・マップド・バスを利用したSoCプラットフォームでのモデルの相互運用性を実現することを主目的としています。TLM2.0を活用することで、メモリ・マップド・バスを使用したシステムでの性能解析やアーキテクチャ解析、ソフトウェア先行開発などを実現することが可能となります。
TLM2.0を用いることで相互運用性の高いモデリングが可能になりますが、さらに再利用性の高いモデリングを行うためには、なんらかのガイドラインが必要となります。このようなガイドラインの一例として、STARC(半導体理工学研究センター)の作成した「TLモデリングガイド 第2版」があります。

なぜSystemCを使うと設計・検証効率が向上するのでしょうか?

SystemCは、RTLに比べて、記述の抽象度を向上することが可能です。これによって下記のメリットがあります。

  1. TLMでは、レジスタ間の詳細タイミングを記述しない。そのため、記述量が少なくなり、複雑なハードウェア設計記述でも見通しがよくなる。
  2. 上記の理由から、不具合の特定も容易になる。
  3. イベント数が減少するため、より高速な検証が可能になる。したがって、より多くの検査項目を調べることができるようになり、品質が向上する。
  4. テストデータとして、実際のプログラムを使用することがより容易になる。さらには、ハードウェア・ソフトウェア検証も可能になる。

近年、実用的なSystemC対応のEDAツールが提供されるようになり、「RTL開発の工期削減」や「高速検証」への期待が更に高まっています。

CとSystemC

SystemCはC++をベースに、ハードウェアのモデリングに対応した言語として設計されています。そのため、ソフトウェアのプログラミング言語であるCと異なり、並列実行の明示的表現やタイミング情報、階層構造、リセットなどのハードウェア実装の上で不可欠な情報の記述が可能となり、よりよいハードウェア設計のためのμアークテクチャの詳細定義が可能となります。ここで、誤解していただきたくないことに、SystemCはCより抽象度の低い言語ではないということです。SystemCでは、Cと同じくuntimedのような抽象度の高い記述が可能でありますが、一方で、もし必要であれば、先に述べたハードウェアの実装情報も記述できるのです。

SystemCの利用について

SystemCの利用は、http://www.systemc.orgにアクセスし簡単なユーザー登録を行い、ソースコードをダウンロードすることで何方でも手軽に可能となっています。
SystemCはオープン・ソースですので利用に関しての費用は全て無料です。しかし、ユーザー登録の際の注意事項をよく確認の上使用をお願い致します。

Accellera Systems Initiativeについて

SystemCのサポートは、Accellera Systems Initiativeという、ハードウェア設計関連の技術および言語規格の標準化を推進する非営利団体が、システムレベル設計のための業界のオープン・ソース標準規格として推進しています。詳しくは、http://www.accellera.orgをご覧下さい。