加法器与减法器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子设计自动化

大作业

题目加法器与减法器

学院泉城学院

班级电气09Q2班

姓名李文建

学号 20093005034

二O一一年十一月六日

加法器和减法器

一、设计要求:

(1)构造一个四位二进制加法器和一个四位二进制减法器,完成各自的功能仿真。(2)利用四个按键输入四位加数(或减数)和被加数(或被减数)。

(3)用七段数码管显示四位和(或差),用一只发光二极管指示进位(或借位)信号。(4)利用个开关控制,确定是四位二进制加法器还是一个四位二进制减法器。

二、总体设计:

1、总体结构图

2、各模块功能

(1)第一个4-16译码器实现输入四位加数(或减数)和被加数(或被减数)。

(2)开关模块:控制B0、B1、B2、B3,当M=0时,执行A+B,当M=1时,执行A-B。

(3)加法(减法)器模块:

加法器:采用全加器的串行进位,本四位二进制加法器由四个一位二进制加法器组成,输入A i、B i、C i,输出S i、C i+1。

减法器:与加法器的区别仅仅在于最后的和数为两数相减。

(4)LED灯:

加法器:灯亮表示有进位,灯灭表示无进位。

减法器:灯亮表示有借位,灯灭表示无进位。

(5)第二个4-16译码器:输入为四为加法器的和S0、S1、S2、S3,输出为Y0—Y6分别控制七段数码管的a1、b1、c1、d1、e1、f1、g1,输出Y9—Y15分别控制第二个七段数码管的a2、b2、c2、d2、e2、f2、g2。

(6)数码管:显示输出结果。

三、单元模块设计

1、第一个4—16译码器

(1)模块功能

通过四个按键输入四位二进制数,由译码器得到四位加数(或减数)和被加数(或被减数)的所有组合,从而实现加法器(或减法器)的输入。

(2)端口定义

输入端:X0、X1、X2、X3。

输出端:Y[0…15]。

Y[0…3]分别接到A[0…3],

Y[4…6]分别接到B[0…3]。

(3)VHDL源程序

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity Decoder is

Port (

DIN : in std_logic_vector(3 downto 0);

DOUT : out std_logic_vector(15 downto 0) );

end Decoder;

architecture rtl of Decoder is

begin

process (DIN) begin

case(DIN) is

when "0000" => DOUT <= "0111111111111111";

when "0001" => DOUT <= "1011111111111111";

when "0010" => DOUT <= "1101111111111111";

when "0011" => DOUT <= "1110111111111111";

when "0100" => DOUT <= "1111011111111111";

when "0101" => DOUT <= "1111101111111111";

when "0110" => DOUT <= "1111110111111111";

when "0111" => DOUT <= "1111111011111111";

when "1000" => DOUT <= "1111111101111111";

when "1001" => DOUT <= "1111111110111111";

when "1010" => DOUT <= "1111111111011111";

when "1011" => DOUT <= "1111111111101111";

when "1100" => DOUT <= "1111111111110111";

when "1101" => DOUT <= "1111111111111011";

when "1110" => DOUT <= "1111111111111101";

when "1111" => DOUT <= "1111111111111110";

when others => DOUT <= "1111111111111111";

end case;

end process;

end rtl;

2、开关模块

(1)模块功能

实现加法器和减法器的选择功能

(2) VHDL源程序

If(M=0)

ENTITY adder is

PORT(clk : in STD_LOGIC;

Din1 :in signed (3downto 0);

Din2 :in signed (3 downto 0);

Dout:out signed (3 downto 0));

END adder;

If(M=1)

ENTITY suber is

PORT(clk : in STD_LOGIC;

Din1 :in signed (13 downto 0);

Din2 :in signed (15 downto 0);

Dout :out signed(15 downto 0));

END suber;

3、加法(减法)器模块

(1)模块功能

实现两个二进制数字的相加(相减)运算。当到达时钟上升沿时,将两数输入,运算,输出结果。

(2)端口定义

相关文档
最新文档