1. 程式人生 > >個人對SystemC開發的一些粗淺體會

個人對SystemC開發的一些粗淺體會

SystemC是一種建模語言,可以對軟硬體系統進行建模。描述抽象層次可以分為演算法級(ALM)、系統結構級(SAM)、事務級(TLM)和RTL;

標準的C/C++可以對系統的演算法進行描述,但是無法模擬硬體的併發性行為,即無法評估硬體系統架構。

SystemC其實就是C++的一個類庫,在標準C++的基礎上建立了一個Simulation Kernel,來對各種process的執行順序進行排程。這個Kernel的演算法思想是把連續的模擬時間劃分為多個離散的模擬時刻,再把一個模擬時刻劃分為多個delta-cycle。這樣就可以在這些delta-cycle中用順序執行的程式語言來模擬硬體的並行性行為。

用SystemC進行模型開發,表面上是在玩C++語法。但隨著抽象層次不斷地向下refine達到cycle-accurate,就需要對硬體的行為(尤其是RTL級)有深刻的理解。所以RTL背景的人可以很容易開發出週期精確的模型,當他們把抽象層次繼續向上就比較困難;而要讓純軟體背景的人把抽象層次不斷向下,他們又對硬體的併發性理解不夠深刻。