Binary to BCD Converter

Binary to BCD Converter - module...

Info iconThis preview shows pages 1–8. Sign up to view the full content.

View Full Document Right Arrow Icon
Binary to BCD Converter Shift and Add-3 Algorithm 1. Shift the binary number left one bit. 2. If 8 shifts have taken place, the BCD number is in the Hundreds , Tens , and Units column. 3. If the binary value in any of the BCD columns is 5 or greater, add 3 to that value in that BCD column. 4. Go to 1. Operation Hundreds Tens Units Binary HEX F F Start 1 1 1 1 1 1 1 1 Example 1: Convert hex E to BCD
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Example 2: Convert hex FF to BCD
Background image of page 2
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Truth table for Add-3 Module Here is a Verilog module for this truth table. module add3(in,out); input [3:0] in; output [3:0] out; reg [3:0] out;
Background image of page 4
always @ (in) case (in) 4'b0000: out <= 4'b0000; 4'b0001: out <= 4'b0001; 4'b0010: out <= 4'b0010; 4'b0011: out <= 4'b0011; 4'b0100: out <= 4'b0100; 4'b0101: out <= 4'b1000; 4'b0110: out <= 4'b1001; 4'b0111: out <= 4'b1010; 4'b1000: out <= 4'b1011; 4'b1001: out <= 4'b1100; default: out <= 4'b0000; endcase endmodule Binary-to-BCD Converter Module
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 6
Here is a structural Verilog module corresponding to the logic diagram.
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 8
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: module binary_to_BCD(A,ONES,TENS,HUNDREDS); input [7:0] A; output [3:0] ONES, TENS; output [1:0] HUNDREDS; wire [3:0] c1,c2,c3,c4,c5,c6,c7; wire [3:0] d1,d2,d3,d4,d5,d6,d7; assign d1 = {1'b0,A[7:5]}; assign d2 = {c1[2:0],A[4]}; assign d3 = {c2[2:0],A[3]}; assign d4 = {c3[2:0],A[2]}; assign d5 = {c4[2:0],A[1]}; assign d6 = {1'b0,c1[3],c2[3],c3[3]}; assign d7 = {c6[2:0],c4[3]}; add3 m1(d1,c1); add3 m2(d2,c2); add3 m3(d3,c3); add3 m4(d4,c4); add3 m5(d5,c5); add3 m6(d6,c6); add3 m7(d7,c7); assign ONES = {c5[2:0],A[0]}; assign TENS = {c7[2:0],c5[3]}; assign HUNDREDS = {c6[3],c7[3]}; endmodule General Binary-to-BCD Converter The linked code is a general binary-to-BCD Verilog module, but I have not personally tested the code. Reference: course materials from Prof. Richard E. Haskell Maintained by John Loomis , last updated 4 Jan 2004...
View Full Document

This note was uploaded on 03/20/2008 for the course ECE 2504 taught by Professor Klcooper during the Spring '08 term at Virginia Tech.

Page1 / 8

Binary to BCD Converter - module...

This preview shows document pages 1 - 8. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online