Download a 1 - kahrbjy

Document related concepts

Immunity-aware programming wikipedia , lookup

Manchester Mark 1 wikipedia , lookup

Transcript
EE345 - Micro-Controllers
Digital Systems and Binary Numbers
Prof. Ahmad Abu-El-Haija
Acknowledgement

This presentation is a modified version of lecture notes
prepared by Dr. Pradondet Nilagupta, Kasetsart University.
The latter is also a modified version based upon
presentations by Prof. Maciej Ciesielski and Prof. Tilman
Wolf, University of Massachusetts Amherst, and original
slides from the publisher.
Digital System Design
May 3, 2017
2
Digital Hardware Systems
Digital Systems
Digital vs. Analog Waveforms
+5
+5
1
0
1
V
Time
–5
Time
–5
Digital:
only assumes discrete values
EE345 – Micro-Controllers
V
May 3, 2017
Analog:
values vary over a broad range
continuously
3
Digital Circuits

Digital circuit can be represented by a black-box with
inputs on one side, and outputs on the other.
inputs
:
Digital
circuit
:
outputs
The input/output signals are discrete/digital in nature,
typically with two distinct voltages (a high voltage and a
low voltage).
High
Low
In contrast, analog circuits use continuous signals.
EE345 – Micro-Controllers
May 3, 2017
4
Digital 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
it’s easy to implement
IF the garage door is open
AND the car is running
THEN the car can be backed out of the garage
both the door must
be open and the car
running before I can
back out
the preconditions must be true to imply the conclusion
EE345 – Micro-Controllers
May 3, 2017
5
Binary 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)
EE345 – Micro-Controllers
May 3, 2017
6
Binary Representation of Information

Information divided into groups of symbols







26 English letters
28 Arabic letters
10 decimal digits
22 Arab countries
Digital systems manipulate information as 1’s &
0’s
The mapping of symbols to binary value is known
as a “code”
The mapping must be unique
EE345 – Micro-Controllers
May 3, 2017
7
Digital Systems

Digital systems operate on discrete elements of
information




For a digital systems to operate on a continuous data, it
needs to quantize (digitize) that data first


Numbers (e.g., pocket calculator) -> “digits” -> “digital”
Letters (e.g., word processor)
Pictures (e.g., digital cameras)
Covert data into digital representation
Topics:


How are numbers represented in digital systems
How computer performs basic arithmetic operations
EE345 – Micro-Controllers
May 3, 2017
8
Numbers

Common numbering system is “base10”


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: an×10n+an-1×10n-1+…+a1×101+a0×100
Positional notation




Why?
i
a

10
General equation:  i
i
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
EE345 – Micro-Controllers
May 3, 2017
9
Number Systems

General form, with base r :
a r
i
i
i

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
EE345 – Micro-Controllers
May 3, 2017
10
Positional 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.
EE345 – Micro-Controllers
May 3, 2017
11
Positional Integer Number Values
Given a digit series of
A
n1
... A3 A2 A1 A0 .( Radix point)
The full expression for the represented value is
An1  r
n 1
 ... A3  r  A2  r  A1  r
3
2
1
A0  r
0
or
i  n 1
 Ai  r
i
i 0
EE345 – Micro-Controllers
May 3, 2017
12
Positional Fractional Number Values
Given a digit series of
(Radix point)
A A A A
1
2
3
4
... A m
The full expression for the represented value is
A r
1
1
2
 A 2  r  A3  r
3
A r
4
4
 ... A m  r
m
or
i  m
 A r
i  1
EE345 – Micro-Controllers
i
i
May 3, 2017
13
Binary Numbers

Base 2 number use only two digits: 0, 1


Digits need to be represented in a system




Why?
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
EE345 – Micro-Controllers
May 3, 2017
14
Examples for Binary Numbers

What value is represented by (01001)2?



Same process for numbers with decimal point




Leading zero makes no difference
(1001)2 translates into 1×23+0×22+0×21+1×20=8+0+0+1=(9)10
What is the value of (1001.1001)2?
(1001.1001)2 =
1×23+0×22+0×21+1×20+1×2-1+0×2-2+0×2-3+1×2-4=
8+0+0+1+1/2+0+0+1/16=(9.5625)10
Important: it’s NOT (9.9)10!
Can you count binary?

How far can you count with 10 fingers?
EE345 – Micro-Controllers
May 3, 2017
15
Binary Number Terminology



Base is also called “radix”
Binary numbers are made of binary digits (bits)
Groups of four bits are called “nibbles”


Groups of eight bits are called “bytes”


E.g., (01001101)2
What is the range of values of an n-bit binary number?




E.g., (1101)2
Minimum value: 0
Maximum value: 2n-1
Number of different values: 2n
Powers of 2 are important
EE345 – Micro-Controllers
May 3, 2017
16
Powers of 2
You must memorize all powers of 2 up to 216!



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
Other important powers of 2:
16
24
32
64
256
65536
16777216
4294967296
18446744073709551616
Trick to simplify estimation:



8
210=1024≈1000=103
Example: 232=4×230≈4×109=4 billion
Prefixes:

kilo (103 ≈ 210), Mega (106 ≈ 220), Giga (109 ≈ 230), Tera (1012 ≈ 240), …

Computer systems are typically based on powers of 2
EE345 – Micro-Controllers
May 3, 2017
17
Other Number Systems

Octal number system




Hexadecimal number system




Digits 0, 1, … 7
Aggregates 3 digits of binary system (i.e., 3-bit number)
E.g., (57)8 = (47)10
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:
octal (base 8)
decimal (base 10)
binary (base 2)
hexadecimal
(base16)
EE345 – Micro-Controllers
May 3, 2017
18
Number Base Conversions

Conversion from base r to decimal

Expansion to power series
i
a

r
 i and addition of terms
i

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 (r=2)
a0 = 1

41 = 20  2 + 1
a1 = 0

20 = 10  2 + 0
a2 = 0

10 = 5  2 + 0
(101001)2
a3 = 1

5 = 22+1
a4 = 0

2 = 12+0
a5 = 1

1 = 02+1
EE345 – Micro-Controllers
May 3, 2017
19
Number Base Conversions

Conversion to/from octal and hexadecimal



Easier if done via binary
3 or 4 bit sequences correspond to digit
Example:
(4 5 5 6)8
(2414)10=(100101101110)2
(9
EE345 – Micro-Controllers
May 3, 2017
6
E)16
20
Number Systems - Summary

Base r numbers




Conversion between number systems



Summation of power series
Division with remainders
Powers of 2





Binary
Octal
Hexadecimal
Computer systems based on powers of 2
kilo = 1024
Mega = 1024 × 1024
Giga = 1024 × 1024 × 1024
Next:


Computer arithmetic
Signs, complements
EE345 – Micro-Controllers
May 3, 2017
21
Computer Arithmetic

Computer arithmetic




Addition, subtraction
Multiplication
Signed numbers
Complements
EE345 – Micro-Controllers
May 3, 2017
22
Binary Addition

Binary addition works like “normal” addition



Stay within {0,1}
Carries as usual
Example:
Carry:
111111
augend:
111101
addend: + 10111
1010100

Addition of multiple numbers possible

Carry gets a bit more difficult
EE345 – Micro-Controllers
May 3, 2017
23
Binary Subtraction

Subtraction same as “normal” subtraction


Borrows as usual
Example:
10
0 0–10
minuend:
–– –
111101
subtrahend: - 10111
1 0 011 0
EE345 – Micro-Controllers
May 3, 2017
24
Binary Multiplication

Binary multiplication



Same as “normal” multiplication
Multiplication a lot easier in binary domain
Example:
EE345 – Micro-Controllers
111101
× 1010
000000
111101
000000
111101
1001100010
multiplicand
multiplier
May 3, 2017
25
Signed 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’



Examples on five-bit numbers:



‘0’ indicates ‘+’
‘1’ indicates ‘–’
01101
+ 13
11101
– 13
00000
+ 0
10000
– 0
Signed Magnitude representation
EE345 – Micro-Controllers
May 3, 2017
26
Arithmetic with Signed Magnitude

Addition example 1:
Plus signs are leading zeros -> no problem
Augend:
01001
(9)10
Addend: + 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
EE345 – Micro-Controllers
May 3, 2017
27
Signed Magnitude Representation

Arithmetic with signed magnitude is difficult


Two representations of zero
Different cases for addition and subtraction
0000
1111
1110
1101
-6
0001
-7 +0 +1
-5
0010
+2
+3
+4
-4
1100
1011
-2
+6
-1 -0 +7
1001
EE345 – Micro-Controllers
0100
+5
-3
1010
0011
1000
0101
0110
0111
May 3, 2017
28
Complements

“Complements” allow easier arithmetic


Representation of negative numbers a bit more involved
Two types of complements

Radix complement: r’ s complement



Decimal: 10’s complement
Binary: 2’s complement
Diminished radix complement: (r–1)’s complement


Decimal: 9’s complement
Binary: 1’s complement
EE345 – Micro-Controllers
May 3, 2017
29
Diminished Radix Complement


Given a number N in base r having n digits, the (r–1)’s complement of
N is defined as:
(r n –1) – N
Example for 6-digit decimal numbers:



Example for 7-digit binary numbers:



9’s complement is (r n–1)–N = (106–1)–N = 999999–N
9’s complement of 546700 is 999999–546700 = 453299
1’s complement is (r n –1) – N = (27–1)–N = 1111111–N
1’s complement of 1011000 is 1111111–1011000 = 0100111
Observation:



Subtraction from (rn–1) will never require a borrow
Diminished radix complement can be computed digit-by-digit
For binary: 1 – 0 = 1 and 1 – 1 = 0

Flips 0’s to 1’s and 1’s to 0’ (bit complementation)
EE345 – Micro-Controllers
May 3, 2017
30
One’s Complement Representation

1’s complement is simple to compute


Bit complementation
Still, two representations of zero
0000
1111
1110
1101
0001
0010
-0 +0 +1
-1
+2
-2
+3
+4
-3
1100
1011
-5
+6
-6 -7 +7
1001
EE345 – Micro-Controllers
0100
+5
-4
1010
0011
1000
0101
0110
0111
May 3, 2017
31
Radix Complement

The r’s 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:




10’s complement is r n – N = 106–N = 1000000–N
10’s complement of 546700 is 1000000–546700= 453300
Rule: Leave least significant 0’s unchanged, subtract first nonzero least
significant digit from 10, subtract all higher significant digits from 9.
Example for 7-digit binary numbers:



2’s complement is r n–N = 27–N = 10000000–N
2’s complement of 1011000 is 10000000–1011000 = 0101000
Rule: “Leave least significant 0’s and first 1 unchanged, replace 1’s with
0’s and 0’s with 1’s in all higher significant digits.”
EE345 – Micro-Controllers
May 3, 2017
32
Two’s Complement Representation

Arithmetic with 2’s complement is most efficient


Bit complementation + 1
Single representation of zero!
0000
1111
1110
1101
-1
0
0001
0010
+1
-2
+2
-3
+3
+4
-4
1100
1011
-6
+6
-7 -8 +7
1001
EE345 – Micro-Controllers
0100
+5
-5
1010
0011
1000
0101
0110
0111
May 3, 2017
33
Complements - Summary

Complement of complement is original number

Diminished radix complement:
(r n–1)–((r n–1)–N) = r n–1–r n+1 + N = N

Radix complement:
r n–(r n–N) = r n–r n+ N = N

Representation of zero



Radix complement: 0
Diminished radix complement: r n –1 and it’s complement 0
Radix points



Remove radix point
Compute complement
Put radix point back at same relative position
EE345 – Micro-Controllers
May 3, 2017
34
Signed Binary Numbers Comparison ( n=4 )
Decimal
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
EE345 – Micro-Controllers
Signed Magnitude
--1111
1110
1101
1100
1011
1010
1001
0000 or 1000
0001
0010
0011
0100
0101
0110
0111
signed One’s
Complement
---1000
1001
1010
1011
1100
1101
1110
0000 or 1111
0001
0010
0011
0100
0101
0110
0111
May 3, 2017
Signed Two’s
Complement
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111
35
Subtraction with Complements

Subtraction M – N




What about the additional r n ?
If M  N




Add minuend M to r’s complement of subtrahend N
M – N = M + (rn – N) = M – N + r n
Then M – N + r n  r n
With n bits, only numbers < r n can be expressed
n+1st digit is ignored (drop the “carry out” bit)
If M < 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
EE345 – Micro-Controllers
May 3, 2017
36
Arithmetic with Radix Complement

Subtraction works as addition of complement

Addition/subtraction of signed numbers




Addition/subtraction of unsigned numbers


Negative numbers are expressed as r ’s complement
Simple addition yields correct result
No need to distinguish different cases
Can be performed on same hardware as signed numbers
Most modern digital systems use 2’s complement
EE345 – Micro-Controllers
May 3, 2017
37
Two’s Complement Overflow
Consider two 8-bit 2’s complement numbers. We can represent the
signed integers -128 to +127 using this representation.
What if we do (+1) + (+127) = +128.
The number +128 is OUT
of the RANGE that we can represent with 8 bits. What happens when
we do the binary addition?
+127 =
7F
+
1 = 01
------------------128 ≠ 80 (this is actually -128 as a two’s
complement number!!! - the wrong answer!!!)
How do we know if overflow occurred? Added two
POSITIVE numbers, and got a NEGATIVE result.
EE345 – Micro-Controllers
May 3, 2017
38
Detecting Two’s Complement Overflow
Two’s complement overflow occurs when we:
or
Add two POSITIVE numbers and get a NEGATIVE result,
Add two NEGATIVE numbers and get a POSITIVE result
We CANNOT get two’s complement overflow if we add a
NEGATIVE and a POSITIVE number together.
The Carry out of the Most Significant Bit means nothing if
the numbers are two’s complement numbers.
EE345 – Micro-Controllers
May 3, 2017
39
Weighted and Unweighted Codes

Most numeric number representations are in a class
known as “Weighted Codes” where
r -1
Value   b i  w i


i 0
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
EE345 – Micro-Controllers
May 3, 2017
40
Binary 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 is really decimal
with different symbols)
BCD add/subtract circuits are complex
EE345 – Micro-Controllers
May 3, 2017
41
Other Decimal Codes
Weighted codes
The 8421 or
natural BCD
code is the
most
common BCD
code in use
EE345 – Micro-Controllers
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
May 3, 2017
42
BCD Addition
Case 1:
0001
1
0101
5
(0) 0110 (0) 6
Case 2:
0110
6
0101
5
(0) 1011 (1) 1
WRONG!
Case 3:
EE345 – Micro-Controllers
1000
8
1001
9
(1) 0001 (1) 7
May 3, 2017
Note that for cases 2 and 3,
adding a factor of 6 (0110)
gives us the correct result.
43
BCD 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
EE345 – Micro-Controllers
May 3, 2017
44
BCD Negative Number Representation

Similar to binary negative number representation except r
= 10.

BCD sign-magnitude

MSD (sign digit options)



BCD 10’s complement


MSD = 0 (positive); not equal to 0 = negative
MSD range of 0-4 positive; 5-9 negative
-N  10r - N; 9’s complement + 1
BCD 9’s complement

invert each BCD digit (09, 1  8, 2  7,3  6, …7  2, 8  1, 9
 0)
EE345 – Micro-Controllers
May 3, 2017
45
Decimal Arithmetic

Everything needs to be 4-bit aligned



Signed magnitude representation or complements



‘+’ represented by 0 (=‘0000’)
‘–’ represented by 9 (=‘1001’)
Signed magnitude hardly used
10’s complement most common
Example: 375 + (–240)




Negative numbers represented by 10’s complement
10’s complement of 240 is 104 – 240 = 9760
Addition of all digits and
discard of end carry:
0 375
+9 760
0 135
Sign of result automatically correct
EE345 – Micro-Controllers
May 3, 2017
47
Gray Codes

Gray codes are
minimum change
codes


From one numeric
representation to the
next, only one bit
changes
Primary use is in
numeric input
encoding applications
where we expect nonrandom input values
changes (i.e. value n
to either n-1 or n+1)
EE345 – Micro-Controllers
May 3, 2017
Gray Code Dec. Equiv.
0000
0
0001
1
0011
2
0010
3
0110
4
0111
5
0101
6
0100
7
1100
8
1101
9
1111
10
1110
11
1010
12
1011
13
1001
14
1000
15 48
Alphanumeric 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.
EE345 – Micro-Controllers
May 3, 2017
49
ASCII 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 = $26
7 bits can only represent 27 (128) different values. This is
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 (e.g., Arabic)?
EE345 – Micro-Controllers
May 3, 2017
50
ASCII CODE
b6b5b4
b3b2b1b0
000
001
010
011
100
101
110
111
0000
NUL
DLE
SP
0
@
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
,
<
L
\
l
|
1101
CR
GS
-
=
M
]
m
}
1110
S0
RS
.
>
N
^
n
~
1111
S1
US
/
?
O
_
o
DEL
EE345 – Micro-Controllers
May 3, 2017
51
UNICODE
UNICODE is a 32-bit code for representing alphanumeric
data. Most often, only 16 bits are used. With 16 bits, we
can represent 216 or 65,536 different symbols.
16 bits = 2 bytes per character.
$0041-005A
A-Z
$0061-4007A a-z
In UNICODE, Arabic characters are coded by the following:
 Arabic basic characters: $0600 – $06FF
 Arabic supplement: $0750 – $077F
 Arabic presentation forms: $FB50 – $FDFF & $FE70 –
$FEFF
UNICODE is used by Web browsers, Java, and most software
EE345 – Micro-Controllers
May 3, 2017
52
Error Detection and Error Correction Codes




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
EE345 – Micro-Controllers
May 3, 2017
53
Single error detection with parity
simplest method for error detection
 insert an additional parity bit for transmission
 even parity may be generated by
Pe  b3  b2  b1  b0 for a 4-bit data
e.g. for a 4-bit data 0110

Pe  0  1  1  0  0

odd parity may be obtained by
Po  1  Pe
e.g.
Po  1  0  1  1  0  1
EE345 – Micro-Controllers
May 3, 2017
54
Parity 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
ASCII T = 1010100 11010100
EE345 – Micro-Controllers
May 3, 2017
11000001
01010100
55
Parity Code Example

Concatenate a parity bit to the ASCII code for the
characters 0, X, and = to produce both odd-parity and evenparity codes.
Character
ASCII
Odd-Parity
ASCII
Even-Parity
ASCII
0
0110000
10110000
00110000
X
1011000
01011000
11011000
=
0111100
10111100
00111100
EE345 – Micro-Controllers
May 3, 2017
56
Binary Storage and Registers

How is information stored in a digital system?



Binary cells are grouped into registers


n cells make up n-bit register
Size of registers is typically predefined




Bits are stored in “binary cells”
Binary cell can have two stable states: ‘0’ and ‘1’
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
EE345 – Micro-Controllers
May 3, 2017
57
Binary 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
EE345 – Micro-Controllers
May 3, 2017
58
Register Transfer



Data can move from register to register.
Digital logic used to process data
We will learn to design this logic
Register A
Register B
Digital Logic
Circuits
Register C
EE345 – Micro-Controllers
May 3, 2017
59
Register Example



Data input at keyboard
Shifted into place
Stored in memory
EE345 – Micro-Controllers
May 3, 2017
60
Register 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
EE345 – Micro-Controllers
May 3, 2017
61
Binary 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 -> uninteresting, inverter or wire only
2 inputs -> basic logic functions
What are possible logic functions?


NOT, AND, OR
Others can be derived from those (NAND, XOR, etc.)
EE345 – Micro-Controllers
May 3, 2017
62
NOT Function

Complement operation




Truth table



Single input
Inverts value of input
Symbolized by prime x’ or overbar x
Input combinations on the left
Output of function on the right
input
output
x
0
x'
1
1
0
Graphic symbol


NOT gate
Little circle indicates inversion
EE345 – Micro-Controllers
May 3, 2017
63
AND Function

Operation to check if two conditions are met




Truth table


Two inputs
Output = 1 if and only if both inputs are 1
Symbolized by dot or absence of operator
x·y or xy
Needs to consider 22 = 4 input combinations
Graphic symbol

AND gate
EE345 – Micro-Controllers
May 3, 2017
inputs output
x
0
0
1
1
y
0
1
0
1
z
0
0
0
1
64
OR 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
EE345 – Micro-Controllers
May 3, 2017
x y
0 0
z
0
0 1
1 0
1 1
1
1
1
65
Comparison of Functions

Timing diagrams (waveforms)


Horizontal axis is time ( t )
Vertical axis shows signals, each with two different voltage levels
t
EE345 – Micro-Controllers
May 3, 2017
66
Multiple Inputs

Two inputs might not be enough
3-input AND gate:

4-input OR gate:

What are the rules for aggregating functions?


Boolean algebra
EE345 – Micro-Controllers
May 3, 2017
67