1、1. 用原理图输入法实现2个8421BCD的和,用数码管显示被加数、加数和加的结果。每个8421BCD码由4个拨码开关作为输入,总共需要8个拨码开关。输出要求在开发板数码管上显示输入的2个8421BCD码和加的结果。2. 用VHDL或Verilog HDL实现2个8421BCD的乘积,用数码管显示被乘数、乘数和乘的结果。输出要求在开发板数码管上显示输入的2个8421BCD码和乘的结果。二、实验设备1、计算机(Quartus )2、DE0开发板三、实验原理BCD代码。Binary-Coded Decimal,简称BCD,称BCD码或二转十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用
2、二进制编码的十进制代码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。8421码是BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。由于代码中从左到右每一位的1分别表示8,4,2,1,所以把这种代码叫做842
3、1代码。每一位的1代表的十进制数称为这一位的权。8421码中的每一位的权是固定不变的,它属于恒权代码。8421BCD码乘法运算把二进制数中的“0”和“1”全部当成是十进制数中的“0”和“1”即可。根据十进制数中的乘法运算知道,任何数与“0”相乘所得的积均为“0”,这一点同样适用于二进制数的乘法运算。只有“1”与“1”相乘才等于“1”。乘法运算步骤:(1)首先是乘数的最低位与被乘数的所有位相乘,因为乘数的最低位为“0”,根据以上原则可以得出,它与被乘数(1110)的所有位相乘后的结果都为“0”。(2)再是乘数的倒数第二位与被乘数的所有位相乘,因为乘数的这一位为“1”,根据以上原则可以得出,它与被
4、乘数(1110)的高三位相乘后的结果都为“1”,而于最低位相乘后的结果为“0”。(3)再是乘数的倒数第三位与被乘数的所有位相乘,同样因为乘数的这一位为“1”,处理方法与结果都与上一步的倒数第二位一样,不再赘述。(4)最后是乘数的最高位与被乘数的所有位相乘,因为乘数的这一位为“0”,所以与被乘数(1110)的所有位相乘后的结果都为“0”。(5)然后再按照前面介绍的二进制数加法原则对以上四步所得的结果按位相加,结果得到(1110)(0110)=(1010100)四、实验结果仿真展示BCD8421加法仿真仿真原理图仿真波形(二进制)结果显示BCD8421 乘法仿真两个实验经硬件测试均与仿真相符合,达到实验要求。五、实验心得体会本次实验中,我们队两个8421BCD数的和的逻辑电路以及工作原理有了更深的理解与掌握,但是对于VHDL语言的具体编程方法还没有深刻理解,对两个数的乘积的编程用了枚举法,下次实验中要对该方法进行更深刻的研究。附:两个8421BCD数的乘积VHDL代码