【FPGA】如何理解全加器

这篇具有很好参考价值的文章主要介绍了【FPGA】如何理解全加器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一丶什么是全加器

半加器比较容易理解,它的电路指对两个输入数据位(a、b)相加,输出一个结果位(sum)和进位(cout),但没有计算进位输入的加法器电路。
【FPGA】如何理解全加器

输出表达式
【FPGA】如何理解全加器

相比半加器,全加器是将低位进位输入也代入计算的加法电路,同样输出一个结果位和进位。1位全加器就是计算带进位输入的 1位二进制数的加法电路,多个一位全加器进行级联可以得到多位全加器。

这里我们来理解一下低位进位和本位加法进位
对照真值表:
【FPGA】如何理解全加器

一开始的运算Ci-1=0,因为之前的运算没有产生进位,直至Ai=Bi=1时产生进位。 即: 0+0输出结果Si=0,没有进位,所以Ci=0.
1+0输出结果Si=1,没有进位,所以Ci=0. 1+1,根据二进制运算法则,进位,Ci=1,进位后输出结果清零,Si=0

【FPGA】如何理解全加器

二丶1位全加器的Verilog实现

module full_add2
(
	input a,
	input b,
	input cin,
	output sum,
	output cout
);
	assign sum = a^b^cin;
	assign cout = (a&b)|((a^b)&cin);
endmodule

三丶深层解析sum及cout表达式的逻辑

对于代码中sum和cout的算式我们来进行分析:

首先考虑输出cout的逻辑表达式,什么条件下进位输出cout为1???分两种情况:

1、a和b相加已经产生进位。说明a和b都为1,此时不管cin是1还是0,不影响cout输出,这种情况对应逻辑表达式(a&b)
  
2、a和b相加没有产生进位。说明a和b都为0(此时不管cin是何值,进位输出cout都不会为1),或a、b其中一个为1,另一个为0,此时a与b不相同,用异或逻辑表示便是(a^b),这种条件下只有cin为1时,进位输出才为1,对应逻辑表达为(a ^b)&cin

总结1(cout):将上述两种情况加起来就是cout的逻辑表示,或逻辑表示加和,所以最终cout逻辑表达式为:cout = (a&b) | ((a^b)&cin)。
另外对于sum思考下,什么条件下sum输出逻辑1???sum由输入cin,被加数a,加数b,三者加和得到,若想结果sum为1,则cin,a,b三个数中,必然要有奇数个1(若有偶数个1,则二进制数加和,必会产生进位使得最低位sum为0)。
可以首先判断a,b是否相同,使用异或逻辑(a^b),然后分两种情况谈论:
1、a^b=1。说明a和b不相同,则必然一个为0,一个为1,此时已经存在一个1,那cin必须要为0才能使得sum为1,此时 (a ^b) 与cin相异,所以使用异或逻辑来描述这种情况 (a ^b) ^cin

2、a^b=0。说明a和b相同,同时为0或同时为1;此时不管哪种情况,cin必须要为1才能使得sum为1,此时 (a ^b) 与cin仍然相异,所以还使用异或逻辑来描述这种情况 (a ^b) ^cin

总结2(sum):综合上述两种情况,a ^b ^cin为sum的逻辑表达通式,用以计算a,b,cin中1的个数(奇偶),以此赋值sum是否为1。

参考文章:https://blog.csdn.net/weixin_42294124/article/details/119853457文章来源地址https://www.toymoban.com/news/detail-447627.html

到了这里,关于【FPGA】如何理解全加器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【基础知识】~ 半加器 & 全加器

    半加器,就是不考虑进位的加法器,只有两个输入和两个输出:输入A和B,输出和数sum和进位cout,半加器真值表如下: 全加器就是在半加器的基础上引入一个进位输入,总共三个输入两个输出。全加器真值表如下: 这里的输出一共有两个,一个sum,一个进位cout。sum的值是

    2024年02月11日
    浏览(41)
  • 加法器、半加器、全加器、超前进位加法器

    简单来讲,半加器不考虑低位进位来的 进位值 ,只有两个输入,两个输出。由一个与门和异或门构成. 真值表: 输入 输出 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 半加器不考虑低位向本位的[进位],因此它不属于[时序逻辑电路],有两个输入端和两个输出。 设加数(输入端)为A、B

    2024年02月02日
    浏览(55)
  • 实验四 QUARTUS开发环境实验 设计半加器、全加器和四位全加器 blueee的学习笔记

    一、实验目的 1、通过实验,能熟悉QUARTUS开发环境,能够掌握QUARTUS的原理图输入法设计电路,掌握使用相关仿真工具进行功能和时序仿真的方法; 2、通过实验,加深对全加器电路的理解,并能使用QUARTUS的原理图输入法完成全加器的设计,并能在QUARTUS中完成相关的仿真验证

    2024年02月05日
    浏览(98)
  • CMOS 半加器和全加器&&数字集成电路&& Cadence Virtuoso

    NOR: NAND: 最重要的反相器: NOR: NAND: 最简单的反相器: 好,现在开始设计半加器 我是默认你是懂半加器原理的 这里先放一个模块间连线: 然后shift+f看细节图: 这里一个小技巧: 如果发生导线交叉,可以换个材料,否则就会短路。 直接看Schematic吧 到这里,应该能生成

    2024年02月13日
    浏览(61)
  • Quartus-II利用两个半加器实现简单全加器

    软件基于 quartusII 13.1 版本,开发板基于Intel DE2-115 。 1.新建并命名工程 2.选择芯片型号 3.新建半加器原理图

    2023年04月08日
    浏览(41)
  • FPGA实现1位全加器和4位全加器

    1、基于Quartus件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。 2、在此基础上,用原理图以及Verilog 编程两种方式,完成4位全加器的设计,对比二者生成的 RTL差别;使用modelsim验证逻辑设计的正确性。 num1和num2是加数,cin是低位进

    2024年02月05日
    浏览(40)
  • 一位全加器及四位全加器————FPGA

    环境: 1、Quartus18.0 2、vscode 3、基于Intel DE2-115的开发板 全加器简介: 全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。

    2024年02月03日
    浏览(50)
  • FPGA——1位全加器和4位全加器的实现

    1、半加器 半加器是实现两个一位二进制数加法运算的器件。它具有两个输入端(被加数A和加数B)及输出端Y。 是数据输入被加数A、加数B,数据输出S和数(半加和)、进位C。 A和B是相加的两个数,S是半加和数,C是进位数。 所谓半加就是不考虑进位的加法,它的真值表如下 (见表

    2024年02月04日
    浏览(63)
  • FPGA基础——全加器

    全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。 一位全加器为例 Ain表示被加数,Bin表示加数,Cin表示低位进位,Cou

    2024年02月09日
    浏览(45)
  • FPGA-1位全加器的实现

    1.半加器的定义 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 2.半加器的真值表 A,B表示二进制数,C表示半加进位,S表示半加和 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 3.输出表达式 S = A ˉ B + A B ˉ = A ⊕ B C = A B 1.1位全加器的真值表 Ain表示被加数

    2024年02月03日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包