Title: Digital System Design Digital Systems and Binary Number
1Digital System DesignDigital Systems and Binary
Number
- Assoc. Prof. Pradondet Nilagupta
- pom_at_ku.ac.th
2Acknowledgement
- This lecture note is modified from Engin112
Digital Design by Prof. Maciej Ciesielski, Prof.
Tilman Wolf, University of Massachusetts Amherst
and original slide from publisher -
3Digital Hardware Systems
Digital Systems
Digital vs. Analog Waveforms
Analog values vary over a broad range
continuously
Digital only assumes discrete values
4Digital Circuits
- Digital circuit can be represented by a black-box
with inputs on one side, and outputs on the other.
The input/output signals are discrete/digital in
nature, typically with two distinct voltages (a
high voltage and a low voltage).
In contrast, analog circuits use continuous
signals.
5Digital Hardware Systems
- Digital Binary System
- Two discrete values
- yes, on, 5 volts, current flowing, "1"
- no, off, 0 volts, no current flowing, "0
- Advantage of binary systems
- rigorous mathematical foundation based on logic
- its easy to implement
both the door must be open and the car running
before I can back out
IF the garage door is open AND the car is
running THEN the car can be backed out of the
garage
the preconditions must be true to imply the
conclusion
6Binary Bit and Group Definitions
- Bit - a single binary digit
- Nibble - a group of four bits
- Byte - a group of eight bits
- Word - depends on processor 8, 16, 32, or 64
bits - LSB - Least Significant Bit (on the right)
- MSB - Most Significant Bit (on the left)
7Binary Representation of Information
- Information divided into groups of symbols
- 26 English letters
- 10 decimal digits
- 50 states in USA
- Digital systems manipulate information as 1s
0s - The mapping of symbols to binary value is known
as a code - The mapping must be unique
8Digital Systems
- Digital systems operate on discrete elements of
information - Numbers (e.g., pocket calculator) -gt digits -gt
digital - Letters (e.g., word processor)
- Pictures (e.g., digital cameras)
- For a digital systems to operate on a continuous
data, it needs to quantize (digitize) that data
first - Covert data into digital representation
- Topics
- How are numbers represented in digital systems
- How computer performs basic arithmetic operations
9Numbers
- Common numbering system is base10
- Why?
- Numbers in base 10
- Ten different digits 0, 1, 2, 3, 4, 5, 6, 7, 8,
9 - Number is represented by a sequence of digits an
an-1 a1 a0 - Value of number is an10nan-110n-1a1101a0
100 - Positional notation
- General equation
- May contain a decimal point
- Negative index for digits after decimal point
- Examples
- 1234.56 if ambiguous, write (1234.56)10
- Leading zeros cause no problems 00001234.56
10Number Systems
- General form, with base r
- Base r is also called radix
- In decimal system r 10 in binary r 2
- Coefficients in positional notation are 0,1,,
r-1. - What is the range of values of an n-bit number in
radix r ? - Minimum value 0
- Maximum value rn-1
- Number of different values rn
11Positional Number Systems
- Numeric value is represented by a series of
digits - Number of digits used is fixed by radix
- Digits multiplied by a power of the radix
- Digit order determines radix powers
- Very large numbers can be represented
- Can also represent fractional values.
12Positional Integer Number Values
Given a digit series of The full expression
for the represented value is
13Positional Fractional Number Values
Given a digit series of The full expression
for the represented value is
14Binary Numbers
- Base 2 number use only two digits 0, 1
- Why?
- Digits need to be represented in a system
- Electronic systems typically use voltage levels
- Representing 10 different voltages reliably is
difficult - Binary decision is much easier (On, Off)
- Binary representation is ideal
- Minimal number of digits
- Easily represented in voltages
15Examples for Binary Numbers
- What value is represented by (01001)2?
- Leading zero makes no difference
- (1001)2 translates into 123022021120800
1(9)10 - Same process for numbers with decimal point
- What is the value of (1001.1001)2?
- (1001.1001)2 12302202112012-102-20
2-312-480011/2001/16(9.5625)10 - Important its NOT (9.9)10!
- Can you count binary?
- How far can you count with 10 fingers?
16Binary Number Terminology
- Base is also called radix
- Binary numbers are made of binary digits (bits)
- Groups of four bits are called nibbles
- E.g., (1101)2
- Groups of eight bits are called bytes
- E.g., (01001101)2
- What is the range of values of an n-bit binary
number? - Minimum value 0
- Maximum value 2n-1
- Number of different values 2n
- Powers of 2 are important in ECE
17Powers of 2
- You must memorize all powers of 2 up to 216!
- Other important powers of 2
- Trick to simplify estimation
- 21010241000103
- Example 232423041094 billion
- Prefixes
- kilo (103 210), Mega (106 220), Giga (109
230), Tera (1012 240), - In computer systems typically based on powers of 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536
8 16 24 32 64
256 65536 16777216 4294967296 18446744073709551616
18Memory Size
- Definition of Mega and Giga can make a
difference! - Disk drive manufacturers define it conveniently
- How many more MP3 songs could you store on this
80GB disk if GB was based on the real computer
systems definition? - Difference is 8023080109 5,899,345,920 bytes
- 128kbit MP3 coding 16kB per second
- 5,899,345,920/16,384 360000 s. 100 hours of
music
19Other Number Systems
- Octal number system
- Digits 0, 1, 7
- Aggregates 3 digits of binary system (i.e., 3-bit
number) - E.g., (57)8 (47)10
- Hexadecimal number system
- 16 digits require 6 new digit symbols 0, 9, A,
B, C, D, E, F - Aggregates 4 digits of binary system (1 nibble or
half byte) - E.g., (1F)16 (31)10
- Conversion between system
20Number Base Conversions
- Conversion from base r to decimal
- Expansion to power series and
addition of terms - Conversion from decimal to base r
- Divide number and successive quotients by r
- Sequence of remainders is base r number
- Example convert (41)10 to binary (r2)
- 41 20 ? 2 1
- 20 10 ? 2 0
- 10 5 ? 2 0
- 5 2 ? 2 1
- 2 1 ? 2 0
- 1 0 ? 2 1
a0 1 a1 0 a2 0 a3 1 a4 0 a5 1
(101001)2
21Number Base Conversions
- Conversion to/from octal and hexadecimal
- Easier if done via binary
- 3 or 4 bit sequences correspond to digit
- Example
(2414)10(100101101110)2
- Direct conversion possible, too
- 2414 301 ? 8 6
- 301 37 ? 8 5
- 37 4 ? 8 5
- 4 0 ? 8 4 gt (4 5 5 6)8
22Number Systems - Summary
- Base r numbers
- Binary
- Octal
- Hexadecimal
- Conversion between number systems
- Summation of power series
- Division with remainders
- Powers of 2
- Computer systems based on powers of 2
- kilo 1024
- Mega 1024 1024
- Giga 1024 1024 1024
- Next
- Computer arithmetic
- Signs, complements
23Computer Arithmetic
- Computer arithmetic
- Addition, subtraction
- Multiplication
- Signed numbers
- Complements
24Binary Addition
- Binary addition works like normal addition
- Stay within 0,1
- Carries as usual
- Example
Carry 111111
111101 10111
1010100
- Addition of multiple numbers possible
- Carry gets a bit more difficult
25Binary Subtraction
- Subtraction same as normal subtraction
- Borrows as usual
- Example
10 0
0 10
111101 - 10111
0
1
1
0
0
1
26Binary Multiplication
- Binary multiplication
- Same as normal multiplication
- Multiplication a lot easier in binary domain
- Example
111101 1010
000000
111101
000000
111101
1001100010
27Signed Numbers
- How are signed numbers handled in base 10?
- Plus or minus sign placed in front of number
- Can we do that for binary numbers?
- Sign needs to be represented in digital system
- Only choice are 0 and 1
- 0 indicates
- 1 indicates
- Examples on five-bit numbers
- 01101 11101 00000 10000
- 13 13 0 0
- Signed Magnitude representation
28Arithmetic with Signed Magnitude
- Addition example 1
- Plus signs are leading zeros -gt no problem
- 01001 (9)10
- 00010 (2)10
- 01011 (11)10
- Addition example 2
- What happens with negative numbers?
- 01001 (9)10
- 10010 (2)10
- 11011 ??? (7)10
- Problem negative numbers
- Sign can turn addition into subtraction
29Signed Magnitude - Problems
- Need to consider many cases to implement addition
correctly - Decision process for (A) (B)
- If A ? B then
- If A lt B then
magnitude calculation
 A Â
 -
B (AB), (A-B), -
 - (A-B), (AB), -
sign of result
 A Â
 -
B (AB), (B-A),
 - (B-A), - (AB), -
30Signed Magnitude Representation
- Arithmetic with signed magnitude is difficult
- Two representations of zero
- Different cases for addition and subtraction
1000
31Complements
- Complements allow easier arithmetic
- Representation of negative numbers a bit more
involved - Two types of complements
- Radix complement r s complement
- Decimal 10s complement
- Binary 2s complement
- Diminished radix complement (r1)s complement
- Decimal 9s complement
- Binary 1s complement
32Diminished Radix Complement
- Given a number N in base r having n digits, the
(r1)s complement of N is defined as - (r n 1) N
- Example for 6-digit decimal numbers
- 9s complement is (r n1)N (1061)N
999999N - 9s complement of 546700 is 999999546700
453299 - Example for 7-digit binary numbers
- 1s complement is (r n 1) N (271)N
1111111N - 1s complement of 1011000 is 11111111011000
0100111 - Observation
- Subtraction from (rn1) will never require a
borrow - Diminished radix complement can be computed
digit-by-digit - For binary 1 0 1 and 1 1 0
- Flips 0s to 1s and 1s to 0 (bit
complementation)
33Ones Complement Representation
- 1s complement is simple to compute
- Bit complementation
- Still, two representations of zero
1000
34Radix Complement
- The rs complement of an n-digit number N in base
r is defined as - r n N for N ? 0 and 0 for N 0
- Radix complement is diminished radix complement
1 (r n 1) N 1 r n N - Example for 6-digit decimal numbers
- 10s complement is r n N 106N 1000000N
- 10s complement of 546700 is 1000000546700
453300 - Rule Leave least significant 0s unchanged,
subtract first nonzero least significant digit
from 10, subtract all higher significant digits
from 9. - Example for 7-digit binary numbers
- 2s complement is r nN 27N 10000000N
- 2s complement of 1011000 is 100000001011000
0101000 - Rule Leave least significant 0s and first 1
unchanged, replace 1s with 0s and 0s with 1s
in all higher significant digits.
35Twos Complement Representation
- Arithmetic with 2s complement is most efficient
- Bit complementation 1
- Single representation of zero!
0
1000
36Complements - Summary
- Complement of complement is original number
- Diminished radix complement
- (r n1)((r n1)N) r n1r n1 N N
- Radix complement
- r n(r nN) r nr n N N
- Representation of zero
- Radix complement 0
- Diminished radix complement r n 1 and its
complement 0 - Radix points
- Remove radix point
- Compute complement
- Put radix point back at same relative position
37Comparison ( n4 )
Decimal
Signed Magnitude
Ones Complement
Twos Complement
-8 -
-
1000 -7
1111
1000 1001 -6
1110
1001
1010 -5 1101
1010
1011 -4
1100 1011
1100 -3
1011
1100
1101 -2 1010
1101
1110 -1
1001 1110
1111 0
0000 or 1000 0000
or 1111 0000
1 0001
0001
0001 2 0010
0010
0010 3
0011
0011 0011 4
0100
0100
0100 5 0101
0101
0101 6
0110 0110
0110 7
0111
0111 0111
38Subtraction with Complements
- Subtraction M N
- Add minuend M to rs complement of subtrahend N
- M N M (rn N) M N r n
- What about the additional r n ?
- If M ? N
- Then M N r n ? r n
- With n bits only numbers lt r n can be expressed
- n1st digit is ignored (drop the carry out bit)
- If M lt N
- Then M N r n r n (N M) r s
complement of (N-M) - r s complement signifies negative number
- So, (N M) M N
39Arithmetic with Radix Complement
- Subtraction works as addition of complement
- Addition/subtraction of signed numbers
- Negative numbers are expressed as r s complement
- Simple addition yields correct result
- No need to distinguish different cases
- Addition/subtraction of unsigned numbers
- Can be performed on same hardware as signed
numbers - Most modern digital systems use 2s complement
40Twos Complement Overflow
Consider two 8-bit 2s complement numbers. I can
represent the signed integers -128 to 127 using
this representation.What if I do (1) (127)
128. The number 128 is OUT of the RANGE
that I can represent with 8 bits. What happens
when I do the binary addition?
127 7F 1 01------------------
- 128 / 80 (this is actually -128 as a
twos complement
number!!! - the wrong answer!!!)How do I know
if overflowed occurred? Added two POSITIVE
numbers, and got a NEGATIVE result.
41Detecting Twos Complement Overflow
Twos complement overflow occurs is Add two
POSITIVE numbers and get a NEGATIVE result
Add two NEGATIVE numbers and get a POSITIVE
resultI CANNOT get twos complement overflow if
I add a NEGATIVE and a POSITIVE number
together. The Carry out of the Most Significant
Bit means nothing if the numbers are twos
complement numbers.
42Overflow Conditions
Add two positive numbers to get a negative
number or two negative numbers to get a positive
number
43Example Overflow
0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0
1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1
5 3 -8
-7 -2 7
Overflow
Overflow
0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1
1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0
5 2 7
-3 -5 -8
No overflow
No overflow
Overflow when carry in to sign does not equal
carry out
44Floating Point Numbers (I)
- Fixed point numbers have limited range.
- To represent very large or very small numbers, we
use floating point numbers (cf. scientific
numbers). - Examples
- 0.23 x 1023 (very large positive number)
- -0.1239 x 10-10 (very small negative number)
45Floating Point Numbers (II)
- Floating point numbers have three parts
- mantissa, base, and exponent
- Base is usually fixed for each number system.
- Therefore, needs only mantissa and exponent.
46Floating Point Numbers (III)
- Mantissa is usually in normalised form
- (base 10) 23 x 1021 normalised to 0.23 x
1023 - (base 10) -0.0017 x 1021 normalised to
-0.17 x 1019 - (base 2) 0.01101 x 23 normalised to
0.1101 x 22 - A 16-bit floating point number may have 10-bit
mantissa and 6-bit exponent. - More bits in exponent gives larger range.
- More bits for mantissa gives better precision.
47Arithmetic with Floating Point Numbers (I)
- Arithmetic is more difficult for floating point
numbers. - MULTIPLICATION
- Steps (i) multiply the mantissa
- (ii) add-up the exponents
- (iii) normalise
- Example
- (0.12 x 102)10 x (0.2 x 1030)10
- (0.12 x 0.2)10 x 10230
- (0.024)10 x 1032 (normalise)
- (0.24 x 1031)10
48Arithmetic with Floating Point Numbers (II)
- ADDITION
- Steps (i) equalise the exponents
- (ii) add-up the mantissa
- (iii) normalise
- Example
- (0.12 x 103)10 (0.2 x 102)10
- (0.12 x 103)10 (0.02 x 103)10 (equalise
exponents) - (0.12 0.02)10 x 103 (add
mantissa) - (0.14 x 103)10
- Can you figure out how to do perform SUBTRACTION
and DIVISION for (binary/decimal) floating-point
numbers? (Hint remember sometimes, the mantissa
might need normalizing)
49Weighted and Unweighted Codes
- Most numeric number representations are in a
class known as Weighted Codes where - Binary integers and fractions are special case
where weights are powers of 2 - Unweighted codes are codes that cannot be
assigned a weight value for each bit
50Binary Coded Decimal
- Four bits are used to represent each decimal
digit - In each 4-bit group, 6 values are not used
- Many possible codes, natural BCD (equivalent
binary digits) most common - BCD is not as efficient as binary
- BCD is easy to convert to/from decimal (it really
is decimal with different symbols) - BCD add/subtract circuits are complex
51BCD Code Examples
Weighted codes
Unweighted code
Digit 0 1 2 3 4 5 6 7 8 9
8421 0000 0001 0010 0011 0100 0101 0110 0111 1000
1001
84-2-1 0000 0111 0110 0101 0100 1011 1010 1001 10
00 1111
XS3 0011 0100 0101 0110 0111 1000 1001 1010 1011
1100
The 8421 or natural BCD code is the most common
BCD code in use
52Other Decimal Codes
Weighted codes
Unweighted code
Decimal digit BCD 8421 2421 Excess-3 8 4 -2 -1
0 0000 0000 0011 0000
1 0001 0001 0100 0111
2 0010 0010 0101 0110
3 0011 0011 0110 0101
4 0100 0100 0111 0100
5 0101 1011 1000 1011
6 0110 1100 1001 1010
7 0111 1101 1010 1001
8 1000 1110 1011 1000
9 1001 1111 1100 1111
The 8421 or natural BCD code is the most common
BCD code in use
53BCD Addition
Case 1
Case 2
0001 1 0101 5 (0) 0110 (0) 6
0110 6 0101 5 (0) 1011 (1) 1
WRONG!
Case 3
1000 8 1001 9 (1) 0001 (1) 7
Note that for cases 2 and 3, adding a factor of 6
(0110) gives us the correct result.
54BCD Addition (cont.)
- BCD addition is therefore performed as follows
- 1) Add the two BCD digits together using normal
binary addition - 2) Check if correction is needed
- a) 4-bit sum is in range of 1010 to 1111
- b) carry out of MSB 1
- 3) If correction is required, add 0110 to 4-bit
sum to get the correct result BCD carry out 1
55BCD Negative Number Representation
- Similar to binary negative number representation
except r 10. - BCD sign-magnitude
- MSD (sign digit options)
- MSD 0 (positive) not equal to 0 negative
- MSD range of 0-4 positive 5-9 negative
- BCD 10s complement
- -N ? 10r - N 9s complement 1
- BCD 9s complement
- invert each BCD digit (0?9, 1 ? 8, 2 ? 7,3 ? 6,
7 ? 2, 8 ? 1, 9 ? 0)
56Negative BCD Numbers
- 84-2-1 and XS3 codes allow for easy digit
inversion. - XS3 code is also easy to implement
- Addition is like binary
- Correction factor is -3 or 3
57Decimal Arithmetic
- Everything needs to be 4-bit aligned
- represented by 0 (0000)
- represented by 9 (1001)
- Signed magnitude representation or complements
- Signed magnitude hardly used
- 10s complement most common
- Example 375 (240)
- Negative numbers represented by 10s complement
- 10s complement of 240 is 104 240 9760
- Addition of all digits and discard of end carry
- Sign of result automatically correct
0 375
9 760
0 135
58Mechanical encoder with sequential sector
numbering
At boundaries can get a code different than
either adjacent sector
59Gray Codes
- Grey codes are minimum change codes
- From one numeric representation to the next, only
one bit changes - Primary use is in numeric input encoding apps.
where we expect non-random input values changes
(I.e. value n to either n-1 or n1) - Milling machine table position
- Rotary shaft position
60Rotary Encoder
- an electro-mechanical device used to convert the
angular position of a shaft or axle to a digital
code, making it a sort of transducer. These
devices are used in robotics, in top-of-the-line
photographic lenses, in computer input devices
(such as optomechanical mice and trackballs), and
in rotating radar platforms.
61Standard binary encoding
Sector Contact 1 Contact 2 Contact 3 Angle
1 off off off 0 to 45
2 off off on 45 to 90
3 off on off 90 to 135
4 off on on 135 to 180
5 on off off 180 to 225
6 on off on 225 to 270
7 on on off 270 to 315
8 on on on 315 to 360
the drawback that if the disc stops between two
adjacent sectors, or the contacts are not
perfectly aligned, it can be impossible to
determine the angle of the shaft.
62Example problem
- off- on- on (starting position)
- on- on- on (first, contact 1 switches on)
- on- on- off (next, contact 3 switches off)
- on- off- off (finally, contact 2 switches off)
- The sequence are 4,8,7,and then 5.
- The shaft appears to have jumped from sector 4 to
sector 8, then gone backwards to sector 7, then
backwards again to sector 5, which is where we
expected to find it. - In many situations, this behavior is undesirable
and could cause the system to fail. - For example, if the encoder were used in a robot
arm, the controller would think that the arm was
in the wrong position, and try to correct the
error by turning it through 180, perhaps causing
damage to the arm.
63Gray encoding
Sector Contact 1 Contact 2 Contact 3 Angle
1 off off off 0 to 45
2 off off on 45 to 90
3 off on on 90 to 135
4 off on off 135 to 180
5 on on off 180 to 225
6 on on on 225 to 270
7 on off on 270 to 315
8 on off off 315 to 360
In the previous example, the transition from
sector 4 to sector 5, like all other transitions,
involves only one of the contacts changing its
state from on to off or vice versa. This means
that the sequence of incorrect codes shown in the
previous illustration cannot happen here
64Gray Code for decimal Digits
Gray Code0 00001 00012
00113 00104 01105
11106 10107 10118
10019 1000
A Gray code changes by only 1 bit for adjacent
values. This is also called a thumbwheel code
because a thumbwheel for choosing a decimal digit
can only change to an adjacent value (4 to 5 to
6, etc) with each click of the thumbwheel. This
allows the binary output of the thumbwheel to
only change one bit at a time this can help
reduce circuit complexity and also reduce signal
noise.
65Gray Codes (cont.)
66Binary Code to Gray Code Conversion
- Convert n bit Binary code into n bit Gray Code
- Bit i of the Gray Code is obtained by comparing
bits i and i1 of the Binay Code - Add extra 0
to the left of the Binary code- If bits i and
i1 in the Binary code are the same then bit i of
the Gray code is 0 , else bit i is 1. - Example Binary 10011
010011Gray Code 11010 - Exercise - Convert the Binary Code 11101 into
Gray code - Convert the Gray
Code 1101 !! - Answer - The gray Code is 10011
- The Binary Code is 1001
67Alphanumeric Representation
- Binary codes used to represent alphabetic and
numeric characters - Two most common are
- ASCII, 7 bit code, 128 symbols
- EBCDIC, 8 bit code, 256 symbols
- Problems can arise when comparing symbol values
(collation) - Comparing A to a in ASCII system yields
different results in an EBCDIC system.
68ASCII CODE
- The ASCII code (American Standard Code for
Information Interchange) is a 7-bit code for
Character data. Typically 8 bits are actually
used with the 8th bit being zero or used for
error detection (parity checking).8 bits 1
Byte. A 01000001 41
00100110 267 bits can only represent 27
different values (128). This enough to represent
the Latin alphabet (A-Z, a-z, 0-9, punctuation
marks, some symbols like ), but what about other
symbols or other languages?
69ASCII CODE
b6b5b4
b3b2b1b0 000 001 010 011 100 101 110 111
0000 NUL DLE SP 0 _at_ P p
0001 SOH DC1 ! 1 A Q a q
0010 STX DC2 2 B R b r
0011 ETX DC3 3 C S c s
0100 EQT DC4 4 D T d t
0101 ENQ NAK 5 E U e u
0110 ACK SYN 6 F V f v
0111 BEL ETB 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y I y
1010 LF SUB J Z j z
1011 VT ESC K k
1100 FF FS , lt L \ l
1101 CR GS - M m
1110 S0 RS . gt N n
1111 S1 US / ? O _ o DEL
70UNICODE
- UNICODE is a 16-bit code for representing
alphanumeric data. With 16 bits, can represent
216 or 65536 different symbols.16 bits 2 Bytes
per character. - 0041-005A A-Z0061-4007A a-z
- Some other alphabet/symbol ranges
- 3400-3d2d Korean Hangul Symbols3040-318F
Hiranga, Katakana, Bopomofo,
Hangul4E00-9FFF Han (Chinese, Japenese,
Korean)UNICODE used by Web browsers, Java, most
software these days.
71Error Detection and Error Correction Code
- the transmission of data over a channel may
result in error due to interference, noise, etc. - hence, data will be corrupted
- some schemes have been devised to detect and
correct the error - it is usually accomplished by inserting extra
bits in the data being transmitted
72Single error detection with parity
- simplest method for error detection
- insert an additional parity bit for transmission
- even parity may be generated by
- for a 4-bit data
- e.g. for a 4-bit data 0110
-
- odd parity may be obtained by
-
- e.g.
73Parity Bit
- ASCII code may have an extra bit appended to
detect data transmission errors - P 0 if the number of 1s in the character is
even, else P 1 (even parity) - P 0 if the number of 1s in the character is
odd, else P 1 (odd parity) - If any single bit changes, parity will be wrong
at receive end
Even parity Odd parity ASCII A
1000001 01000001 11000001 ASCII T
1010100 11010100 01010100
74Parity Code Example
- Concatenate a parity bit to the ASCII code for
the characters 0, X, and to produce both
odd-parity and even-parity codes.
Character ASCII Odd-Parity ASCII Even-Parity ASCII
0 0110000 10110000 00110000
X 1011000 01011000 11011000
0111100 10111100 00111100
75Binary Storage and Registers
- How is information stored on a digital system?
- Bits are stored in binary cells
- Binary cell can have two stable states 0 and
1 - Binary cells are grouped into registers
- n cells make up n-bit register
- Size of registers is typically predefined
- Simple microcontroller 8 bits 1 byte
- Pentium 32 bits 4 bytes
- Mac G5 64 bits 8 bytes
- Digital system can usually process entire
registers - Register transfer operation specify processing
76Binary Data Storage
- Binary cells store individual bits of data
- Multiple cells form a register.
- Data in registers can indicate different values
- Hex (decimal)
- BCD
- ASCII
0
0
1
0
1
0
1
1
Binary Cell
77Register Transfer
- Data can move from register to register.
- Digital logic used to process data
- We will learn to design this logic
78Register Example
- Data input at keyboard
- Shifted into place
- Stored in memory
79Register Transfer Operations
- We need processing
- We need storage
- We need communication
- You will learn to use and
- design these components.
Designing digital logic is focus of rest of course
80Binary Logic
- Binary logic uses two possible values
- 1 and 0
- yes and no
- true and false
- Can be represented by variables A, B, C, x, y,
z, - Logic functions modify input values
- What is the minimum number of inputs?
- 1 input -gt pretty uninteresting, inverter or wire
only - 2 inputs -gt basic logic functions
- What are possible logic functions?
- NOT, AND, OR
- Others can be derived from those (NAND, XOR, etc.)
81NOT Function
- Complement operation
- Single input
- Inverts value of input
- Symbolized by prime x or overbar
- Truth table
- Input combinations on the left
- Output of function on the right
- Graphic symbol
- NOT gate
- Little circle indicates inversion
input
output
x x'
0 1
1 0
82AND Function
- Operation to check if two conditions are met
- Two inputs
- Output 1 if and only if both inputs are 1
- Symbolized by dot or absence of operator
- xy or xy
- Truth table
- Needs to consider 22 4 input combinations
- Graphic symbol
- AND gate
83OR Function
- Operation to check if at least one condition is
met - Two inputs
- Output 1 if any one or both inputs are 1
- Symbolized by plus sign x y
- Truth table
- Graphic symbol
- OR gate
x y z
0 0 0
0 1 1
1 0 1
1 1 1
84Comparison of Functions
- Timing diagrams (waveforms)
- Horizontal axis is time ( t )
- Vertical axis shows signals, each with two
different voltage levels
t
85Multiple Inputs
- Two inputs might not be enough
- 3-input AND gate
- 4-input OR gate
- What are the rules for aggregating functions?
- Boolean algebra