任何系統(tǒng)級(jí)建模語(yǔ)言,都需要具備在較高層次的抽象能力和對(duì)不同來(lái)源的IP的集成能力。建模方法的選擇通常基于語(yǔ)言熟悉程度、建模支持、模型可用性和簡(jiǎn)單性。
在各種軟硬件描述語(yǔ)言中,Verilog和VHDL是RTL級(jí)建模的最佳語(yǔ)言,有足夠的精度如比特精確和周期精確,但缺乏高層次抽象的能力,而且對(duì)軟件部分的描述無(wú)能為力。
而C/C++、Java等都是軟件的優(yōu)秀描述語(yǔ)言,也具有高層次的抽象能力,一些設(shè)計(jì)師就是用它們來(lái)進(jìn)行系統(tǒng)建模的。但他們沒(méi)有精確到比特的能力,也沒(méi)有并發(fā)描述能力和時(shí)鐘的概念。
通過(guò)對(duì)上述語(yǔ)言進(jìn)行擴(kuò)展可以提高描述系統(tǒng)的能力。在這些語(yǔ)言中,有些是在C語(yǔ)言基礎(chǔ)上進(jìn)行擴(kuò)展的HardwareC和SpecC,它們分別由斯坦福大學(xué)和加州大學(xué)研究小組開(kāi)發(fā)。
還有在Java上擴(kuò)展的語(yǔ)言如JHDL,在Verilog上擴(kuò)展的SystemVerilog,以及在C++上擴(kuò)展的SystemC。這些語(yǔ)言通過(guò)增加系統(tǒng)描述的關(guān)鍵詞,可以實(shí)現(xiàn)硬件和軟件的描述,具有描述系統(tǒng)的能力。業(yè)界獲得較多支持和應(yīng)用較為廣泛的語(yǔ)言是SystemVerilog和SystemC。
SystemVerilog是在Verilog上的擴(kuò)展,吸收了C/C++語(yǔ)言中的一些變量,可以實(shí)現(xiàn)和C語(yǔ)言一起仿真。由于是在Verilog上的擴(kuò)展,SystemVerilog的優(yōu)勢(shì)在于基于時(shí)鐘的建模能力和驗(yàn)證能力,但在TLM的抽象上還存在一些不足,如缺少抽象的數(shù)據(jù)類型等。更為成功的系統(tǒng)建模語(yǔ)言無(wú)疑是SystemC。
SystemC是OSCI推出的基于C++語(yǔ)言擴(kuò)展的描述語(yǔ)言,是一種可以完成電子系統(tǒng)從軟件到硬件的全部建模過(guò)程的語(yǔ)言。在目前的設(shè)計(jì)中,軟件開(kāi)發(fā)占到設(shè)計(jì)任務(wù)的60%~90%,基于C++語(yǔ)言擴(kuò)展的語(yǔ)言SystemC比從HDL擴(kuò)展的語(yǔ)言有更加有利的發(fā)展趨勢(shì)。SystemC完全支持TLM建模,而且OSCI已經(jīng)提出了TLM建模的標(biāo)準(zhǔn),而其他語(yǔ)言目前還沒(méi)有完全支持TLM建模。
SystemC簡(jiǎn)介
SytemC最初的開(kāi)發(fā)是在Synopsys、Coware和UC Irvine等公司和研究機(jī)構(gòu)中進(jìn)行的,在1999年SystemC被正式推出。SytemC由Open SystemC Initiative (OSCI) 負(fù)責(zé)支持、維護(hù)和發(fā)展。
SystemC是一種基于C++的系統(tǒng)設(shè)計(jì)語(yǔ)言。在SystemC以前,C和C++是芯片結(jié)構(gòu)設(shè)計(jì)的主要語(yǔ)言。而在SoC設(shè)計(jì)中需要集成各種IP和嵌入式軟件,C++具有面向?qū)ο蟮脑O(shè)計(jì)觀念,很適合作為SoC系統(tǒng)的開(kāi)發(fā)語(yǔ)言。
SystemC在C++語(yǔ)言的基礎(chǔ)上增加了信號(hào)、事件等概念用來(lái)描述硬件,而且還可以支持定時(shí)、并發(fā)等概念。
SystemC可以讓系統(tǒng)、硬件和軟件工程師使用相同的語(yǔ)言完成整個(gè)電子系統(tǒng)的全部建模過(guò)程,這樣做能夠?yàn)檐浻布澐趾涂s短產(chǎn)品的上市時(shí)間帶來(lái)幫助。SystemC通過(guò)定義新的C++類庫(kù)和仿真核,用以支持硬件的建模和仿真。
-
硬件
+關(guān)注
關(guān)注
11文章
3382瀏覽量
66461 -
ESL
+關(guān)注
關(guān)注
1文章
74瀏覽量
21417 -
模型
+關(guān)注
關(guān)注
1文章
3313瀏覽量
49232
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論