用VHDL设计快速BCD码加法器.pdf

用VHDL设计快速BCD码加法器.pdf

ID:56755652

大小:133.18 KB

页数:2页

时间:2020-07-07

用VHDL设计快速BCD码加法器.pdf_第1页
用VHDL设计快速BCD码加法器.pdf_第2页
资源描述:

《用VHDL设计快速BCD码加法器.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、电子工程师计算机应用Vol.27No.62001X用VHDL设计快速BCD码加法器TheDesignofRapidAdderUsingVHDL南京邮电学院 (南京210003)张生平 薛 梅【摘 要】 介绍了一种多位BCD码快速加法器的设计方法,并给出了3位BCD码加法器的VHDL源程序和在FoundationSeries3.1i环境中的模拟结果。关键词:VHDL,BCD,程序【Abstract】 Thispaperintroducesawayfordesigningrapidadder,andanexampleof32bit2BCD2a

2、dderisprovidedinVHDL,andalsothesimulationresultinFoundationSeries3.1iisgiven.Keywords:VHSICHardwareDescriptionLanguage,BinaryCodedDecimal,program  通常对BCD操作数进行计算的方法是将BCD思想如下:两个BCD数A和B是12位(按二进制)输入变换成二进制数,按正数的二进制格式进行计的操作数,代表000-999之间的十进制数。首先将算,然后把二进制数计算结果变换回BCD符号。例A、B按二进制数相加

3、得和数E,并通过加法生成了如加法运算,首先按二进制格式进行运算,然后进行进位C4、C8、C12。然后,利用每个4位数组上加6修正。再用中规模集成电路设计多位BCD数加法(0110)来调整加法结果E,得到调整结果F,并生成器,采用二进制加法器(如74283)构成BCD加法器进位D4、D8、D12,结合以上两次运算结果和进位,然后进行级连,或直接用BCD加法器(如产生和数和进位位。和产生的基本思想为:两个MC14560)进行级连。这样构成的加法器,位数增BCD数相加,同时计算出直接按二进制相加和需进加,速度显著降低。随着可编程逻辑器件的出现,

4、可行十进制调整的两种结果,然后按位在两种结果中以将多位的BCD加法器做到可编程器件内部,图1选择其一作为和数。选择的依据为:在按二进制加和十进制调整时,只要其中之一出现进位或两者都出现进位,则和应取调整后的结果;若按二进制加和十进制调整均无进位,则和数应取按二进制加的结果。以下给出3位BCD码加法器的VHDL源程序以及在FoundationSeries3.1i环境中的仿真结果(见图2)。3位BCD码加法器的VHDL源程序如下:libraryIEEE;useIEEE.stdlogic1164.all;useIEEE.stdlogicunsi

5、gned.all;entitybcdadd3isport(a:inSTDLOGICVECTOR(11downto0);b:inSTDLOGICVECTOR(11图1BCD数直接相加示意图downto0);所示为3位BCD加法器的设计方法示意图。其设计X收稿日期:2001—03—27·22·©1995-2005TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.张生平,等:用VHDL设计快速BCD码加法器图23位BCD加法器仿真结果sum:outSTDLOGICVECTOR(11if(e

6、48(4)='1'orf48(4)='1')thendownto0);sum(7downto4)<=f48(3downtoc:outSTDLOGIC0););elseendbcdadd3;sum(7downto4)<=e48(3downto0)architecturebcdadd3archofbcdadd3is+f04(4);beginendif;process(a,b)if(e04(4)='1'orf04(4)='1')thenvariablee04:stdlogicvector(4down2sum(3downto0)<=f04(3do

7、wntoto0);0);variablee48:stdlogicvector(4down2elseto0);sum(3downto0)<=e04(3downtovariablee812:stdlogicvector(40);downto0);endif;variablef04:stdlogicvector(4down2c<=e812(4)orf812(4);to0);endprocess;variablef48:stdlogicvector(4down2endbcdadd3arch;to0);根据以上思路,很容易实现多位BCD数相加。va

8、riablef812:stdlogicvector(4且运用上述设计方法,BCD数位数增加更能体现出downto0);其优越性。将利用上述设计方法设计的BCD码加法begin器做到FPGA中,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。