您当前的位置: 首页 > 

耐心的小黑

暂无认证

  • 2浏览

    0关注

    323博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SystemVerilog中interface(接口)介绍

耐心的小黑 发布时间:2020-12-31 09:37:48 ,浏览量:2

一、interface的定义与实例化
interface main_bus;
  wire [15:0]  data;
  wire [15:0]  address;
  logic[7:0]   bus_request;
endinterface

module top()
   main_bus bus(); //接口实例化
   slave slave1(
    .bus(bus));
endmodule
二、interface的特点

interface是功能强大的端口类型:

1、可以简化复杂设计的建模和验证。 2、可在module外单独定义。 3、支持多个信号组成一个端口,只需声明1次。 4、接口中可以包括端口、任务task、函数function、过程块、程序块,也可参数化。

三、接口interface与模块module的区别与联系:

1)接口不可以包含设计层次;可以有输入输出信号。 2)接口可以用作模块的端口(当端口用),表示模块间的通信通道。 3)接口可以包含modport(module port缩写),连接到接口上的模块可以不同方式访问接口。也即既可以将interface传入模块,也可以只将modport定义的特定port传入模块。

四、举例

RTL


interface ticket_if(input logic clk,rst_n,[5:0]m_in,output logic ticket_out,[5:0]m_out);
    
    logic [5:0]sum;

    task change(input logic [5:0]in_data,
                          output logic [5:0]out_data );
                          
             out_data = in_data - 6;
    endtask //automatic

    modport ticket_ports(input clk,rst_n,m_in,
            output ticket_out,m_out,sum,
            import task change(input logic [5:0]in_data,
                               output logic [5:0]out_data )
            );
endinterface //interfacename


module ticket(ticket_if.ticket_ports ports);

enum logic [1:0]{s0,s1,s2} state_c,state_n;

always_ff @(posedge ports.clk or negedge ports.rst_n) 
     
    if(!ports.rst_n)
        state_c             
关注
打赏
1640088279
查看更多评论
0.0387s