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个通道或者父模块的端口上。
当端口与总线接口或者接口相连的时候,需要同时提供地址和数据。
进程可能需要了解通道的状态信息。例如一个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个通道或者父模块的端口上。
- 上一篇:一个sc_port实例
- 下一篇:SystemC-sc_interface