微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 来个System C的专业问题,呼唤高手

来个System C的专业问题,呼唤高手

时间:10-02 整理:3721RD 点击:
关于模块SC_MODULE,用sc_signal来连接,重C++的实现来看,sc_signal和sc_in,sc_out端口是如何实现的?
例如:
SC_MODULE(sub) {
sc_in sub_in;
}
SC_MODULE(top) {
subsub_i;
sc_signaldriven;
SC_CTOR(top) {
sub_i.sub_in(driven);
}
}
就如上例中,sub_i,sub_in 和driven 都是实例化的两个类。
在经过了sub_i.sub_in(driven)操作后,这两个类就统一成一个类了?
而()是sc_in类的一个重载函数?

我靠,你是准备自己写,不调用库?

看下源代码就知道了.
sc_signal_ports.h,重载了operator(),比如sc_in这个类重载如下:
void operator () ( inout_port_type& parent_ )//连接sc_inout类型
{ sc_port_base::bind( parent_ ); }
void operator () ( in_port_type& parent_ ) //连接sc_in类型
{ sc_port_base::bind( parent_ ); }

多谢whxqq,看来要好好研究了下SC库了。
回aimar327,刚入手看SC,想建模一个AHB总线,最开始的想法是从,sc_in,sc_out扩展,所以想知道SC中如何建模连线的细节。看了sc_in的source code,发现以前想错了,建模AHB,要通过sc_port来进行,不知道思路是不是正确?

sc_signal是一个primitive channel。sc_in和sc_out都是port。sc_signal和sc_in(out)的interface是一致的,所以可以连接。
port知识module和外界通信的接口,它提供了一个IMC或者RPC的手段。
要建模AHB的话,首先要搞清楚你想建哪个层次的?cycle-accurate还是transaction-level的?如果是前者,要用pin level的sc_signal和sc_port等;如果是后者,要用更高层次的抽象,如interface,channel,tlm等。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top