一、什么是接口
- 接口可以用作设计,也可以用作验证。
- 在验证环境中,接口可以使得连接变得简洁而不易出错。
- interface和module使用性质很像,它可以定义端口,也可以定义双向信号,它可以使用initial和always,也可以定义function和task。
- interface可以在硬件环境和软件环境中传递,如module中的端口列表和软件方法中的形参。
- 可以把interface看作一个“插排”,而DUT与TB之间的数据驱动关系都可以使用interface这个“插排”来完成。
二、接口的优势
- 将有关信号封装在同一个接口中,对于设计和验证环境都便于维护和使用。
- interface是SV中唯一的硬件和软件环境的媒介交互。
- 接口可以例化,使得对于多组相同的总线,在例化和使用时变得更加灵活。
三、接口的定义和使用
- interface的端口列表中只需要定义时钟、复位等公共信号,或不定义任何端口信号,转而在变量列表中定义各个需要跟DUT和TB连接的logic变量。
- interface也可以依靠函数参数化方式提供复用性。
- interface在例化时,同module例化方式一样。
- 模块里面可以例化模块,也可以例化interface,interface里面可以例化interface但不能例化module。