Transcript Lecture 1
COMP541
Digital Logic and
Computer Design
Montek Singh
Jan 9, 2012
1
Today’s Topics
Course description
What’s it about
Mechanics: grading, etc.
Material from Chapter 1 (self-study review)
What is digital logic?
Binary signaling
Number systems
Codes
2
What’s Course About?
Digital
logic, focusing on the design of computers
Stay mostly at a high level (i.e., above transistors)
Each person designs a MIPS CPU
and peripheral logic (VGA, joystick)
Project like an Atari 2600 game
High-level language
Modern design practices
3
Focus
Stay above transistor
level
At most one class on
transistors and VLSI
assembly language
programming
focus of this course
Expect you to know
Application
Software
programs
Operating
Systems
device drivers
Architecture
instructions
registers
Microarchitecture
datapaths
controllers
Logic
adders
memories
Digital
Circuits
AND gates
NOT gates
Analog
Circuits
amplifiers
filters
Devices
transistors
diodes
Physics
electrons
4
More Than Just Architecture
Designing and implementing a computer is also
about
Managing complexity (hierarchy, modularity, regularity).
Debugging
Testing and verifying
5
The Three -Y’s
Hierarchy
A system divided into modules and submodules
Modularity
Having well-defined functions and interfaces
Regularity
Encouraging uniformity, so modules can be easily reused
How Can We Do This?
Labs on Fridays
Use: Field Programmable Gate Arrays (FPGAs)
Chips with a lot of circuits
Tens of thousands to millions of transistors
Programmable
We write descriptions of the design
“programs” describing design
Tools translate to gates/wires
Download pattern/interconnection to chip
Sort of like burning music to a rewritable CD
7
We Will Use This Board
What’s on it?
8
Schematic Diagram
• Old fashioned way to describe logic
• Still useful for documentation
9
Verilog
/*
* A 32-bit counter with only 4 bits of output. The idea is
* to select which of the counter stages you want to pass on.
*
* Anselmo Lastra, November 2002
*/
module cntr_32c(clk,res,out);
input clk;
input res;
output [3:0] out;
reg [31:0] count;
always @ (posedge res or posedge clk)
if(res)
count <= 0;
else
count <= count + 1;
assign out[3] = count[28];
assign out[2] = count[27];
assign out[1] = count[26];
assign out[0] = count[25];
endmodule
10
Xilinx Software
Use design tools from chip maker
Have full version on lab PCs
Can install on your PC
Download from web
11
Class Web Pages
Will be up by Thursday’s class
Linked from my home page
http://www.cs.unc.edu/~montek
All lecture slides posted there
Will try to put them there before class
Schedule, homework, etc. posted there
Lab documents there also
See Blackboard/Sakai for scores/grades
12
Textbook
Harris and Harris
Digital Design and Computer Architecture
Morgan Kaufmann, 2007
Amazon has for $70
Extra material on
http://www.elsevierdirect.com/companion.jsp?ISBN=9780123704979
13
Overview of Textbook
Chapters 1-5: Digital logic
Combinational, sequential, basic circuits, HDL
Chapter 6: Architecture
Fast – review for those who took COMP 411
Chapter 7: Microarchitectures
Chapters 8: Memories
Appendix A: Implementation
FPGAs, etc.
14
Order of Topics
Will change order from that in book
To try to get you working on interesting labs sooner
15
May Also Need
COMP411 textbook (Patterson/Hennessy)
For MIPS reference
How many have one?
I can copy the few necessary pages
Verilog reference
Book optional
Web pages – see course home page
16
Grading
Labs – 35%
Easier at first; later ones will count more
Lab final project – 15%
Homework – 25%
Two tests spaced evenly – 12.5% each
17
Labs
Paced slowly at first
Familiarization with tools, simple combinational design, design
a digital lock or similar
Peripheral – VGA, opt. keyboard interface or joystick
Build up computer components
Registers, ALU, decoder
Assemble a simple MIPS
Add more features, enough for simple computer
Final demo – game or similar
18
Lab Sections
No lab this Friday
You need a little more info to begin
Begin next week
Lab is in FB007
19
Late Policy
Homework assignments and lab reports due by class
Labs due on Monday after the lab period
One class late, 10 points off
Two classes late, 25 points off
Not accepted later
20
What’s Your Background?
Course experience
Work, etc.
Which COMP411?
What’s your intent in taking class?
Questions?
21
Office Hours
Would like to wait a week to set
Send email if you want to meet in the mean time
22
Now Shift to Technology
Should be review for all of you
23
Digital vs. Analog
Analog – infinite resolution
Like (old fashioned) radio dial
We’ll do very little with analog
VGA, maybe sound
Digital – a finite set of values
Like money
Can’t get smaller than cents
Typically also has maximum value
24
Binary Signaling
Zero volts
FALSE or 0
5 or 3.3 (or 1.8 or 1.5) volts
TRUE or 1
Modern chips down to 1V
Why not multilevel signaling?
25
Discrete Data
Some data inherently discrete
Names (sets of letters)
Some quantized
Music recorded from microphone
Note that other examples like music from CD or electronic
keyboard already quantized
Mouse movement is quantized
Well, some mice
26
Numbers and Arithmetic
I have put most of these slides at end
Backup in case you’ve forgotten
Review of binary numbers,
Hexadecimal,
Arithmetic
Let’s cover
Other codes, parity
27
BCD
Binary Coded Decimal
Decimal digits stored in binary
Four bits/digit
Like hex, except stops at 9
Example
931 is coded as 1001 0011 0001
Remember: these are just
by us.
encodings. Meanings are assigned
28
Other Codes Exist
Non positional
Example: Gray Code
Only one bit changes at a time
000,001,011,010,110,111,101,100
Why is this useful?
Actually there’s a family of Gray codes
Ref: http://lib-www.lanl.gov/numerical/bookcpdf/c20-2.pdf
29
Shaft Encoder
30
Character Codes
From numbers to letters
ASCII
Stands for American Standard Code for Information
Interchange
Only 7 bits defined
Unicode
You may make up your own code for the MIPS VGA
31
ASCII table
32
Even Parity
Sometimes high-order bit of ASCII coded to enable
detection of errors
Even parity – set bit to make number of 1’s even
Examples
A (01000001) with even parity is 01000001
C (01000011) with even parity is 11000011
33
Odd Parity
Similar except make the number of 1’s odd
Examples
A (01000001) with odd parity is 11000001
C (01000011) with odd parity is 01000011
34
Error Detection
Note that parity detects only simple errors
One, three, etc. bits
More complex methods exist
Some that enable recovery of original info
Cost is more redundant bits
35
Today’s Topics
Introduction
Digital logic
Number systems
Arithmetic
Codes
Parity
The encoding is key
Standards are used to agree on encodings
Special purpose codes for particular uses
36
Homework
None, but…
I expect you to know number systems well and be able to do
conversions and arithmetic
Decimal – Binary
Binary – Decimal
Decimal – Hex
Hex – Decimal
Can do some of the problems – 1.7 to 1.27 are all about
conversion – if you think you need a refresher. Answers to
odd numbered on book website.
37
Reading
Read Chapter 1
38
Next Class
Combinational Logic Basics
Next Week: Lab preview
I will demo tools in class, probably Wednesday
39
Backup Slides
Should be all review material
40
Binary Numbers
Strings of binary digits (“bits”)
One bit can store a number from 0 to 1
n bits can store numbers from 0 to 2n
41
Binary – Powers of 2
Positional representation
Each digit represents a power of 2
So 101 binary is
1 • 22 + 0 • 21 + 1 • 20
or
1•4 + 0•2 + 1•1=5
42
Converting Binary to Decimal
Easy, just multiply digit by power of 2
Just like a decimal number is represented
Example follows
43
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
What is 10011100 in decimal?
1
0
0
1
1
1
0
0
128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = 156
44
Decimal to Binary
A little more work than binary to decimal
Some examples
3 = 2 + 1 = 11 (that’s 1•21 + 1•20)
5 = 4 + 1 = 101 (that’s 1•22 + 0•21 + 1•20)
45
Algorithm – Decimal to Binary
Find largest power-of-two smaller than decimal
number
Make the appropriate binary digit a ‘1’
Subtract the power of 2 from decimal
Do the same thing again
46
Decimal Binary Example
Convert 28 decimal to binary
32 is too large, so use 16
Binary 10000
Decimal 28 – 16 = 12
Next is 8
Binary 11000
Decimal 12 – 8 = 4
Next is 4
Binary 11100
Decimal 4 – 4 = 0
7
6
5
4
3
2
1
0
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
47
Hexadecimal
Strings of 0s and 1s too hard to write
Use base-16 or hexadecimal – 4 bits
Dec
Bin
Hex
Dec
Bin
Hex
0
0000
0
8
1000
8
1
0001
1
9
1001
9
2
0010
2
10
1010
?
3
0011
3
11
1011
?
4
0100
4
12
1100
?
5
0101
5
13
1101
?
6
0110
6
14
1110
?
7
0111
7
15
1111
?
48
Hexadecimal
Letters to represent 10-15
Dec
Bin
Hex
Dec
Bin
Hex
0
0000
0
8
1000
8
1
0001
1
9
1001
9
2
0010
2
10
1010
a
3
0011
3
11
1011
b
4
0100
4
12
1100
c
5
0101
5
13
1101
d
6
0110
6
14
1110
e
•Power of 2
7
0111
7
15
1111
f
•Size of byte
Why use
base 16?
49
Hex to Binary
Bin
Hex
0000
0
0001
1
0010
2
Convention – write 0x before number
0011
3
Hex to Binary – just convert digits
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
No magic – remember hex digit = 4 bits
50
Binary to Hex
Just convert groups of 4 bits
101001101111011
0101 0011 0111 1011
5
3
7
b
101001101111011 = 0x537b
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
51
Hex to Decimal
Dec
Hex
0
0
Just multiply each hex digit by decimal value,
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
and add the results.
0x2ac
2 • 256
+ 10 • 16 + 12 • 1 = 684
163
162
161
160
4096
256
16
1
52
Decimal to Hex
1.
2.
3.
4.
Analogous to decimal binary.
Find largest power-of-16 smaller than decimal
number
Divide by power-of-16. The integer result is hex
digit.
The remainder is new decimal number.
Do the same thing again
53
Decimal to Hex
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
160
14
e
1
15
f
684
0x2__
684/256 = 2
684%256 = 172
0x2a_
172%16 = 12 = c 0x2ac
172/16 = 10 = a
163
4096
162
256
161
16
54
Octal
Octal is base 8
Similar to hexadecimal
Conversions
Less convenient for use with 8-bit bytes
55
Arithmetic -- addition
Binary similar to decimal arithmetic
1
No carries
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
+ 1
0
0
0
1
+ 1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
Carries
1+1 is 2 (or 102), which results in a carry
56
Arithmetic -- subtraction
No borrows
-
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
-
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
Borrows
0 - 1 results in a borrow
57
Arithmetic -- multiplication
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
X
1
Successive additions of
multiplicand or zero,
multiplied by 2 (102).
Note that multiplication
by 102 just shifts bits
left.
1
58