300 likes | 456 Vues
This presentation delves into the fundamentals of number representation and logic design as introduced in CS 3220 at Georgia Institute of Technology, featuring insights from Prof. Hadi Esmaeilzadeh. We explore the physical layer of digital systems, binary representations, and positional notation, emphasizing concepts like two's complement for signed numbers. Additionally, we discuss the significance of hexadecimal notation for convenience in binary operations. Key topics include digital logic gates, circuitry components, and the functioning of latches and flip-flops in state preservation. Enhance your understanding of how binary values represent data in digital systems!
E N D
Number Representation and Logic Design CS 3220 Fall 2014 Hadi Esmaeilzadeh hadi@cc.gatech.edu Georgia Institute of Technology Some slides adopted from Prof. Milos Prvulovic
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, …
What does this binary value represent?01001000011000010110010001101001= 0100_1000 0110_0001 0110_0100 0110_1001
What does this binary value represent?01001000011000010110010001101001= 0100_1000 0110_0001 0110_0100 0110_1001Hadi1214342249230801.64…
Terminology • Physical: • Bit: one binary digit • Abstract: • Nibble: four binary digits • Byte: eight binary digits = two nibbles • Word: Usually 32 binary digits = 4 bytes
Number Representation • Positional notationSame as base-10 but now it’s base 2: • In base 10, we have9807 = 9*103 + 8*102 + 0*101 + 7*100 • In base 2, we have1011 =
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!
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
Two’s complement What is the range?
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
Note on Number Representation • Digital logic still operates on binary signals • 2’s complement vs. sign-and-valueis all about how we choose to representnumbers 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!
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
Digital Logic • Implemented using MOS transistors Source Drain Gate - - - P-type substrate N-type Channel
MOS transistor +V +V +V
NOR +V
NAND +V
1-bit add A B Carry OUT OUT
Full Adder A B Carry OUT Carry IN OUT
Full adder A B S (Ouptut) Cin Cout A B
3-bit add? A2 B2 A1 B1 A0 B0 1-bit FullAdder 1-bit FullAdder 1-bit FullAdder Cout Cin Cout Cin Cout Cin S2 S1 S0 Data dependence serializes the additions!
Keeping State • We use latches and flip-flops • Here is an SR latch
S R D latch D(ata) OUT E(nable) OUT D (inverted D input) 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) • When E is 0, both S and R are 1 (OUT unchanged)
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
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