FPGA学习笔记(十三)负数运算

系列文章目录


文章目录

  • 系列文章目录
  • Verilog负数
  • 负数运算原理


Verilog负数

reg寄存器是最常用的寄存器类型,这种寄存器中只能存放无符号数。如果给reg中存入一个负数,通常会被视为正数。

reg  [8:0]   a;   //9位b

声明是有符号数要加signed,做加法或乘法时,对操作数扩位处理时高位补符号位;即负数补1,正数补0;

reg signed  [8:0] a;a = -8'd1;a = 8'd1;

负数运算原理

正数5:0 0101
负数5:1 0101

那么如何进行加减乘除呢
计算中1-2会转化为1+(-2),减法转加法,乘法转加法和位移,除法转乘法再转换

我们看到如果直接用0 0101+ 1 0101 = 1 1010 (-10)
这样结果不是0

所以出现了反码:正数的反码不变,负数的反码是符号位不变,其他取反
这样 1 0101的反码是 1 1010
再计算 0 0101+ 1 1010 =1 1111,这样的话就需要用 1111111表示0.,不方便

于是出现了补码,正数的补码不变,负数的补码加1
1 0101的补码:1 1010+1 = 1 1011
0 0101+ 1 1011= 00000 (0),于是就可以用全0表示0了。
这样用补码计算出如果最高位是0,直接转正数就行
如果最高位是1,就是负数,要倒转回去(即+1,取反)

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

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

相关文章

Vue23的计算属性(computed)

Vue2&3的计算属性(computed) Vue2的计算属性 原理:data中的属性通过计算得到新的属性,称为计算属性(computed)。computed 具有 getter 和 setter 属性 getter 属性在使用时分别有两次调用&#xff1a…

cloud网关

Gateway--服务网关 网关简介 大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。 所谓的AP…

Verilog基础:三段式状态机与输出寄存

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html 对于Verilog HDL而言,有限状态机(FSM)是一种重要而强大的模块,常见的有限状态机书写方式可以分为一段式,二段式和三段式,笔者强烈建议使用三…

进程信号(linux)

什么是信号 信号是一种用于进程之间通信或操作的一种手段,通常一个进程会在任意时刻接收到系统发送的信号,因此信号也可以看做是一种进程事件异步通知的手段。 一个进程可以对信号有三种操作: 默认操作:默认进行信号对应的操作…

【Python】【应用】Python应用之一行命令搭建HTTP、FTP服务器

🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd🌐系列专栏:Python应用&…

mapbox支持的坐标系

mapbox 中只支持 web墨卡托坐标系,不支持经纬度坐标系。 栅格数据 基于经纬度坐标系的栅格数据没有办法渲染。矢量数据 矢量数据代码中会自动转换成墨卡托投影坐标系再渲染。 输出坐标时候还是经纬度。

产品经理进阶:外包原因及类型(一)

目录 前言 究竟为什么需要外包呢? 外包类型 CSDN学院 作者简介 前言 欢迎大家继续来到硬件产品经理进阶指南专题。 今天就来谈谈外包这个话题。 正常来讲,多数企业的开局,面临的无非就两种情况: 一种是你有一个想法或者是创意。

python爬虫 之 JavaScript 简单基础

文章目录 在网页使用JavaScript 代码的方式常用的JavaScript 事件常用的JavaScript 对象 在网页使用JavaScript 代码的方式 在网页中使用 JavaScript 代码的方式主要有三种: 内联方式(Inline): 在 HTML 文件中直接嵌入 JavaScrip…

简单的 UDP 网络程序

文章目录: 简单的UDP网络程序服务端创建套接字服务端绑定启动服务器udp客户端本地测试INADDR_ANY 地址转换函数关于 inet_ntoa 简单的UDP网络程序 服务端创建套接字 我们将服务端封装为一个类,当定义一个服务器对象之后,需要立即进行初始化…

【uniapp/uview1.x】u-upload 在 v-for 中的使用时, before-upload 如何传参

引入: 是这样一种情况,在接口获取数据之后,是一个数组列表,循环展示后,需要在每条数据中都要有图片上传,互不干扰。 分析: uview 官网中有说明,before-upload 是不加括号的&#xff…

Linux网络配置,常用命令及远程工具

1.Linux最常用的命令以及目录结构 常用命令: ls:列出当前目录的文件和子目录。 cd:切换当前工作目录。 pwd:显示当前工作目录的路径。 mkdir:创建一个新目录。 rm:删除文件或目录。 cp:复制文…

【Hello Go】Go语言函数

Go语言函数 定义格式自定义函数无参数无返回值有参数无返回值不定参数列表有返回值有多个返回值 函数类型匿名函数和闭包延迟调用deferdefer和匿名函数结合使用 获取命令行参数 定义格式 函数是构成代码执行的逻辑结构 在Go语言中 函数的基本组成为 func关键字函数名参数列表…

《QT从基础到进阶·三十三》QT插件开发QtPlugin

插件和dll区别: 插件 插件主要面向接口编程,无需访问.lib文件,热插拔、利于团队开发。即使在程序运行时.dll不存在,也可以正常启动,只是相应插件功能无法正常使用而已; 调用插件中的方法只要dll即可&#x…

Ajax 之XMLHttpRequest讲解

一直以来都听别人说Ajax,今天终于接触到了。。。。。。。。。。 一.什么是Ajax? 答: AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX 异步 JavaScript和XML&#x…

JavaScript异常处理

在JavaScript中,异常是指在代码执行过程中发生的错误或意外情况。异常处理是一种机制,用于捕获和处理这些异常,以避免程序崩溃或产生意外结果。JavaScript提供了一些关键字和语句,用于实现异常处理。 一、try-catch-finally块 t…

Linux(2):初探

Linux 是什么 Linux 就是一套操作系统。Linux 就是核心与系统呼叫接口那两层。 应用程序不算 Linux。 Linux 提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, 这个架构是沿袭Unix 良好的传统来的,相当的稳定而功能强大。 在 Lin…

CPD:使用restAPI和cpd-cli命令创建DMC实例

环境 Red Hat Enterprise Linux release 8.6 (Ootpa)OCP 4.12.22IBM CP4D 4.8.0Data Management Console 3.1.12 (DMC for CPD 4.8.0) 注:使用了fyre VM。 创建DMC实例 准备 首先export环境变量: . ./stg_env.sh把 cpd-cli 放到PATH里。编辑 ~/.ba…

redis悲观锁和乐观锁

redis悲观锁 Redis加锁命令分有INCR、SETNX、SET 一、INCR锁 key不存在时,key的值会先被初始化为0,其它用户在执行INCR操作进行加一, 如果返回的数大于1,说明这个锁正在被使用当中,通常用在同时只能有一个人可以操作某…

【网络奇遇记】那年我与计算机网络的初相识 —— 网络的体系结构

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. 常见的三种计算机网络体系结构1.1 开放系统互连参考模型1.2 TCP/IP参考模型1.3 原理参考模型 二…

k8s pod常用运维命令

1. 概述 kubectl 命令是操作 Kubernetes 集群的最直接和最高效的途径,熟练掌握命令的使用能起到事半功倍的效果,整理命令有助于加深记忆,该文仅记录关于pod常用的操作运维命令。 2. 查看namespaces 查看k8s集群中目前存在的namespaces kub…