1、全加器与全减器设计 学校代码:_________ 学 号: __________ Hefei University 数电设计报告 NUMBER OF ELECTRICAL DESIGN REPORT 设计题目: 全加器与全减器设计 学位类别: 工学学士
2、 年级专业(班级):电子信息工程1班 作者姓名:汤家映(1405011019)、宋道远(1405011020)、朱亚东(1405011022) 导师姓名: 谭敏 完成时间: 2015-5-17 目录 一、设计任务 2 1.用组合逻辑电路设计1位二进制全加器与全减器 2 2.用双8选1数据选择器74LS151设计1位二进制全加器与全减器 2 3.用广义译码器VHDL语言设计1位二进制全加器与全减
3、器 2 二、设计过程 2 1.用组合逻辑电路设计1位二进制全加器与全减器 2 (1)进行逻辑抽象,建立真值表 2 (2)画出卡诺图 2 (3)画出逻辑电路 3 2.用双8选1数据选择器74LS151设计1位二进制全加器与全减器 3 (1)逻辑问题进行抽象,列出真值表 3 (2)列出函数表达关系 4 (3)用数据选择器74LS151画出逻辑电路图 4 3.用广义译码器VHDL语言设计1位二进制全加器与全减器 5 三、总结 6 一、设计任务 1、 用组合逻辑电路设计1位二进制全加器与全减器; 2、 用双8选1数据选择器74LS15
4、1设计1位二进制全加器与全减器; 3、 用广义译码器VHDL语言设计1位二进制全加器与全减器。 二、设计过程 1、 用组合逻辑电路设计1位二进制全加器与全减器 (1) 进行逻辑抽象,建立真值表 全加器与全减器真值表 输入 输出 A B C 全加器(m=0) 全减器(m=1) S D S D 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0
5、 1 0 1 0 0 1 1 1 1 1 1 1 (说明:当m=1时为全加器A.B分别表示被减数和减数C表示低位向高位的借位数,S表示本位和值,D表示向高位的借位; 当m=0时为全加器A.B分别表示两个加数C表示低位向高位的进位数,S表示本位和值,D表示向高位的进位) (2) 画出卡诺图 BC\mA 00 01 11 10 00 0 0 0 0 01 0 1 0 1 11 1 1 1 1 10 0 1 0 1 S的卡诺图
6、 D的卡诺图 BC\mA 00 01 11 10 00 0 1 1 0 01 1 0 0 1 11 0 1 1 0 10 1 0 0 1 全加器:m=0时,, 全减器:m=1时,, (3)画出逻辑电路 根据最简逻辑表达式画出逻辑电路图 2、 用双8选1数据选择器74LS151设计1位二进制全加器与全减器; (1) 逻辑问题进行抽象,列出真值表 全加器与全减器真值表 m A B C S D 0 0 0
7、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 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 4 (说明:当m=1时为全加器A.B
8、分别表示被减数和减数C表示低位向高位的借位数,S表示本位和值,D表示向高位的借位 当m=0时为全加器A.B分别表示两个加数C表示低位向高位的进位数,S表示本位和值,D表示向高位的进位) (2) 列出函数表达关系 根据上面真值表,列出逻辑函数表达式(标准与或式) (3) 用数据选择器74LS151画出逻辑电路图 根据逻辑函数的标准与或式画出逻辑电路图 3、 用广义译码器VHDL语言设计1位二进制全加器与全减器 根据全加器与全减器的真值表编写VHDL程序,程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
9、 ENTITY JJ IS PORT(M,A,B,C:IN STD_LOGIC; S,D: OUT STD_LOGIC); END ENTITY JJ; ARCHITECTURE one OF JJ IS SIGNAL MABC:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN MABC<=M&A&B&C; PROCESS(MABC) BEGIN CASE MABC IS WHEN"0000"=>S<='0';D<='0'; WHEN"0001"=>S<='1
10、';D<='0'; WHEN"0010"=>S<='1';D<='0'; WHEN"0011"=>S<='0';D<='1'; WHEN"0100"=>S<='1';D<='0'; WHEN"0101"=>S<='0';D<='1'; WHEN"0110"=>S<='0';D<='1'; WHEN"0111"=>S<='1';D<='1'; WHEN"1000"=>S<='0';D<='0'; WHEN"1001"=>S<='1';D<='1';
11、 WHEN"1010"=>S<='1';D<='1'; WHEN"1011"=>S<='0';D<='1'; WHEN"1100"=>S<='1';D<='0'; WHEN"1101"=>S<='0';D<='0'; WHEN"1110"=>S<='0';D<='0'; WHEN"1111"=>S<='1';D<='1'; WHEN OTHERS=>NULL; END CASE; END PROCESS; END ARCHITECTURE one
12、 三、总结 本次关于全加器与全减器的设计是由本组三人共同合作配合完成,知道了合作完成任务的重要性。 通过这次课程设计,加强了我们思考和解决问题的能力,巩固数字逻辑电路的理论知识,进一步发现自身的优点与不足:当面对问题时我们能冷静的想出解决问题的思路,同时也会去付诸实施。然而,在处理事情的过程中,也遇到了一些困难,我们虚心的与同学讨论,向老师请教。 总的来说,我认为这次的数电设计课程对我们来说都受益匪浅。课程设计反映的就是一个理论到实际应用的过程,更远一点可以联系到毕业以后从学校转到踏入社会的一个过程,我们要培养和同学间的合作,自身的动脑与努力是必然的,合作可能是更为重要的,但都是以后上社会工作必不可少的。 5






