Lecture notes on Digital system Design

design of digital systems and devices and theory and design of digital communication systems pdf free download
DavidCooper Profile Pic
DavidCooper,Singapore,Researcher
Published Date:11-07-2017
Your Website URL(Optional)
Comment
DIGITAL SYSTEMS: Course Objectives and Lecture Plan Aim: At the end of the course the student will be able to analyze, design, and evaluate digital circuits, of medium complexity, that are based on SSIs, MSIs, and programmable logic devices. Module 1: Number Systems and Codes (3) Number systems: Binary, octal, and hexa-decimal number systems, binary arithmetic. Codes: Binary code, excess-3 code, gray code, and error detection and correction codes. Module 2: Boolean Algebra and Logic Functions (5) Boolean algebra: Postulates and theorems. Logic functions, minimization of Boolean functions using algebraic, Karnaugh map and Quine – McClausky methods. Realization using logic gates Module 3: Logic Families (4) Logic families: Characteristics of logic families. TTL, CMOS, and ECL families. Module 4: Combinational Functions (8) Realizing logical expressions using different logic gates and comparing their performance. Hardware aspects logic gates and combinational ICs: delays and hazards. Design of combinational circuits using combinational ICs: Combinational functions: code conversion, decoding, comparison, multiplexing, demultiplexing, addition, and subtraction. Module 5: Analysis of Sequential Circuits (5) Structure of sequential circuits: Moore and Melay machines. Flip-flops, excitation tables, conversions, practical clocking aspects concerning flip-flops, timing and triggering considerations. Analysis of sequential circuits: State tables, state diagrams and timing diagrams. Module 6: Designing with Sequential MSIs (6) Realization of sequential functions using sequential MSIs: counting, shifting, sequence generation, and sequence detection. Module 7: PLDs (3) Programmable Logic Devices: Architecture and characteristics of PLDs, Module 8: Design of Digital Systems (6) State diagrams and their features. Design flow: functional partitioning, timing relationships, state assignment, output racing. Examples of design of digital systems using PLDs Learning Objectives of the Course 1. Recall 1.1 List different criteria that could be used for optimization of a digital circuit. 1.2 List and describe different problems of digital circuits introduced by the hardware limitations. 2. Comprehension 2.1 Describe the significance of different criteria for design of digital circuits. 2.2 Describe the significance of different hardware related problems encountered in digital circuits. 2.3 Draw the timing diagrams for identified signals in a digital circuit. 3. Application 3.1 Determine the output and performance of given combinational and sequential circuits. 3.2 Determine the performance of a given digital circuit with regard to an identified optimization criterion. 4. Analysis 4.1 Compare the performances of combinational and sequential circuits implemented with SSIs/MSIs and PLDs. 4.2 Determine the function and performance of a given digital circuit. 4.3 Identify the faults in a given circuit and determine the consequences of the same on the circuit performance. 4.4 Draw conclusions on the behavior of a given digital circuit with regard to hazards, asynchronous inputs, and output races. 4.5 Determine the appropriateness of the choice of the ICs used in a given digital circuit. 4.6 Determine the transition sequence of a given state in a state diagram for a given input sequence. 5. Synthesis 5.1 Generate multiple digital solutions to a verbally described problem. 5.2 Modify a given digital circuit to change its performance as per specifications. 6. Evaluation 6.1 Evaluate the performance of a given digital circuit. 6.2 Assess the performance of a given digital circuit with Moore and Melay configurations. 6.3 Compare the performance of given digital circuits with respect to their speed, power consumption, number of ICs, and cost. Digital Systems: Motivation A digital circuit is one that is built with devices with two well-defined states. Such circuits can process information represented in binary form. Systems based on digital circuits touch all aspects our present day lives. The present day home products including electronic games and appliances, communication and office automation products, computers with a wide range of capabilities, and industrial instrumentation and control systems, electro- medical equipment, and defence and aerospace systems are heavily dependent on digital circuits. Many fields that emerged later to digital electronics have peaked and levelled off, but the application of digital concepts appears to be still growing exponentially. This unprecedented growth is powered by the semiconductor technology, which enables the introduction of more and complex integrated circuits. The complexity of an integrated circuit is measured in terms of the number of transistors that can be integrated into a single unit. The number of transistors in a single integrated circuit has been doubling every eighteen months (Moore’ Law) for several decades and reached the figure of almost one billion transistors per chip. This allowed the circuit designers to provide more and more complex functions in a single unit. The introduction of programmable integrated circuits in the form of microprocessors in 70s completely transformed every facet of electronics. While fixed function integrated circuits and microprocessors coexisted for considerable time, the need to make the equipment smaller and portable lead to replacement of fixed function devices with programmable devices. With the all pervasive presence of the microprocessor and the increasing usage of other programmable circuits like PLDs (Programmable Logic devices), FPGAs (Field Programmable Gate Arrays) and ASICs (Application Specific Integrated Circuits), the very nature of digital systems is continuously changing. The central role of digital circuits in all our professional and personal lives makes it imperative that every electrical and electronics engineer acquire good knowledge of relevant basic concepts and ability to work with digital circuits. At present many of the undergraduate programmes offer two to four courses in the area of digital systems, with at least two of them being core courses. The course under consideration constitutes the first course in the area of digital systems. The rate of obsolescence of knowledge, design methods, and design tools is uncomfortably high. Even the first level course in digital electronics is not exempt from this obsolescence. Any course in electronics should enable the students to design circuits to meet some stated requirements as encountered in real life situations. However, the design approaches should be based on a sound understanding of the underlying principles. The basic feature of all design problems is that all of them admit multiple solutions. The selection of the final solution depends on a variety of criteria that could include the size and cost of the substrate on which the components are assembled, the cost of components, manufacturability, reliability, speed etc. The course contents are designed to enable the students to design digital circuits of medium level of complexity taking the functional and hardware aspects in an integrated manner within the context of commercial and manufacturing constraints. However, no compromises are made with regard to theoretical aspects of the subject. Learning Objectives Module 1: Number Systems and Codes (3) Number systems: Binary, octal, and hexa-decimal number systems, binary arithmetic. Codes: Binary code, excess-3 code, gray code, error detection and correction codes. Recall 1. Describe the format of numbers of different radices? 2. What is parity of a given number? Comprehension 1. Explain how a number with one radix is converted into a number with another radix. 2. Summarize the advantages of using different number systems. 3. Interpret the arithmetic operations of binary numbers. 4. Explain the usefulness of different coding schemes. 5. Explain how errors are detected and/or corrected using different codes. Application 1. Convert a given number from one system to an equivalent number in another system. 2. Illustrate the construction of a weighted code. Analysis: Nil Synthesis: Nil Evaluation: Nil Number Systems We all use numbers to communicate and perform several tasks in our daily lives. Our present day world is characterized by measurements and numbers associated with everything. In fact, many consider if we cannot express something in terms of numbers is not worth knowing. While this is an extreme view that is difficult to justify, there is no doubt that quantification and measurement, and consequently usage of numbers, are desirable whenever possible. Manipulation of numbers is one of the early skills that the present day child is trained to acquire. The present day technology and the way of life require the usage of several number systems. Usage of decimal numbers starts very early in one’s life. Therefore, when one is confronted with number systems other than decimal, some time during the high-school years, it calls for a fundamental change in one’s framework of thinking. There have been two types of numbering systems in use through out the world. One type is symbolic in nature. Most important example of this symbolic numbering system is the one based on Roman numerals I = 1, V = 5, X = 10, L = 50, C = 100, D = 500 and M = 1000 IIMVII - 2007 While this system was in use for several centuries in Europe it is completely superseded by the weighted-position system based on Indian numerals. The Roman number system is still used in some places like watches and release dates of movies. The weighted-positional system based on the use of radix 10 is the most commonly used numbering system in most of the transactions and activities of today’s world. However, the advent of computers and the convenience of using devices that have two well defined states brought the binary system, using the radix 2, into extensive use. The use of binary number system in the field of computers and electronics also lead to the use of octal (based on radix 8) and hex-decimal system (based on radix 16). The usage of binary numbers at various levels has become so essential that it is also necessary to have a good understanding of all the binary arithmetic operations. Here we explore the weighted-position number systems and conversion from one system to the other. Weighted-Position Number System In a weighted-position numbering system using Indian numerals the value associated with a digit is dependent on its position. The value of a number is weighted sum of its digits. Consider the decimal number 2357. It can be expressed as 3 2 1 0 2357 = 2 x 10 + 3 x 10 + 5 x 10 + 7 x 10 Each weight is a power of 10 corresponding to the digit’s position. A decimal point allows negative as well as positive powers of 10 to be used; 2 1 0 -1 -2 526.47 = 5 x 10 +2 x 10 + 6 x 10 + 4 x 10 + 7 x 10 Here, 10 is called the base or radix of the number system. In a general positional number system, the radix may be any integer r 2, and a digit position i has weight i r . The general form of a number in such a system is d d , .... d , d . d d .... d p-1 p-2 1 0 -1 -2 -n where there are p digits to the left of the point (called radix point) and n digits to the right of the point. The value of the number is the sum of each digit multiplied by the corresponding power of the radix. p−1 i D = d r ∑ i i=− n Except for possible leading and trailing zeros, the representation of a number in positional system is unique (00256.230 is the same as 256.23). Obviously the ’s can take are limited by the radix value. For example a number like values d i (356) , where the suffix 5 represents the radix will be incorrect, as there can not be 5 a digit like 5 or 6 in a weighted position number system with radix 5. If the radix point is not shown in the number, then it is assumed to be located near the last right digit to its immediate right. The symbol used for the radix point is a point (.). However, a comma is used in some countries. For example 7,6 is used, instead of 7.6, to represent a number having seven as its integer component and six as its fractional. As much of the present day electronic hardware is dependent on devices that work reliably in two well defined states, a numbering system using 2 as its radix has become necessary and popular. With the radix value of 2, the binary number system will have only two numerals, namely 0 and 1. Consider the number (N) = (11100110) . 2 2 It is an eight digit binary number. The binary digits are also known as bits. Consequently the above number would be referred to as an 8-bit number. Its decimal value is given by 7 6 5 4 3 2 1 0 (N) = 1 x 2 + 1 x 2 + 1 x 2 + 0 x 2 + 0 x 2 + 1 x 2 + 1 x 2 + 0 x 2 2 = 128 + 64 + 32 + 0 + 0 + 4 + 2 + 0 = (230) 10 Consider a binary fractional number (N) = 101.101. 2 Its decimal value is given by 2 1 0 -1 -2 -3 (N) = 1 x 2 + 0 x 2 + 1 x 2 + 1 x 2 + 0 x 2 + 1 x 2 2 1 1 = 4 + 0 + 1 + 2 + 0 + 8 = 5 + 0.5 + 0.125 = (5.625) 10 From here on we consider any number without its radix specifically mentioned, as a decimal number. With the radix value of 2, the binary number system requires very long strings of 1s and 0s to represent a given number. Some of the problems associated with handling large strings of binary digits may be eased by grouping them into three digits or four digits. We can use the following groupings. ƒ Octal (radix 8 to group three binary digits) ƒ Hexadecimal (radix 16 to group four binary digits) In the octal number system the digits will have one of the following eight values 0, 1, 2, 3, 4, 5, 6 and 7. In the hexadecimal system we have one of the sixteen values 0 through 15. However, the decimal values from 10 to 15 will be represented by alphabet A (=10), B (=11), C (=12), D (=13), E (=14) and F (=15). Conversion of a binary number to an octal number or a hexadecimal number is very simple, as it requires simple grouping of the binary digits into groups of three or four. Consider the binary number 11011011. It may be converted into octal or hexadecimal numbers as = (011) (011) (001) = (331) (11011001) 2 8 = (1101) (1001) = (D9) 16 Note that adding a leading zero does not alter the value of the number. Similarly for grouping the digits in the fractional part of a binary number, trailing zeros may be added without changing the value of the number. Number System Conversions In general, conversion between numbers with different radices cannot be done by simple substitutions. Such conversions would involve arithmetic operations. Let us work out procedures for converting a number in any radix to radix 10, and vice- versa. The decimal equivalent value of a number in any radix is given by the formula p− 1 i D = d r ∑ i i=− n where r is the radix of the number and there are p digits to the left of the radix point and n digits to the right. Decimal value of the number is determined by converting each digit of the number to its radix-10 equivalent and expanding the formula using radix-10 arithmetic. Some examples are: 2 1 0 (331) = 3 x 8 + 3 x 8 + 1 x 8 = 192 + 24 + 1 = (217) 8 10 1 0 (D9) = 13 x 16 + 9 x 16 = 208 + 9 = (217) 16 10 1 0 -1 -2 (33.56) = 3 x 8 + 3 x 8 + 5 x 8 + 6 x 8 = (27.69875) 8 10 1 0 -1 (E5.A) = 14 x 16 + 5 x 16 + 10 x 16 = (304.625) 16 10 The conversion formula can be rewritten as D = ((... ((d ).r + d ) r + ....).r + d ).r + d n-1 n-2 1 0 This forms the basis for converting a decimal number D to a number with radix r. If , we divide the right hand side of the above formula by r, the remainder will be d 0 and the quotient will be Q = ((... ((d ).r + d ) r + ....).r + d n-1 n-2 1 Thus, d can be computed as the remainder of the long division of D by the radix r. 0 As the quotient Q has the same form as D, another long division by r will give d as 1 the remainder. This process can continue to produce all the digits of the number with radix r. Consider the following examples. Quotient Remainder 156 ÷ 2 78 0 78 ÷ 2 39 0 39 ÷ 2 19 1 19 ÷ 2 9 1 9 ÷ 2 4 1 4 ÷ 2 2 0 2 ÷ 2 1 0 1 ÷ 2 0 1 (156) = (10011100) 10 2 Quotient Remainder 678 ÷ 8 84 6 84 ÷ 8 10 4 10 ÷ 8 1 2 1 ÷ 8 0 1 (678) = (1246) 10 8 Quotient Remainder 678 ÷ 16 42 6 42 ÷ 16 2 A 2 ÷ 16 0 2 (678) = (2A6) 10 16 Representation of Negative Numbers In our traditional arithmetic we use the “+” sign before a number to indicate it as a positive number and a “-” sign to indicate it as a negative number. We usually omit the sign before the number if it is positive. This method of representation of numbers is called “sign-magnitude” representation. But using “+” and “-” signs on a computer is not convenient, and it becomes necessary to have some other convention to represent the signed numbers. We replace “+” sign with “0” and “-” with “1”. These two symbols already exist in the binary system. Consider the following examples: (+1100101) (01100101) 2 2 (+101.001) (0101.001) 2 2 (-10010) (110010) 2 2 (-110.101) (1110.101) 2 2 In the sign-magnitude representation of binary numbers the first digit is always treated separately. Therefore, in working with the signed binary numbers in sign-magnitude form the leading zeros should not be ignored. However, the leading zeros can be ignored after the sign bit is separated. For example, 1000101.11 = - 101.11 While the sign-magnitude representation of signed numbers appears to be natural extension of the traditional arithmetic, the arithmetic operations with signed numbers in this form are not that very convenient, either for implementation on the computer or for hardware implementation. There are two other methods of representing signed numbers. ƒ Diminished Radix Complement (DRC) or (r-1)-complement ƒ Radix Complement (RX) or r-complement When the numbers are in binary form ƒ Diminished Radix Complement will be known as “one’s-complement” ƒ Radix complement will be known as “two’s-complement”. If this representation is extended to the decimal numbers they will be known as 9’s- complement and 10’s-complement respectively. One’s Complement Representation Let A be an n-bit signed binary number in one’s complement form. The most significant bit represents the sign. If it is a “0” the number is positive and if it is a “1” the number is negative. The remaining (n-1) bits represent the magnitude, but not necessarily as a simple weighted number. Consider the following one’s complement numbers and their decimal equivalents: 0111111 + 63 0000110 + 6 0000000 + 0 1111111 + 0 1111001 - 6 1000000 - 63 There are two representations of “0”, namely 000.....0 and 111.....1. From these illustrations we observe ƒ If the most significant bit (MSD) is zero the remaining (n-1) bits directly indicate the magnitude. ƒ If the MSD is 1, the magnitude of the number is obtained by taking the complement of all the remaining (n-1) bits. For example consider one’s complement representation of -6 as given above. ƒ Leaving the first bit ‘1’ for the sign, the remaining bits 111001 do not directly represent the magnitude of the number -6. ƒ Take the complement of 111001, which becomes 000110 to determine the magnitude. In the example shown above a 7-bit number can cover the range from +63 to -63. In n-1 n-1 general an n-bit number has a range from +(2 - 1) to -(2 - 1) with two representations for zero. The representation also suggests that if A is an integer in one’s complement form, then one’s complement of A = -A One’s complement of a number is obtained by merely complementing all the digits. This relationship can be extended to fractions as well. For example if A = 0.101 (+0.625) , then the one’s complement of A is 1.010, which is 10 one’s complement representation of (-0.625) . Similarly consider the case of a mixed 10 number. A = 010011.0101 (+19.3125) 10 One’s complement of A = 101100.1010 (- 19.3125) 10 This relationship can be used to determine one’s complement representation of negative decimal numbers. Example 1: What is one’s complement binary representation of decimal number -75? Decimal number 75 requires 7 bits to represent its magnitude in the binary form. One additional bit is needed to represent the sign. Therefore, one’s complement representation of 75 = 01001011 one’s complement representation of -75 = 10110100 Two’s Complement Representation Let A be an n-bit signed binary number in two’s complement form. ƒ The most significant bit represents the sign. If it is a “0”, the number is positive, and if it is “1” the number is negative. ƒ The remaining (n-1) bits represent the magnitude, but not as a simple weighted number. Consider the following two’s complement numbers and their decimal equivalents: 0111111 + 63 0000110 + 6 0000000 + 0 1111010 - 6 1000001 - 63 1000000 - 64 There is only one representation of “0”, namely 000....0. From these illustrations we observe If most significant bit (MSD) is zero the remaining (n-1) bits directly indicate the magnitude. If the MSD is 1, the magnitude of the number is obtained by taking the complement of all the remaining (n-1) bits and adding a 1. Consider the two’s complement representation of -6. ƒ We assume we are representing it as a 7-bit number. ƒ Leave the sign bit. ƒ The remaining bits are 111010. These have to be complemented (that is 000101) and a 1 has to be added (that is 000101 + 1 = 000110 = 6). In the example shown above a 7-bit number can cover the range from +63 to -64. In n-1 n-1 general an n-bit number has a range from + (2 - 1) to - (2 ) with one representation for zero. The representation also suggests that if A is an integer in two’s complement form, then Two’s complement of A = -A Two’s complement of a number is obtained by complementing all the digits and adding ‘1’ to the LSB. This relationship can be extended to fractions as well. If A = 0.101 (+0.625) , then the two’s complement of A is 1.011, which is two’s 10 complement representation of (-0.625) . 10 Similarly consider the case of a mixed number. A = 010011.0101 (+19.3125) 10 Two’s complement of A = 101100.1011 (- 19.3125) 10 This relationship can be used to determine two’s complement representation of negative decimal numbers. Example 2: What is two’s complement binary representation of decimal number -75? Decimal number 75 requires 7 bits to represent its magnitude in the binary form. One additional bit is needed to represent the sign. Therefore, Two’s complement representation of 75 = 01001011 Two’s complement representation of -75 = 10110101 Binary coding Assign each item of information a unique combination of 1s and 0s  n is the number of bits in the code word  x be the number of unique words If n = 1, then x = 2 (0, 1) n = 2, then x = 4 (00, 01, 10, 11) n = 3, then x = 8 (000,001,010 ...111) j n = j, then x = 2 December 2006 N.J. Rao M1L2 6Error Detection and Correction • Error rate cannot be reduced to zero • We need a mechanism of correcting the errors that occur • It is not always possible or may prove to be expensive • It is necessary to know if an error occurred • If an occurrence of error is known, data may be retransmitted • Data integrity is improved by encoding • Encoding may be done for error correction or merely for error detection. December 2006 N.J. Rao M1L2 31Single error detecting and single error correcting coding scheme The bits are conceptually arranged in a two-dimensional array, and parity bits are provided to check both the rows and the columns Row Parity Information bits bits Column parity bits December 2006 N.J. Rao M1L2 36CODES: Introduction When we wish to send information over long distances unambiguously it becomes necessary to modify (encoding) the information into some form before sending, and convert (decode) at the receiving end to get back the original information. This process of encoding and decoding is necessary because the channel through which the information is sent may distort the transmitted information. Much of the information is sent as numbers. While these numbers are created using simple weighted-positional numbering systems, they need to be encoded before transmission. The modifications to numbers were based on changing the weights, but predominantly on some form of binary encoding. There are several codes in use in the context of present day information technology, and more and more new codes are being generated to meet the new demands. Coding is the process of altering the characteristics of information to make it more suitable for intended application By assigning each item of information a unique combination of 1s and 0s we transform some given information into binary coded form. The bit combinations are referred to as “words” or “code words”. In the field of digital systems and computers different bit combinations have different designations. Bit - a binary digit 0 or 1 Nibble - a group of four bits Byte - a group of eight bits Word - a group of sixteen bits; a word has two bytes or four nibbles Sometimes ‘word’ is used to designate a larger group of bits also, for example 32 bit or 64 bit words. We need and use coding of information for a variety of reasons ƒ to increase efficiency of transmission, ƒ to make it error free, ƒ to enable us to correct it if errors occurred, ƒ to inform the sender if an error occurred in the received information etc. ƒ for security reasons to limit the accessibility of information ƒ to standardise a universal code that can be used by all Coding schemes have to be designed to suit the security requirements and the complexity of the medium over which information is transmitted. Decoding is the process of reconstructing source information from the encoded information. Decoding process can be more complex than coding if we do not have prior knowledge of coding schemes. In view of the modern day requirements of efficient, error free and secure information transmission coding theory is an extremely important subject. However, at this stage of learning digital systems we confine ourselves to familiarising with a few commonly used codes and their properties. We will be mainly concerned with binary codes. In binary coding we use binary digits or bits (0 and 1) to code the elements of an information set. Let n be the number of bits in the code word and x be the number of unique words. If n = 1, then x = 2 (0, 1) n = 2, then x = 4 (00, 01, 10, 11) n = 3, then x = 8 (000,001,010 ...111) . j n = j, then x = 2 From this we can conclude that if we are given elements of information to code into binary coded format, j x 2 or j log x 2 3.32 log x 10 where j is the number of bits in a code word. For example, if we want to code alphanumeric information (26 alphabetic characters + 10 decimals digits = 36 elements of information), we require j 3.32 log 36 10 j 5.16 bits

Advise: Why You Wasting Money in Costly SEO Tools, Use World's Best Free SEO Tool Ubersuggest.