学海荡舟手机网
导航

主页 > 电子设备技术 > 电器电路基础 > > 详细内容

SystemC-sc_port

        端口与特定的通道接口相连,或者同父模块的端口相连。进程通过特定的端口调用通道的接口提供的方法。对于基本的端口类型,可以调用的接口方法有write()和read(),但这些在有些情况下是不能够满足我们的要求的。比如:

      当端口与总线接口或者接口相连的时候,需要同时提供地址和数据。

      进程可能需要了解通道的状态信息。例如一个FIFO通道,需要了解FIFO中当前的数据数量,还可以存储的数据数量。

      高层次建模中与数据读写无关的一些操作如复位操作。

      高层次建模中的进程的动态敏感,如wait_for_response()、wait_for_request()。

      在Syst2.2中,一个端口可以同时连接到一个或者多个实现了同一接口的通道上。端口必须在模块中使用,端口的定义方法如下:

      sc_port<InterfaceType, ChannelNumber = 1>

      InterfaceType是端口所要连接的通道的接口类型,ChannelNumber代表端口所要连接的最大通道数,默认值是1。当连接数目未定时可以使用0,它代表一个端口可以连接无穷多个通道。

      假设我们已经定义了接口ram_if, 则下面的端口定义都是合法的:

      sc_port< ram_if > ram_port1;  //连接到一个RAM上
      sc_port< ram_if, N > ram_portN;  //可以连接到N个RAM上
      sc_port<ram_if, 0 > ram_port0;  //不限制所连接的RAM数量

      设计中端口所实际连接的通道的数目可以通过size()方法来访问。如可以通过ram_port0.size()来得到实际连接到ram_port0的通道RAM的数量。

      一个模块的端口能够连接到零个、一个或者多个通道,或者零个、一个或者多个父模块的端口,但必须至少连接到1个通道或者父模块的端口上。

相关文章