8421BCD码加法器_第1页
8421BCD码加法器_第2页
8421BCD码加法器_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、卓越工程师班第一次大作业用四位全加器构成一位 BCD 码加法器班级 :001111 作者:00111116 江新远 实现方式一 :器件一、问题用四位二进制全加器74LS283构成一位8421BCD码加法电路二、74LS283 介绍74LS283就是TTL双极型并行4位全加器,特点就是先行禁卫,因此运算速度 很快,其外形为双列直插。它有两组4位二进制数输入 A1A2A3A4 B1B2B3B一 位低位向本位的进位输入 C1 ,有一组二进制输出S1S2S3S4,一个最高位的进位输出 ,改器件所完成的 4位二进制加法如下列图。Bb叵抡叵i. E&叵A4 Aj A込 A|Bq Bz Bi+CI:dlCO

2、 S4 & S1 S三、解决思路用四位全加器构成一位8421BCD码的加法电路。两位8421BCD码相加,其 与仍应为8421BCD码,如不就是8421BCD码那么结果错误。 假设与小于等于9结果正确,如40100+ 3 + 0011701110111就是8421BCD码的7,结果正确。 假设与大于9那么结果错误,假设要得到正确结果,那么需加6(011)修正。如6 0110+ 7 + 01111310111101在8421BCD码中就是非法码,结果错误,如果加6修正后,那么产生了进位 信号,且本位1101+ 01101,0011“ 0011也就是正确的。 假设与产生进位,那么结果错误,也需加6

3、修正。如8 1000+ 9 + 1001171,0001虽产生了进位,但本位与不正确,假设加6修正1,0001+ 0110 1,0111得到正确结果。产生错误的原因就是8421BCD码为十进制,逢十进一,而四位二进制数就是 逢十六进一,故二者进位关系不同。其中刚好相差 6,故需加6进行修正。这样,构成两个一位8421BCD相加时,必须由三局部组成:一局部进行加数与 被加数相加;第二局部就是修正判别,判别就是否要加以修正,即产生修正控制信 号;第三局部完成加6修正。第一局部与第三局部均由 4位全加器实现。第二部 分修正判别电路应在8421BCD码相加有进位信号CO产生时,或者与数在1015 的情

4、况下产生修正控制信号F,所以F应为F CO m 10,11,12,13,14,15利用图3、2、14所示的卡诺图将与大于9的局部化简得出F:1好划顫二制3421cDC1S3S2someBED40&打90j000ol1(00D1j00C1260DDII)L30aI1j00L14et4Q|01CE卩暂1打DII1r1妄e01L0001L0T01A101L8&eQ榭a011rDS:1g1010i:1io010LaI00c0四、quartus仿真方案E in* htx anF&i-l! TLkXTr! | REltr4.01 HEIria!騎-11 .Q?ErtlAr-u.U.D jxa&CLQ =j

5、.汕. g1X1.0 uD uLlO. t uJ5D.0: BQ. 3 rum mJ1111rll1l_1MtriHJi I-iir i|1iIk-V2f1韧11410d.5til_J1.1J1 i ilJ丹ioE|riiiii ii1厂l_lOIL辺_il_ri_niU LI1_12 If91rIFi-JLi_.n-LJ4五、拓展思考一一方案3用加法器实现两个四位二进制数相加并输出为8421BCD码。同样也可以实现两位8421BCD码相加并且输出为8421BCD码。两个四位二进制数相加,假设考虑到低位向高位的进位,那么其结果为0000 11110 ,显然从1010开始就不符合 8421BCD

6、码的要求,如需8421BCD码输出那么要进行修订。考虑到输出可能就是两位8421BCD码,那么输出为六位,除加法器的四位输出外,增加两位输出D11,D22假设与小于10那么结果正确,输出即为,假设与大于9而小于20那么结果错误,假设要得到正确结果,那么需加6(0110)修正假设与大于19而小于30那么结果错误,假设要得到正确结果,那么需加12(1100)修正假设与大于29那么结果错误,假设要得到正确结果,那么需加0010(0110+1100= 1 0010)修正。 利用真值表列式得:C4 (S3S2)C4S3S2C4 S3 S2*Mpgws2dtiiAllD10D11C4 S3S1S3S2SA

7、&CDTGHJKLflIS初21 &cJ吗IflClCT:251別DllDIODBH412Q0Q0Q00DQG001cs0d100000120QIU010010300031gJD0L1j00I0000&10G5001D10001a16 0011J(J1t)11Q70Q111QQ011.ta0I0D0aD10aQ9中10D1Ci0100L1001010010000n0L0I1p100aI12011000100L013011D1010011140111(J1t)10Q1501t11Q1010t1&100D0aID1I0171Q0Q101D1LL18001001i0001910011a1100t20

8、10Ia01000002J101Di-0n00t22101110I06Q102?1011,100012411D叮a10r1025110011001012S1101QI001102T1101100L11231110QI0L000291110 110100I; : J0L;:;; ai : tts t t1;E:;:l ; ;L:ifl;i订孑笛jj订J.1n a000001实现方式二 :VHDL 硬件描述设计思路 :A与B就是两个8421BCD码,它们相加后产生的进位为C,输出的8421BCD码为D。S1 与 S 分别为信号S=A+B,如果S10,那么产生进位,c=1;由于S就是二进制的,所以最

9、后取S的后四位加6就好。但就是为防止 S的后四位加6,仍然 大于10,故先用S1等于S的后四位加6,然后再取S1的后四位。附代码 :library ieee;use ieee、 std_logic_1164all;use ieee、 std_logic_unsigned 、all;entity fhomework1 isport(a,b:in std_logic_vector(3 downto 0); c:out bit;d:out std_logic_vector(3 downto 0);end fhomework1;architecture ars of fhomework1 is signal s,s1:std_logic_vector(4 downto 0);begin process(a,b)begins=(0&a)+(0&b); / 两个相加 ,保证位数相同if(s(4)=1or(s(3)=1and(s(2)=1or s(1)=1)thens4 大于等于 10c=1;/c=1;s1=(0&s(3 downto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论