SystemC是一种基于C++语言的用于系统设计的计算机语言,是用C++编写的一组库和宏。它是为了提高电子系统设计效率而逐渐发展起来的产物。IEEE于2005年12月批准了IEEE1666-2005标准。
通常,系统由软件部分和硬件部分组成,系统的一部分功能由软件实现,而另一部分功能则由硬件实现。早期的系统比较简单,系统工程师将准备设计的系统划分为软件部分和硬件部分,分别由软件工程师和硬件工程师进行设计、仿真、实现和改进,最后再将软件部分和硬件部分结合起来形成系统。软件工程师使用C和C++等程序设计语言,因为这些语言专长于描述串行执行的程序,用来仿真软件部分;而硬件工程师则使用VHDL和Verilog等硬件描述语言, 因为这些语言专长于描述并行运行的硬件,用来仿真硬件部分。但是,随着电子系统的不断发展,系统结构越来越复杂,系统元件也越来越多,这就要求系统工程师 在先期划分软件和硬件时,就对整个系统性能有很好的了解和掌握,以便更好地划分软件和硬件,减小设计中不必要的失误所带来的损失和风险。SystemC也 就由此孕育而生,因为它能够满足对软件和硬件协同仿真的需求。SystemC的名称来自“系统”一词的英语System和“C/C++语言”中的C,以表示它是一种基于C/C++语言的系统设计语言。
每种计算机语言都有特定的用途,能干什么和擅长干什么还有本质的区别。总的来说,SystemC is used for modeling particularly virtual platforms. SystemVerilog is used for hardware verification.
目前,中文版关于SystemC的书籍如下:
注:电子系统级 (ESL)设计中不仅有SystemC,还有C-to-Verilog 的综合工具,以及OpenCL语言等。
参考文献:
[1] SystemC. https://zh.wikipedia.org/wiki/SystemC
[2] SystemC标准网站 http://accellera.org/downloads/standards/systemc.
[3] SystemC vs SystemVerilog . https://www.youtube.com/watch?v=-l0GAiPAJ0g
[4] SystemC and SystemVerilog.http://www.chip123.com/forum.php?mod=viewthread&tid=10891