**这是本文档旧的修订版!**

二进制到BCD码转换

module binary2bcd(binary_data,tens,ones);
input [4:0] binary_data;
output reg [3:0] tens;
output reg [3:0] ones;
 
always @*
case(binary_data)
    5'd0: 
        begin
            tens = 4'd0;
            ones = 4'd0;
        end
    5'd1:
        begin
            tens = 4'd0;
            ones = 4'd1;
        end
    5'd2:
        begin
            tens = 4'd0;
            ones = 4'd2;
        end
    5'd3:
        begin
            tens = 4'd0;
            ones = 4'd3;
        end
    5'd4:
        begin
            tens = 4'd0;
            ones = 4'd4;
        end
    5'd5:
        begin
            tens = 4'd0;
            ones = 4'd5;
        end
    5'd6:
        begin
            tens = 4'd0;
            ones = 4'd6;
        end
    5'd7:
        begin
            tens = 4'd0;
            ones = 4'd7;
        end
    5'd8:
        begin
            tens = 4'd0;
            ones = 4'd8;
        end
    5'd9:
        begin
            tens = 4'd0;
            ones = 4'd9;
        end
    5'd10: 
        begin
            tens = 4'd1;
            ones = 4'd0;
        end
    5'd11:
        begin
            tens = 4'd1;
            ones = 4'd1;
        end
    5'd12:
        begin
            tens = 4'd1;
            ones = 4'd2;
        end
    5'd13:
        begin
            tens = 4'd1;
            ones = 4'd3;
        end
    5'd14:
        begin
            tens = 4'd1;
            ones = 4'd4;
        end
    5'd15:
        begin
            tens = 4'd1;
            ones = 4'd5;
        end
    5'd16:
        begin
            tens = 4'd1;
            ones = 4'd6;
        end
    5'd17:
        begin
            tens = 4'd1;
            ones = 4'd7;
        end
    5'd18:
        begin
            tens = 4'd1;
            ones = 4'd8;
        end
    5'd19:
        begin
            tens = 4'd1;
            ones = 4'd9;
        end
    5'd20: 
        begin
            tens = 4'd2;
            ones = 4'd0;
        end
    5'd21:
        begin
            tens = 4'd2;
            ones = 4'd1;
        end
    5'd22:
        begin
            tens = 4'd2;
            ones = 4'd2;
        end
    5'd23:
        begin
            tens = 4'd2;
            ones = 4'd3;
        end
    5'd24:
        begin
            tens = 4'd2;
            ones = 4'd4;
        end
    5'd25:
        begin
            tens = 4'd2;
            ones = 4'd5;
        end
    5'd26:
        begin
            tens = 4'd2;
            ones = 4'd6;
        end
    5'd27:
        begin
            tens = 4'd2;
            ones = 4'd7;
        end
    5'd28:
        begin
            tens = 4'd2;
            ones = 4'd8;
        end
    5'd29:
        begin
            tens = 4'd2;
            ones = 4'd9;
        end
    5'd30:
        begin
            tens = 4'd3;
            ones = 4'd0;
        end
    5'd31:
        begin
            tens = 4'd3;
            ones = 4'd1;
        end
endcase
 
/*
integer i;
 
always @(binary_data)
begin
    tens = 4'd0;
    ones = 4'd0;
 
    for (i=7; i >= 0; i=i-1)
    begin
        if (tens>=5)
            tens = tens +3;
        if (ones >= 5)
            ones = ones +3;
        tens = tens << 1;
        tens[0] = ones[3];
        ones = ones << 1;
        ones[0] = binary_data[i];
    end
end
*/
 
endmodule