完整四位全加全减器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四位全加全减器设计
一.实验目的
1熟悉在max+plus II 的环境下设计数字电路的步骤和方法
2学习使用vhdl语言,进行设计数字电路的RTL级电路
3通过max+plus II 软件中对自行设计的电路的仿真,加深对数字电路设计的理解。二.实验原理
1.功能描述
输入:select,Ci, A, B 输出:S,Co
Select=0时,S为全加器的求和位(A+B),Co为全加器的高位进位。Ci为全加器低位进位。Select=1时,S为全减器的求差位(A-B),Co为全减器的高位借位。Ci为全减器低位借位。
2.一位全加全减器真值表:
输入输出
Select Ci A B S Co
0 0 0 0 0 0
0 0 0 1 1 0
0 0 1 0 1 0
0 0 1 1 0 1
0 1 0 0 1 0
0 1 0 1 0 1
0 1 1 0 0 1
0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 1 1 1
1 0 1 0 1 0
1 0 1 1 0 0
1 1 0 0 1 1
1 1 0 1 0 1
1 1 1 0 0 0
1 1 1 1 1 1
3.逻辑化简
由真值表得
S=A○十B○十Ci=((A○十Select)○十B○十Ci)○十Select
Co=(A○十Select)B+Ci((A○十Select)+B)=((A○十Select)○十B)Ci+(A○十Select)B
对于半加器的逻辑表达式为:S=A○十B Co=AB
综上,一位全加全减器可由两个半加器,两个异或门和一个或门组成。
4.毛刺的产生与消除
组合逻辑电路由于输入到输出各端的延时不同,在输出端稳定之前会产生错误的输出。在本电路中,由于低位的进位或借位传输到输出的时间比其他信号传输的延时要长,因此当低位产生进位或借位时会出现错误的输出。
一种常见的方法是利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输入输出信号。由组合逻辑电路的最大延时Td为16.7ns,D触发器的时钟周期T应略大于Td,取20ns。
三.电路原理图设计及vhdl代码
1.D触发器vhdl文件
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY dff IS
PORT ( CLK: IN STD_LOGIC;
D:in std_logic;
Q: OUT STD_LOGIC );
END dff;
ARCHITECTURE behav OF dff IS
begin
process(clk)
begin
if clk'event and clk='1'then q<=d;
end if;
end process;
end architecture behav;
2.半加器vhdl文件
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity half_adder is
port ( a,b :in bit;
c,sum:out bit);
end half_adder;
architecture adder of half_adder is
begin
c<=a and b;
sum<=a xor b;
end adder;
3.一位全加全减器gdf文件(由半加器和异或门,或门组成)
4四位全加全减器gdf文件(由四个一位全加全减器组成)
5.四位全加全减器生成的符号文件
6.D触发器去毛刺gdf文件(由一个四位全加全减器和十五个D触发器组成)
四.仿真波形及分析1.不加D触发器时的仿真波形
1)减法波形(select=1)
2)加法波形(select=0)
2.四位全加全减器延时分析
3.加D触发器后的仿真波形1)减法波形(select=1)
2)加法波形(select=0)
四.心得体会
通过这次4位全加全减器的设计,我进一步熟悉了数字系统vhdl设计和仿真的流程,进一步了解了max plusII软件的使用方法。并且加深了对数字系统中组合逻辑电路和时序逻辑电路的理解,尤其加深了对D触发器输入输出缓冲功能的理解。