【SV的面向对象 SV的类_2024.01.02】

news2024/11/24 20:01:03

在这里插入图片描述

OOP术语

OOP:object oriented programming
Class类:包含变量和子程序的基本构建块
Object对象:类的一个实例
Handle句柄:指向对象的指针
Property属性:存储数据的变量;在V中,可以是wire或reg类型
Method方法:类中可以使用task或者function来定义方法以便处理自身或者外部传入的数据;在V中可在module中定义task或function,也可以使用initial或always处理数据 (SV中不可,initial和always仿真就执行,class使用时才调用)

类(class)

验证中类的作用:激励生成器;驱动器;监测器;比较器
function参数默认input,logic类型
句柄的声明不用放在initial块中
没有句柄指向的类,生命周期消亡,分配空间消失
在这里插入图片描述

类的成员操作

类的闭合属性

public:子类和外部可以访问成员
protected:该类和子类可以,外部不可以
local:该类可以,子类和外部不可以

Verilog & SV的class

Verilog的例化是静态的,SV的class例化是动态的,更加灵活和节省空间
Verilog中没有句柄,SV的class可将对象的指针赋予其它句柄,操作更灵活

浅复制 & 深复制

浅复制仅复制对象的所有属性,但不包括属性成员中句柄指向的对象
深复制创建一个新的和原始句柄指向的内容相同的字段,是两个一样大的数据段,故两者的句柄指向的空间是不同的,但内容是相同的,之后新对象中的句柄指向的内容与原始对象中句柄指向的内容不会相互影响。
(面试重点)
在这里插入图片描述在这里插入图片描述

类 & 模块(module)

二者都可作为封闭的容器来定义和存储

硬件部分必须在仿真一开始就确定下来,即module和其内部过程块、变量都应是静态的;
而软件部分,类的部分可在仿真任何阶段声明并动态创建出新的对象。
封装性上,模块是public,而类可根据需要确定外部访问的权限。
继承性上,模块无继承性。

OOP三大特性

类的封装

封装是面向对象编程的核心思想,将对象的属性(变量)和行为(方法)封装起来

类和结构体:类变量在声明之后需要构造才会构建对象实体,而struct在变量声明时已开辟内存,类除了声明数据变量成员,还可声明方法(function/task)

类的继承:分为实现继承和接口继承

super.new();系统自动调用父类的new函数

优先显示子类的方法;new函数不能共享,显示子类和父类的new函数

类的多态

当一个类派生出子类的时候,基类中的一些方法可能需被重写;用对象中的类型来决定调用哪一个实现方法,这是一个动态的过程,动态的选择方法的实现方式叫多态
重写:子类中具有的与父类相同的函数名和参数的方法
带有虚方法的类称为多态类
没有继承就没有多态

虚方法

添加virtual关键字声明一个虚方法,虚方法是一个基本的多态性结构
每个类的继承关系只有一个虚方法的实现,而且是在最后一个派生类中
p2指针发现dis()是虚方法会在子类中找是否重写
在这里插入图片描述

类型转换

一种多态形式
父类→子类:向下类型转换(安全)
子类→父类:向上类型转换(不安全,会报错)
$cast(目标,源);//目标=源

//可以通过在endmodule后加上冒号和模块名来区分多个模块,分清多个endmodule与module的对应
module top;
……
endmodule:top

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

⭐北邮复试刷题LCR 034. 验证外星语词典__哈希思想 (力扣119经典题变种挑战)

LCR 034. 验证外星语词典 某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。 给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外…

莱卡云怎么样?简单测评下莱卡云韩国CN2云服务器

莱卡云服务器厂商,国内持证企业服务器商家,运作着香港、美国、韩国、镇江、日本、绍兴、枣庄、等数据中心的云服务器、独立服务器出租、设备托管、CDN等业务。今天为大家带来的是莱卡云韩国CN2服务器的详细评测,该云服务器的数据中心位于韩国…

大语言模型学习路线:从入门到实战

大语言模型学习路线:从入门到实战 在人工智能领域,大语言模型(Large Language Models, LLMs)正迅速成为一个热点话题。 本学习路线旨在为有基本Python编程和深度学习基础的学习者提供一个清晰、系统的大模型学习指南,…

阿里云服务器“镜像”全方面解析

阿里云服务器镜像怎么选择?云服务器操作系统镜像分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022数据中心版64位中文版,阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…

辽宁博学优晨教育科技有限公司视频剪辑培训靠谱吗?

在数字媒体日益繁荣的今天,视频剪辑已成为一项炙手可热的技能。不少培训机构纷纷涉足这一领域,辽宁博学优晨教育科技有限公司便是其中之一。然而,面对众多的选择,很多人不禁要问:辽宁博学优晨教育科技有限公司的视频剪…

【二十八】springboot整合logback实现日志管理

本章节是记录logback在springboot项目中的简单使用&#xff0c;本文将会演示如何通过logback将日志记录到日志文件或输出到控制台等管理操作。将会从以下几个方面进行讲解。最后实现将特定级别的特定日志保存到日志文件。 一、依赖 <dependency><groupId>ch.qos.l…

unity学习(26)——客户端与服务器合力完成注册功能(8)json编解码问题,大结局

服务器端发送的内容如下&#xff1a; 客户端所接受的内容如下&#xff1a; 是一样的&#xff0c;不是传输问题&#xff0c;少了一个解码的过程&#xff0c;之前那个addMessage函数应该是不能解码的&#xff01; 具体解析一下数据包的内容&#xff1a;上边的是成功的&#xff0…

[杂记]mmdetection3.x中的数据流与基本流程详解(数据集读取, 数据增强, 训练)

之前跑了一下mmdetection 3.x自带的一些算法, 但是具体的代码细节总是看了就忘, 所以想做一些笔记, 方便初学者参考. 其实比较不能忍的是, 官网的文档还是空的… 这次想写其中的数据流是如何运作的, 包括从读取数据集的样本与真值, 到数据增强, 再到模型的forward当中. 0. MMDe…

线性规划单纯形法原理及实现

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 本期话题&#xff1a;线性规划单纯形法原理及实现 标准化及单纯形方法 相关学习资料 https://www.bilibili.com/video/BV168411j7XL/?spm_id_from333.788&vd_so…

用于将Grafana默认数据库sqlite3迁移到MySQL数据库

以下是一个方案&#xff0c;用于将Grafana数据迁移到MySQL数据库。 背景: grafana 默认采用的是sqlite3&#xff0c;当我们要以集群形式部署的时使用mysql较为方便&#xff0c;试了很多sqlite转mysql的方法要么收费,最后放弃。选择自己动手风衣足食。 目标: 迁移sqlite3切换…

【深圳游戏业:腾讯引领小型公司创新求发展】

深圳游戏业&#xff1a; 腾讯引领小型公司创新求发展 一 深圳游戏公司主要类型 腾讯集团 作为中国最大的游戏公司&#xff0c;腾讯在游戏领域可以说是第一强者。2022年&#xff0c;腾讯的游戏业务营收高达1707亿元&#xff0c;约占了中国整个游戏市场总收入的64%。 刚开始时&…

【机器学习算法】KNN鸢尾花种类预测案例和特征预处理。全md文档笔记(已分享,附代码)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习&#xff0c;伴随浅显易懂的数学知识&#xff0c;让大家掌握机器学习常见算法原理&#xff0c;应用Scikit-learn实现机器学习算法的应用&#xff0…

基于四足机器人和机械臂的运动控制系统(一)

文章目录 一、项目框架二、设计内容与功能需求1. 导航与路径规划2. 视觉感知3. 运动控制4. 精准遥控5. 环境探测6. 云端监控与数据分析7. 人机协同8. 充电桩9. 紧急响应与救援 三、硬件设计1. 四足机器人2. 机械臂3. 机器主控板4. 遥控器板5. 舵机驱动板 四、软件设计1. 环境2.…

【机器学习笔记】14 关联规则

关联规则概述 关联规则&#xff08;Association Rules&#xff09;反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系&#xff0c;那么&#xff0c;其中一个事物就能够通过其他事物预测到。 关联规则可以看作是一种IF-THEN关系。…

Sora:最强文生视频工具

Sora是什么 Sora&#xff0c;是一款能够根据文本创建出逼真的、富有想象力场景的AI模型。Sora能够娴熟地创造出高达一分钟的高清视频&#xff0c;其视觉内容丰富多样&#xff0c;分辨率精准无误。Sora的强大之处在于&#xff0c;它通过在视频和图像的压缩潜在空间中进行训练&a…

[ai笔记10] 关于sora火爆的反思

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第10篇分享&#xff01; 最近sora还持续在技术圈、博客、抖音发酵&#xff0c;许多人都在纷纷发表对它的看法&#xff0c;这是一个既让人惊喜也感到焦虑的事件。openai从2023年开始&#xff0c;每隔几个…

SpringSecurity + OAuth2 详解

SpringSecurity入门到精通 ************************************************************************** SpringSecurity 介绍 **************************************************************************一、入门1.简介与选择2.入门案例-默认的登录和登出接口3.登录经过了…

笑营宝课后延时服务选课报名管理系统简介

课后延时服务是在“双减”政策背景下推向全国的校园服务。开展丰富多彩的课后服务&#xff0c;既解决家长负担&#xff0c;又能在校内提供作业辅导及素质提升课程&#xff0c;实现教育公平。是解决孩子三点半放学之后的校园服务&#xff0c;但也需要最大限度的降低学校老师的工…

基于java的企业校园招聘平台的设计与实现

分享一个自己的毕业设计&#xff0c;想要获取源码的同学加V&#xff1a;qq2056908377 链接&#xff1a;https://pan.baidu.com/s/1It0CnXUvc9KVr1kDcHWvEw 提取码&#xff1a;1234 摘要&#xff1a; 摘要&#xff1a;本毕业设计旨在设计和实现一个企业校园招聘平台&#xf…

【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图

vueElement UI项目中数据分析功能需要用到圆环图 折线图 饼图 柱状图等&#xff0c;可视化图形分析 安装流程及示例 1.安装依赖 npm install echarts --save2.在main.js中引入并挂载echarts import echarts from echarts Vue.prototype.$echarts echarts3.在需要使用echart…