任何系统级建模语言,都需要具备在较高层次的抽象能力和对不同来源的IP的集成能力。建模方法的选择通常基于语言熟悉程度、建模支持、模型可用性和简单性。
在各种软硬件描述语言中,Verilog和VHDL是RTL级建模的最佳语言,有足够的精度如比特精确和周期精确,但缺乏高层次抽象的能力,而且对软件部分的描述无能为力。
而C/C++、Java等都是软件的优秀描述语言,也具有高层次的抽象能力,一些设计师就是用它们来进行系统建模的。但他们没有精确到比特的能力,也没有并发描述能力和时钟的概念。
通过对上述语言进行扩展可以提高描述系统的能力。在这些语言中,有些是在C语言基础上进行扩展的HardwareC和SpecC,它们分别由斯坦福大学和加州大学研究小组开发。
还有在Java上扩展的语言如JHDL,在Verilog上扩展的SystemVerilog,以及在C++上扩展的SystemC。这些语言通过增加系统描述的关键词,可以实现硬件和软件的描述,具有描述系统的能力。业界获得较多支持和应用较为广泛的语言是SystemVerilog和SystemC。
SystemVerilog是在Verilog上的扩展,吸收了C/C++语言中的一些变量,可以实现和C语言一起仿真。由于是在Verilog上的扩展,SystemVerilog的优势在于基于时钟的建模能力和验证能力,但在TLM的抽象上还存在一些不足,如缺少抽象的数据类型等。更为成功的系统建模语言无疑是SystemC。
SystemC是OSCI推出的基于C++语言扩展的描述语言,是一种可以完成电子系统从软件到硬件的全部建模过程的语言。在目前的设计中,软件开发占到设计任务的60%~90%,基于C++语言扩展的语言SystemC比从HDL扩展的语言有更加有利的发展趋势。SystemC完全支持TLM建模,而且OSCI已经提出了TLM建模的标准,而其他语言目前还没有完全支持TLM建模。
SystemC简介
SytemC最初的开发是在Synopsys、Coware和UC Irvine等公司和研究机构中进行的,在1999年SystemC被正式推出。SytemC由Open SystemC Initiative (OSCI) 负责支持、维护和发展。
SystemC是一种基于C++的系统设计语言。在SystemC以前,C和C++是芯片结构设计的主要语言。而在SoC设计中需要集成各种IP和嵌入式软件,C++具有面向对象的设计观念,很适合作为SoC系统的开发语言。
SystemC在C++语言的基础上增加了信号、事件等概念用来描述硬件,而且还可以支持定时、并发等概念。
SystemC可以让系统、硬件和软件工程师使用相同的语言完成整个电子系统的全部建模过程,这样做能够为软硬件划分和缩短产品的上市时间带来帮助。SystemC通过定义新的C++类库和仿真核,用以支持硬件的建模和仿真。
-
硬件
+关注
关注
11文章
3251浏览量
66103 -
ESL
+关注
关注
1文章
73浏览量
21326 -
模型
+关注
关注
1文章
3160浏览量
48703
发布评论请先 登录
相关推荐
评论