system verilog 学习1

1 数据类型

sv 引进了一些新的数据类型,它们具有以下优点
(1)双状态数据类型:更好的性能,更低的内存消耗
(2)队列、动态和关联数组:减少内存消耗,自带搜索和分类功能
(3)类和结构:支持抽象数据结构
(4)联合和合并结构:允许对同一数据有多种视图(view)
(5)字符串:支持内建的字符序列
(6)枚举类型:方便代码编写,增加可读性

1.1 内建数据类型

verilog 有两种基本类型:reg 变量和 线网 wire。

1.1.1 逻辑 logic类型

sv对verilog进行了改进,使得它除了作为一个变量外,还可以被连续赋值、门单元和模块所驱动。为了与寄存器类型reg相区别,这种改进的数据类型被称为logic。

注意:由于logic类型只能有一个驱动,如果存在多个驱动,那么编译的时候就会报错。当然有时候你希望是多个驱动,那么这个信号需要被定义成线网型 wire

1.1.2 双状态数据类型

相比四状态数据类型,sv引入的双状态数据类型有利于提高仿真器的性能并减少内存的使用量。最简单的双状态数据类型是bit,它是无符号的。另四种带符号的双状态数据类型是byte,shortint int和longint。

1.2 定宽数组

1.2.1 定宽数组的声明和初始化

1.2.2 常量数组

1.2.3 基本的数组操作——for 和foreach

操作数组的最常见的方式是使用for或foreach循环。 sv中的$size函数返回数组的宽度。在foreach循环中,只需要指定数组名并在其后面的方括号中给出索引变量,sv便会自动遍历数组中的元素。索引变量将自动声明,并在循环内有效。

intial beginbit [31:0] src[5],dst[5];for(int i=0; i<$size(src);i++)src[i] = i;foreach (dst[j])dst[j]=src[j]*2;end

例1:

 int md[2][3] = '{'{0,1,2}, '{3,4,5}};initial begin$display("Initial value:");foreach(md[i,j])$display("md[%0d][%0d] = %0d",i,j,md[i][j]);$display("New value:")	// 对最后三个元素重复赋5md = '{'{9, 8, 7}, '{3{32'd5}}};foreach (md[i,j])		// 正确的语句格式$display("md[%0d][%0d]=%0d", i, j, md[i][j]);end

例2:打印一个多维数组

initial beginbyte twoD[4][6];foreach(twoD[i,j])twoD[i][j] = i*10+j;foreach(twoD[i]) begin$write("%2d:", i);		 	// 遍历第一个维度foreach(twoD[,j])$write("%3d", twoD[,j]) // 遍历第二个维度 $display;end
end

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

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

相关文章

C# 使用Vector256写了一个简单的帮助类Vector256Helper

当数据量大的时候用普通代码计算非常耗时&#xff0c;这里简单利用simd加速处理 internal unsafe class Vector256Helper{/// <summary>/// 统计元素个数/// </summary>/// <param name"array"></param>/// <param name"elementToCo…

板凳--------57.Linux/Unix 系统编程手册(下) -- SOCKET : Unix domain

https://blog.51cto.com/u_15567199/5204540 【linux网络编程】容错处理文件 wrap.h、wrap.c_wx623c6c9. // 容错处理 wrap.h #ifndef _WRAP_H_ #define _WRAP_H_#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <error.h> #i…

【BSCP系列第2期】XSS攻击的深度剖析和利用(文末送书)

文章目录 前言一、官方地址二、开始&#xff08;15个&#xff09;1&#xff1a;Lab: DOM XSS in document.write sink using source location.search inside a select element2&#xff1a;Lab: DOM XSS in AngularJS expression with angle brackets and double quotes HTML-e…

北邮《计算机网络》MAC子层笔记

文章目录 缩写复习MAC层所在层次动态分配信道算法们的简要介绍信道的五条基本假设多路访问的协议&#xff08;理论上的协议&#xff09;aloha协议CSMA协议其他冲突避免协议无线局域网协议 &#xff0c;MACA 以太网协议802.3&#xff08;实际协议&#xff0c;刚刚是理论&#xf…

小白学python(第一天)

在有了C语言的基础后&#xff0c;我们学python会变得相当容易&#xff0c;毕竟c生万物&#xff0c;废话不多说&#xff0c;直接进入我们的正题 课前准备 Python环境的搭建以及Pycharm的安装 python环境安装 Download Python | Python.org 因为我的电脑是windows&#xff0c;…

C++精解【6】

文章目录 eigenMatrix基础例编译时固定尺寸运行指定大小 OpenCV概述 eigen Matrix 基础 所有矩阵和向量都是Matrix模板类的对象。向量也是矩阵&#xff0c;单行或单列。Matrix模板类6个参数&#xff0c;常用就3个参数&#xff0c;其它3个参数有默认值。 Matrix<typename…

使用鸿蒙HarmonyOs NEXT 开发 快速开发 简单的购物车页面

目录 资源准备&#xff1a;需要准备三张照片&#xff1a;商品图、向下图标、金钱图标 1.显示效果&#xff1a; 2.源码&#xff1a; 资源准备&#xff1a;需要准备三张照片&#xff1a;商品图、向下图标、金钱图标 1.显示效果&#xff1a; 定义了一个购物车页面的布局&#x…

6. Revit API UI: PreviewControl(预览控件)

6. Revit API UI: PreviewControl&#xff08;预览&#xff09; PreviewControl 有时我们需要一个预览功能&#xff0c;而Revit也提供了一个PreviewControl类来帮助我们实现这个功能。 从类的继承关系来看&#xff0c;PreviewControl就是一个用户自定义控件&#xff0c;它就…

accelerate 笔记:进程管理

在使用分布式训练系统时&#xff0c;管理各个进程在 GPU 上的执行时间和顺序非常重要。一些进程会比其他进程更快完成&#xff0c;有些进程在其他进程未完成之前不应该开始执行 1 每台机器进行一次 accelerator.on_local_main_process def do_my_thing():do_thing_once_per_s…

外贸行业 - 收汇日期

“收汇日期”指的是外贸业务中&#xff0c;出口方从进口方收到货款的具体日期。在外贸交易中&#xff0c;特别是使用信用证&#xff08;Letter of Credit, L/C&#xff09;、电汇&#xff08;Telegraphic Transfer, T/T&#xff09;、付款交单&#xff08;Documents against Pa…

HTML【重点标签】

一、列表标签 1.无序列表 父级别&#xff1a; 无序列表的标题 ----表示无序列表的整体&#xff0c;用于包裹li标签 子级别&#xff1a; 无序列表一行的内容 ----表示无序列表的每一项&#xff0c;用于包含一行的内容 语义&#xff1a;构建没有顺序的列表 特点&#xff1a;列…

Linux 中经常见到的 gz 文件

在linux的使用中&#xff0c;.gz格式的压缩文件非常常见&#xff0c;下面整理一下关于.gz格式的压缩和解压缩。 解压缩gz文件 通过gzip解压缩 gzip -d myfile.gz执行该命令后&#xff0c;文件被解压到当前目录&#xff0c;原gz文件被删除。 如果你不想删除源文件&#xff0c…

基于 RGB的热成像无人机树冠数据集(目标检测)

亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 摘要&a…

基于PaddleDetection的电路板瑕疵检测

文章目录 1. 数据集与框架介绍2. 任务详情3. Cascade R-CNN简介4. 数据分析各类别样本的数量真实框的宽高比真实框在原图的大小比例 5. 相关配置数据增强数据集路径和评估指标学习率和优化器配置预训练CascadeRCNN 的配置日志记录 6. 训练预测7. 参考链接 1. 数据集与框架介绍 …

问题:以下哪个不是报名“天天特价“活动必须具有的条件( ) #其他#其他#媒体

问题&#xff1a;以下哪个不是报名"天天特价"活动必须具有的条件( ) A、店铺信誉达到一钻 B、开通淘金币抵扣 C、宝贝月销量达到10个 D、店铺同类产品要达到10个以上 参考答案如图所示

C++观察者模式

一、定义 观察者&#xff08;Observer&#xff09;模式 定义如下&#xff1a;是一种对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 二、观察者模式组成&#xff1a; 抽象目标角色&#xff08…

易优cms远程调试

易优cms自ThinkPHP5.0版本开始&#xff0c;提供了Socket日志驱动用于本地和远程调试。 Socket调试 只需要在配置文件中设置如下&#xff1a; ‘log’ > [ ‘type’ > ‘socket’, ‘host’ > ‘slog.thinkphp.cn’, //日志强制记录到配置的client_id ‘force_c…

无人机捕获的视频跟踪UAV123数据集(目标检测)

亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 摘要&a…

TC3xx启动的功能安全机制浅析(2)

目录 1.引入 2. 应用启动阶段 3.小结 1.引入 TC3xx启动的功能安全机制浅析(1)-CSDN博客我们简述了SM基本概念以及芯片启动阶段Safety机制&#xff0c;接下来我们继续描述应用启动阶段相关功能安全机制 2. 应用启动阶段 在用户启动阶段&#xff0c;与功能安全相关的内容…