新闻中心

EEPW首页>EDA/PCB>设计应用> 数值计算中Bcd码校验电路的分析与设计

数值计算中Bcd码校验电路的分析与设计

作者: 时间:2008-06-16 来源:中国电子网 收藏

  reg [4:0] TEM P_RESULT;

本文引用地址://m.amcfsurvey.com/article/84260.htm

  always @(data_i or cy_i or en )

  if(en == 0)

  begin

  cy_o=cy_i;

  data_o=data_i;

  z_o=z_i;

  end

  else

  begin

  if(data_i[3]&&data_i[1] ||(data_i[3]&&data_i[2]) || cy_i==1)

  TEMP_RESULT = {1'b0,data_i } + {1'b0,4'b0110 } + cy_i;

  else

  begin

  TEMP_RESULT[3:0]=data_i;

  TEMP_RESULT[4]=cy_i;

  end

  data_o = TEMP_RESULT[3:0];

  z_o = | TEMP_RESULT[3:0];

  cy_o = TEMP_RESULT[4];

  end

  例如:两个十进制数2189+8075的正确结果应为11064,可是,相加运算后的结果为FEH,为此应进行BCD调整。将为经校验的相加结果 0010,1001,1000,1001(十进制2989)+1000,0000,0111, 0101(十进制8075)=1010,1001,1111,1110代人上述BCD校验模块,可得仿真结果如图四。

   有图可知data_o为1064 且进位输出为1,即总的结果为11064,这与2989+8075=11064的结果是一致的。

  结束语

  本文通过对算法和并/串行BCD校验的分析,提出了一种高效,快速的BCD校验模块。由上面仿真结果可知,此种速度较快,硬件简单。适合实时处理系统。

DIY机械键盘相关社区:机械键盘DIY



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭