背景:最近需要用到noxim做关于noc的仿真实验,所以学习一下SystemC,这里简短的整理一下学习笔记。看的是B站的一个视频:【数字芯片验证&软硬件协同仿真】SystemC_哔哩哔哩_bilibili
正题:
SystemC根本不是一种语言,实际上是C++的库。它是以常规c语言编写的用于模拟硬件行为的类。
#include<system.h>//头文件,用于引用system库
SC_MODULE(and2){//声明了一个名叫and2的模块
sc_in<DT> a;
sc_in<DT>b;//这里给这这个模块,定义了两个输入端口a和b
sc_out<DT> f;//定义一个输出端口f
sc_in<bool> clk;//定义一个时钟信号,时钟总是一个信号位,所以用bool类型
void func(){
f.write(a.read()&b.read());//向输出端口f写入值,这个值是在输入端口a和b上读取的
}
SC_CTOR(and2){//实例化该and2模块以进行仿真,比如指定设计是在上升沿还是下降沿进行更改的操作,本例仅简单将a和b输入端口读入,然后将结果写入输出端口f
SC_M