すべては、SystemC v0.9公開から始まった。
最新トピックス
すべては、1999年にOpen SystemC(OSCI)が創設され、SystemC v0.9(1999.9)を公開されたことが始まりでした。
SystemCは,米Synopsys, Inc.,米CoWare, Inc.,ベルギーFrontier Design社の製品や技術をベースに開発されました。
その後、v0.91(2000.3)、v1.0(2000.4)、v1.1(2000.6)の公開されました。
v1.0が公開され、やっとHDLのRTLと同様な記述がサポートされたものの機能的にはHDLとそれほど変わりませんでした。
私は、v0.9が公開されたときからSystemCをダウンロードし、実際に、ソースコードからコンパイルし、例題を動かしてきました。
SystemCではどのようにハードウェアを表現できるのか?SystemCで表現するとどんなメリットがあるのか?
確かにハードウェアを表現はできるものの、HDLよりも大きなメリットを見いだすことはできませんでした。
(HDLシミュレータよりも実行速度は明らかに速いという点は、実感できましたが)
そうこうしているうちに、v1.2beta(2001.1)とv2.0の仕様が公開されました。
v0.9からv1.2betaまでソースコード(実装)が公開されたわけですが、
v2.0ではソースコードではなく、仕様が公開されたのがいままでと違っていました。
v2.0では、通信部分を自由に記述できだけでなく、抽象度を上げることができるなるというものでした。
この通信部分は、チャネルと呼ばれ、その後、TLM-2.0が導入されるまで、SystemCの主な通信手段になりました。
v2.0のソースコードは、beta1(2001.7)、beta2(2001.9)、正式版が2001.10に公開されました。
仕様が公開され、半年で最初のベータ版を、その後、3ヶ月で正式版をリリースするという非常に速いペースで行われていました。
そんな中、日本でも2001年2月に、第1回Japan System C User Forum(2001.2)が開催されました。
このときは、ユーザ事例発表ではなく、ユーザとEDAベンダによるパネルディスカッションでした。
次の年(2002.1)には、研究会(第2回SystemCユーザフォーラム)が開かれました。
この研究会が日本で初めての公開されたユーザ事例発表会でした。
その後、2009年(第9回)までEDSFairの時期に、SystemCユーザフォーラムとして開催されました(今年、2010年は残念ながら開催されませんでした)
第8回までの資料は、JEIDA EDA Technical Committeeのサイト (2008年の資料のみこちら)からダウンロードできます。
2001.10にv2.0がリリースされた後は、下記のように、LRM、v2.1 & TLM 1.0、そして、IEEE 1666での標準化。
その後、TLM 2.0をリリースし、TLM 2.0 LRMを2009.7にリリースして、ほぼ完成の領域に達成しました。
(平行して、2002年から検討されていた、AMS(Analog/Mixed Signal)も2010.2にリリースされました)
・ v2.0.1 (2002.4)
・ v2.0.1 LRM(Language Reference Manual) (2003.6)
・ SCV(SystemC Verification Library) v1.0 (2003.12)
・ v2.1 beta (2004.10)
・ TLM(Transaction-Level Modeling) 1.0 beta (2004.11)
・ v2.1 (2005.5)
・ v2.1 LRM & TLM 1.0 (2005.6)
・ IEEE 1666-2005(v2.1ベース) (2005.12)
・ TLM 2.0 draft-1 (2006.12)
・ v2.2 (2007.3)
・ TLM 2.0 draft-2 (2007.10)
・ TLM 2.0 (2008.6)
・ AMS Extensions Whit Paper (2008.6)
・ TLM 2.0 LRM (2009.7)
・ AMS Extensions (2010.2)
このようにSystemCは、約10年かけて現在のようなものに進化してきましたが、3つのステップに分けられるのではないでしょうか?
Step 1: v0.9~v2.0、実用レベル (1999-2001)
Step 2: v2.1~IEEE 1666-2005、標準化 (2002-2005)
Step 3: TLM 2.0 & v2.2 (2006-2009)
関連ツール (Open Source)
GreenSocs :Building Blocks for Tool Independent ESL SystemC
sister : オープンソースの動作合成ツール ( SystemC => Verilog HDL )
ArchC : オープンソースのアーキテクチャ記述言語 ( 最新版 v2.0 )
・ ブログ : Arch 2.0
・ ブログ : Arch 2.0 (その2)
・ ブログ : Arch 2.0 (その3)
KCachegrid : Profiling Visualization
EVAN : シミュレーション統合環境 (SystemC v2.1、SCV 1.02p、TLM 1.0、AVM 2.0サポート)
V2SC : Verilog HDL => SystemC トランスレータ (IEEE 1364-2001 to IEEE 16666-2005)
ツールベンダー
関連資料
DAC (Design Automation Conference)
DVCon (Design & Verification Conference & Exhibition)
NASCUG ( North American SystemC User Group )
ESUG ( European SystemC Users Group )
LASCUG ( Latin American SystemC User's Group )
JSCUF ( Japan SystemC Users Forum、2009年までJEIDA、2010年からOSCI)
SystemC 2.2 (doxygen)
SystemC AOP : ブログ
Welcome To SystemC Page ( ASIC World )
・ Interfacing With HDL Simulator
いまさら聞けない SystemC入門 (塚田雄一)
SCDsource (最近は、記事がアップされません)
・ Bringing virtual platforms into mainstream design by Eugene Zhang, Jeda Technologies
・ TLM 2.0 promising, but interoperability isn’t proven by Eugene Zhang, Jeda Technologies
イベント (SystemC関連)
・ EDSFair (1月末、パシフィコ横浜)
・ SystemC Japan (7月頃、新横浜)
・ Verify 201X Japan (9月頃、品川)
・ Cynthesizer ユーザー交流会 (11月頃、新横浜)
書籍
Design Wave Magazine (休刊)の SystemC関連記事は、こちら
・ SystemC TLM活用入門、第1回 (2008年6月号)
・ SystemC TLM活用入門、第2回 (2008年9月号)
・ SystemC TLM活用入門、第3回(最終回) (2009年3/4月号)
洋書
日本語訳 : SystemCによるシステム設計 Thorsten Gr¨otker、Grant Martin、Stan Liao、 Stuart Swan (2003/2)
日本語訳 : 基礎から学ぶSystemC David C. Black、Jack Donovan、中西 早苗、 河原林 政道 (2006/6)
Transaction-level modeling with SystemC: TLM concepts and applications for ...
SystemC kernel extensions for heterogeneous system modeling: a framework for ...
High-level System Modeling With Systemc and Tlm (この本は、持っていません)
Virtual Platform関連
書評:『ESL Models and their Application: Electronic System Level Design and Verification in Practice』 : ブログ
和書
SystemCを使ったハードウェア設計―... (Design Wave Advance) 桜井 至 (2006/11)
SystemCプログラミング基礎講座 塚田 雄一 (2006/11/22)
C/C++によるVLSI設計―Syste... 大村 正之 深山 正幸 (2003/11)
よくわかるSystemCによるシステムデ... 並木 秀明、後閑 哲也、 片岡 忠士 (2005/4/14)
C++の知識として読むべき書籍
・Effective C++ - Scott Meyers
・More Effective C++ - Scott Meyers