一、前言
在systemverilog
中有一个非常实用的功能,那就是interface
。在最近写一个小练习的时候,不仅使用到了interface
,还在interface
中使用了modport
,但是在一开始例化的时候出了点问题,所以在这里说一下需要注意的地方。
下面举一个例子,这个例子主要展示了:
- 如何在
module
中调用interface
- 如何在
testbench
中正确例化interface
和module
,并将在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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?