任何系統級建模語言,都需要具備在較高層次的抽象能力和對不同來源的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文章
3312瀏覽量
66200 -
ESL
+關注
關注
1文章
74瀏覽量
21344 -
模型
+關注
關注
1文章
3226瀏覽量
48807
發布評論請先 登錄
相關推薦
評論