首页 > 其他分享 >1.数据类型-----内建数据类型

1.数据类型-----内建数据类型

时间:2024-04-07 21:12:22浏览次数:20  
标签:符号 logic 数据类型 sv ----- 内建 类型 bit

内建数据类型:

相比于verilog中的reg和wire之外,sv中新推出了logic类型:

在sv中与logic相对应的是bit类型,他们均可以构建矢量类型(vector),他们的区别在于:
logic为四值逻辑,既可以表示0、1、x、z。
bit为二值逻辑,只可以表示1、0。

为什么sv在一开始做设计的时候有4值了还要引入二值呢?

:::因为sv在一开始设计的时候就期望将硬件的世界与软件的世界分离开。

四值逻辑类型:integer,logic,reg,net-type(例如wire,tri)
二值逻辑类型:byte,shortint,int,longint,bit

如果按照有符号数和无符号的类型进行划分:

有符号类型:byte,shortint,int,longint,integer
无符号类型:bit,logic,reg,net-type(例如wire,tri)

注:这里有符号数的负数需要用补码的方式储存,补码的计算方法:
:::忽略符号位,对剩下的位数1取反再加1

如-127:因为是负数,所以符号位为-1,绝对值为127,所以低7位全部为1,取反后全部为0,再加1,就是000 0001,所以最终结果是1000 0001。

由于一个字节中最高位是符号位,所以,计算机中+0和-0的编码是不一样的,+0的编码是:0000 0000;-0的编码是:1000 0000。于是将1000 0000规定为-128,这样就可以让有符号数多一个有用的数据点。这个值不能用普通的取反加1来计算。

在sv中有多种转换数据的方式:

  1.静态转换:即在需要转化的表达式前加上一个单引号即可:比如此处有一个有符号数a,
  我要将它转化为无符号数b,可以这样:b = unsigned'(a);(在编译时就会告诉你是否成功)
  2.动态转换:$cast(tgt,src)(仿真时才告诉你是否转化成功)
  上面两个转换方式均需要操作符号或者系统函数介入,统称为显示转换。
  而不需要操作符或者函数进行转换的一些操作,我们称之为隐式转换
  ps:如果一个带x的四位数111x隐式转换(直接赋值)给一个三位的bit类型数据,答案一定会是110
     因为四值里面的XZ转换为2值一定是0!!!

所以在做不同数据类型操作的时候一定要注意:
1.逻辑数值类型
2.符号类型
3.矢量位宽

标签:符号,logic,数据类型,sv,-----,内建,类型,bit
From: https://www.cnblogs.com/tomako123/p/18119874

相关文章

  • 8.1 使用 rpm 命令-安装-查看-卸载-rpm 软件包
    8.1软件包的管理软件包的类型rpm二进制包------》已经使用GCC编译后的rpm概述:RPM是RedHatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及TurboLi......
  • C语言06-数组、函数
    第10章数组10.1数组的概念①数组四要素(1)数组名:本质上是一个标识符常量,命名需要符合标识符规范。(2)元素:同一个数组中的元素必须是相同的数据类型。(3)下标(索引、角标):从0开始的连续数字。(4)数组的长度:表示元素的个数。②C语言数组特点(不用记)(1)创建数组时会在内存中开辟......
  • 通讯录----顺序表版本
    1.通讯录的实现逻辑对于通讯录,我们做的无非就是初始化,销毁。添加联系人数据,修改联系人数据,删除联系人数据,查找联系人数据,展示联系人数据;这个不就和我们的顺序表的逻辑如出一辙吗,顺序表实现的功能不就是数据的初始化,修改,删除(头删和尾删),添加(头插和尾插),顺序表的打印,这些我们是可......
  • Python基础篇-Python基础01
    Python基础-day1!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022Python的web开发(完整版)入门全套教程,零基础入门到项目实战1.文档工具typora2.环境搭建安装Python解释器学习Python语法Python......
  • 2-41. 制作 [SceneName] Attribute 特性
    什么是Attribute像图中SellPercentage是一个float值,为什么它会变成Slider呢?是因为我们在这个属性上面添加了[Range],这个东西就叫做Attribute为什么我们要做Attribute呢?如上图所示,我们这里的StartSceneName是手动输入的,所以有很大可能我们会写错又比方说Tel......
  • TVM Pass优化 -- InferType 类型推导
    定义(What)InferType,类型推断,顾名思义,给表达式进行类型的推断直接上代码importtvmfromtvmimportrelayimportnumpyasnpdefget_demo_mod():a=relay.var("a",shape=(2,3,10),dtype="float32")b=relay.var("b",shape=(1,10),dtype=&qu......
  • Java并发(二十四)----wait、notify、notifyAll、join区别与联系
    1、join是调用者轮询检查线程alive状态,执行后线程进入阻塞状态。如在线程B中调用线程A的join(),那线程B会进入到阻塞队列,直到join结束或中断线程B才开始进入阻塞队列。可以实现一个线程的顺序执行。t1.join();等价于下面的代码synchronized(t1){  //调用者线程进入t1......
  • L3-008 喊山
    DFS。#include<bits/stdc++.h>usingnamespacestd;constintinf=0x3f3f3f3f;vector<vector<int>>vec;intvis[10003];intmain(){ intn,m,k; cin>>n>>m>>k; vec.resize(n+10); while(m--){ inta,b; cin>>a&......
  • Vscode+gcc-arm+openocd搭建STM32开发环境
    1简介尝试使用Vscode搭建STM32开发环境,自己记录一下详细的配置过程2工具下载设计到的相关软件以及资源包括Vscode软件、STM32CubeMX、mingw64以及openocd,相应的软件介绍以及下载链接如下:Vscode软件:宇宙第一编辑器,开源,插件丰富CubeMx:初始化代码生产器,HAL库mingw64:因......
  • 全屋光纤(Fiber-to-the-Home,FTTH)
     全屋光纤(Fiber-to-the-Home,FTTH)的起源可以追溯到光纤通信技术的发展历程。光纤通信是一种利用光纤作为传输介质,将信息转换成光信号进行传输的通信技术,具有高速、大带宽、低损耗等优势。20世纪末,随着互联网的普及和数字化技术的发展,人们对网络带宽的需求越来越高。传统的电......