第三章:systemverilog文本值和数据类型

1.增强的文本值

2.改进的`define文本替换

3.时间值

4.新的变量类型

5.有符号和无符号类型

6.静态和动态变量(***)

7.类型转换

8.常数

增强的文本值(文本赋值增强)



主要是:位扩展更加方便

verilog :

data = 64‘hFFFF_FFFF;

data = ‘bz;

data  = ‘bx;

systemverilog:

data = ‘1;//无论data的size更改与否

data = ‘z;

data = ‘x;//可以不用写明进制(d/b/h/o)

`define 增强



systemverilog 可以实现宏参数替换。

systemverilog允许字符串内的宏变量替换,但verilog不可以。

eg:

`define print(v) $display("variable v = %h",v)

verilog中预编译后:

`print(data) ;// $display("variable v = %h",data);

systemverilog中预编译后:

`print(data);//$display("variable data = %h",data);

systemverilog变量



1.对象类型和数据类型

2.四态变量(logic/reg)

3.两态变量(bit/byte/int/shortint/longint)

4.显示/隐示变量或线网类型

5.综合指导

对象类型和数据类型

对象类型指明信号是var / wire

数据类型指明信号是四态/两态

显示/隐示var和wire

申明语句中,数据类型前没有显示指定对象类型(var/wire)就为隐示变量。

var logic[7:0] busA;

var bit[31:0] b;

注意四态变量转为两态变量x/z被认定为0;

静态变量和动态变量



1.systemverilog 缺省存储方式与verilog兼容,在module/begin..end/fork..join/非自动function和task中,默认存储为static方式。如果task/fucntion被申明automaitc,则缺省存储方式为自动的。

2.module级所有的变量都是静态的,不可以显示申明为static/automatic.

强制类型转换



verilog 是弱语言,可以把一个数据类型值赋给另一个数据类型的var/wire.

强制类型转换不同,可以发生在表达式中。

使用强制类型转换操作符

1.数据类型转换 <type>‘(<expression>)

2.数据宽度转换 <size>‘(<expression>)

3.符号类型转换 <sign>‘(<expression>)

使用系统函数

$cast(dest_var,source_exp);  //可以作为函数/任务调用

常数



verilog 有 : parameter / specparam /localparam

systemverilog 增加了const

时间: 2024-10-13 15:03:38

第三章:systemverilog文本值和数据类型的相关文章

《JS权威指南学习总结--第三章类型、值和变量》

第三章 类型.值和变量 内容要点 一.数据类型 1.在编程语言中,能够表示并操作的值的类型称做数据类型 2.JS的数据类型分为两类: 原始类型:数字.字符串和布尔值 对象类型 3.JS中有两个特殊的原始值:null(空)和undefined(未定义) 4.对象(object):是属性(property)的集合,每个属性都由"名/值对"构成. 5.函数:JS中定义的另一种特殊对象.函数是具有与它相关联的可执行代码的对象,通过调用函数来运行可执行的代码,并返回运算结果. 6.构造函数: 如

Java学习笔记—第三章 标识符、关键字和数据类型

第三章  标识符.关键字和数据类型 1. Java标识符和关键字:在程序设计中,通常用一个记号对变量.常量.方法和类等进行标识,这个记号称为标识符.Java语言本身使用了一些标识符,这些标识符称为Java关键字,用户在命名标识符时应该避免使用这些Java关键字,否则将导致程序无法进行编译. Java中的关键字如下: abstract 抽象 assert 断言 boolean 布尔 break 中断 byte 字节 catch 捕获 char 字符 class 类 continue 继续 defa

第三章 EnumUtil根据值获取枚举对象

项目中使用枚举类的好处这里不再赘述,在使用枚举值时,通常需要根据值来获取枚举对象,下面介绍两种实现方案: 1.在枚举类中定义方法实现 首先给出如下性别枚举类: public enum SexEnum { MAN("M", "男"), WOMAN("F", "女"); private String code; private String desc; SexEnum(String code, String desc) { thi

Java学习笔记—第三章

第三章  标识符.关键字和数据类型 1. Java标识符和关键字:在程序设计中,通常用一个记号对变量.常量.方法和类等进行标识,这个记号称为标识符.Java语言本身使用了一些标识符,这些标识符称为Java关键字,用户在命名标识符时应该避免使用这些Java关键字,否则将导致程序无法进行编译. Java中的关键字如下: abstract 抽象 assert 断言 boolean 布尔 break 中断 byte 字节 catch 捕获 char 字符 class 类 continue 继续 defa

第三章:Javascript类型、值和变量。

计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type),编程语言最基本的特性就是主持多种数据类型.当程序需要将值保持起来以备将来使用时,便将其赋值给(将值“保存”到)一个变量(variable).变量是一个值的符号名称,可以通过名称获得对值的引用.变量的工作机制是编程语言的令一个基本特性.本章将参照上节帮助理解本章内容,后续将更深入的讲解. javascript的数据分为两类:原始

python第三章数据类型

第三章 数据类型 3.1 整型(int) 3.1.1 整型的长度 py2中有:int有取值范围,对于32位系统而言:-2^31~2^31-1 ? 对于64位系统而言:-2^63~2^63-1 ? 超出范围后,py2自动转换成long(长整型)数据. py3中有:int (int/long)只有int数据. 3.1.2 整除 py2和py3中整除是不一样. py2:整除只保留整数,小数位会舍去.若要保留小数.则在文件头加 from __future__ import division py3整除保

第三章数据类型

第三章 数据类型 3.1 整型(int) 任意大小的整数,当然包括负整数 >>> 100 100 >>> -9999 -9999 >>> 3.1.1 整型的长度 python2: 在32位机器上,整数的位数为32位,取值范围为-231-231-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-263-263-1,即-9223372036854775808-9223372036854775807 超出长度

Java-第三章-从键盘输入3个整数,然后将输入的整数按照从小到大的顺序放在abc,并输出3个变量的值

import java.util.*; public class lianxi72_3 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner s=new Scanner(System.in); System.out.println("请输入a的值:"); int a=s.nextInt(); System.out.println("请输入b的值:")

《写给大家看的CSS书》第三章:字体与文本

一.字体与文本 字体与文本的区别: 字体主要涉及文字的大小和外观(可应用于单个字符). 文本主要涉及对字体的处理(只能应用于文本块) 二.指定字体 CSS中指定字体的最简单方式,就是使用五种通用的字体集合 serif :该字体在字符笔画末端有叫做衬线的小细节(Time New Roman.Georgia.Palatino) sans-serif:末端无任何细节(Trebuchet MS.Arial.Verdana) monospace:每个字母宽度相等(例如,i与m具有相同的宽度),通常用于排版