SystemC Tutorial 2 Module

简介: 模块(Module)模块是SystemC设计中的基本设计单元。模块可以使得设计者将一个复杂的系统分割为一些更小但易于管理的部分。SystemC模块的功能和作用与HDL语言中的模块是类似的。定义的模块也可以像HDL语言一样包含端口、信号、其他模块、处理过程和结构体,这些单元实现用以实现模块的功能。通过端口可以将几个模块连接起来。模块被保存为 .h 文件。如果在一个模块中调用其他模块,只需像C++中引

模块(Module)

模块是SystemC设计中的基本设计单元。模块可以使得设计者将一个复杂的系统分割为一些更小但易于管理的部分。SystemC模块的功能和作用与HDL语言中的模块是类似的。

定义的模块也可以像HDL语言一样包含端口、信号、其他模块、处理过程和结构体,这些单元实现用以实现模块的功能。

通过端口可以将几个模块连接起来。模块被保存为 .h 文件。如果在一个模块中调用其他模块,只需像C++中引入库一样将要调用的模块作为一个库引入即可。

模块在SystemC中的关键字为:SC_MODULE。紧接着关键字后的是模块的名词如 SC_MODULE(fifo),这就定义了一个叫fifo的模块。

语法:

宏形式

SC_MODULE("module_name") {

// module body

}

C++形式 class module_name : sc_module {

// module body

}

Example:

// All systemc code should include systemc.h file  

#include "systemc.h"  

// SC_MODULE is macro, hello_world is module name  

SC_MODULE (hello_world) {  

// Body of module hello_world  

};

Module Ports

传输模块内部进程的数据到外部,port的方向类型有:in,out,inout。port的数据类型可以是C++数据类型,SystemC数据类型,或自定义。

SystemC类库提前定义了模式,sc_in, sc_out, sc_inout。

语法:

sc_direction type variable;

说明:

port_direction: sc_in, sc_out, sc_inout其中一种;

type: 数据类型;

variable: 变量名

Example: #include "systemc.h"

SC_MODULE (first_counter) {

sc_in_clk  clock; //Clock input of the design

sc_in<bool> reset;  //active high, synchronous Reset input

sc_in<bool> enable; //Active high enable signal for counter

sc_out<sc_uint<4>> counter_out; //4bit vector output of the counter

// other

}

Module Signals

用于模块内进行通信,可以是任何合法的数据类型。

语法:

sc_signal type variable;

说明:

sc_signal: 关键字

type:数据类型

variable:变量名

目录
相关文章
|
7月前
|
Ubuntu Python
【Python】报错ModuleNotFoundError: No module named ‘XXX‘
【Python】报错ModuleNotFoundError: No module named ‘XXX‘
ModuleNotFoundError: No module named ‘mmdet.version‘
ModuleNotFoundError: No module named ‘mmdet.version‘
1544 0
|
5月前
|
Python
【Python】已解决ModuleNotFoundError: No module named ‘requests’
【Python】已解决ModuleNotFoundError: No module named ‘requests’
2855 2
|
5月前
|
机器学习/深度学习 Python
【Python】已解决:ModuleNotFoundError: No module named ‘paddle’
【Python】已解决:ModuleNotFoundError: No module named ‘paddle’
865 1
|
5月前
|
数据挖掘 程序员 Python
【Python】已解决:ModuleNotFoundError: No module named ‘Workbook’
【Python】已解决:ModuleNotFoundError: No module named ‘Workbook’
98 0
|
5月前
|
计算机视觉 Python
【Python】已解决:ModuleNotFoundError: No module named ‘cv2’
【Python】已解决:ModuleNotFoundError: No module named ‘cv2’
904 0
|
5月前
|
自然语言处理 数据处理 Python
【Python】已解决:ModuleNotFoundError: No module named ‘LAC‘
【Python】已解决:ModuleNotFoundError: No module named ‘LAC‘
71 0
|
5月前
|
自然语言处理 Java Python
【Python】已解决:ModuleNotFoundError: No module named ‘pyhanlp’
【Python】已解决:ModuleNotFoundError: No module named ‘pyhanlp’
101 0
go: finding module for package
go: finding module for package
126 0
|
TensorFlow 算法框架/工具 Python
成功解决ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
成功解决ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'