一位全减器
- 格式:doc
- 大小:383.00 KB
- 文档页数:9
学校代码:_________学号:__________Hefei University数电设计报告NUMBER OF ELECTRICAL DESIGNREPORT设计题目:全加器与全减器设计学位类别:工学学士年级专业(班级):电子信息工程1班作者姓名:汤家映(1405011019)、宋道远(1405011020)、朱亚东(1405011022)导师姓名:谭敏完成时间: 2015-5-17目录一、设计任务 (2)1.用组合逻辑电路设计1位二进制全加器与全减器 (2)2.用双8选1数据选择器74LS151设计1位二进制全加器与全减器 (2)3.用广义译码器VHDL语言设计1位二进制全加器与全减器 (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数据选择器74LS151设计1位二进制全加器与全减器;3、用广义译码器VHDL语言设计1位二进制全加器与全减器。
二、设计过程1、用组合逻辑电路设计1位二进制全加器与全减器(1)进行逻辑抽象,建立真值表全加器与全减器真值表输入输出A B C全加器(m=0)全减器(m=1)S D S D0 0 0 0 0 0 00 0 1 1 0 1 10 1 0 1 0 1 10 1 1 0 1 0 11 0 0 1 0 1 01 0 0 1 0 1 01 0 1 0 1 0 01 1 1 1 1 1 1(说明:当m=1时为全加器A.B分别表示被减数和减数C表示低位向高位的借位数,S表示本位和值,D表示向高位的借位;当m=0时为全加器A.B分别表示两个加数C表示低位向高位的进位数,S表示本位和值,D表示向高位的进位)(2)画出卡诺图S 的卡诺图 D 的卡诺图 BC\mA 00 01 11 10 00 0 1 1 0 01 1 0 0 1 11 0 1 1 0 10 10 0 1 全加器:m=0时,C B A S ⊕⊕=,BC AC AB BC AC ABD ∙∙=++=全减器:m=1时,C B A S ⊕⊕=,BC C A B A BC C A B A D ∙∙=++=(3)画出逻辑电路根据最简逻辑表达式画出逻辑电路图VCCAINPUT VCCBINPUT VCCCINPUT VCCmINPUT NAND2inst7NAND2inst8NAND2inst9XORinstXORinst11NAND3inst12SOUTPUT DOUTPUTXORinst132、用双8选1数据选择器74LS151设计1位二进制全加器与全减器; (1)逻辑问题进行抽象,列出真值表BC\mA 00 01 11 10 00 0 0 0 0 01 0 1 0 1 11 1 1 1 1 1011全加器与全减器真值表m A B C S D0 0 0 0 0 0000110001010001101010010010101011001011111100000100111101011101101110010110100111000111111 4(说明:当m=1时为全加器A.B分别表示被减数和减数C表示低位向高位的借位数,S表示本位和值,D表示向高位的借位当m=0时为全加器A.B分别表示两个加数C表示低位向高位的进位数,S表示本位和值,D表示向高位的进位)(2)列出函数表达关系根据上面真值表,列出逻辑函数表达式(标准与或式)S mAmBCmAm++=++++m+ACBCmABBABCBCBCACAmmABCD+++AmBCm+mAm=m+++mCBmAmABCBCBAABCCCABCBA(3)用数据选择器74LS151画出逻辑电路图根据逻辑函数的标准与或式画出逻辑电路图VCC C INPUT VCCBINPUT VCCAINPUT VCCmINPUT sOUTPUT DOUTPUT MULTIP LE XE RGNC B A D5D0D1D4D3D2D6D7Y WN74151instMULTIP LE XE RGNC B A D5D0D1D4D3D2D6D7Y WN74151inst1VCCNOTinst6GND3、用广义译码器VHDL 语言设计1位二进制全加器与全减器 根据全加器与全减器的真值表编写VHDL 程序,程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY JJ ISPORT(M,A,B,C:IN STD_LOGIC; S,D: OUT STD_LOGIC); END ENTITY JJ;ARCHITECTURE one OF JJ ISSIGNAL MABC:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINMABC<=M&A&B&C; PROCESS(MABC) BEGINCASE MABC ISWHEN"0000"=>S<='0';D<='0'; WHEN"0001"=>S<='1';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';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;三、总结本次关于全加器与全减器的设计是由本组三人共同合作配合完成,知道了合作完成任务的重要性。
将8421BCD转换为余3码源代码:Library ieee;Use ieee.std_logic_1164.all;Entity bcd isPort(a:in std_logic_vector(3 downto 0);y:out std_logic_vector(3 downto 0));End;Architecture rtl of bcd isBeginProcess(a)BeginCase a isWhen"0000"=>y<="0011";When"0001"=>y<="0100";When"0010"=>y<="0101";When"0011"=>y<="0110";When"0100"=>y<="0111";When"0101"=>y<="1000";When"0110"=>y<="1001";When"0111"=>y<="1010";When"1000"=>y<="1011";When"1001"=>y<="1100";When others=>y<="ZZZZ";End case;End process;End;仿真图形:(仿真结果均有延时,大约20ns)四输入表决器源代码:Library ieee;Use ieee.std_logic_1164.all;Entity bjq isPort(i:in std_logic_vector(3 downto 0);f:out std_logic);End;Architecture nm2 of bjq isBeginProcess(i)Begincase i isWhen"0000"=>f<='0';When"0001"=>f<='0';When"0010"=>f<='0';When"0011"=>f<='0';When"0100"=>f<='0';When"0101"=>f<='0';When"0110"=>f<='0';When"0111"=>f<='1';When"1000"=>f<='0';When"1001"=>f<='0';When"1010"=>f<='0';When"1011"=>f<='1';When"1100"=>f<='0';When"1101"=>f<='1';When"1110"=>f<='1';When"1111"=>f<='1';When others=>f<='Z';End case;End process;End;仿真图形:2位二进制相乘电路源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity multi isport(A,B:in std_logic_vector(1 downto 0);F:out std_logic_vector(3 downto 0));end;architecture bhv of multi isbeginprocess(A,B)beginif(A="01" and B="01" )thenF<="0001";elsif(A="01" and B="10")thenF<="0010";elsif(A="01" and B="11")thenF<="0011";elsif(A="10" and B="01")thenF<="0010";elsif(A="10" and B="10")thenF<="0100";elsif(A="10" and B="11")thenF<="0110";elsif(A="11" and B="01")thenF<="0011";elsif(A="11" and B="10")thenF<="0110";elsif(A="11" and B="11")thenF<="1001";elseF<="0000";end if;end process;end;仿真图形:一位二进制全减器源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity subtracter isport(A,B,Ci:in std_logic;F,Co:out std_logic);end;architecture bhv of subtracter isbeginprocess(A,B,Ci)beginif(A='0' and B='0' and Ci='0')thenF<='0';Co<='0';elsif(A='0' and B='0' and Ci='1')thenF<='1';Co<='1';elsif(A='0' and B='1' and Ci='0')thenF<='1';Co<='1';elsif(A='0' and B='1' and Ci='1')thenF<='0';Co<='1';elsif(A='1' and B='0' and Ci='0')thenF<='1';Co<='0';elsif(A='1' and B='0' and Ci='1')thenF<='0';Co<='0';elsif(A='1' and B='1' and Ci='0')thenF<='0';Co<='0';elseF<='1';Co<='1';end if;end process;end;仿真图形:开关控制电路源代码:Library ieee;Use ieee.std_logic_1164.all;Entity switch_control isPort(a,b,c:in std_logic;y:out std_logic);End;Architecture nm5 of switch_control isBeginProcess(a,b,c);V ariable comb:std_logic_vector(2 downto 0);BeginComb:=a&b&c;Case comb isWhen"000"=>y<='0';When"001"=>y<='1';When"011"=>y<='0';When"010"=>y<='1';When"110"=>y<='0';When"111"=>y<='1';When"101"=>y<='0';When"100"=>y<='1';When others=>y<='X';End case;End process;End;仿真图形:。
一位二进制全加减器的设计在咱们的生活中,数字无处不在,没错,不管是买东西还是算账,数字就是我们的好伙伴。
说到数字,大家一定听说过二进制。
二进制就像是数字的二重奏,只有0和1这两个小家伙,真是简单又有趣。
不过,今天我们不聊二进制的故事,而是聊聊它的一个超级英雄,二进制全加减器。
这家伙可是个了不起的角色,能够让我们轻松进行加法和减法,简直就像是厨房里的万能调料,随时随地为你解闷。
想象一下,你正在和朋友玩游戏,突然间需要计算得分,这时候二进制全加减器就像那救星般闪亮登场。
咱们先来说说加法吧。
二进制的加法其实跟咱们平常的加法差不多,不过就是多了点小规则。
比如说,0加0当然是0,0加1或者1加0就是1,1加1则会产生进位,变成0再加1,这个时候就像是变魔术一样,瞬间升华了。
把这简单的加法放在一起,嘿,整个过程简直就像是舞蹈,轻松而优雅。
再来看看减法。
哦,减法在二进制里也是大有可为。
想象一下,你手里有一块大蛋糕,想给朋友分,但是蛋糕不够,怎么办?这时候就需要用到借位的技巧。
二进制减法就像是抢夺蛋糕的小朋友,借位就是从旁边的小朋友那里借来一口,然后再继续分蛋糕。
这样看似复杂,但实际上只要理解规则,嘿,就能轻松搞定。
那好,咱们再深入一点,聊聊这个全加减器是怎么工作的。
它就像一个聪明的管家,负责所有的数字进出。
内部的结构就像一座精密的机器,采用逻辑门电路,真是科技的结晶。
这个小家伙有两部分,一部分是加法器,另一部分是减法器,它们就像两位默契的舞者,在舞台上完美配合。
每当有输入数字的时候,它们立刻就开始工作,快速而高效,仿佛时间都为它们停驻。
听到这里,大家可能会想,二进制全加减器有什么用呢?别急,咱们就来聊聊它的应用。
无论是计算机还是电子设备,都离不开这位全加减器。
想想看,咱们每天都在用手机,玩游戏,浏览网页,这些背后可都是二进制全加减器在默默奉献。
它就像一位无名英雄,虽然不显山露水,却是整个系统运作的基石。
说到这里,可能有人会觉得,哎呀,二进制这玩意儿真复杂。
全减器原理全减器是数字电路中常见的逻辑门电路,它用于实现两个二进制数的减法运算。
在数字电路中,全减器通常由几个半加器和一个附加的输入引脚组成,用来处理借位。
在本文中,我们将详细介绍全减器的原理和工作方式。
首先,我们来看一下全减器的基本结构。
全减器通常由三个输入引脚和两个输出引脚组成,分别是被减数A、减数B、借位输入Borrow In、差值输出Difference和借位输出Borrow Out。
全减器的原理是通过对被减数和减数进行异或运算来得到差值,同时通过对被减数、减数和借位输入进行与非运算来得到借位输出。
这样,我们就可以实现两个二进制数的减法运算。
接下来,我们来详细介绍全减器的工作原理。
首先,被减数A和减数B的每一位都分别与对应的减数B和借位输入进行异或运算,得到差值和借位输出。
然后,将这些差值和借位输出通过半加器进行处理,得到最终的差值和借位输出。
通过这样的过程,我们就可以实现两个二进制数的减法运算。
在实际应用中,全减器常常被用于数字电路中,例如在计算机的算术逻辑单元(ALU)中。
在ALU中,全减器用来处理减法运算,从而实现计算机的加减法功能。
此外,全减器还可以被用于其他数字系统中,例如在数字信号处理器(DSP)和通信系统中。
总的来说,全减器是数字电路中非常重要的逻辑门电路,它可以实现两个二进制数的减法运算。
通过对被减数和减数进行异或和与非运算,全减器可以得到差值和借位输出,从而实现减法运算。
在实际应用中,全减器被广泛应用于数字电路和计算机系统中,发挥着重要的作用。
以上就是关于全减器原理的详细介绍,希望能够对大家有所帮助。
如果对全减器原理还有疑问或者需要进一步了解,欢迎继续阅读相关资料或者咨询专业人士。
全减器用法全减器啊,这可是个挺有趣的小玩意儿。
你要是没接触过,就听我好好唠唠。
全减器呢,就像一个小小的数字魔法师。
它主要处理三个输入,被减数、减数还有低位来的借位信号。
这就好比三个人在进行一场特殊的拔河比赛,被减数是一边的大力士,减数是对面来挑战的,而低位来的借位信号呢,就像是旁边一个有点小捣乱但又很关键的小精灵。
咱先说这个被减数。
它就像一个拥有宝藏的主人,宝藏的数量就是它代表的数字。
减数呢,就是那个想要从被减数这里拿走宝藏的小贼。
如果没有那个低位的借位小精灵,那这个减法就像是一场普通的抢夺战,直接看被减数的宝藏够不够减数拿的就行。
比如说被减数是5,减数是3,那很简单,被减数能轻松应对,差就是2,也没有借位的情况。
可一旦那个借位小精灵出现,就像比赛突然加了个特殊规则。
比如说被减数还是5,减数是3,但是有低位来的借位信号。
这时候就相当于被减数要先拿出一份宝藏给这个小精灵,那被减数就只剩下4了,再和减数3比,差就变成1了。
这就是全减器中被减数在不同情况下的作用。
再说说减数。
减数可有点像个贪心的家伙。
它总是想着从被减数那里得到尽可能多的东西。
它的大小直接决定了和被减数之间的差距。
要是减数特别大,大到比被减数加上借位情况调整后的数还大,那就会产生借位,这个借位就像一个连锁反应,会传递到更高位去。
就像一个多米诺骨牌,一块倒了,可能会影响到后面一连串的情况。
还有那个低位来的借位信号。
这个小精灵虽然小,但是作用可大着呢。
它能改变整个减法的局面。
有时候它一出现,本来能轻松获胜的被减数就变得有点吃力了。
它就像一阵突然刮起的逆风,让原本顺利的事情变得有点波折。
全减器的输出呢,有两个,一个是差,一个是向高位的借位。
这个差就像是这场拔河比赛或者宝藏抢夺战后的结果。
而向高位的借位就像是一个信号旗,如果这个比赛或者抢夺很激烈,被减数应付不过来,这个信号旗就升起来,告诉高位的计算,这里有点情况,你们要注意啦。
我曾经自己摆弄过全减器的电路模型。
实验三 4位减法器的设计
一、实验目的
1.利用实验二的1位全减器sub1设计一个4位全减器,掌握原理图输入法的层次化设计。
2.对设计电路仿真和硬件验证,进一步了解减法器的功能
二、实验步骤
首先,在quartu sⅡ集成环境下执行“File>Create / Update>Creat Symbol Files for Current File”命令,创建1位全减器sub1的元件符号,然后新建一个工程项目,在新的原理图文件中,调入4个sub1元件,仿照4位加法器的原理将4个元件相应端口连接起来,构成4位减法器的电路。
三、实验连线(略)
四、实验结果(自制表格,在表格中填写实验结果)
五、实验原理图及仿真图
(给出截图,包含原理图和仿真波形图记录,并描述硬件仿真的实验现象。
)。
实验六 数据选择器及应用一、实验目的1、掌握数据选择器的工作原理及逻辑功能。
2、熟悉74LS153和74LS151的管脚排列和测试方法。
3、学习用数据选择器构成组合逻辑电路的方法。
二、实验任务1、用双四选一数据选择器74LS153实现一位全减器。
2、用双四选一数据选择器74LS153设计一个四位奇偶校验器。
3、用八选一数据选择器74LS151设计一个多数表决电路。
4、用Multisim8进行仿真,并在实验仪器上实现。
三、实验原理数据选择器又称多路转换器或多路开关,其功能是在地址码(或叫选择控制)电位的控制下,从几个数据输入中选择一个并将其送到一个公共输出端。
数据选择器的功能类似一个多掷开关,如图3.6.1所示,图中有四路数据D 0 ~ D 3通过选择控制信号A 1、A 0(地址码)从四路数据中选中某一路数据送至输出端Y 。
一个n 个地址端的数据选择器,具有2n 个数据选择功能。
例如:数据选择器(74LS153),n = 2,可完成四选一的功能;数据选择器(74LS151),n = 3,可完成八选一的功能。
1、双四选一数据选择器74LS153所谓双4选1数据选择器就是在一块集成芯片上有两个4选1数据选择器。
集成芯片引脚排列如图3.6.2,功能如表3.6.1所示。
表3.6.1 74LS153功能表图3.6.2 74LS153引脚排列1 0地址码 D D D D数据输入 Y输出 图3.6.1 四选一数据选择器示意图S1、S2为两个独立的使能端;A1、A0为公用的地址输入端;1D0~1D3和2D0~2D3分别为两个4选1数据选择器的数据输入端;Q1、Q2为两个输出端。
(1)当使能端S1(S2)=1时,多路开关被禁止,无输出,Q=0。
(2)当使能端S1(S2)=0时,多路开关正常工作,根据地址码A1、A0的状态,将相应的数据D0~D3送到输出端Q。
如:A1A0=00 则选择D O数据到输出端,即Q =D0。
实验三译码器和数据选择器一、实验目的1.熟悉中规模集成译码器电路的原理及功能;2.掌握中规模集成译码器的使用方法及功能测试方法;3.了解集成译码器的应用。
二、实验预习要求1.复习译码器电路工作原理;2.预习中规模集成电路译码器74LS138的逻辑功能及使用方法;3.仔细阅读实验原理与实验内容,设计相应的电路和数据表格。
三、实验原理译码器是一个多输入、多输出的组合逻辑电路,其功能是将每个输入的二进制代码译成对应的输出高、低电平的信号,它是编码的反操作。
译码器在数字系统中的用途比较广泛,它不仅常用于代码的转换,终端的数字显示,还用于数据分配、脉冲分配、存储器寻址和组合逻辑信号的产生等场合。
常用的译码器电路有二进制译码器、二-十进制译码器、显示译码器等种类,不同的功能需求可选用不同种类的译码器来实现。
本实验采用TTL中规模集成译码电路74LS138译码器,它是一个3线-8线的二进制译码器。
74L138管脚分布图见附录,表实验3.1为其功能表。
因为74L138有有三个附加的控制端G1、G2A、G2B,利用其片选的作用可以级联扩展译码器的功能,也可以利用其控制功能构成一个完整的数据分配器。
1. 用74LS138实现组合逻辑功能由于二进制译码器的每一个输出均是输入代码的最小项函数,因此,配以适当的门电路,利用74LS138可以实现任意自变量数不超过三个的组合逻辑函数。
如图实验3.1逻辑图所示,用一个74LS138和一个四输入与非门可以实现逻辑函数。
∑=)7,4,2,1(m F 。
2. 用74LS138实现一个数据分配器数据分配器也称多路分配器,其功能是,在数据传输过程中,将某一路数据分配到不同的数据通道上。
数据分配器是单输入、多输出组合逻辑电路。
带控制输入端的译码器也是一个完整的数据分配器。
如附录所示,如果把G1作为数据输入端(同时令G2A =G2B =0),将C 、B 、A 作为地址输入端,那么从G1送来的数据只能通过由 CBA 所指定的一根数据线上送出去,实现数据的反码分配输出。
实验四 全减器一、实验目的设计并实现一个一位减法器 二、实验原理半减器不考虑低位向本位的借位。
一位半减器由两个输入、两个输出。
表1 半减器真值表输入 输出 Bi Ai Di Ci 0 0 0 0 0 1 1 1 1 0 1 0 11由真值表可得到函数表达式:Bi Ai Bi Ai Di += Bi Ai Ci =在下图中,“进位入”Ci -1是指低位的进位输出,“进位出”Ci 即是本位的进位输出。
Ai Bi A BCDDi CiC D 半减器半减器≥Ci-1原理图如下:全减器(被减数)Ai(减数)Bi(差)Di (借位出)Ci真值表:输入输出Ci-1Bi Ai Si Ci 0000000000000000000011111111111111111111根据真值表写出逻辑表达式:111i i i i i i i i i i D A B C A B C A B C ---=++三、实验步骤1、建立工程fullsub,新建VHDL 文件输入以下代码保存为fullsub1.vhdl 。
打开addern.vhdl 文件,选择File → Creat/Update → Creat Symbol Files for Current Files 生成顶层符号文件。
(参考实验一、二)----------------------半减器程序 library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity halfsub is port(a,b:in std_logic; d,c:out std_logic); end halfsub;architecture half1 of halfsub is begind<=((a and (not b))or ((not a)and b)); c<=(not a)and b; end half1;-----------------------------------全减器程序 library ieee;use ieee.std_logic_1164.all; entity fullsub1 isport(ai,bi,ci:in std_logic; di,co:out std_logic); end fullsub1;architecture full1 of fullsub1 iscomponent halfsub-----------声明半减器调用 port(a,b:in std_logic;d,c:out std_logic); end component;signal halfsub1_d,halfsub1_c,halfsub2_c:std_logic;begin----------------------------------------------------------调用半减器 halfsub1:halfsub port map (ai,bi,halfsub1_d,halfsub1_c); halfsub2:halfsub port map (halfsub1_d,ci,di,halfsub2_c); co<=(halfsub1_c or ci); end full1;2、新建一个Block Diagramm/Schematic File 原理图文件,,在空白处双击添加生成的顶层原理图,并连接input 、output (输入输出管脚)重命名后如图所示,保存文件fullsub.bdf 。
[数字电子技术及应用(第2版)习题答案第2单元习题答案自我检测题一、填空题2-1如果对键盘上108个符号进行二进制编码,则至少要 7 位二进制数码。
2-2共阳LED 数码管应由输出 低 电平的七段显示译码器来驱动点亮,而共阴LED 数码管应采用输出为 高 电平的七段显示译码器来驱动点亮。
2-3采用54LS138完成数据分配器的功能时,若把S 1作为数据输入端接D ,则应将使能端2S 接 低 电平,3S 接 低 电平。
2-4对N 个信号进行编码时,需要使用的二进制代码位数n 要满足条件 N ≤2n 。
二、选择题2-5一个8选1的数据选择器,其地址输入端有几个 B 。
A 、1B 、3C 、2D 、42-6可以用 B 、C 电路的芯片来实现一个三变量组合逻辑函数。
A 、编码器B 、译码器C 、数据选择器2-7要实现一个三变量组合逻辑函数,可选用 A 芯片。
A 、74LS138B 、54LS148C 、74LS147 三、判断题2-8 54/74LS138是输出低电平有效的3线-8线译码器。
( ✓ )2-9当共阳极LED 数码管的七段(a ~g )阴极电平依次为1001111时,数码管将显示数字1。
(✓ ) 练习题2-1试分析图题2-10所示各组合逻辑电路的逻辑功能。
A B C DYABY图题2-1解:(a)图,)⊕=,真值表如表题2-1(a)A⊕Y⊕B)((DC所示:表题2-1(a)(a)图为四变量奇校验器,当输入变量中有奇数个为1,输出为1。
(b )图,AB B A B A B A Y +=+++=,真值表如表题2-1(b)所示:(b )图为同或门电路,当输入变量状态相同时出1,相反时出0。
2-2试分析图题2-2所示各组合逻辑电路的逻辑功能,写出函数表达式。
图题2-2解:(a)图0=+++=CD C B AB YA BCYD 12A B C(a )(b )(b)图CB A YC B A AB C B A AB Y ⊕⊕=⊕+=⊕•=21,)()(2-3试采用与非门设计下列逻辑电路: (1)三变量非一致电路;(2)三变量判奇电路(含1的个数); (3)三变量多数表决电路。
第三章3-5设计一个4选1多路选择器,当选择输入信号分别取“00”、“01”、“10”和“11”时,输出信号分别与一路输入信号相连。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MAX4_1 ISPORT(A,B,C,D,S1,S2 : IN STD_LOGIC;Y : OUT STD_LOGIC);END ENTITY MAX4_1;ARCHITECTURE HF1 OF MAX4_1 ISSIGNAL SS : STD_LOGIC_VECTOR (0 TO 1);BEGINSS<=S2&S1;PROCESS(SS)BEGINCASE SS ISWHEN "00" => Y<=A;WHEN "01" => Y<=B;WHEN "10" => Y<=C;WHEN "11" => Y<=D;WHEN OTHERS => NULL;END CASE;END PROCESS;END HF1;3-6设计一个7人表决电路,参加表决者7人,同意为1,不同意为0,同意者过半则表决通过,绿指示灯亮;表决不通过则红指示灯亮。
设计思路:根据7人表决电路设计要求,7人中至少有4个通过才可以表决通过,故可以在程序中设置一个变量TEMP,使其在表决电路中遇1则加1,遇0则加0(设计中1表示通过,0表示不通过)。
当TEMP>=4时,表示表决通过,当TEMP<4时表决不通过。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY VOTE7 ISPORT (MEN:IN STD_LOGIC_VECTOR(6 DOWNTO 0);OUTPUT: OUT BIT);END VOTE7;ARCHITECTURE BEHA VE OF VOTE7 ISBEGINPROCESS(MEN)V ARIABLE TEMP: INTEGER RANGE 0 TO 7;BEGINTEMP:=0;FOR I IN 0 TO 6 LOOPIF(MEN(I)='1')THENTEMP:=TEMP+1;ELSETEMP:=TEMP;END IF;END LOOP;CASE TEMP ISWHEN 0 TO 3 =>OUTPUT<='0';WHEN 4 TO 7 =>OUTPUT<='1';END CASE ;END PROCESS;END BEHA VE;第四章4-6试写出4选1多路选择器VHDL描述。
数字逻辑全减器原理
数字逻辑全减器是一种电路,它能够对两个二进制数字进行减法运算。
全减器可以通过加上补数来实现减法运算,因此它也被称为“补数加法器”。
补数是一种特殊的二进制数字,它在原数字的每一位上取相反数(即 0 变成 1,1 变成 0),并在最高位加 1。
例如,原数字 0101 的补数为 1010,原数字 1100 的补数为 0011。
全减器的基本原理是,将被减数的补数加到减数上,然后使用位运算器对两个数字进行加法运算。
如果最高位的结果为 1,则需要将结果减去 1,得到最终的结果。
例如,假设我们要计算 0101 减去 1100。
首先,我们将 1100 的补数(0011)加到 0101 上,得到 0110。
然后,我们使用位运算器对这两个数字进行加法运算,得到 1000。
因为最高位的结果为 1,所以我们需要将结果减去 1,得到最终的结果:1111。
全减器的输入是两个二进制数字,输出是一个二进制数字,表示两个数字的差。
全减器可以通过组合逻辑电路来实现,也可以通过单独的全减器 IC(集成电路)来实现。
在数字逻辑中,全减器通常与其他电路一起使用,用于实现计算机的基本运算功能。
例如,可以使用全减器与位运算器一起实现加减乘除运算器,也可以使用全减器实现计数器和计时器。
此外,全减器还可以用于比较两个数字的大小。
通常,如果
被减数大于减数,则全减器的输出为 1;如果被减数小于减数,则全减器的输出为 0。
全减器实验报告实验目的,通过实验掌握全减器的工作原理,了解其在数字电路中的应用以及实际电路中的连接方法。
实验器材,全减器芯片、示波器、数字电压表、示教板、导线等。
实验原理,全减器是数字电路中的一种重要逻辑门电路,它的作用是实现减法运算。
全减器有两个输入端A、B和两个输出端差(D)、借位(Br)。
当A、B和借位输入为1时,差输出为1,借位输出为1;当A、B和借位输入为1、1、0时,差输出为0,借位输出为0;当A、B和借位输入为1、1、1时,差输出为1,借位输出为1;当A、B和借位输入为0时,差输出为0,借位输出为0。
实验步骤:1. 将全减器芯片插入示教板中,并连接示波器和数字电压表。
2. 设置A、B和借位输入端的电平,观察差输出和借位输出的变化。
3. 调节输入端的电平,记录不同输入组合下的输出情况。
4. 分析实验数据,验证全减器的工作原理。
实验结果,经过实验,我们得到了不同输入组合下的输出数据,验证了全减器的工作原理。
在实际电路中,我们可以根据实验结果进行相应的连接,实现减法运算的功能。
实验总结,通过本次实验,我们深入了解了全减器的工作原理,掌握了其在数字电路中的应用以及实际电路中的连接方法。
同时,实验过程中我们也学会了使用示波器和数字电压表进行实验数据的采集和分析,提高了实验操作和数据处理能力。
通过这次实验,我们不仅加深了对数字电路中全减器的理解,也提高了实验操作的技能,为今后的学习和研究打下了坚实的基础。
希望通过不断的实验和学习,能够更深入地理解数字电路中各种逻辑门电路的原理和应用,为将来的工程实践打下坚实的基础。
计算机科学与技术学院实验报告(学年度第学期)课程名称EDA技术实验姓名学号专业计算机班级地点教师实验一:八位二进制补码一.实验目的1.熟悉Max+PlusII和GW48EDA开发系统的使用;2.掌握八位二进制补码的VHDL设计;3.元件例化语句的使用。
二.实验原理若原码为正,则补码等于原码;若原码为负,则补码为(2+原码)mod2。
三.八位二进制补码程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JACKAN ISPORT(rst:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(7 DOWNTO 0);dout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY JACKAN;ARCHITECTURE HAIXIA OF JACKAN ISSIGNAL tmp:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINPROCESS(din,rst)BEGINIF rst='0' THENdout<=(OTHERS=>'0');ELSIF din(7) ='1' THENFOR i IN 0 TO 6 LOOPtmp(i)<=NOT din(i);END LOOP;dout(6 DOWNTO 0) <= tmp+1;dout(7) <= din(7);ELSEdout<= din;END IF;END PROCESS;END ARCHITECTURE HAIXIA;四.实验结果五.总结8位二进制补码:寄存器主要用来存储8位二进制数据。
高8位为符号位,不进行求反运算。
余下7位根据高8位的数据状态进行相应操作。
实验二.一位全减器的VHDL设计一. 实验目的1.熟悉Max+PlusII和GW48EDA开发系统的使用;2.掌握一位半减器的VHDL设计;3.掌握一位半减器构建一位全减器的方法;二.实验原理由两个半减器和一个或门构成一个全减器。
一位二进制减法器在计算机科学中,二进制减法器是一种重要的计算机器件,能够完成二进制数的减法运算。
在现今的计算机领域,减法器的应用范围极为广泛,在数字电路设计、算法设计等方面都有着重要的作用。
本文将介绍一位二进制减法器的结构、工作原理、功能和应用范围。
一、结构一位二进制减法器通常由两个二进制四选一选择器、一个异或门和一个与非门等逻辑器件组成。
其中,二进制四选一选择器(MUX)用于选择输入的两个数中的一个数,异或门(XOR)用于计算相减的结果,而与非门(NAND)则用于得到借位。
二、工作原理在进行二进制数的减法运算时,可以将减数和被减数都用二进制表示。
对于每一位而言,如果减数的当前位值小于被减数的当前位值,那么就需要借位。
借位后,减数减去被减数和借位三个数字也要相应进行处理。
最终得到的结果是减数减去被减数的值。
三、功能二进制减法器的主要功能是完成二进制数的减法运算。
它可以计算多位二进制数的减法,相比手工计算速度更快,误差更少,精确度更高。
四、应用范围在计算机中的应用,减法器一般用于实现一些重要的算法,如加减法、逻辑运算、浮点运算等。
减法器经常被应用在诸如微处理器和硬件逻辑运算单元等电路中,以提高计算速度和精确度。
总之,一位二进制减法器虽然只是一个很小的电路,但它在计算机科学和数字电路设计中拥有重要的作用。
减法器能够有效地完成计算机的减法运算,具有较高的精度和速度。
未来,随着计算机技术的不断发展和进步,二进制减法器的应用将更加广泛化和多样化。
实验一 1位二进制全减器设计
一、实验目的
1.熟悉Quartes II集成开发软件的使用;
2.初步熟悉PH-1V型实验装置的使用;
3 . 学习用原理图输入法和文本输入法进行简单的数字电路设计,掌握系统仿真,学会分析硬件测试结果。
二、实验内容与要求
1.采用原理图输入法和文本输入法分别实现,分层设计,底层由半减器(也用原理图输入法)和逻辑门组成;
2.建立波形文件,并进行系统仿真,用软件验证设计结果;
3. 在仿真正确的情况下,对1位二进制半加/减器分别下载到实验箱中做硬件测试
三、实验原理及设计思路
根据一位二进制全减器的工作原理,可得其真值表为(如下:cin表示低位向本位借位。
cout 表示本位向高位借位)
由EDA教程中全加器的顶层设计描述及半加器调用可类比到全减器的设计,可由先对半减器进行描述,然后进行两次调用。
半减器的工作时的逻辑表达式为:so=a XOR b ;co=(NOT a)AND b 四、实验程序(程序来源:EDA技术实验教程)
LIBRARY IEEE ; ——或门逻辑描述
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY or2a IS
PORT (a, b :IN STD_LOGIC;
c : OUT STD_LOGIC );
END ENTITY or2a;
ARCHITECTURE one OF or2a IS
BEGIN
c <= a OR b ;
END ARCHITECTURE one;
LIBRARY IEEE; ——半减器描述
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY h_suber IS
PORT (a, b : IN STD_LOGIC;
co, so : OUT STD_LOGIC);
END ENTITY h_suber;
ARCHITECTURE fh1 OF h_suber is
BEGIN
so <= a xor b ;
co <= (not a )AND b ;
END ARCHITECTURE fh1;
LIBRARY IEEE; ——1位二进制全减器顶层设计描述
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY f_suber IS
PORT (ain,bin,cin : IN STD_LOGIC;
cout,sum : OUT STD_LOGIC );
END ENTITY f_suber;
ARCHITECTURE fd1 OF f_suber IS
COMPONENT h_suber ——调用半减器声明语句
PORT ( a,b : IN STD_LOGIC;
co,so : OUT STD_LOGIC);
END COMPONENT ;
COMPONENT or2a ——调用或门声明语句
PORT (a,b : IN STD_LOGIC;
c : OUT STD_LOGIC);
END COMPONENT;
SIGNAL d,e,f : STD_LOGIC; ——定义3个信号作为内部的连接线
BEGIN
u1 : h_suber PORT MAP(a=>ain,b=>bin,
co=>d,so=>e); ——例化语句
u2 : h_suber PORT MAP(a=>e, b=>cin,
co=>f,so=>sum);
u3 : or2a PORT MAP(a=>d, b=>f,c=>cout);
END ARCHITECTURE fd1 ;
五、实验步骤:
1.打开Quartes II软件,建立工程文件,注意工程名要与实体名一致:
2、打开QuartusII,选择菜单File->New->VHDL.File,建立vhdl文件,将以上程序输入并进行编译;
3、建立波形文件,并进行系统仿真,注意设置仿真结束时间以及添加结点;
4、输入信号波形Tools->Options->Waveform Editor,进行功能仿真Tools->Simulator Tools,在Simulator Mode选择Functional,仿真表生成后点击Start开始仿真,完成后点击Report结果如下图所示;
5、引脚锁定,及设置流程
对各管脚进行分配,将ain分配给53,bin分配给54,cin分配给55。
sum分配给208,Cout分配给206。
选择菜单Assignment->Assignment Editor->Pin 窗口,选择菜单View->Show All Knowm Pin Names 进行引脚设置:
7、用下载线将计算机并口和实验箱上的JTAG口连接起来,接通电源;选择tool->programmer 菜单,打开programmer窗口,在Mode中选择JTAG,选择好硬件设置,然后进行下载:
8、原理图输入法只需在第2步中建立Block Diagrame/Schematic File,然后输入上述原理图,选择菜单File->create symbol file for current file项,将其变成元件符号存盘,在做全减器原理图时进行调用:
半减器原理图:
全减器原理图:
六、硬件测试结果
在硬件试验箱上,按照真值表的值给出高、低电平,最后在LED8、LED7观察其亮灭情况,符合高电平亮,低电平灭的规律,表明实验成功。
通过实验结果与真值表相符,实验成功。
七、实验心得
实验前,一定要做好实验预习,写好实验报告,事前写好设计项目的VHDL设计文件.
熟悉实验箱的用法,对实验设计过程的各个步骤要做到心中有数,遇到不理解的地方,一定要向同学或老师问清楚,明确各个具体的操作步骤和详细的过程.熟悉EDA设计的完整流程.仔细思考
可能出现和已经出现的问题,独立解决.比如下载出现异常,如何处理.实验的时候出现这种情况,经过检查发现是接口有问题,更换后,能成功的下载和进行硬件测试,得到正确的结果.在此过程,做好引脚设置也是关键.。