SystemVerilog 2.1 Interface介绍
SystemVerilog在Verilog语言基础上扩展了"接口” (interface) 结构,接口给模型提供了一种新的方式,通过使用接口可以简化大型复杂设计的建模和验证。
接口是把模块信号封装起来的方法,所有相关的信号都封装起来形成interface block,因此接口可以在其他项目中复用。并且在其他验证组件中链接到DUT会更简单。
例子
APB信号封装在以下的interface中。
interface apb_if (input pclk);
logic[31:0] paddr;
logic[31:0] pwdata;
logic[31:0] prdata;
logic penable;
logic pwrite;
logic psel;
endinterface
为什么信号类型是logic?
logic是新的数据类型,让你可以通过assign来驱动信号。在verilog中,我们只能在procedural block中驱动reg类型,在assign中驱动wire。
连接到DUT的信号需要支持4值逻辑,因此X/Z信号可以被采集。如果这些信号连接到bit类型信号,X/Z信号将会被采集为0,信号的X/Z状态会丢失。
怎么定义port方向?
interface信号可以被于不同的验证组件,包括DUT中,modport可以用来定义信号方向。不同modport定义可以传递到不同的验证组件,因此对于不同的验证组件可以定义不同的输入-输出方向。
SystemVerilog2.1:Interface基础与应用

SystemVerilog的接口(interface)提供了一种组织和复用设计信号的方法,简化大型设计的建模和验证。logic数据类型允许在assign语句中驱动信号,支持4值逻辑。modport定义接口信号的方向,便于在不同组件间使用。接口可以包含任务、函数、参数、变量、功能覆盖和断言,提高抽象层次。clockingblock用于指定信号相对于时钟的采样和驱动时机,帮助管理测试bench中的时序。参数化的接口允许自定义宽度等参数。
最低0.47元/天 解锁文章
493

被折叠的 条评论
为什么被折叠?



