From 2ac48fa0e44016a6cb49cab84a154eb7ec2dcab4 Mon Sep 17 00:00:00 2001 From: Michael Abed Date: Wed, 21 Mar 2012 13:17:47 -0400 Subject: Initial Commit --- BCD2Bin.v | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 BCD2Bin.v (limited to 'BCD2Bin.v') diff --git a/BCD2Bin.v b/BCD2Bin.v new file mode 100644 index 0000000..06a38c8 --- /dev/null +++ b/BCD2Bin.v @@ -0,0 +1,58 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 14:39:02 03/16/2012 +// Design Name: +// Module Name: BCD2Bin +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module BCD2Bin( + input [3:0] hun, + input [3:0] ten, + input [3:0] one, + output [7:0] bin + ); + +reg [7:0] bin = 0; +reg [2:0] i = 0; + +reg [19:0] work; + +always @ ( hun, ten, one ) begin + + work = {hun, ten, one, bin}; + + //work = work >> 1; + + for (i = 0; i < 7; i = i + 1) begin + work = work >> 1; + if (work[19:16] >= 5) begin + work[19:16] = work[19:16] - 3; + end + if (work[15:12] >= 5) begin + work[15:12] = work[15:12] - 3; + end + if (work[11:8] >= 5) begin + work [11:8] = work[11:8] - 3; + end + end + + work = work >> 1; + + bin = work[7:0]; + +end + +endmodule -- cgit v1.2.3