第一范文网 - 专业文章范例文档资料分享平台

VHDL实现16位全加器

来源:用户分享 时间:2025/8/22 17:10:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Ci = Xi Y i Ci-1+X i Y i C i-1+X i Y i C i-1+X i Y i C i-1 = (X i ○+Y i)C i-1+X i Y i Fi = XiYiC i-1 + XiYiC i-1 +XiYiC i-1 + XiYiC i-1 = Xi○+Yi○+C i-1

(3)由上面可得。Xi和Yi为两个输入的一位二进制书,Ci-1为低位二进制数相加的进位输出到本位的输入,则Fi为本位二进制数Xi、Yi和低位进位输入Ci-1的相加之和,Ci为Xi、Yi和低位进位输入Ci-1相加向高位的进位输出。因此,该电路可以完成一位二进制数全加的功能,称为全加器。此电路的真值表如表2所示。

表2 一位全加器真值表

Xi 0 0 1 1 0 0 1 1

Yi 0 1 0 1 0 1 0 1

Ci-1 0 0 0 0 1 1 1 1

Fi 0 1 1 0 1 0 0 1

Ci 0 0 0 1 0 1 1 1

1.4 十六位全加器的设计

设计16位的全加器思路非常简单且清晰,第一种方法就是先设计一个半加器和一个或门,然后两个半加器合并成一个一位的全加器,最后用16个一位的全加器组合成为一个16位的全加器;第二种方法就是先设计一个一位的全加器,然后在用16个串联或并联就组成了一个16位的全加器,而本次设计采用采用的是第一种方法。

图3 一位全加器的级联原理图

十六位全加器有十六个一位全加器的级联组成的,最低位的借位信号时整个全加器的借位信号Cin,最高位的进位信号是十六位全加器的进位信号,每位之间通过进位信号链接,两个十六位加数的每一位并联输入,和数SUM的每一位并联输出,完成两个十六位的数的加法。 1.5用VHDL编写代码实现16位全加器

本次实验使用 Altera FPGA/CPLD 的开发工具 Quartus Ⅱ,利用编写VHDL代码设计方法设计一个16位加法器,并用Quartus的综合仿真工具实现电路的综合,电路功能的验证,并最后查看综合后的RLT电路框图来验证设计与原逻辑设计符不符合要求,我们还可以借用powerplay功率分析工具对设计后的电路进行功耗分析。

本次设计有一个顶层模块(16位全加器)和三个底层模块,它们分别为一位全加器和组成一位全加器的半加器模块和或门模块。因此我们要用从底层到

顶层的设计思路,以半加器+或门 ——>一位全加器——>16位全加器的为设计顺序。

以下为半加器和活门的VHDL程序代码 (1) 半加器的VHDL代码 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity h_adder is port(a,b:in std_logic; co:out std_logic; so:out std_logic ); end h_adder;

architecture one of h_adder is begin

so<=a xor b; co<=a and b; end one;

(2) 或门的VHDL代码 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity or2a is

port(a,b:in std_logic;

c:out std_logic ); end or2a;

architecture one of or2a is begin c<=a or b; end one;

由全加器的逻辑图可以看出,全加器由两个半加器和一个或门组成。在VHDL语言中我们可以在一个模块的代码中用component语句调用低层的模块。这样可以避免写更多的繁琐的代码,也可以提高程序的可读性,也有利于实际电路在延时等关键技术性问题上的优越性。 (3) 一位全加器的VHDL代码 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity f_adder is port(ain:in std_logic; bin:in std_logic; cin:in std_logic; coutf:out std_logic; sumf:out std_logic ); end f_adder;

architecture one of f_adder is component h_adder

搜索更多关于: VHDL实现16位全加器 的文档
VHDL实现16位全加器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c44ck00r6dd02tjb2ir9w_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top