栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

SysytemC知识点整理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SysytemC知识点整理

背景:最近需要用到noxim做关于noc的仿真实验,所以学习一下SystemC,这里简短的整理一下学习笔记。看的是B站的一个视频:【数字芯片验证&软硬件协同仿真】SystemC_哔哩哔哩_bilibili

正题:

SystemC根本不是一种语言,实际上是C++的库。它是以常规c语言编写的用于模拟硬件行为的类。

#include//头文件,用于引用system库

SC_MODULE(and2){//声明了一个名叫and2的模块

sc_in

a;

sc_in

b;//这里给这这个模块,定义了两个输入端口a和b

sc_out

f;//定义一个输出端口f

sc_in clk;//定义一个时钟信号,时钟总是一个信号位,所以用bool类型

void func(){

        f.write(a.read()&b.read());//向输出端口f写入值,这个值是在输入端口a和b上读取的

}

SC_CTOR(and2){//实例化该and2模块以进行仿真,比如指定设计是在上升沿还是下降沿进行更改的操作,本例仅简单将a和b输入端口读入,然后将结果写入输出端口f

        SC_METHOD(func);将函数转换为SC_METHOD,然后转到systemc的构造函数并添加以行为函数名称作为参数this的行SC方法

        sensitive<

        sensitive<

        sensitive<

}

}

SystemC有三种类型的线程:SC_METHOD(),SC_THREAD(),SC_CTHREAD().

SC_METHOD():每次被触发时,完全执行一次;连续运行,适用于组合逻辑或小型顺序逻辑;

SC_THREAD():一次执行,在完成后暂停,可以像while循环那样在其中放入无限循环;

SC_CTHREAD():可能需要一个或多个时钟周期来执行。

sc_uint:   N是位宽

例子:sc_unit<3> x; 声明一个位宽为3的无符号整数x

在此表中,可以看到用x描述的可能值;

如果是sc_int<3> x;int类的最高有效位是符号位,所以

所以sc_in< sc_uint<1> > a,b

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号