HDL和C/SC联合仿真,关于SC建模和C++建模两者有何区别?
时间:10-02
整理:3721RD
点击:
1、不管是SC还是C++建模,只要是HDL和SC/C的联合仿真,都是必须选择一种接口标准的(PLI或是DPI)2、用SC建模或是C++建模两者有何区别?
没怎么用过SC或是C++,目前只知道SC可以理解为C++的一个类库,如果不是HDL和SC/C的联合仿真,那么如果要实现并行操作的话,有如下几类方法:
没怎么用过SC或是C++,目前只知道SC可以理解为C++的一个类库,如果不是HDL和SC/C的联合仿真,那么如果要实现并行操作的话,有如下几类方法:
1)私有方法(使用pthread简单实现)
2)systemc(SC_METHOD)
3)verilog仿真器提供的并发执行环境(VCS+PLI,SV+DPI)
这种情况下(不是HDL和SC/C的联合仿真),用SC建模和C++建模最大的区别可能就是仿真速度了,理论上仿真速度1)>2)>3)
但是如果是HDL和SC/C的联合仿真,用SC建模或是C++建模有什么区别吗?都是通过PLI或是DPI接口,SC建模能周期精准?C++建模就只能是untime吗?两者有何区别,如果非要用C++建模,需要注意什么情况啊,刚接触这些,忘有经验的高手指点一下啊?
SC有自己的仿真引擎,就在SC库里,会负责事件调度等。普通C++没有。
SC建模能周期精准。SC有相当于Verilog的RTL建模能力。
还没有见到过用sc能做到周期精确的,做到周期精确的sc和rtl已经没有多少区别了。大部分算法工程师都对sc不感冒。另外,sc常用tlm接口和testbench通信。
SC用于ESL系统建模,重点在抽象,有4个层次,最精准的能达到cycle accurate. 到了后期可以和SV来做验证拉通。