我是SystemC / SystemC-AMS的新手。我需要根据模块的参数配置SC模块的子模块。具体来说,请考虑以下模块:
SC_MODULE(test) {
sca_core::sca_parameter<double> f, amp;
test(sc_core::sc_module_name): f("f", 0), amp("amp", 1) {
// connect sub-modules, etc.
}
// ...
private:
sca_lsf::sca_source src{"src"}; // a sub-module
}
现在,我需要从frequency
和amplitude
参数设置src
的{{1}}和f
参数。我的第一次(显然是错误的)尝试是写
amp
在模块 src.frequency = f;
src.amplitude = amp;
的构造函数中。这会使参数test
和f
处于锁定状态。显然,构造函数不是进行此分配的合适位置(因为在实例化模块后可以在amp
和f
处进行更改)。
另一种可能性是公开子模块amp
,以便可以从外部src
更改其参数。但这是不安全的,因为例如,我不希望用户更改test
的其他参数。