32位二进制数转BCD码

该模块实现了一个32位二进制数到BCD码的转换过程,通过每次左移并检查是否超过4(十进制)来逐位进行转换。如果超过4,则相应位加3,确保最终BCD码的有效性。
摘要由CSDN通过智能技术生成

//32位二进制数转BCD码(基本思想是逢十进1)
module BIN_BCD_4 (CLK, A,BWW,BQW,BAW,BSW, BW, BQ, BB, BS, BG);
    input CLK;
    input  [31:0]A;           //二进制输入数据
    output [3:0]BWW,BQW,BAW,BSW,BW, BQ, BB, BS, BG;//BCD数据输出寄存器
    reg    [3:0]BWW,BQW,BAW,BSW,BW, BQ, BB, BS, BG;
    integer I;
    reg  [35:0]TEMP;
    reg  [31:0]C;
    always @ (posedge CLK)
     begin
       C=A;
       TEMP=0;
      for (I=1; I<32; I=I+1)
           begin
           {TEMP, C}={TEMP[34:0], C, 1'b0};//左移一位
           if (TEMP[3:0]>4'b0100)
              begin
                TEMP[3:0]=TEMP[3:0]+3; // >4则加3
              end
           if (TEMP[7:4]>4'b0100)
              begin
                TEMP[7:4]=TEMP[7:4]+3;
              en

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值