数据类型

verilog

1、Verilog语言提供两种基本的数据类型,即变量类型(variables)和线网类型(nets),这两种类型都是四值逻辑,即可表示0、1、X和Z值。

2、例如reg,integer和time等变量类型可以用来存储组合逻辑或者时序逻辑的值。
例如wire,wor,wand和其它线网类型用来连接硬件模块,以及提供特殊的线网逻辑解决方案。

3、Verilog并没有严格区分信号的类型,变量和线网类型均是四值逻辑。

4、reg并不一定会被综合为register,而它只是用原来与线网类型相对,表示存储数据的变量。

5、Verilog语言自身不提供枚举类型,因此为了提供类似于枚举类型可实现的便利,我们不得不采用parameter常量来表示可取的值范围,或者使用`define来定义各个合法值对应的宏名称

system verilog

SV中
1、logic或者bit构成的向量(vector)是无符号类型。
integer、byte、shortint、int、longint为有符号类型。

2、四值逻辑变量例如reg、logic或者integer等,在仿真开始时的初值为X。
二值逻辑变量例如bit等,在仿真开始时的初值为0。
如果四值逻辑与二值逻辑的数据类型之间发生的默认转换,那么Z和X值将转换为0

3、SV添加void类型来表示空类型,经常用在函数定义时表示不会返回数值,同C语言的void使用方法。
SV添加shortreal表示32位单精度浮点类型,同C语言的float;而Verilog的real类型表示双精度浮点类型,同C语言的double。

自定义类型

通过typedef来创建用户自定义类型。
通过enum来创建枚举类型。
通过struct来创建结构体类型。
为了使代码更易读和维护,通常我们对于自定义的类型,都习惯添加“_t”的后缀用来表示它是一个自定义类型(type)。

枚举类型(enum)提供方法来描述抽象变量的合法值范围,其每一个值都需要提供一个用户自定义的名字。
下面的枚举类型RGB可以拥有red、green和blue的三个数值:

enum {red,green,blue} RGB;

默认的枚举类型是int,即32位的二值逻辑数据类型。
为了能够更准确地描述硬件,SV允许指明枚举类型的数据类型,例如:

enum bit {TRUE, FALSE} Boolean;
enum logic [1:0] {WAITE, LOAD, READY} state;

如果一个枚举类型数值被赋值,那么所赋的值必须符合其数据类型。

enum logic [2:0] {WAITE = 3’b001,LOAD = 3’b010,READY = 3’b100} state;

如果枚举类型是四值逻辑数据类型,那么对枚举值赋为X或者Z也是合法的。

enum logic {ON=1’b1, OFF=1’bz} out;

system verilog语法(一)相关推荐

  1. 【芯片验证学习纪实】System Verilog语法(1)

    [芯片验证学习纪实]System Verilog语法(1) 继学习了FPGA设计之后,学习IC验证也有一段时间了,学习过程中参考了很多互联网上的优秀资源,在此感谢各位前辈们的无私分享!现在,利用闲暇之 ...

  2. verilog/system verilog语法

    1,Verilog有变量类型和线网类型.变量类型比如reg,integer和time.线网类型比如wire,wor,wand等.system verilog使用了Verilog的变量类型:reg,in ...

  3. 再说System Verilog 与 Verilog 的关系

    System Verilog 与 Verilog 的关系 标准 当前的System Verilog标准是由IEEE(国际电子电气工程师协会)和Accellera(基于工业的标准协会)两个国际组织制定的 ...

  4. (45)System Verilog 类中变量随机激励约束语法

    (45)System Verilog 类中变量随机激励约束语法 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 类中变量随机激励约束语 ...

  5. [转]verilog语法学习心得

    verilog语法学习心得 1.数字电路基础知识: 布尔代数.门级电路的内部晶体管结构.组合逻辑电路分析与设计.触发器.时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  D ...

  6. System Verilog Assertion for debug

    System Verilog Assertion是非常好的验证方法,通过SVA可以显式描述需要验证的电路逻辑,并且仿真工具可以在仿真的过程中自动输出波形出错信息,从而替代传统的看波形调试方法,提高前端 ...

  7. sv_labs学习笔记——sv_lab4(System Verilog)

    sv_labs学习笔记--sv_lab4(System Verilog) lab4 OOP encapsulation 实验概述 任务代码解析 Packat实现与理解 语法点解析 randomize( ...

  8. sv_labs学习笔记——sv_lab3(System Verilog)

    这里我们在前两个lab的基础上继续完善,搭建一个数据接受的功能.在lab2 中我们实现了相关发送信息的打印,选择发送接受的端口,完善发送时序,在这一小节中将实现对端口发送数据的回收,然后进行比较发送的 ...

  9. sv_labs学习笔记——sv_lab2(System Verilog)

    该博文在lab1的基础上,根据说明以及solution里的文件,实现了接口发送时序.简单对代码进行分析.分析的内容在文章的注释区中.对于不是很清楚的语法进行解释.最后在原文件的基础上给出增加了相关打印 ...

  10. sv_labs学习笔记——sv_lab1(System Verilog)

    sv_labs学习笔记--sv_lab1(System Verilog) 概述 lab1 功能简述 代码分析 仿真精度 理解repeat(15) @(rtr_io.cb); 理解$timeformat ...

最新文章

  1. 自定义Android注解Part3:绑定
  2. orcale存储过程学习之路--创建空存储过程(二)
  3. ITK:计算图像在特定方向上的导数
  4. android 高级项目,从零开始的Android新项目8 - Data Binding高级篇
  5. 服务器开机需要按f2才能进系统吗,win7系统电脑每次开机总要按F2才能进入系统怎么办...
  6. Forrester报告拆解:强劲冲击第一梯队后,京东智联云站稳云市场新格局
  7. Linux之文件属性详解
  8. MySQL 存储过程参数:in、out、inout
  9. Django 使用第三方服务发送电子邮件
  10. 【单目标优化求解】基于matlab竞争学习的粒子群算法求解单目标优化问题【含Matlab源码 1784期】
  11. IT项目管理 第六章 驾驭项目成本
  12. Zeppelin的求学之路(1)—— 简介 和 从源码Build的安装并配置他的Spark解析器
  13. java垃圾回收的优点和原理_Java垃圾回收器的方法和原理总结
  14. Elasticsearch 分布式引擎简介
  15. 磁共振检查头部能检测出什么_磁共振检查头部的注意事项
  16. Java类包的定义(package)
  17. 围观设计模式(16)--结构型之组合模式(Composite Pattern)
  18. D3.js实现力导向图(Dray和Zoom)
  19. 安信可nbiot模块_安信可ESP8266系列接入机智云方案及问题排查指引
  20. 远程控制电脑怎么弄? 远程控制电脑方法介绍

热门文章

  1. 深度学习的深度和宽度的理解
  2. pandas库的使用
  3. jsBarCode生成条码并且打印的问题
  4. 不同尺度下耕地土壤Cr含量的空间自相关性分析
  5. 瑞盟国产MS523非接触式高集成读写卡芯片,PIN对PIN兼容替换RC522/RC523/CV520/PN512/FM17550/FM17520/FM17522/MH1608/NZ3801A/ZS3
  6. 【分享】微信H5游戏制作教程,用唤境引擎轻松开发微信AVG小游戏
  7. npstion实现通过手机扫描二维码向电脑录入信息
  8. 局域网SDN技术硬核内幕 三 从物到人——SDN走进园区网络
  9. 李国庆PK刘强东:最失败是品类战略
  10. Go语言自学系列 | go常用命令