VHDL实现16位全加器

2026/1/26 17:54:30

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位全加器.doc 将本文的Word文档下载到电脑
搜索更多关于: VHDL实现16位全加器 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219