SystemVerilog语法中,在Class中引用层次化信号
在class中可以像在verilog中一样,直接在class中引用层次化信号。示例如下:
1.DUT模块,文件名为top.v。
module top
(input clk ,input rst_n ,//总线信号 input wr_n ,input rd_n ,input cs0_n ,input cs7_n );
2.cpu类,文件名为cpu.sv,在cpu类中可以通过.运算符直接引用其他模块的信号,如tb.top_inst.syn_rst_n。
`include "tb_interface.sv"class cpu;virtual top_if cpu_if;//声明虚拟接口function new(virtual top_if watch_dog_interface);//在构造函数中将虚拟接口传递到类变量中cpu_if=watch_dog_interface;endfunction task signal_synchronous(logic [2:0] signal);wait( tb.top_inst.syn_rst_n);//在类中直接引用其他模块的信号、变量@(posedge tb.top_inst.sys_clk);#1 ;cpu_if.cs0_n<=signal[0];//通过接口对接口中的信号赋值cpu_if.rd_n<=signal[1];cpu_if.wr_n<=signal[2];@(posedge tb.top_inst.sys_clk);#1 ;cpu_if.cs0_n<=signal[0];cpu_if.rd_n<=signal[1];cpu_if.wr_n<=signal[2]; @(posedge tb.top_inst.sys_clk);#1 ;cpu_if.cs0_n<=signal[0];cpu_if.rd_n<=signal[1];cpu_if.wr_n<=signal[2];repeat(10) @(posedge tb.top_inst.sys_clk);endtask
endclass
3.在testbench中将dut和tb连接,并在tb模块中实例化类对象。
`timescale 1ns/1ps`include "tb_interface.sv"
`include "watch_dog.sv"
`include "cpu.sv"module tb;bit clk ;top_if topif(clk); //实例化top_if对象,将clk传递给interface//top_if topif ;dszj_2k_6001797_top top_inst( .clk(topif.clk), //将topif接口对象与DUT绑定,这里直接按照位置绑定.rst_n( topif.rst_n ),.wr_n(topif.wr_n), .rd_n( topif.rd_n ),.cs0_n( topif.cs0_n ),.cs7_n(topif.cs7_n )); initialbeginclk=0; topif.rst_n=0;#100 topif.rst_n=1;endalways #12.5 clk=~clk;watch_dog watch_dog_inst=new(topif);//将topif接口传递给watch_dog类的对象cpu cpu_inst=new(topif);//将topif接口传递给cpu类的对象initialbegin repeat(1000) @(posedge clk);watch_dog_inst.print();// watch_dog_inst.cpu_inst.signal_synchronous(3'b111);endendmodule
相关文章:
SystemVerilog语法中,在Class中引用层次化信号
在class中可以像在verilog中一样,直接在class中引用层次化信号。示例如下: 1.DUT模块,文件名为top.v。 module top (input clk ,input rst_n ,//总线信号 input wr_n ,input rd_n ,input cs0_n ,input cs7_n …...
磁盘的结构(磁道,扇区,盘面,柱面,物理地址)
目录 1.磁盘、磁道、扇区的概念1.磁盘2.磁道3.扇区 2.如何在磁盘中读/写数据3.盘面、柱面的概念4.磁盘的物理地址1.根据地址读取一个“块” 5.磁盘的分类1.活动头磁道2.固定头磁盘3.根据盘片是否可更换 1.磁盘、磁道、扇区的概念 1.磁盘 磁盘的表面由一些磁性物质组成…...
uni-app集成uni-simple-router,报错:Uncaught ReferenceError: ROUTES is not defined
参考连接:GitHub - SilurianYang/uni-read-pages: read pages.json file to generate the routes table 作用:配置 vue.config.js 通过 webpack注入全局变量 问题:缺少Webpack 配置环境 方法: 项目根目录下打开终端,…...
几个常用的nosql数据库的操作方式
dynamoDB 键 partition key:分区键 定义:分区键是用于分布数据存储的主键,每个项(Item)在表中都必须有一个唯一的分区键值。 特点: 唯一性:每个分区键值在表中必须是唯一的,这是因为…...
如何使用 nvm-windows 这个工具来管理你电脑上的Node.js版本
nvm-windows 是一个用于管理在 Windows 上安装的多个 Node.js 版本的工具。以下是安装和使用 nvm-windows 的步骤: 第1步:下载 nvm-windows 访问 nvm-windows 的 GitHub发布页面.下载最新版本的 nvm-setup.zip 文件。 第2步:安装 nvm-wind…...
公司电脑禁用U盘的方法
公司电脑禁用U盘的方法 安企神U盘管理系统下载使用 在这个复杂的数据时代,保护公司数据的安全性至关重要。其中,防止未经授权的数据泄露是其中的一个关键环节。U盘作为一种常用的数据传输工具,也成为了潜在的安全风险。因此,公司…...
Elasticsearch 7.X版本常用语法语句
文章目录 监控相关 API查看健康状况查看所有节点查看所有节点详细信息查看主节点查看所有索引查看所有分片 索引管理创建索引查看索引查看索引字段类型修改索引字段删除索引别名给索引添加别名查询某个索引下的别名给索引更换别名给索引解绑别名一个别名绑定多个索引查询index_…...
Python分享之数学与随机数 (math包,random包)
我们在Python运算中看到Python最基本的数学运算功能。此外,math包补充了更多的函数。当然,如果想要更加高级的数学功能,可以考虑选择标准库之外的numpy和scipy项目,它们不但支持数组和矩阵运算,还有丰富的数学和物理方…...
Linux 基本语句_8_C语言_文件控制
为了解决多个进程同时操作一个文件,产生一些情况,通常对文件进行上锁,已解决对共享文件的竞争 对打开文件进行各种操作: int fcentl(int fd, int cmd, .../*arg*/如果cmd与锁操作有关,那么fcentl函数的第三个参数就要…...
博通BCM575系列 RDMA 网卡驱动 bnxt_re 分析(一)
简介 整个BCM系列驱动分成以太网部分(bnxt_en.ko)和RDMA部分(bnxt_re.ko), 两个模块之间通过内核的auxiliary_bus进行管理.我们主要分析下bnxt_re驱动. 代码结构 这个驱动的核心是 qplib_fp.c, 这个文件主要包含了驱动的数据路径, 包括Post Send, Post Recv, Poll CQ流程的实…...
ExcelPatternTool 开箱即用的Excel工具包现已发布!
文章目录 ExcelPatternTool功能特点:快速开始使用说明常规类型高级类型Importable注解Exportable注解IImportOption导入选项IExportOption导出选项单元格样式StyleMapping样式映射使用数据库作为数据源 示例Sample1:不同类型字段导出Sample2:…...
Navicat for MySQL 视图创建使用方法
创建视图步骤: 点击新建;选择视图;点击视图创建工具;可以在左侧拖拽表到工作区;选择表字段进行连线...
计算机视觉的相机选型
#你一般什么时候会用到GPT?# 目前市面上的工业相机大多是基于CCD(ChargeCoupled Device)或CMOS(Complementary Metal Oxide Semiconductor)芯片的相机。一般CCD制造工艺更加复杂,也会更贵一点! 1、CCD工…...
实体店做商城小程序如何
互联网电商深入各个行业,传统线下店商家无论产品销售还是服务业,仅靠以往的经营模式,很难拓展到客户,老客流失严重,同时渠道单一,无法实现外地客户购物及线上客户赋能等。 入驻第三方平台有优势但也有不足…...
sql-50练习题0-5
sql练习题0-5题 前言数据库表结构介绍学生表课程表成绩表教师表 0-1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数0-2查询"01"课程比"02"课程成绩小的学生的信息及课程分数0-3查询平均成绩大于等于60分的同学的学生编号和学生…...
Flutter框架实现登录注册功能,不连接数据库
要在Flutter框架中实现登录和注册功能,而不连接数据库,可以使用本地存储来存储用户信息。以下是一个简单的示例,演示如何使用本地存储来实现登录和注册功能。 首先,我们需要添加 shared_preferences 插件到 pubspec.yaml 文件中&…...
持续集成部署-k8s-部署利器-Helm
这里写目录标题 1. Helm 是什么?2. 快速安装 Helm2.1 前置条件2.2 Helm 版本与 K8s 版本对应关系2.3 离线安装 Helm3. Helm 常用命令1. Helm 是什么? Helm 是一个用于 Kubernetes 应用程序部署和管理的开源工具。它可以帮助简化 Kubernetes 应用程序的打包、发布、配置和升级…...
替换所有的问号
这篇也是凑数的 哈哈.... 稍后会整合到算法通关第三关白银挑战 . 描述 : 给你一个仅包含小写英文字母和 ? 字符的字符串 s,请你将所有的 ? 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。 注意 : 不能 修改非 ? 字符 . 题目 : …...
NCCL后端
"NCCL" 代表 "NVIDIA Collective Communications Library","NVIDIA 集体通信库",它是一种由 NVIDIA 开发的用于高性能计算的通信库。NCCL 专门设计用于加速 GPU 群集之间的通信,以便在并行计算和深度学习等领域…...
【API篇】十、生成Flink水位线
文章目录 1、水位线的生成原则2、有序流内置水位线3、乱序流内置水位线4、自定义周期性水位线生成器5、自定义断点式水位线生成器6、从数据源中发送水位线 1、水位线的生成原则 水位线出现,即代表这个时间之前的数据已经全部到齐,之后不会再出现之前的数…...
WxJava 微信开发包 - 新手入门指南
WxJava 微信开发包 - 新手入门指南项目概览项目名称Binary Wang/WxJavaStarsGVP ⭐⭐⭐⭐⭐组织Binary Wang语言Java标签GVP, Java, 微信开发, 微信公众号, 微信支付项目简介WxJava 是一个基于 Java 的微信开发工具包,支持微信公众号、微信支付、小程序、企业微信等…...
一句指令就能完成跨系统操作?——2026企业级智能体技术路径深度拆解
站在2026年的时间节点回望,企业数字化转型已从“流程驱动”全面转向“智能体驱动”。过去,跨系统操作往往意味着繁杂的API对接或编写脆弱的自动化脚本。而今,以实在智能推出的实在Agent为代表的方案,实现了“一句指令,…...
Agent-S3技术深度解析:首个超越人类性能的智能体框架实战指南
Agent-S3技术深度解析:首个超越人类性能的智能体框架实战指南 【免费下载链接】Agent-S Agent S: an open agentic framework that uses computers like a human 项目地址: https://gitcode.com/GitHub_Trending/ag/Agent-S Agent-S3作为首个在OSWorld基准测…...
Arm开发中DSTREAM调试探针无法识别的排查指南
1. DSTREAM调试探针在Arm开发环境中不可选的排查指南当使用Arm Development Studio(Arm DS)进行嵌入式开发时,DSTREAM系列调试探针(包括DSTREAM-ST、DSTREAM-PT、DSTREAM-HT和DSTREAM-XT)偶尔会出现无法在开发环境中被…...
打造梦幻岛屿的5个秘诀:免费在线规划工具完整指南
打造梦幻岛屿的5个秘诀:免费在线规划工具完整指南 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Crossing)启发…...
从零上手腾讯 Marvis:真正接管电脑的 AI,看完直接封神
作者:逆境不可逃 技术永无止境 希望我的内容可以帮助到你!!!!! 大家吼 ! 我是 逆境不可逃 今天给大家带来文章《从零上手腾讯 Marvis:真正接管电脑的 AI,看完直接封神》. Marvis 官…...
电商预测性洞察:轻量模型实现秒级可执行决策
1. 项目概述:这不是“预测未来”,而是让电商决策从拍脑袋变成算出来“Predictive Insights for e-Commerce”——这个标题乍看像一句科技公司PPT里的漂亮话,但在我过去十年跑遍长三角、珠三角上百个中小电商品牌仓库、直播间和运营后台后&…...
不止于编译:深入OpenWifi驱动与内核的版本绑定机制,及如何管理你的SDRPi镜像
深入OpenWifi驱动与内核的版本绑定机制:SDRPi镜像管理的工程化实践 在嵌入式Linux开发中,内核与驱动的版本一致性往往成为项目长期维护的隐形陷阱。当我们使用SDRPi运行OpenWifi这样的复杂系统时,一个看似简单的内核更新就可能导致整套无线功…...
别再被‘Requirement already satisfied’搞懵了!手把手教你用-m参数精准安装Python包
彻底解决Python包安装冲突:从报错到精通的完整指南 每次在命令行输入pip install后看到"Requirement already satisfied"的提示,是不是让你既困惑又沮丧?这背后往往隐藏着多Python环境冲突的问题。今天我们就来深入剖析这个常见痛点…...
如何用Yarn Spinner在15分钟内构建游戏对话系统:从新手到专家的完整指南
如何用Yarn Spinner在15分钟内构建游戏对话系统:从新手到专家的完整指南 【免费下载链接】YarnSpinner The core compiler and engine-agnostic components for Yarn Spinner, the friendly dialogue tool. 项目地址: https://gitcode.com/gh_mirrors/ya/YarnSpin…...
