Chapter 4 -- SystemC From Gound 读书心得
2010-11-28 17:20
567 查看
1. systemC的入口是sc_main,而实质上是由用户不可见的main,调用sc_main(int argc,char* argv[])来实现的。systemC提供了sc_argc(), sc_argv()来读取argc和argv[]。 sc_main 包含三个阶段: elaboration,simulation,post-processing。 elaboration阶段完成module的连接以及process的注册。由sc_start()进入simulation阶段,由scheduler调度进程。sc_start()结束后进入post-processing阶段,此阶段对result进行处理并报告。而callback在某些点可插入执行代码。如end_of_elaboration(), start_of_simulation, end_of_simulation.
2. module
声明如下:
具体内容有:
1)ports 2) channel instance 3) data instance 4) sub-designs 5) constructor 6) destructor 7) simulation process
8) member functions
module constructor:
process 由systemC kernel调用,所以不需要参数和返回值。
3. recommanded style
*submodules are implemented using pointers instead of direct instantiation. This method allows for dynamic
design configuration.
2. module
声明如下:
#include <systemc> SC_MODULE(module_name) { MODULE_BODY }; 更倾向于: #include <systemc> class module_name : public sc_module { public: MODULE_BODY };
具体内容有:
1)ports 2) channel instance 3) data instance 4) sub-designs 5) constructor 6) destructor 7) simulation process
8) member functions
module constructor:
SC_MODULE(module_name) { SC_CTOR(module_name) : Initialization // C++ initialization list { Subdesign_Allocation Subdesign_Connectivity Process_Registration // SC_THREAD... Miscellaneous_Setup } };
process 由systemC kernel调用,所以不需要参数和返回值。
3. recommanded style
-----------------Name.h------------------------ #ifndef NAME_H #define NAME_H Submodule forward class declarations SC_MODULE(NAME) { Port declarations Channel/Submodule* definitions // Constructor declaration: SC_CTOR(NAME); Process declarations Helper declarations }; #endif -----------------Name.cpp------------------------ #include <systemc> #include "NAME.h" SC_HAS_PROCESS(NAME); NAME::NAME(sc_module_name nm) : sc_module(nm) , Initializations { Channel allocations Submodule allocations Connectivity Process registrations } NAME::Process {implementations } NAME::Helper {implementations }
*submodules are implemented using pointers instead of direct instantiation. This method allows for dynamic
design configuration.
相关文章推荐
- Chapter 10 -- SystemC From Gound 读书心得
- Chapter 11 -- SystemC From Gound 读书心得
- Chapter 3 -- SystemC From Gound 读书心得
- Chapter 6 -- SystemC From Gound 读书心得
- Chapter 2 -- SystemC From Gound 读书心得
- Chapter 5 -- SystemC From Gound 读书心得
- Chapter 12 -- SystemC From Gound 读书心得
- Chapter 9 -- SystemC From Gound 读书心得
- Chapter 8 -- SystemC From Gound 读书心得
- Chapter 7 -- SystemC From Gound 读书心得
- Chapter 13 -- SystemC From Gound 读书心得
- trace openjdk from systemtap
- 十月读书心得
- Mouse translation from System.Windows.Forms.MouseButtons to System.Windows.Input.MouseButton
- practical system design with mef & mef[ trans from arup.codeplex.com/]
- 看了一个月资料,写一篇论文读书心得
- 看了一个月资料,写一篇论文读书心得
- 深入浅出设计模式-读书心得1
- C语言——读书心得1
- 读书心得:企业管理的哲学——以德治企