verilog全加器、全减器和乘法器及溢出判断
全加器
转自:https://www.cnblogs.com/SYoong/p/5917296.html
先以一位全加器为例:Xi、Yi代表两个加数,Cin是地位进位信号,Cout是向高位的进位信号。列表有:
Xi | Yi | Cin | Sum | Cout |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
由左边表格可知:
Sum=X’Y'Cin+X'YCin'+XY'Cin'+XYCin=X'(Y⊕Cin)+X(Y⊙Cin)=X'(Y⊕Cin)+X(Y⊕Cin)'=X⊕Y⊕Cin
Cout=X’YCin+XYCin'+XY'Cin+XYCin=XY+(X⊕Y)Cin
如果取:P=X⊕Y ; G=XY
那么:Sum=P⊕Cin Cout=PCin+G
图中对Cout的公式进行了,即Cout'=(AB)'(PCin)'=(AB)'((A⊕B)Cin)'
下面是全加器的门级Verilog语言描述:
module Fadd(x,y,Cin,Cout,Sum);input x,y,Cin;output Cout,Sum;wire a,b,c;
xor xor1(a,x,y);
xor2(Sum,a,Cin);
and and1(b,x,y);
and2(c,Cin,a);
or or1(Cout,b,c);
endmodule
全加器的行为描述:
![](/assets/blank.gif)
![](/assets/blank.gif)
1 module add(x,y,Cin,Sum,Cout); 2 input x,y,Cin; 3 output Sum,Cin; 4 assign Sum=x^y^Cin; 5 assign Cout=x&y+(x^y)&Cin; 6 endmodule
View Code
module add_N(x,y,Cin,Cout,Sum);input x,y,Cin;output Sum,Cout;assign {Cout,Sum}=x+y+Cin; endmodule
利用行为级描述的Verilog全加器可以很简单的扩展成4位或者16位等全加器:
module add_4(x,y,Cin,Cout,Sum);input [3:0]x,y;input Cin;output [3:0]Sum;output Cout;assign {Cout,Sum}=x+y+Cin; endmodule
module add_N(x,y,Cin,Cout,Sum);input [N-1:0]x,y;input Cin;output [N-1:0]Sum;output Cout;assign {Cout,Sum}=x+y+Cin; endmodule
全减器
https://blog.csdn.net/qq_43483403/article/details/103473593
https://baike.baidu.com/item/%E5%85%A8%E5%87%8F%E5%99%A8/2084280?fr=aladdin
加法溢出判断
补码加法运算溢出判断三种方法:
(1) 两个符号相同的补码数相加,如果和的符号与加数的符号相反,或两个符号相反的补码数相减,差的符号与减数的符号相同,都属于运算结果溢出。这种判别方法比较复杂,要区别加还是减两种不同运算情况,还要检查结果的符号与其中一个操作数的符号的同异,故很少使用;
(2)** 两个补码数相加减时,若最高数值位向符号位送的进位值与符号位送向更高位的进位值不相同,也是运算结果溢出。
(3) 在采用双符号位(如定点小数的模4补码)运算时,若两个符号位的得值不同(01或10)则是溢出。01表明两个正数相加,结果大于机器所能表示的最大正数,称为"上溢";10表明两个负数相加,结果小于机器所能表示的最小负数,称为"下溢";双符号位的高位符号位,不管结果溢出否,均是运算结果正确的符号位,这个结论在乘法运算过程中是很有实际意义的。请注意,在采用双符号位的方案中,在寄存器和内存储器存储数据时,只需存一位符号,双符号位仅用在加法器线路部分。 再次强调,这三种不同说法是对同一个事实的略有区别的表述,实现时用到的线路可以有所区别,但问题的实质是完全一样的。
乘法器
https
verilog全加器、全减器和乘法器及溢出判断相关推荐
- Verilog 补码加法溢出判断及处理
补码加法运算溢出判断三种方法: 一.符号位判断 Xf.Yf分别两个数的符号位,Zf为运算结果符号位. 当Xf =Yf =0(两数同为正),而Zf=1(结果为负)时,负溢出: 当出现Xf =Yf =1( ...
- Verilog编程-2. 流水线乘法器设计
Verilog编程-2. 流水线乘法器设计 1. 背景 在Verilog中,我们一般使用乘法器时直接用*来直接完成,或者调用相关IP核来生成高性能乘法器,但是归根到底Verilog描述的是硬件电路 ...
- 两个整数相加 相乘 有符号与无符号 溢出判断条件 移位与2的幂
无符号数相加 算术运算溢出:完整的整数结果不能放到数据类型的字长限制中去 无符号数溢出 无符号数求反 补码加法 补码溢出 补码的非 无符号乘法 补码乘法 无符号乘法和补码乘法结果的位模式相同 与2的幂 ...
- 考前自学系列·计算机组成原理·补码定点加减运算和溢出判断,浮点数的加减运算,原码的乘法
补码定点加减运算和溢出判断 浮点数的加减运算 原码乘法
- 【LeetCode笔记】7.整数反转(Java、溢出判断、栈)
文章目录 题目描述 解法 & 代码 ① 字符串解法 ② 类栈做法 题目描述 边界比较需要考虑,而且还有不允许64位整数的要求. 解法 & 代码 ① 字符串解法 起初想到的做法,不过缺点 ...
- 计组之数据运算:5、加减运算与溢出判断
5.加减运算与溢出判断 思维导图 原码的加减运算 补码的加减运算 溢出判断 1.采用一位符号位直接判断 2.采用一位符号位用进位判断 3.采用双符号位判断 符号扩展 思维导图 原码的加减运算 补码的加 ...
- (计算机组成原理)第二章数据的表示和运算-第二节4:定点数的加减运算和溢出判断
文章目录 一:使用原码实现加减法基本逻辑 (1)原码加法 (2)原码减法 二:使用补码实现加减法 三:溢出判断 (1)采用一位符号位依据溢出表达式判断 (2)采用一位符号位依据进位情况判断 (3)采用 ...
- 编程实现 有符号乘法溢出判断
//有符号乘法溢出判断 #include<iostream> using namespace std; int tmult_ok(int x, int y ) {int pro = x*y ...
- 编程实现 无符号乘法溢出判断
//无符号乘法溢出判断 #include<iostream> using namespace std; int main() {unsigned int x,y,pro;cin>&g ...
- 编程实现 带符号减法溢出判断
//带符号减法溢出判断 #include<iostream> using namespace std; int sun_ok(int x,int y) {int diff=x+~y+1;i ...
最新文章
- 查询各个年级的平均分_二年级数学:期中考试前精心准备一下,会有意想不到的收获哦!...
- 关于java几种输出的区别
- sql语句提高数据库查询效率
- 1346. 检查整数及其两倍数是否存在 golang
- CCNA-第十四篇-NAT-下+链路聚合(LACP)+DHCP
- oracle 高效函数,Oracle分组函数之高效的ROLLUP
- Java基础-环境变量设置及Java命令行使用
- html5 content type,Content-Type一览
- arcgis分隔图层重复出文件_【干货】ArcGIS不可或缺的制图技巧,处理好细节才能让图更专业!...
- hive Beeline plus HiveServer2简单使用
- mysql关于连接查询
- 按键精灵注册服务器,按键精灵网页注册脚本教程
- Restlet Introduction
- 基于java的局域网端口扫描工具
- 初见安~这里是樱狸的博客目录~
- IDEA集成Java性能分析神器JProfiler
- 华为交换机主备命令_华为交换机命令中文意思
- 查看服务器数据库信息,怎么查看数据库服务器信息
- FPGA always 和assign 用法
- mysql 字段名称规范_数据库表及字段命名规范
热门文章
- 插件//better-scroll(BScroll/滚动插件)使用方法及其在 vue 中使用
- 苹果电脑在哪里改计算机id,苹果MAC电脑如何更改ID账号
- Porsche保时捷Taycan维修手册电路图接线图技术培训手册维修技术资料
- Modbus协议的PLC、智能仪表数据采集至SQL数据库,实现双向通讯
- APK大小查看、定义、反编译、如何安装解压
- 反黑小技谋:IP地址的侦察和隐藏(转)
- 数字图像处理实验之Matlab对图像的基本处理
- 怎么用html制作求职登记表,有步骤的编写个人简历 其效果更好
- [含lw+辩论PPT+任务书+中期检查表+源码等]基于ssm的NBA球队|篮球管理系统[包运行成功]
- CS188-Project 4