如何开发ESL方法学中TLM2 子模块?
本文简要总结一下开发一个子模块的TLM2的方法。
通常情况下,一个复杂的设计包含几个层次,每个层次又包含许多子模块。
而这些子模块的开发是TLM model的关键。
1 SC_HAS_PROCESS的使用
一般开发c++,类的定义和实现放在两个文件,这时就要用 SC_HAS_PROCESS,这是因为构造函数中,SC_THREAD,SC_METHOD, SC_CTHREAD需要关联类中的进程。
https://learnsystemc.com/basic/sc_has_process
2 为了便于实现子模块之间的通信,通常用transport作为互连机制。
1)即使这些通信方法不是与总线相连,为了便于传输payload,一般这些
接口也是采用标准的TLM2.
2)就像构造函数和析构函数一样,这些接口函数一般在public访问域,而不是private。
3 模块间通信还有通常的port或者信号。也是放在public访问域。
4 模块的最重要的是模块的构造函数。
5 开发模块的一个比较好的做法是先写基类,再写子类。