systemverilog:interface中端口方向理解

(1)从testbench的角度看,tb中信号的输入输出方向与interface中信号输入输出方向一致
(2)从DUT角度看,DUT中信号输入输出方向与interface中信号输入输出方向相反。简单图示如下

代码示例如下:
 

interface my_if(input bit clk);
	bit write;
	bit [15:0] data_in;
	bit [7:0] address;
	logic [15:0] data_out;

	clocking cb @ (negedge clk);
		default input #1ns output #2ns;
		output  write;
		output  data_in;
		output   address;
		input data_out;
	endclocking

	modport master(clocking cb);

	modport slave(input write, data_in, address, output data_out);

endinterface

module master( clk,data_out  ,  write ,data_in,address );
	input logic clk,write;
	output logic [7:0] data_out;
	input logic [7:0] data_in ,address;
	
	
	always @(negedge clk)
		if(write==0)
			data_out<=0;
		else if (write==1)
			data_out<=data_in;
			
endmodule


class BB;

 virtual  my_if master_inst;
 
function new(virtual interface  my_if a);
	master_inst=a;
endfunction
	
task ass();
	master_inst.master.cb.write<=0;
	repeat(10) @(posedge master_inst.clk);
		master_inst.master.cb.data_in<='h12;

	repeat(10) @(posedge master_inst.clk);
		master_inst.master.cb.data_in<='h34;	

	repeat(10) @(posedge master_inst.clk);
		master_inst.master.cb.data_in<='h45;

master_inst.master.cb.write<=1;
	repeat(10) @(posedge master_inst.clk);
		master_inst.master.cb.data_in<='h56;	

	repeat(10) @(posedge master_inst.clk);
		master_inst.master.cb.data_in<='h67;

	repeat(10) @(posedge master_inst.clk);
		master_inst.master.cb.data_in<='h52;	

	repeat(10) @(posedge master_inst.clk);
		master_inst.master.cb.data_in<='h81;

	repeat(10) @(posedge master_inst.clk);
		master_inst.master.cb.data_in<='h05;	
		
endtask

endclass


module slaver(my_if.slave sif);
	
	initial begin
		sif.data_out <= 16'h0;
		#275 sif.data_out <= 16'h1;
	end
endmodule

module test;
	bit clk = 0;

	always #50 clk = ~clk;

	my_if regbus(clk);
	
	master m0(.clk(regbus.clk ), .address(regbus.address), .data_out(regbus.data_out), .data_in(regbus.data_in),.write(regbus.write));
	
	//slaver s0(regbus.slave);
	
	 BB b_inst=new(regbus);
	 
	initial begin
	 
	 #100 b_inst.ass();
	 
	end

endmodule 


注意:
(1)当interface中有modport或者clocking块时,在testbench中可以直接定义interface的实例,可以将其直接传递到class中,然后在class中的task中可以通过点运算法逐层次的访问modport或者clocking中的信号。也可以通过点运算符直接在tb中实例化interface中的modport对象,然后传递到class中。
(2)在class中的task中对clocking块中的信号赋值时,必须使用非阻塞赋值语句<=;
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/153284.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用哈希表封装unordered_map(以及set)【C++】

目录 一&#xff0c;前言 二&#xff0c;封装层框架&#xff08;哈希底层以哈希桶为例&#xff09; 三&#xff0c;迭代器 1. operator 2. operator[] 3. 仿函数优化 3. 解决unordered_set中Key可以修改的Bug 代码区 Hash_map_set.h HashTable.h 下节预告&#xff1…

Ganache结合内网穿透实现远程不同局域网公网访问

文章目录 前言1. 安装Ganache2. 安装cpolar3. 创建公网地址4. 公网访问连接5. 固定公网地址 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击跳转到网站…

3GPP协议解读(一)_23.501_23.502_PDU Session_SMF与UDP的交互

UE发起计算服务申请后&#xff0c;网络侧处理的流程 UE发起服务的流程&#xff1a;service request网络侧处理服务涉及的通信数据通过PDU Session进行传输&#xff0c;涉及到SMF与UPF的交互。PDU Session的建立、管理全部由SMF&#xff08;Session Management Function&#x…

在混料配料输送系统中使用485modbus转profinet网关案例

485Modbus转Profinet网关是一种在工业自动化控制系统中常用的设备&#xff0c;能够实现不同通信协议之间的转换&#xff0c;对于混料配料输送系统的优化和控制具有重要作用。 通过使用485Modbus转Profinet网关&#xff0c;混料配料输送系统能够实现与不同设备之间的通信和数据交…

Android 框架

MVC: MVP MVVM Model 数据以及业务数据 View 视图 Control 控制器 simple code MVP OnFinishInflate ViewGroup 加载完成 MVC 优化 Struts MVC- MVP MVC-单次调用逻辑把 MVP / 把C拆分出来 MVVM 2017Google推出ViewModel DataBind MVVM是一种框架规则,双向绑定 Model…

电脑技巧:U盘装系统跟光盘装系统有什么区别,看完你就懂了!

目录 一、制作方法 二、优点比较 2.1 U盘 2.2 光盘 三、缺点比较 一、制作方法 U盘&#xff1a;是通过制作U盘系统盘&#xff0c;插在电脑上启动U盘&#xff0c;然后从U盘上启动PE系统&#xff0c;在PE系统里加载预先下载好的镜像&#xff0c;然后开始安装系统。 光盘&am…

使用git上传代码至gitee入门(1)

文章目录 一、gitee注册新建仓库 二、git的下载三、git的简单使用&#xff08;push、pull&#xff09;1、将本地文件推送至gitee初始化配置用户名及邮箱将本地文件提交至gitee补充 2、将远程仓库文件拉取至本地直接拉拉至其他本地文件夹 一、gitee 注册 官网&#xff1a;http…

Java中的Maven项目使依赖和自己写的代码的分开的部署的部署方式

文章目录 优点maven中配置执行maven 打包项目部署查看服务启动状态 优点 随着项目的功能越来越多&#xff0c;如果把所有代码都打包到一个jar里&#xff0c;这样不利于传输。把源码和依赖包分开。这样如果依赖包没有变化的话&#xff0c;再此部署时&#xff0c;就不需要往服务…

人脸106和240点位检测解决方案

人脸识别技术已经深入到我们生活的各个领域&#xff0c;从手机解锁、门禁系统到视频娱乐化等&#xff0c;都离不开高精度的人脸关键点检测。美摄科技作为行业的领军企业&#xff0c;一直致力于提供最先进、最稳定的人脸识别技术&#xff0c;近日&#xff0c;我们推出了全新的10…

懒人福利:6款Sketch插件合集,提升设计效率爆款推荐!

Sketch作为一种在线设计工具&#xff0c;一直是许多设计师的最爱。它不仅能快速建立原型&#xff0c;还能提供丰富的插件&#xff0c;以满足不同的需求。 今天&#xff0c;我想和大家分享六款流行的Sketch插件供参考。这些插件都是精心挑选的&#xff0c;它们支持Windows、Mac…

【LeetCode刷题-滑动窗口】--1695.删除子数组的最大得分

1695.删除子数组的最大得分 注意&#xff1a;子数组为不同元素 方法&#xff1a;滑动窗口 使用变长滑动窗口寻找数组nums中的以每个下标作为结束下标的元素各不相同的最长子数组。用[start,end]表示滑动窗口&#xff0c;初始时startend0&#xff0c;将滑动窗口的右端点end向右…

开发者的第一台服务器 ECS云服务器低至99元:新老同享

“阿里云始终围绕‘稳定、安全、性能、成本、弹性’的目标不断创新&#xff0c;为客户创造业务价值。”10月31日&#xff0c;杭州云栖大会上&#xff0c;阿里云弹性计算计算产品线负责人张献涛表示&#xff0c;通过持续的产品和技术创新&#xff0c;阿里云发布了HPC优化实例等多…

行情分析——加密货币市场大盘走势(11.16)

大饼昨日突然回调诱多上涨到38000附近&#xff0c;现在又重新跌回到37500&#xff0c;现在仓位小的可以加仓入场&#xff0c;而已经有仓位的不要动即可。 空单策略&#xff1a;入场37500附近 止盈34000-32000 止损39000 以太今日可以入场空单2060附近即可 策略&#xff1a;入…

AWD比赛中的一些防护思路技巧

## 思路1&#xff1a; 1、改服务器密码 &#xff08;1&#xff09;linux&#xff1a;passwd &#xff08;2&#xff09;如果是root删除可登录用户&#xff1a;cat /etc/passwd | grep bash userdel -r 用户名 &#xff08;3&#xff09;mysql&#xff1a;update mysql.user set…

易点易动设备管理系统:提升企业设备备品备件的管理效率

在现代企业中&#xff0c;设备备品备件的管理是一个重要而繁琐的任务。良好的备件管理可以提高设备的可用性&#xff0c;减少停机时间&#xff0c;提高生产效率。然而&#xff0c;传统的备件管理方式存在许多问题&#xff0c;如信息不透明、库存过剩或不足、难以追踪等。为了解…

μC/OS-II---整理学习1

目录 系统功能系统结构图 μC/OS-II是用 C 语言&#xff08;绝大部分&#xff09;和汇编语言&#xff08;与处理器密切相关的代码&#xff09;编写的。 系统功能 实时内核&#xff1a;μC/OS-II—内核&#xff1a;任务调度&#xff08;oc_core.c&#xff09;任务管理&#xf…

92.Linux的僵死进程以及处理方法

目录 1.什么是僵死进程&#xff1f; 2.代码演示僵死进程 3.解决办法 1.什么是僵死进程&#xff1f; 僵死进程是指一个子进程在父进程之前结束&#xff0c;但父进程没有正确地等待&#xff08;使用 wait 或 waitpid 等系统调用&#xff09;来获取子进程的退出状态。当一个进…

群晖7.2版本套件安装CloudDriver2

CloudDrive是一个强大的多云盘管理工具&#xff0c;为用户提供包含云盘本地挂载的一站式的多云盘解决方案。挂载到本地后&#xff0c;可以像本地文件一样进行操作。 一、套件库添加矿神源 二、安装CloudDriver2 1、搜索安装 搜索框输入【clouddrive】&#xff0c;搜索到Clou…

μC/OS-II---进程间通信方式

目录 信号量&#xff08; Semaphores &#xff09;- 用于最基本的互斥、同步操作互斥信号量&#xff08;Mutual Exclusion Semaphores &#xff09;-专门用于互斥消息队列&#xff08; Message Queues &#xff09;- 用于消息通信消息邮箱&#xff08;Message Box&#xff09; …

还不知道怎么发成绩?

选择一个适合的发布平台先选择一个适合的软件平台&#xff0c;这里推荐使用小程序。微信已经成为学生们日常生活中必不可少的社交工具&#xff0c;通过微信小程序来进行成绩查询&#xff0c;可以让学生们更方便的获取信息。你可以在微信中搜索并选择合适的小程序&#xff0c;比…