概述
1. 概念的引入:
port是一个指针,它指向模块外部的channel。 sc_export<T>是一个指针,它指向其他模块内部的channel。
interface是一个抽象类(定义了一些纯虚函数),它也可被看成API,可派生出各个类。
2. 定义:
A SystemC interface is an abstract class that inherits from sc_interface and provides only pure virtual declarations of methods referenced by SystemC channels and ports. No implementations or data are provided in a SystemC interface.
SystemC interface 是个抽象类,它由sc_interface派生而来,仅仅声明了纯虚函数(这些纯虚函数会被channel以及port引用),而不含有任何数据成员。
A SystemC channel is a class that inherits from either sc_channel or from sc_prim_channel, and the channel should1 inherit and implement one or more SystemC interface classes. A channel implements all the pure virtual methods of the inherited interface classes.
SystemC channel 由sc_channel或sc_prim_channel派生而来,channel必须至少由一个interface派生而来,并实现interface class 中定义的所有纯虚函数。
A SystemC port is a class templated with and inheriting from a SystemC interface. Ports allow access of channels across module boundaries.
SystemC port 绑定了interface,并重载了->运算符。语法如下:
当进行端口连接时(sc_port例化执行时),sc_port重载了()运算符,保存了channel object的指针。因此sc_port可看成一个interface pointer指向了channel。sc_port还重载了->,让sc_port表现得更像一个指针。
3. process间的通讯
1. 和同层process通讯是通过event以及interface. 如下
process<-->interface<-->channel<-->interface<-->process。
2. 通过port和module外部通讯
3.和同层子module通讯是通过interface。 如下
process<-->interface<--->channel<--->submodule port 或者
process<-->interface<---> sc_export
最后
以上就是搞怪仙人掌为你收集整理的Chapter 11 -- SystemC From Gound 读书心得的全部内容,希望文章能够帮你解决Chapter 11 -- SystemC From Gound 读书心得所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复