Verilog 补码加法溢出判断及处理

补码加法运算溢出判断三种方法:

一、符号位判断

Xf、Yf分别两个数的符号位,Zf为运算结果符号位。

  • 当Xf =Yf =0(两数同为正),而Zf=1(结果为负)时,负溢出;
  • 当出现Xf =Yf =1(两数同为负),而Zf=0(结果为正),正溢出。

二、进位判断

Cs表示符号位的进位,Cp表示最高数值位进位,⊕表示异或。

  • 若 Cs⊕Cp =0 ,无溢出;
  • 若 Cs⊕Cp =1 ,有溢出。

三、变形补码判断

用变形补码进行双符号位运算(正数符为00,负数符号以11)

  • 若运算结果的符号位为"01",则正溢。
  • 若结果双符号为10,则负溢出。
     

补码加法运算溢出处理

以变形补码的方案为例,代码如下:

always @ (* )
begincase(dout[DATA_WIDTH-1:DATA_WIDTH-2])2'b01: dout <= {1'b0,{(DATA_WIDTH-1){1'b1}}};       //正溢2'b10: dout <= {1'b1,{(DATA_WIDTH-1){1'b0}}};     //负溢2'b00,2'b11: dout <= {dout[DATA_WIDTH-1],dout[DATA_WIDTH-3:0]};  //无溢出default: sum <= {dout[DATA_WIDTH-1],dout[DATA_WIDTH-3:0]};endcase	      
end

 

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

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

相关文章

Android绘制(三):Path结合属性动画, 让图标动起来!

Android绘制(一):来用shape绘出想要的图形吧! Android绘制(二):来用Path绘出想要的图形吧! 目录 效果图前言绘制属性动画最后效果图 不废话, 直接上效果图, 感兴趣再看下去. 其实不单单是效果图演示的, 运用熟练的话各种图标之间都是可以切换的. 前言 之前的文章也说了, path还…

{{view 视图层}}微信小程序

微信小程序 view 视图层//自学 1.数据绑定 数据绑定WXML中的动态数据均来自对应Page的data。 简单绑定数据绑定使用"Mustache"语法&#xff08;双大括号&#xff09;将变量包起来&#xff0c;可以作用于&#xff1a; 内容<view> {{ message }} </view>Pa…

CMOS图像传感器——概述

一、概述 图像传感器是把光学图像信息转换成电信号的器件。图像传感器是随着电视技术在20世纪30年代发展起来的,早期图像传感器技术的最重要贡献在于建立了扫描(Scan)的概念,用扫描的方法把二维空间平面上的光电信息离散成行(Line)和帧(Frame),然后按空间顺序读出形成…

nand flash坏块管理OOB,BBT,ECC

0.NAND的操作管理方式 NAND FLASH的管理方式&#xff1a;以三星FLASH为例&#xff0c;一片Nand flash为一个设备(device)&#xff0c;1 (Device) xxxx (Blocks)&#xff0c;1 (Block) xxxx (Pages)&#xff0c;1(Page) 528 (Bytes) 数据块大小(512Bytes) OOB 块大小(16Byte…

小白学git2

你已经在本地创建了一个Git仓库后&#xff0c;又想在GitHub创建一个Git仓库&#xff0c;并且让这两个仓库进行远程同步&#xff0c;这样&#xff0c;GitHub上的仓库既可以作为备份&#xff0c;又可以让其他人通过该仓库来协作&#xff0c;真是一举多得。 首先&#xff0c;登陆G…

[LeetCode_5] Longest Palindromic Substring

LeetCode: 5. Longest Palindromic Substring class Solution { public: //动态规划算法string longestPalindrome(string s) {int n s.length();int longestBegin 0;int maxLen 1;bool table[1000][1000] {false};for (int i 0; i < n; i) {table[i][i] true;}//对角…

冒泡排序java

一、最简单粗暴的排序 思想为&#xff1a;让每一个关键字都和它后边的每一个关键字比较&#xff0c; 如果大则交换&#xff0c;这样第一个位置的关键字在一次循环后一定变为最小值。 1 package demo01;2 3 class BubbleSort01 {4 public static void main(String[] args) {…

CMOS图像传感器——工作原理

一、像素阵列结构 一般像素阵列是由水平方向的行( Row ) 和垂直方向的列(Column)正交排列构成的。像素排列的最基本设计原则是:摄像器件像素排列的坐标,必须在显示的时候能够准确地还原在图像原来的相对位置上。在大多数情况下,每个像素中心线在行的方向和列的方向,即…

追寻终极数据库 - 事务/分析混合处理系统的交付挑战 (3)

挑战&#xff1a;支持多个存储引擎 以下内容并不是新发现&#xff1a;行优化存储适用于OLTP和运营工作负载&#xff0c;而列存储适用于BI和分析工作负载。频繁写入的工作负载适用于行式存储。对Hadoop而言&#xff0c;Hbase适合低延迟工作负载&#xff0c;列式ORC文件或Parquet…

hibernate快速入门

第一步:下载Hibernate的开发包:  http://sourceforge.net/projects/hibernate/files/hibernate3 第二步:Hibernate框架目录结构:  documentation :Hibernate文档  lib :Hibernate开发jar包    bytecode :操作字节码jar包.    jpa :Hibernate的实现jpa规范.   …

U-boot给kernel传参数和kernel读取参数—struct tag

U-boot 会给 Linux Kernel 传递很多参数&#xff0c;如&#xff1a;串口&#xff0c; RAM &#xff0c; videofb 等。 而 Linux kernel 也会读取和处理这些参数。两者之间 通过 struct tag 来传递参数。 U-boot 把要传递给 kernel 的东西保存在 struct tag 数据结构中&#xf…

异步FIFO设计(Verilog)

FIFO&#xff08;First In First Out&#xff09;是异步数据传输时经常使用的存储器。该存储器的特点是数据先进先出&#xff08;后进后出&#xff09;。其实&#xff0c;多位宽数据的异步传输问题&#xff0c;无论是从快时钟到慢时钟域&#xff0c;还是从慢时钟到快时钟域&…

python中RabbitMQ的使用(路由键模糊匹配)

路由键模糊匹配 使用正则表达式进行匹配。其中“#”表示所有、全部的意思&#xff1b;“*”只匹配到一个词。 匹配规则&#xff1a; 路由键&#xff1a;routings [ happy.work, happy.life , happy.work.teacher, sad.work, sad.life, sad.work.teacher ] "#"&am…

数据仓库事实表分类[转]

1&#xff09;在数据仓库领域有一个概念叫Transaction fact table&#xff0c;中文一般翻译为“事务事实表”。 事务事实表是维度建模的数据仓库中三种基本类型事实表中的一种&#xff0c;另外两种分别是周期快照事实表和累积快照事实表。 事务事实表与周期快照事实表、累积快…

嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs

Linux支持多种文件系统&#xff0c;包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等&#xff0c;为了对各类文件系统 进行统一管理&#xff0c;Linux引入了虚拟文件系统VFS(Virtual File System)&#xff0c;为各类文件系统提供一个统一的操作界面和应用编程接口。 …

Codeforces Beta Round #17 C. Balance DP

C. Balance题目链接 http://codeforces.com/contest/17/problem/C 题面 Nick likes strings very much, he likes to rotate them, sort them, rearrange characters within a string... Once he wrote a random string of characters a, b, c on a piece of paper and began t…

时钟切换处理(Verilog)

随着各种应用场景的限制&#xff0c;芯片在运行时往往需要在不同的应用下切换不同的时钟源&#xff0c;例如低功耗和高性能模式就分别需要低频率和高频率的时钟。两个时钟源有可能是同源且同步的&#xff0c;也有可能是不相关的。直接使用选择逻辑进行时钟切换大概率会导致分频…

SSH整合中,使用父action重构子类action类.(在父类中获取子类中的泛型对象)

import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type;import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven;/*** 文件名 : BaseAction.java* 提取SSH中的action类* 由于SSH的action中采用模型驱动的方法,使用泛…

用BusyBox制作Linux根文件系统

STEP 1&#xff1a;构建目录结构 创建根文件系统目录&#xff0c;主要包括以下目录 /dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin /sys #mkdir /home/rootfs #cd /home/rootfs #mkdir dev etc lib usr var proc tmp home roo…