**这是本文档旧的修订版!**
二进制到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