您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制SystemC-sc_port<IF, N 正文
SystemC-sc_port<IF, N

SystemC-sc_port<IF, N

点击数:7659 次   录入时间:03-04 11:51:34   整理:http://www.55dianzi.com   电脑-单片机-自动控制

      类sc_port<IF,N>是所有端口的基类,它是一个模板类。IF是接口类型,N是所连接的同一类型的通道数目,也就是接口数,它的缺省值是1。sc_port<IF,N>是sc_port_b<IF>的子类,而sc_port_b<IF>是sc_port_base的子类,它们都是SystEMC内核中的重要类,本书在这里不做详细讨论。

      下面是sc_port<IF,N>的准代码,列出了它的几个重要成员函数。

  1. template <class IF, int N = 1>  
  2. class sc_port  
  3. : publIC sc_port_b<IF>  
  4. {  
  5. public:  
  6. // 缺省构造函数  
  7. sc_port();   
  8.  
  9. void operator () ( IF& interface );  
  10. void operator () ( sc_port_b<IF>& port );   
  11.  
  12. IF* operator -> ();  
  13. const IF* operator -> () const;   
  14.  
  15. int size() const;   
  16.  
  17. IF* operator [] ( int index );  
  18. const IF* operator [] ( int index ) const;   
  19.  
  20. ...   
  21. protected:  
  22. vector<IF*> m_interface_vec;   
  23. IF* m_interface;  
  24. ...   
  25. }; 

      重载操作符operator () ( IF& interface )用于将端口与接口捆绑起来,实现端口与通道的接口的互通,这是端口的最基本操作。操作符operator () ( sc_port_b<IF>& port )用于将端口与父模块的端口捆绑起来,使端口支持分层的模块化设计。IF* operator -> ()和const IF* operator -> () const实现接口方法的调用。利用size()可以查询当前端口所连接的同一类型的接口数(也可以认为是所连接的通道数)。当多个接口连接到同一个端口上时,可以利用operator [] ( int index )来调用不同的接口的方法。比如在3.4.2节的例子中,当有多个RAM连接到同一个ram_port上时,可以利用ram_port[n]-> read(address, data),(0<=n<ram_port.size())来调用第n个接口的方法read(address, data)。




本文关键字:暂无联系方式电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制