Download 2014-08-25-numbers

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Switched-mode power supply wikipedia , lookup

Analog-to-digital converter wikipedia , lookup

Opto-isolator wikipedia , lookup

Rectiverter wikipedia , lookup

Time-to-digital converter wikipedia , lookup

Flip-flop (electronics) wikipedia , lookup

Transcript
Number Representation
and Logic Design
CS 3220
Fall 2014
A
C
Hadi Esmaeilzadeh
[email protected]
Georgia Institute of Technology
Some slides adopted from Prof. Milos Prvulovic
T
Alternative,Computing,Technologies
Computing with digital technology
 Physical Layer
– Low voltage
(0 V)
– High voltage
(5 V, then 3.3 V, 1.1 V, and now is 0.9 V or lower)
 Abstraction (we do not deal with voltage levels)
– ‘0’
– ‘1’
 Groups of binary values construct words,
numbers, pixels, audio signals, …
2
What does this binary value represent?
01001000011000010110010001101001
= 0100_1000 0110_0001 0110_0100 0110_1001
3
What does this binary value represent?
01001000011000010110010001101001
= 0100_1000 0110_0001 0110_0100 0110_1001
Hadi
1214342249
230801.64
…
4
Terminology
 Physical:
– Bit: one binary digit
 Abstract:
– Nibble: four binary digits
– Byte: eight binary digits = two nibbles
– Word: Usually 32 binary digits = 4 bytes
5
Number Representation
 Positional notation
Same as base-10 but now it’s base 2:
– In base 10, we have
9807 = 9*103 + 8*102 + 0*101 + 7*100
– In base 2, we have
1011 =
6
Signed numbers
 Easy: one bit for sign, then absolute value
– E.g. 1011 (- 011) is actually -3
 How do we add two such numbers?
– First check the sign bits
– If both are 1 or both 0, add the absolute values and
retain the same sign bit
– If one is 1 and one is 0, compare the two absolute
values, then subtract the smaller from the larger and
use the sign of the larger number
 Lots of circuitry needed for all this!
 Also we have to representation for zero: (-0, +0)
 We need a better way!
7
Two’s complement
 OK, let’s say we want 4-bit signed numbers but
– Want to just add the numbers as if they were
unsigned
– Want to quickly tell if number is positive or negative
 So if we add 1 to -1 we should get 0
– 0 is 0000, 1 is 0001, so -1 has to be 1111
 Now, if we add 1 to -2, we should get -1
– So -2 has to be 1110
 We can still tell if positive or negative
 But add, subtract, etc. is much simpler now
8
Two’s complement
What is the range?
9
Two’s complement
 Quickly negate a 2’s number:
– 1011
– Invert(all bits) + ‘1’
– Start from right, copy until the first ‘1’, then invert
the remaining
 Sign extension:
– Store 1011 in a byte
10
Note on Number Representation
 Digital logic still operates on binary signals
 2’s complement vs. sign-and-value
is all about how we choose to represent
numbers using the underlying binary signals
 If four wires have values of 1, 0, 1, 1, then
– If sign-and-value, it represents -3
– If 2’s complement, it is -5
– If unsigned number, it is 11 (eleven)
– May not even be a number!
11
Hexadecimal Notation
 Writing binary numbers is inconvenient
– More than 3 times as many digit as decimal notation
 So we also use hexadecimal (base 16) notation
– Fewer digits needed than in binary (or even decimal)
– Each hex digit represents exactly 4 binary digits,
so it is easy to convert back-and-forth
– Example: Hexadecimal E04C is in binary:
 Note: no actual “hexadecimal” hardware
– Hardware still operates in binary
– Hexadecimal notation is only for our convenience
12
Digital Logic
 Implemented using MOS transistors
Source
-
N-type
Drain
Gate
-
P-type substrate
-
Channel
13
MOS transistor
+V
+V
+V
14
Inverter (NOT gate)
+V
15
NOR
+V
16
NAND
+V
17
How do we get AND and OR gates?
18
XOR?
19
Gates with more inputs
?
20
1-bit add
A
B
Carry OUT
OUT
21
Full Adder
A
B
Carry OUT
Carry IN
OUT
22
Full adder
A
B
S (Ouptut)
Cin
Cout
A
B
23
Full Adder Truth Table
24
Full Adder Karnaugh Map
25
3-bit add?
A2
Cout
B2
1-bit Full Cin
Adder
S2
A1
Cout
B1
1-bit Full
Adder
S1
A0
Cin
Cout
B0
1-bit Full Cin
Adder
S0
Data dependence serializes the additions!
26
Keeping State
• We use latches and flip-flops
– Here is an SR latch
27
D latch
When E is 1
– When D=1, make the S signal be 0 (OUT -> 1)
– When D=0, make the R signal be 0 (OUT -> 0)
D(ata)
S
OUT
E(nable)
OUT
D (inverted D input)
R
– When E is 0, both S and R are 1 (OUT unchanged)
28
Flip-Flop?
 Essentially two latches in series:
 Latch 1 has CLK connected to its “Enable”
– Keeps latching changes in input value while clock
is 0
– When clock becomes 0, it keeps what it had
 Latch 2 has CLK connected to its enable
– Keep latching the output of Latch 1 while clock is 1
– Keeps same output value when clock is 0
 While clock is 0, Latch 2 outputs the stored bit
 When clock becomes 1, Latch 2 outputs
29
How the flip-flop works
 While clock is 0
– Output of Latch 1 follows the input
– But Latch 2 outputs the stored bit
 When clock changes from 0 to 1
– Latch 1 stops following the input
– Latch 2 now outputs what Latch 1 is outputting
– Result: FF output == FF input when clock went 0->1
 When clock changes back to 0
– Latch 1 starts following the input again
– But Latch 2 now keeps what it had
– Result: FF output unchanged until clock goes 0->1
30