Upload
doduong
View
226
Download
0
Embed Size (px)
Citation preview
ENG2410Digital Design
“Introduction to Digital Systems”
Fall 2017S. Areibi
School of EngineeringUniversity of Guelph
2
Resources
� Chapter #1, Mano Sections� 1.1 Digital Computers
� 1.2 Number Systems
� 1.3 Arithmetic Operations
� 1.4 Decimal Codes
� 1.5 Alphanumeric Codes
3
Topics
� Computing Devices and VLSI Design
� Signals (Digital vs. Analog)
� Digital Systems and Computers
� Number systems [binary, octal, hex]
� Base Conversion
� Arithmetic Operations
� Decimal Codes [BCD]
� Alphanumeric Codes
5
PDA
Body
Entertainment
Household
Communication
Home Networking
Car
Medicine
PC
Super Computer
Computing Devices Everywhere!“Embedded Systems”
Game console
What is the main enabler to such digital systems?
6
The Transistor Revolution
First transistorBell Labs, 1948
Bipolar logic1960’s
• Intel 4004 processor • Designed in 1971• Almost 3000 transistors• Speed:1 MHz operation
n+n+S
GD
+
DEVICE
CIRCUIT
GATE
MODULE
SYSTEMSpecification
Functional design
Circuit design
Physical design
Test/Fabrication
Logic design
The VLSI Design Cycle
© K
LMH
Lien
ig8
1.3 VLSI Design Styles Contact
Vdd
GND
OUT
IN2
IN1OUT
IN2
IN1
OUTIN1
Vdd
GND
IN2
Power (Vdd)-Rail
Ground (GND)-Rail
Diffusion layer
p-typetransistor
n-typetransistor
Metal layer
Poly layer
10
Signals
� An information variable represented by a physical quantity (speech, Temp, humidty, noise, …)
11
Signals
Signals can be analogor digital:
1. Analog signals can have an infinite number of values in a range;
2. Digital signals can have only a limited number of values.
13
Digital Signals
� For digital systems, the variable takes on discrete values (i.e., not continuous)
Time
DigitalDiscrete in
value
14
Signal Examples Over Time
Asynchronous
Synchronous
Discrete in
value &
continuous in
time
Discrete in
value & time
Digital
� Digital (Binary) values are represented by:
� digits 0 and 1 / False (F) and True (T)
� words (symbols) Low (L) and High (H)
� words On and Off.
Time
15
What are other physical quantities represent 0 and 1?
Binary Values: Other Physical Quantities
CPU: VoltageHard Drive: Magnetic Field Direction
CD: Surface Pits/Light
Dynamic Ram: Electric Charge
16
A Digital Computer Example
Inputs: Keyboard, mouse, modem, microphone
Outputs: CRT, LCD, modem, speakers
Memory
Controlunit Datapath
Input/Output
CPU
Data/Instructions/codeAll in 01010010010
clock
18
Number Systems – Representation
� A number with radix r is represented by a string of digits:An - 1An - 2 … A1A0 . A- 1 A- 2 … A- m + 1 A- m
in which 0 ≤ Ai < r and “.” is the radix point.
� The string of digits represents the power series:
( ) ( )(Number)r = ∑∑ +j = - m
jj
i
i = 0i rArA
(Integer Portion) + (Fraction Portion)
i = n - 1 j = - 1
19
Decimal Number System
�Base (also called radix) = 10
● 10 digits { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
�Digit Position
● Integer & fraction
�Formal Notation
�Digit Weight
● Weight = (Base) Position
�Magnitude
● Sum of “Digit x Weight”
1 0 -12 -2
5 1 2 7 4
10 1 0.1100 0.01
500 10 2 0.7 0.04
d2*B2+d1*B
1+d0*B0+d-1*B
-1+d-2*B-2
(512.74)10
20
Octal Number System
�Base = 8
● 8 digits { 0, 1, 2, 3, 4, 5, 6, 7 }
�Weights
● Weight = (Base) Position
�Formal Notation
�Magnitude
● Sum of “Digit x Weight”
1 0 -12 -2
8 1 1/864 1/64
5 1 2 7 4
5 *8 2+1 *8 1+2 *8 0+7 *8- 1+4 *8 -2
=(330.9375)10
(512.74)8
21
Octal Number System: Example
� For Example, � (27)8 can be expressed as: ( )10
� (17.1)8 can be expressed as: ( )10
22
Hexadecimal Number System
�Base = 16
● 16 digits { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
�Weights
● Weight = (Base) Position
�Formal Notation
�Magnitude
● Sum of “Digit x Weight”
1 0 -12 -2
16 1 1/16256 1/256
1 E 5 7 A
1 *162+14 *161+5 *160+7 *16-1+10 *16-2
=(485.4765625)10
(1E5.7A)16
23
Hex to Decimal
� Just multiply each hex digit by decimal value, and add the results.
���� ���� ���� ����
163 162 161 160
4096 256 16 1
(2ac)16
2 • 256 + 10 • 16 + 12 • 1= (684)10
Dec Hex
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 a
11 b
12 c
13 d
14 e
15 f
25
Binary Number System
�Base = 2
● 2 digits { 0, 1 }, called binary dig its or “ bits”
�Weights
● Weight = (Base) Position
�Magnitude
● Sum of “Bit x Weight”
�Formal Notation
�Groups of bits 4 bits = Nibble
8 bits = Byte
1 0 -12 -2
2 1 1/24 1/4
1 0 1 0 1
1 *22+0 *21+1 *20+0 *2-1+1 *2-2
=(5.25)10
(101.01)2
1 0 1 1
1 1 0 0 0 1 0 1
26
Binary → Decimal: Example
7 6 5 4 3 2 1 0
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
1 0 0 1 1 1 0 0
128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = (156)10
What is 10011100 in decimal?
7 6 5 4 3 2 1 0 position
Binary #
position
value
27
Binary Numbers� Examples:
� (00)2 � (0)10
� (01)2 � (1)10
� (0000001)2 � (1)10
� (10)2 � (2)10
� (010)2 � (2)10
� (11)2 � (3)10
� (100)2 � (4)10
� (1001010101000)2
�Strings of binary digits (“bits”)
� One bit can store a number from 0 to 1
� n bits can store numbers from 0 to 2n-1
28
Binary Fractions
bi bi-1 . . . b2 b1 b0 b-1 b-2 b-3 … b-j
1
2
4
2i-1
2i
2-j
1/8
1/4
1/2
Integer Values
Fractional Values
decimal number =
30
Example 2
0 . 1 1 1 1 1 12
63/64
0 x 20 + 1 x 2-1 + 1x2-2 + 1x2-3 + 1x2-4 + 1x2-5 + 1x2-6
Note: (1) Numbers of the form 0.11111…2 are just below 1.0(2) Short form notation for such numbers is 1.0 - ε
Why Binary?
�This is easier to implement in hardware than a unit that can take on 10 different values.
● For instance, it can be represented by a transistor being off (0) or on (1).
● Alternatively, it can be a magnetic stripe that is magnetized with North in one direction (0) or the opposite (1).
�Binary also has a convenient and natural association with logical values of:
● False (0) and
● True (1).31
32
The Power of 2
n 2n
0 20=1
1 21=2
2 22=4
3 23=8
4 24=16
5 25=32
6 26=64
7 27=128
n 2n
8 28=256
9 29=512
10 210=1024
11 211=2048
12 212=4096
20 220=1M
30 230=1G
40 240=1T
Mega
Giga
Tera
Kilo
34
Number Base Conversions
Decimal(Base 10)
Octal(Base 8)
Binary(Base 2)
Hexadecimal(Base 16)
Evaluate Magnitude
Evaluate Magnitude
Evaluate Magnitude
35
Conversion Between Bases
� To convert from one base to another:
1) Convert the Integer Part
2) Convert the Fraction Part
3) Join the two results with a radix point
37
Decimal (Integer) to Binary Conversion
�Divide the number by the ‘Base’ (=2)
�Take the remainder (either 0 or 1) as a coefficient
�Take the quotient and repeat the division
Example: (13)10
Quotient Remainder Coefficient
Answer: ( 13)10 = (a3 a2 a1 a0)2 = (1101)2
MSB LSB
13/ 2 = 6 1 a0 = 16 / 2 = 3 0 a1 = 03 / 2 = 1 1 a2 = 11 / 2 = 0 1 a3 = 1
38
Decimal (Fraction) to Binary Conversion
�Multiply the number by the ‘Base’ (=2)
�Take the integer (either 0 or 1) as a coefficient
�Take the resultant fraction and repeat multiplication
Example: (0.625)10
Integer Fraction Coefficient
Answer: ( 0.625)10 = (0.a-1 a-2 a-3)2 = (0.101)2
MSB LSB
0.625 * 2 = 1 . 250.25 * 2 = 0 . 5 a-2 = 00.5 * 2 = 1 . 0 a-3 = 1
a-1 = 1
39
Decimal to Octal Conversion
Example: (175)10
Quotient Remainder Coefficient
Answer: ( 175)10 = (a2 a1 a0)8 = (257)8
175 / 8 = 21 7 a0 = 721 / 8 = 2 5 a1 = 52 / 8 = 0 2 a2 = 2
Example: (0.3125)10
Integer Fraction Coefficient
Answer: ( 0.3125)10 = (0.a-1 a-2 a-3)8 = (0.24)8
0.3125 * 8 = 2 . 50.5 * 8 = 4 . 0 a-2 = 4
a-1 = 2
40
Decimal to Hex
���� ���� ���� ����
163 162 161 160
4096 256 16 1
Dec Hex
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 a
11 b
12 c
13 d
14 e
15 f
(684)10
684/16 = 42 rem 12=c c
42/16 = 2 rem 10=a ac
2/16 = 0 rem 2 2ac
41
Hexadecimal (Base 16 )
Dec Bin Hex
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
Dec Bin Hex
8 1000 8
9 1001 9
10 1010 a
11 1011 b
12 1100 c
13 1101 d
14 1110 e
15 1111 f
•Power of 2
•Size of byte
Why usebase 16?
� Strings of 0’s and 1’s too hard to write
� Use base-16 or hexadecimal – 4 bits
42
Hex to Binary
� Convention – write 0x (prefix)
before number
� Hex to Binary – just convert digits
Bin Hex
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 a
1011 b
1100 c
1101 d
1110 e
1111 f
0x2ac
0010 1010 1100
0x2ac = (001010101100)2
No magic – remember hex digit = 4 bits
(2ac)16
43
Binary − Hexadecimal Conversion
�16 = 24
�Each group of 4 bits represents a hexadecimal digit
Hex Binary0 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 09 1 0 0 1A 1 0 1 0B 1 0 1 1C 1 1 0 0D 1 1 0 1E 1 1 1 0F 1 1 1 1
Example:
( 1 0 1 1 0 . 0 1 )2
( 1 6 . 4 )16
Pad with Zeros
Works both ways (Binary to Hex & Hex to Binary)
44
Binary to Hex
� Just convert groups of 4 bits
Bin Hex
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 a
1011 b
1100 c
1101 d
1110 e
1111 f
(101001101111011)2
1011
5 3 7 b
(101001101111011)2 = 0x537b = (537b)16
0101 0111 0011
45
Octal − Hexadecimal Conversion
�Convert to Binary as an intermediate step
Example:
( 0 1 0 1 1 0 . 0 1 0 )2
( 1 6 . 4 )16
Assume Zeros
Works both ways (Octal to Hex & Hex to Octal)
( 2 6 . 2 )8
Assume Zeros
48
Binary Addition�Adding bits:
♦ 0 + 0 = 0
♦ 0 + 1 = 1
♦ 1 + 0 = 1
♦ 1 + 1 = (1) 0
♦ 1 + 1 + 1 = (1) 1
�Adding integers:
carry
0 0 0 . . . . . . 0 1 1 (1)2 = (7)10
+ 0 0 0 . . . . . . 0 1 1 (0)2 = (6)10
= = (13)10
carry
(0) (1)2(1)0 (1)1
0
0 0 0 . . . . . 1
11
49
Binary Addition
�Column Addition
1 0 1111
1111 0+
0000 1 11
≥ (2)10
111111
= (61)10
= (23)10
= (84)10
51
Binary Numbers and Binary Coding
� Flexibility of representation� Within constraints below, can assign any
binary combination (called a code word) to any data as long as data is uniquely encoded.
� Information Types� Numeric
� Must represent range of data needed� Very desirable to represent data such that
simple, straightforward computation for common arithmetic operations permitted
� Tight relation to binary numbers
� Non-numeric� Greater flexibility since arithmetic operations
not applied.� Not tied to binary numbers
52
� Given n binary digits (called bits), a binary code is a mapping from a set of represented elements to a subset of the 2n binary numbers.
� Example: Abinary codefor the sevencolors of therainbow
� Code 100 is not used
Non-numeric Binary Codes
Binary Number000001010011101110111
ColorRedOrangeYellowGreenBlueIndigoViolet
53
� Given M elements to be represented by a binary code, the minimum number of bits, n, needed, satisfies the following relationships:
2n > M > 2(n – 1)
n = log2 M where x , is called the ceiling function, i.e the integer greater than or equal to x.
Number of Bits Required
� Given M elements to be represented by a binary code, the minimum number of bits, n, needed, satisfies the following relationships:
� Example: How many bits are required to represent decimal digits with a binary code?• M = 10, hence n = ceiling (log2 10) = ceiling (3.3219) = 4• Checking:
Number of Bits Required
)(loglog
,22
22
1
MceilingMn
whereM nn
==>≥ −
8210162 34 =>≥=54
55
Binary Codes
�Group of n bits
● Up to 2n combinations
● Each combinationrepresents an elementof information
�Binary Coded Decimal (BCD)
● Each Decimal Digit is represented by 4 bits
● (0 – 9) � Valid combinations
● (10 – 15) � Invalid combinations
Decimal BCD0 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 09 1 0 0 1
56
Gray Code
� One bit changes fromone code to the nextcode
� Different than Binary
Decimal Gray00 000001 000102 001103 001004 011005 011106 010107 010008 110009 110110 111111 111012 101013 101114 100115 1000
Binary0000000100100011010001010110011110001001101010111100110111101111
57
Binary Representations
� A bit is the most basic unit of information in a computer.
� It is a state of “on” or “off” in a digital circuit.
� Sometimes these states are “high” or “low” voltage instead of “on” or “off..”
� A group of four bits is called a nibble (or nybble).
� Bytes, therefore, consist of two nibbles: a “high-order nibble,” and a “low-order” nibble.
� A byte is a group of eight bits.
� A byte is the smallest possible addressable (can be found via its location) unit of computer storage.
� A word is a contiguous group of bytes.
� Words can be any number of bits (16, 32, 64 bits are common).
58
Conversion or Coding?
� Do NOT mix up conversion of a decimal number to a binary number with coding a decimal number with a BINARY CODE.
� (13)10 = (1101)2 (This is conversion)
� (13)BCD ⇔ (0001|0011)BCD (This is coding)
Advantages/Disadvantages?
59
BCD: Advantages/Disadvantages
� Disadvantage:
� It is obvious that a BCD number needs more bits than its equivalent binary value
� (26)10 = (11010)2
� (26)10 = (0010 0110)BCD
� Advantages:
� Computer input/output data are handled by people who use the decimal system. So it is easier to convert back/forth to BCD.
61
Character Codes
� From numbers to letters
� ASCII
� Stands for American Standard Code for Information Interchange
� Only 7 bits defined
� Unicode
ASCII Code
American Standard Code for Information Interchange
Info 7-bit CodeA 1000001B 1000010...
.
.
.Z 1011010
a 1100001b 1100010...
.
.
.z 1111010
@ 1000000? 0111111+ 0101011
62
64
Reading
� Read Chapter 1
� Make sure you’re comfortable with material
� Check the lecture notes from the
Web site.
� Solve the assignment.
65
Homework
� See Assignment #1 On Web
� I expect you to know number systems well and be able to do conversions and arithmetic� Decimal – Binary
� Binary – Decimal
� Decimal – Hex
� Hex – Decimal
� Will be on test!