二、十进制旋转8421BCD码转换思路
另外一方面,BCD码概要BCD码(Binary-Coded Decimal )是将1位10进制数中0~9的10个数字用4位的2进制数表示的编码形式,经常用于计算机内部的10进制数和2进制数的转换
BCD码分为权利码和权利码两种。 其中,常见权利BCD码为8421码、2421码、5421码; 您没有BCD码剩下的三码、剩下的三回合码和格雷码的权限。 正如所指出的,8421码从高到低,每个位的权重分别为8、4、2、1,例如十进制9在8421BCD码中表示为1001; 2421和5421代码与8421代码相似,但每个位的权重不同。 例如,十进制9在2421BCD代码中表示为1111,十进制9在5421BCD代码中表示为1100。 剩余3码是8421码加上3,例如十进制9在剩余3码表示为1100; 剩下的3循环码在每个码元中固定为0、1的权重,相邻的码字之间只差1比特,避免了过度的码元噪声。
下图显示了典型的BCD代码
二、用十进制转换8421BCD码的思路以十进制234为例。
步骤2(20 )将b00_左移一位,然后将BCD码的最高位、最低位、最低位共计三组码字对应的十进制码是否大于4
第三步:向左换挡8次后,结束换挡。 此时,前12位是与该十进制数对应的8421BCD代码
三.程序编制下图展示了该模块的示意图。
输入信号:时钟信号sys_clk
输出信号:个位unit
因为输入信号是20位二进制数,并且对应于十进制数的六个位,所以当在20位二进制数之前添加6*4=24个0以构成44位二进制数并且向左移位20次时,获得对应的8421BCD码
下图是Modelsim中仿真的结果:
初次创作,难免文章中存在错误,希望读者能够及时纠正并给予私信,望大家共同进步!