在学习SystemC-TLM时经常看到sc_export,这到底是啥?
其实这个概念的资料挺少,SystemC手册也写的不清不楚。
个人感觉,是在模块内部process需要使用通道的一些方法时,才使用sc_export,它可以在模块内部把端口和通道连接(通道在模块内部定义),同时把这个通道暴露给父模块。
说说我的努力:
1. 查询SystemC官方手册。在5.13可以看到。说实话,对我帮助不大,可能是我没有把5.13看完,好的教材应该有代码用例
2. https://stackoverflow.com/questions/66548609/difference-between-sc-port-and-sc-export 这个回答说,模块的output使用sc_export,模块的input使用sc_port,我认为这个是不一定的,也跟我最后对sc_export的理解不一样
3. https://forums.accellera.org/topic/6253-what-are-the-major-differences-between-sc_port-and-sc_export/ 这个回答用字符画了一些图,还是没法理解
4. ChatGPT --- 这玩意儿讲的跟手册里的差不多,让它给出样例,结果它给出的样例全都是只定义了sc_export却不使用它,叫它使用sc_export它也不使用。
5. https://learnsystemc.com/basic/export learnSystemC提供的样例还是不错的,至少让我看到sc_export的使用了,确实可以在模块内定义通道,然后暴露出去。