您当前的位置: 首页 > 

耐心的小黑

暂无认证

  • 4浏览

    0关注

    323博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SystemVerilog 在interface中使用modport时的例化问题

耐心的小黑 发布时间:2020-12-12 11:47:55 ,浏览量:4

一、前言

systemverilog中有一个非常实用的功能,那就是interface。在最近写一个小练习的时候,不仅使用到了interface,还在interface中使用了modport,但是在一开始例化的时候出了点问题,所以在这里说一下需要注意的地方。

下面举一个例子,这个例子主要展示了:

  • 如何在module中调用interface
  • 如何在testbench中正确例化interfacemodule,并将在testbench中定义的与module的输入输出信号对应的信号传入module

代码功能不重要,而且我这个代码设计的有些问题,我也就不改了emmm!!!

二、举例

1、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.0580s