Unit – 1
Logic simplification and combinational logic design
 In coding, when alphanumeric characters or words are represented by a specific group of symbols, it is said that it is being coded.
 The group of symbols is known as a code.
 The digital data can be represented, stored, and transmitted as a group of binary bits.
 This group is called a binary code.
 It is represented by the number as well as the alphanumeric character.
Advantages of Binary Code
 They are used in computer applications.
 They are suitable for digital communications.
 They make the analysis and designing of digital circuits easy.
 Implementation becomes very easy since only 0 & 1 are being used.
Classification of binary codes
The codes are broadly classified as:
 Weighted Codes
 NonWeighted Codes
 Binary Coded Decimal Code
 Alphanumeric Codes
 Error Detecting Codes
 ErrorCorrecting Codes
Weighted Codes
 These codes obey the positional weight principle.
 Here each position represents a specific weight.
 Several systems are used to express the decimal digits 0 through 9.
 Here, each decimal digit is represented by a set of four bits.
Fig.: Weighted codes (Ref. 1)
NonWeighted Codes
 Here, the positional weights are not assigned.
 Example: Excess3 code and Gray code.
 Alphanumeric codes
A binary digit orbit can be represented by two symbols as '0' or '1'.
This is not sufficient for communication between two computers as we need many more symbols for communication.
These symbols represent 26 alphabetic characters with capital and small letters, numbers from 0 to 9, punctuation marks, and other symbols.
These alphanumeric codes represent numbers and alphabetic characters.
Most of them also represent other characters like symbols and various instructions necessary for conveying information.
The code at least represents 10 digits and 26 letters of alphabet i.e., total of 36 items.
The following three types of alphanumeric codes are commonly used for data representation.
 American Standard Code for Information Interchange (ASCII).
 Extended Binary Coded Decimal Interchange Code (EBCDIC).
 Five bitBaudot Code.
ASCII code is a 7bit code whereas EBCDIC is an 8bit code.
ASCII code is used worldwide while EBCDIC is primarily used in large IBM computers.
2. Error Codes
Their technique is available to detect and correct data during data transmission.
Error Code  Description 
Error Detection and Correction  Error detection and correction code techniques 
BINARY TO GRAY CODE CONVERTER
Gray Code system is a binary number system in which every successive pair of numbers differs in only one bit. It is used in applications in which the normal sequence of binary numbers generated by the hardware may produce an error or ambiguity during the transition from one number to the next.
The logical circuit which converts the binary code to equivalent gray code is known as binary to gray code converter.
How to Convert Binary to Gray Code
 In the Gray code, the MSB will always be the same as the 1'st bit of the given binary number.
 In order to perform the 2nd bit of the gray code, we perform the exclusiveor (XOR) of the 1'st and 2nd bit of the binary number. It means that if both the bits are different, the result will be one else the result will be 0.
 In order to get the 3rd bit of the gray code, we need to perform the exclusiveor (XOR) of the 2nd and 3rd bit of the binary number. The process remains the same for the 4th bit of the Gray code.
The truth table of a 4bit binary to Gray code converter is shown below:
The simplified expressions for the outputs can be obtained using KMaps:
Therefore, W= A
X = AB’ +A’B =A B
Y = B’C +C’B = B C
Z = C’D +CD’ = C D
The logic circuit diagram can be realized as follows:
GRAY TO BINARY CODE CONVERTER
The logical circuit which converts the gray code to equivalent binary code is known as gray to binary code converter.
How to Convert Gray to Binary Code
 Just like binary to gray, in gray to binary, the 1st bit of the binary number is similar to the MSB of the Gray code.
 The 2nd bit of the binary number is the same as the 1st bit of the binary number when the 2nd bit of the Gray code is 0; otherwise, the 2nd bit is altered bit of the 1st bit of binary number. It means if the 1st bit of the binary is 1, then the 2nd bit is 0, and if it is 0, then the 2nd bit be 1.
 The 2nd step continues for all the bits of the binary number.
The truth table of a 4bit Gray to Binary code converter is shown below:
The simplified expressions for the outputs can be obtained using KMaps:
Therefore, W=A
X = AB’ +A’B =A B
Y = X C
Z = Y D
The logic circuit diagram can be realized as follows:
 The three basic laws of Boolean Algebra are:
 Commutative law
 Associative law
 Distributive law
Commutative Law
 The logical operation carried between two Boolean variables when gives the same result irrespective of the order the two variables, then that operation is said to be Commutative. The logical OR & logical AND operations between x & y are shown below
x + y = y + x
x.y = y.x
 The symbol ‘+’ and ‘.’ indicates logical OR operation and logical AND operation.
 Commutative law holds good for logical OR & logical AND operations.
Associative Law
 If a logical OR operation of any two Boolean variables is performed first and then the same operation is performed with the remaining variable providing the same result, then that operation is said to be Associative. The logical OR & logical AND operations of x, y & z are:
x + (y + z) = (x + y) + z
x. (y.z) = (x.y). z
 Associative law holds good for logical OR & logical AND operations.
Distributive Law
 If a logical OR operation of any two Boolean variables is performed first and then AND operation is performed with the remaining variable, then that logical operation is said to be Distributive. The distribution of logical OR & logical AND operations between variables x, y & z are:
x. (y + z) = x.y + x.z
x + (y.z) = (x + y). (x + z)
 Distributive law holds good for logical OR and logical AND operations.
 These are the Basic laws of Boolean algebra and we can verify them by substituting the Boolean variables with ‘0’ or ‘1’.
De Morgan’s theorem
 It is useful in finding the complement of Boolean function.
 It states that “The complement of logical OR of at least two Boolean variables is equal to the logical AND of each complemented variable”.
 It can be represented using 2 Boolean variables x and y as
(x + y)’ = x’. y’
 The dual of the above Boolean function is
(x.y)’ = x’ + y’
 Therefore, the complement of logical AND of the two Boolean variables is equivalent to the logical OR of each complemented variable.
 Similarly, De Morgan’s theorem can be applied for more than 2 Boolean variables also.
Simplification of Boolean Functions
Numerical
 Simplify the Boolean function,
f = p’qr + pq’r + pqr’ + pqr
Method 1
Given
f = p’qr + pq’r + pqr’ +pqr.
In first and second term r is common and in third and fourth terms pq is common.
So, taking out the common terms by using Distributive law we get,
⇒ f = (p’q + pq’) r + pq (r’ + r)
The terms present in first parenthesis can be simplified by using ExOR operation.
The terms present in second parenthesis is equal to ‘1’ using Boolean postulate we get
⇒ f = (p ⊕q) r + pq (1)
The first term can’t be simplified further.
But, the second term is equal to pq using Boolean postulate.
⇒ f = (p ⊕q) r + pq
Therefore, the simplified Boolean function is f = (p⊕q) r + pq
Method 2
Given f = p’qr + pq’r + pqr’ + pqr.
Using the Boolean postulate, x + x = x.
Hence, we can write the last term pqr two more times.
⇒ f = p’qr + pq’r + pqr’ + pqr + pqr + pqr
Now using the Distributive law for 1st and 4th terms, 2nd and 5th terms, 3rdand 6th terms we get.
⇒ f = qr (p’ + p) + pr (q’ + q) + pq (r’ + r)
Using Boolean postulate, x + x’ = 1 and x.1 = x for further simplification.
⇒ f = qr (1) + pr (1) + pq (1)
⇒ f = qr + pr + pq
⇒ f = pq + qr + pr
Therefore, the simplified Boolean function is f = pq + qr + pr.
Hence, we got two different Boolean functions after simplification of the given Boolean function. Functionally, these two functions are same. As per requirement, we can choose one of them.
Numerical
Find the complement of the Boolean function,
f = p’q + pq’.
Solution:
Using De Morgan’s theorem, (x + y)’ = x’. y’ we get
⇒ f’ = (p’q)’. (pq’)’
Then by second law, (x.y)’ = x’ + y’ we get
⇒ f’ = {(p’)’ + q’}. {p’ + (q’)’}
Then by using, (x’)’=x we get
⇒ f’ = {p + q’}. {p’ + q}
⇒ f’ = pp’ + pq + p’q’ + qq’
Using x.x’=0 we get
⇒ f = 0 + pq + p’q’ + 0
⇒ f = pq + p’q’
Therefore, the complement of Boolean function, p’q + pq’ is pq + p’q’.
Standard SOP form
 It stands for Standard Sum of Products form.
 In this, each product term need not contain all literals.
 So, the product terms can or cannot be the min terms.
 Therefore, it is therefore the simplified form of canonical SOP form.
Standard SOP of output variable can be obtained by two steps.
 Getting the canonical SOP form of output variable
 Simplification the above Boolean function.
The same procedure is followed for other output variables too, if there is more than one output variable.
Numerical
Convert the Boolean function into Standard SOP form.
f = p’qr + pq’r + pqr’ + pqr
Solution:
Step 1 – By using the Boolean postulate, x + x = x and also writing the last term pqr two more times we get
⇒ f = p’qr + pq’r + pqr’ + pqr + pqr + pqr
Step 2 – By Using Distributive law for 1st and 4th terms, 2nd and 5th terms, 3rdand 6th terms.
⇒ f = qr (p’ + p) + pr (q’ + q) + pq (r’ + r)
Step 3 – Then Using Boolean postulate, x + x’ = 1 we get
⇒ f = qr (1) + pr (1) + pq (1)
Step 4 – hence using Boolean postulate, x.1 = x we get
⇒ f = qr + pr + pq
⇒ f = pq + qr + pr
This is the required Boolean function.
Standard POS form
 It stands for Standard Product of Sum form.
 Here, each sum term need not contain all literals.
 So, the sum terms can or cannot be the Max terms.
 Therefore, it is the desired simplified form of canonical POS form.
Standard POS form of output variable is obtained by two steps.
 Getting the canonical POS form of output variable
 Simplification of the above Boolean function.
The same procedure is followed for other output variables too.
Numerical
Convert the Boolean function into Standard POS form.
f = (p + q + r). (p + q + r’). (p + q’ + r). (p’ + q + r)
Solution:
Step 1 – By using the Boolean postulate, x.x = x and writing the first term p+q+r two more times we get
⇒ f = (p + q + r). (p + q + r). (p + q + r). (p + q + r’). (p +q’ + r). (p’ + q + r)
Step 2 – Now by using Distributive law, x + (y.z) = (x + y). (x + z) for 1st and 4thparenthesis, 2nd and 5th parenthesis, 3rd and 6th parenthesis.
⇒ f = (p + q + rr’). (p + r + qq’). (q + r + pp’)
Step 3 − Applying Boolean postulate, x.x’=0 for simplifying of the terms present in each parenthesis.
⇒ f = (p + q + 0). (p + r + 0). (q + r + 0)
Step 4 − Using Boolean postulate, x + 0 = x we get
⇒ f = (p + q). (p + r). (q + r)
⇒ f = (p + q). (q + r). (p + r)
This is the simplified Boolean function.
Hence, both Standard SOP and Standard POS forms are Dual to one another.
Key Takeaways:
 Four product combinations is obtained by combining two variables x and y with logical AND operation. They are called as min terms or standard product terms. The min terms are given as x’y’, x’y, xy’ and xy.
 In the same way, four Boolean sum terms is obtained by combining two variables x and y with logical OR operation. They are called as Max terms or standard sum terms. The Max terms are given as x + y, x + y’, x’ + y and x’ + y’.
Canonical SOP form
 It means Canonical Sum of Products form.
 In this, each product term contains all literals.
 So that these product terms are nothing but the min terms.
 Hence is also known as sum of min terms form.
 Firstly, identification of the min terms is done and then the logical OR of those min terms is taken in order to get the Boolean expression (function) corresponding to that output variable.
 This Boolean function will be in sum of min terms form.
 Then following the same procedure for other output variables too.
Canonical POS form
 It means Canonical Product of Sums form.
 Here In this form, each sum term contains all literals.
 These sum terms are the Max terms.
 Hence, canonical POS form is also known as product of Max terms form.
 Identification of the Max terms for which the output variable is zero is done and then the logical AND of those Max terms is done in order to get the Boolean expression corresponding to that output variable.
 This Boolean function is in the form of product of Max terms.
 Following the same procedure for other output variables too.
 Karnaugh map method or Kmap method is the pictorial representation of the Boolean equations and Boolean manipulations are used to reduce the complexity in solving them. These can be considered as a special or extended version of the ‘Truth table’.
 Karnaugh map can be explained as “An array containing 2k cells in a grid like format, where k is the number of variables in the Boolean expression that is to be reduced or optimized”. As it is evaluated from the truth table method, each cell in the Kmap will represent a single row of the truth table and a cell is represented by a square.
 The cells in the kmap are arranged in such a way that there are conjunctions, which differ in a single variable, are assigned in adjacent rows. The Kmap method supports the elimination of potential race conditions and permits the rapid identification.
 By using Karnaugh map technique, we can reduce the Boolean expression containing any number of variables, such as 2variable Boolean expression, 3variable Boolean expression, 4variable Boolean expression and even 7variable Boolean expressions, which are complex to solve by using regular Boolean theorems and laws.
Minimization with Karnaugh Maps and advantages of Kmap:
 Kmaps are used to convert the truth table of a Boolean equation into minimized SOP form.
 Easy and simple basic rules for the simplification.
 The Kmap method is faster and more efficient than other simplification techniques of Boolean algebra.
 All rows in the Kmap are represented by using square shaped cells, in which each square in that will represent a minterms.
 It is easy to convert a truth table to kmap and kmap to Sum of Products form equation.
There are 2 forms in converting a Boolean equation into Kmap:
 Unoptimized form: It involves in converting the number of 1’s into equal number of product terms (min terms) in an SOP equation.
 Optimized form: It involves in reducing the number of min terms in the SOP equation.
Grouping of Kmap variables
 There are some rules to follow while we are grouping the variables in Kmaps. They are
 The square that contains ‘1’ should be taken in simplifying, at least once.
 The square that contains ‘1’ can be considered as many times as the grouping is possible with it.
 Group shouldn’t include any zeros (0).
 A group should be the as large as possible.
 Groups can be horizontal or vertical. Grouping of variables in diagonal manner is not allowed.
 If the square containing ‘1’ has no possibility to be placed in a group, then it should be added to the final expression.
 Groups can overlap.
 The number of squares in a group must be equal to powers of 2, such as 1, 2, 4, 8 etc.
 Groups can wrap around. As the Kmap is considered as spherical or folded, the squares at the corners (which are at the end of the column or row) should be considered as they adjacent squares.
 The grouping of Kmap variables can be done in many ways, so they obtained simplified equation need not to be unique always.
 The Boolean equation must be in must be in canonical form, in order to draw a Kmap.
2 variable Kmaps
There are 4 cells (22) in the 2variable kmap. It will look like (see below image)
The possible min terms with 2 variables (A and B) are A.B, A.B’, A’. B and A’. B’. The conjunctions of the variables (A, B) and (A’, B) are represented in the cells of the top row and (A, B’) and (A’, B’) in cells of the bottom row. The following table shows the positions of all the possible outputs of 2variable Boolean function on a Kmap.
A general representation of a 2 variable Kmap plot is shown below.
When we are simplifying a Boolean equation using Karnaugh map, we represent each cell of Kmap containing the conjunction term with 1. After that, we group the adjacent cells with possible sizes as 2 or 4. In case of larger kmaps, we can group the variables in larger sizes like 8 or 16.
The groups of variables should be in rectangular shape that means the groups must be formed by combining adjacent cells either vertically or horizontally. Diagonal shaped or Lshaped groups are not allowed. The following example demonstrates a Kmap simplification of a 2variable Boolean equation.
Example
Simplify the given 2variable Boolean equation by using Kmap.
F = X Y’ + X’ Y + X’Y’
First, let’s construct the truth table for the given equation,
We put 1 at the output terms given in equation.
In this Kmap, we can create 2 groups by following the rules for grouping, one is by combining (X’, Y) and (X’, Y’) terms and the other is by combining (X, Y’) and (X’, Y’) terms. Here the lower right cell is used in both groups.
After grouping the variables, the next step is determining the minimized expression.
By reducing each group, we obtain a conjunction of the minimized expression such as by taking out the common terms from two groups, i.e., X’ and Y’. So, the reduced equation will be X’ +Y’.
3 variable Kmaps
For a 3variable Boolean function, there is a possibility of 8 output min terms. The general representation of all the min terms using 3variables is shown below.
A typical plot of a 3variable Kmap is shown below. It can be observed that the positions of columns 10 and 11 are interchanged so that there is only change in one variable across adjacent cells. This modification will allow in minimizing the logic.
Up to 8 cells can be grouped in case of a 3variable Kmap with other possibilities being 1, 2 and 4.
Example
Simplify the given 3variable Boolean equation by using kmap.
F = X’ Y Z + X’ Y’ Z + X Y Z’ + X’ Y’ Z’ + X Y Z + X Y’ Z’
First, let’s construct the truth table for the given equation,
We put 1 at the output terms given in equation.
There are 8 cells (23) in the 3variable kmap. It will look like (see below image).
The largest group size will be 8 but we can also form the groups of size 4 and size 2, by possibility. In the 3 variable Karnaugh map, we consider the left most column of the kmap as the adjacent column of rightmost column. So, the size 4 group is formed as shown below.
And in both the terms, we have ‘Y’ in common. So, the group of size 4 is reduced as the conjunction Y. To consume every cell which has 1 in it, we group the rest of cells to form size 2 group, as shown below.
The 2size group has no common variables, so they are written with their variables and its conjugates. So, the reduced equation will be X Z’ + Y’ + X’ Z. In this equation, no further minimization is possible.
4 variable Kmaps
There are 16 possible min terms in case of a 4variable Boolean function. The general representation of minterms using 4 variables is shown below.
A typical 4variable Kmap plot is shown below. It can be observed that both the columns and rows of 10 and 11 are interchanged.
The possible numbers of cells that can be grouped together are 1, 2, 4, 8 and 16.
Example
Simplify the given 4variable Boolean equation by using kmap. F (W, X, Y, Z) = (1, 5, 12, 13)
Sol: F (W, X, Y, Z) = (1, 5, 12, 13)
By preparing kmap, we can minimize the given Boolean equation as
F = W Y’ Z + W ‘Y’ Z
5 variable Kmaps
A 5variable Boolean function can have a maximum of 32 minterms. All the possible minterms are represented below
In 5variable Kmap, we have 32 cells as shown below. It is represented by F (A, B, C, D, and E). It is divided into two grids of 16 cells with one variable (A) being 0 in one grid and 1 in other grid.
Example
Simplify the given 5variable Boolean equation by using kmap.
f (A, B, C, D, E) = ∑ m (0, 5, 6, 8, 9, 10, 11, 16, 20, 42, 25, 26, 27)
6 variable Kmaps
A 6variable Karnaugh map aids simplification of the logic for a 3bit magnitude comparator. This is an overlay type of map. The binary address code across the top and down the left side of the map is not a full 3bit Gray code.
Though the 2bit address codes of the four sub maps is Gray code. Find redundant expressions by stacking the four sub maps atop one another (shown above). There could be cells common to all four maps, though not in the example below. It does have cells common to pairs of sub maps.
The A>B output above is ABC>XYZ on the map below.
Where ever ABC is greater than XYZ, a 1 is plotted. In the first line ABC=000 cannot be greater than any of the values of XYZ. No 1s in this line. In the second line, ABC=001, only the first cell ABCXYZ= 001000 is ABC greater than XYZ. A single 1 is entered in the first cell of the second line. The fourth line, ABC=010, has a pair of 1s. The third line, ABC=011 has three 1s. Thus, the map is filled with 1s in any cells where ABC is greater than XXZ.
In grouping cells, form groups with adjacent sub maps if possible. All but one group of 16cells involves cells from pairs of the sub maps. Look for the following groups:
 1 group of 16cells
 2 groups of 8cells
 4 groups of 4cells
The group of 16cells, AX’ occupies all of the lower right sub map; though, we don’t circle it on the figure above.
One group of 8cells is composed of a group of 4cells in the upper sub map overlaying a similar group in the lower left map. The second group of 8cells is composed of a similar group of 4cells in the right sub map overlaying the same group of 4cells in the lower left map.
The four groups of 4cells are shown on the Karnaugh map above with the associated product terms. Along with the product terms for the two groups of 8cells and the group of 16cells, the final SumOfProducts reduction is shown, all seven terms.
Counting the 1s in the map, there is a total of 16+6+6=28 ones. Before the Kmap logic reduction there would have been 28 product terms in our SOP output, each with 6inputs. The Karnaugh map yielded seven product terms of four or less inputs. This is really what Karnaugh maps are all about!
The wiring diagram is not shown. However, here is the parts list for the 3bit magnitude comparator for ABC>XYZ using 4 TTL logic family parts:
 7410 triple 3input NAND gate AX’, ABY’, BX’Y’
 7420 dual 4input NAND gate ABCZ’, ACY’Z’, BCX’Z’, CX’Y’Z’
 7430 8input NAND gate for output of 7Pterms
QuineMcCluskey Tabular Method
 Kmap method is a convenient method for the minimization of Boolean functions up to 5 variables. But, it is very difficult to simplify more than 5 variables by using this method.
 QuineMcCluskey is a tabular method based on the concept of prime implicants.
 Prime implicant is a product (or sum) term, which cannot be further reduced by combining with any other product (or sum) terms in the given Boolean function.
 This tabular method gets the prime implicants by repeatedly using the following Boolean identity.
Xy + xy’ = x (y + y’) = x.1 = x
The procedure of QuineMcCluskey Tabular Method
Steps for simplifying Boolean functions using the QuineMcCluskey method:
Step 1 − Arranging the given min terms in ascending order and making groups based on the number of one’s presence in the binary representations.
So, there are at most ‘n+1’ groups if there are ‘n’ Boolean variables or ‘n’ bits in the binary equivalent of min terms.
Step 2 − Comparing the min terms present in successive groups. If there is a change in only a onebit position, then taking the pair of two min terms. Placing the symbol ‘_’ in the differed bit position and keeping the remaining bits as it is.
Step 3 − Repeating step2 with newly formed terms until we get all required prime implicants.
Step 4 − Formulating the prime implicant table which consists of a set of rows and columns. It can be placed rowwise and min terms can be placed columnwise. Put ‘1’ in the cells corresponding to the min terms that are covered in each prime implicant.
Step 5 – Now find the essential prime implicants by observing each column. If the minterm is covered by one prime implicant, then it is called as essential prime implicant. They will be a part of the simplified Boolean function.
Step 6 – The prime implicant table is reduced by removing the row and columns of each essential prime implicant corresponding to the min terms. This process is stopped when all min terms of given Boolean function are over.
Example
Simplify, f (W, X, Y, Z) =∑m (2,6,8,9,10,11,14,15) and f (W, X, Y, Z) =∑m (2,6,8,9,10,11,14,15)
Using QuineMcCluskey tabular method.
Solution:
Group Name  Min terms  W  X  Y  Z 
GA1  2  0  0  1  0 
8  1  0  0  0  
GA2  6  0  1  1  0 
9  1  0  0  1  
10  1  0  1  0  
GA3  11  1  0  1  1 
14  1  1  1  0  
GA4  15  1  1  1  1 
Group Name  Min terms  W  X  Y  Z 
GB1  2,6  0    1  0 
2,10    0  1  0  
8,9  1  0  0    
8,10  1  0    0  
GB2  6,14    1  1  0 
9,11  1  0    1  
10,11  1  0  1    
10,14  1    1  0  
GB3  11,15  1    1  1 
14,15  1  1  1    






Group Name  Min terms  W  X  Y  Z 
GB1  2,6,10,14      1  0 
2,10,6,14      1  0  
8,9,10,11  1  0      
8,10,9,11  1  0      
GB2  10,11,14,15  1    1   
10,14,11,15  1    1    






Group Name  Min terms  W  X  Y  Z 
GC1  2,6,10,14      1  0 
 8,9,10,11  1  0     
GC2  10,11,14,15  1    1   
Therefore, the prime implicants are YZ’, WX’ & WY.
The prime implicant table is shown below.
Min terms / Prime Implicants  2  6  8  9  10  11  14  15 
YZ’  1  1 

 1 
 1 

WX’ 

 1  1  1  1 


WY 



 1  1  1  1 
The reduced prime implicant table is shown below.
Min terms / Prime Implicants  8  9  11  15 
WX’  1  1  1 

WY 

 1  1 
Min terms / Prime Implicants  15 
WY  1 
Hence, f (W, X, Y, Z) = YZ’ + WX’ + WY.
Simplify (ref: internet)
Y (A, B, C, D) =∑ m (0,1,3,7,8,9,11,15)
Groups are made with respect to the no. Of one’s present.
Now, comparing with the above table wherever we have a different bit present we put a’‘there.
The same thing is done by comparing it from the above table.
The table for prime implicants is:
Rounding the min terms which has X in the column and hence the final answer is B’C’ + CD.
References:
 R. P. Jain, “Modern Digital Electronics”, Tata McGraw Hill.
 M. Morris Mano, “Digital Logic and computer Design”, PHI.
 Norman Balabanian, “Digital Logic Design Principles”, Wiley.
 J. Bhasker. “ VHDL Primer”, Pearson Education.
 Donald p Leach, Albert Paul Malvino, “Digital principles and Applications”, Tata McGraw
 2. Yarbrough John M., “Digital Logic Applications and Design “, Cengage Learning.
 3. Douglas L. Perry, “VHDL Programming by Example”, Tata McGraw Hill.