Binary To Bcd Verilog

GitHub - kb000/bin2bcd: Verilog module to convert binary to BCD (binary coded decimal). Binary to BCD Converter This verilog module takes a binary number as an input and outputs its corresponding BCD representation. Currently only following configurations are supported. I wanted to convert 24-bit binary to 32-bit bcd and I inserted your function into my code, where I defined q:= 8, because (4.q)-1) would be 32 bits. When I wanna do 8-bit bin to 12-bit bcd, I need to define q:= 3. Binary Coded Decimal (BCD) is used to represent binary numbers using the decimal system. Often calculations are performed in binary and then converted to BCD to display on LCDs. Each decimal digit has a 4-bit binary representation. Since there are ten decimal digits (0-9), there are ten different binary representations.

Code

BCD code plays an important role in digital circuits. The BCD stands for Binary Coded Decimal Number. In BCD code, each digit of the decimal number is represented as its equivalent binary number. So, the LSB and MSB of the decimal numbers are represented as its binary numbers. There are the following steps to convert the binary number to BCD:

  1. First, we will convert the binary number into decimal.
  2. We will convert the decimal number into BCD.

Let's take an example to understand the process of converting a binary number into BCD

Example 1: (11110)2

1. First, convert the given binary number into a decimal number.

Binary Number: (11110)2

Binary To Bcd Verilog Code

Finding Decimal Equivalent of the number:

StepsBinary NumberDecimal Number
1)(11110)2((1 × 24) + (1 × 23) + (1 × 22) + (1 × 21) + (0 × 20))10
2)(11110)2(16 + 8 + 4 + 2 + 0)10
3)(11110)2(30)10

Decimal number of the Binary number (11110)2 is (30)10

2. Now, we convert the decimal to the BCD

We convert each digit of the decimal number into groups of the four-bit binary number.

StepsDecimal NumberConversion
Step 13010(0011)2 (0000)2
Step 23010(00110000)BCD

Result:

(11110)2 = (00110000)BCD

Below is the table that contains the BCD code of the decimal and binary number.

Convert Binary To Bcd Verilog

Binary CodeDecimal NumberBCD Code
A B C DB4 :B3B2B1B0
0 0 0 000 : 0 0 0 0
0 0 0 110 : 0 0 0 1
0 0 1 020 : 0 0 1 0
0 0 1 130 : 0 0 1 1
0 1 0 040 : 0 1 0 0
0 1 0 150 : 0 1 0 1
0 1 1 060 : 0 1 1 0
0 1 1 170 : 0 1 1 1
1 0 0 080 : 1 0 0 0
1 0 0 190 : 1 0 0 1
1 0 1 0101 : 0 0 0 0
1 0 1 1111 : 0 0 0 1
1 1 0 0121 : 0 0 1 0
1 1 0 1131 : 0 0 1 1
1 1 1 0141 : 0 1 0 0
1 1 1 1151 : 0 1 0 1

In the above table, the most significant bit of the decimal number is represented by the bit B4, and the least significant bits are represented by B3, B2, B1, and B0. From the above table, we can express the SOP function for different bits of BCD code are as follows:

The K-maps of the above SOP functions are as follows:


Binary To Bcd Conversion Verilog

BCD to Binary Conversion

The process of converting BCD code into Binary is opposite to the process of converting Binary code into BCD. There are the following steps to convert the BCD code into Binary:

In the first step, we will convert the BCD number into a decimal by making the four-bit groups and finding the equivalent decimal number for each group.

Binary To Bcd Verilog

In the last step, we will convert a decimal number into Binary using the process of converting decimal to binary number.

Example 1: (00101000)BCD

1) Convert BCD to Decimal

Make the groups of 4 digits and find the equivalent decimal number as:

StepsBCD NumberConversion
Step 1(00101000)BCD(0010)2 (1000)2
Step 2(00101000)BCD(2)10 (8)10
Step 3(00101000)BCD(28)10

The decimal number of the given BCD code is: (28)10

2. Convert Decimal to Binary

Use the long division method to convert the decimal number into a binary number as:

StepsOperationResultRemainder
1.28 / 2140
2.14 / 270
3.7 / 231
4.3 / 211
5.1 / 201

Arrange the remainders in the reverse order. So, the LSB of the binary number is the first remainder, and the MSB of the binary number is the last remainder.

The binary number of the decimal number (18)10 is: (11100)2

Result:

(00101000)BCD = (11100)2

Binary To Bcd Verilog
Next TopicBinary to Gray code conversion