COMP541 (160) Digital Logic and Computer Design
COMP541 (160) Digital Logic and Computer Design
COMP541 (160) Digital Logic and Computer Design
Montek Singh
1
Today’s Topics
Course description
What’s it about
Mechanics: grading, etc.
Material from Chapter 1 (review)
What is digital logic?
Binary signaling
Number systems
Codes
2
What’s Course About?
Digital logic, focusing on the design of computers
Stay above transistor level
Only one class on transistors and VLSI
Each person designs a MIPS CPU
and peripheral logic (VGA, joystick)
Project like an Atari 2600 game
High-level language
Modern design practices
3
How Can We Do This?
Field Programmable Gate Arrays
Chips with a lot of circuits
Tens of thousands to millions of transistors
Programmable
We write “programs” describing design
Tools translate to gates/wires
Download pattern to chip
4
We Will Use This Board
5
Schematic Diagram
6
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;
endmodule
7
Xilinx Software
Use design tools from chip maker
Have full version on lab PCs
Can install on your PC
ModelSim simulator or built-in
8
Class Web Pages
Linked from my home page
http://www.cs.unc.edu/~montek
All notes posted
Will try to put them there before class
Lab documents there also
See Blackboard for grades
9
Textbook and Syllabus
Largely follow Prof. Lastra’s syllabus
Morris Mano and Charles Kime
Logic and Logic and Computer Design Fundamentals,
3rd Edition
Prentice Hall, 2004
Will largely follow text
Slightly different order
More emphasis on HLL
10
Overview of Textbook
Chapters 1-6: Digital logic
Combinational and sequential
Chapter 7-8: Register Transfer and State Machines
Chapter 9: Memories
Chapters 10-12: Computer design
Chapter 13: I/O
Chapter 14: Memory Hierarchies
11
Order of Topics
Will change order from that in book
To try to get you working on interesting labs sooner
Move sequential design earlier
Then backfill details on combinational design
12
May Also Need
COMP120 book
For MIPS reference
How many have one?
I can copy the few necessary pages
Verilog reference
Book optional
Web pages – see course home page
13
Grading
Labs – 35%
Easier at first; later ones will count more
Homework – 20%
Two tests spaced evenly – 12.5% each
Final – 20% (optional for some)
14
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
15
Lab Sections
No lab this Friday
You need a little more info to begin
Begin next week
Lab is in SN 027, down the hall by the back entrance
16
Late Policy
Homework assignments and lab reports due by class
time
Labs due on Tuesday after the lab period
One class late, 10 points off
Two classes late, 25 points off
Not accepted later
17
What’s Your Background?
Course experience
Work, etc.
Which COMP120?
What’s your intent in taking class?
Questions?
18
Office Hours
Would like to wait a week to set
19
Now Shift to Technology
20
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
21
Binary Signaling
Zero volts
FALSE or 0
3.3 or 5 volts
TRUE or 1
Modern chips down to 1V
22
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
23
Numbers and Arithmetic
I’ve 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
24
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 encodings. Meanings are assigned
by us.
25
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?
Ref: http://lib-www.lanl.gov/numerical/bookcpdf/c20-2.pdf
26
Shaft Encoder
27
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
28
ASCII table
29
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
30
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
31
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
32
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
33
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-2, 1-4, 1-7 if you think you
need a refresher. Answers on book website.
34
Reading
Skim chapter 1
Quick read to make sure you’re comfortable with material
Read Chapter 2
35
Next Week
Combinational Logic Basics
Lab preview
I’ll demo tools in class, probably Thursday
Lab on Friday the 19th
Schematic capture
Maybe simple Verilog
Run on FPGA
36
Lab Walkthrough
Let’s go see the lab
37
Backup Slides
38
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 2 n
39
Binary – Powers of 2
Positional representation
Each digit represents a power of 2
So 101 binary is
1 • 2 2 + 0 • 21 + 1 • 2 0
or
1•4 + 0•2 + 1•1=5
40
Converting Binary to Decimal
Easy, just multiply digit by power of 2
Just like a decimal number is represented
Example follows
41
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
42
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)
43
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
44
Decimal Binary Example
Convert 28 decimal to binary
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
45
Hexadecimal
Strings of 0s and 1s too hard to write
Use base-16 or hexadecimal – 4 bits
47
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
0x2ac 0111 7
1000 8
1001 9
5 3 7 b 1010 a
1011 b
1100 c
101001101111011 = 0x537b 1101 d
1110 e
1111 f
49
Hex to Decimal Dec
0
Hex
0
Just multiply each hex digit by decimal value, 1 1
and add the results. 2 2
3 3
4 4
5 5
0x2ac 6 6
7 7
8 8
2 • 256 + 10 • 16 + 12 • 1 = 684 9 9
10 a
11 b
12 c
163 162 161 160
13 d
4096 256 16 1 14 e
15 f 50
Decimal to Hex
Analogous to decimal binary.
1. Find largest power-of-16 smaller than decimal
number
2. Divide by power-of-16. The integer result is hex
digit.
3. The remainder is new decimal number.
4. Do the same thing again
51
Decimal to Hex Dec
0
Hex
0
1 1
2 2
3 3
684 4 4
684/256 = 2 0x2__ 5
6
5
6
684%256 = 172 7
8
7
8
172/16 = 10 = a 0x2a_ 9 9
10 a
172%16 = 12 = c 0x2ac 11 b
12 c
13 d
163 162 161 160 14 e
15 f
4096 256 16 1
52
Octal
Octal is base 8
Similar to hexadecimal
Conversions
Less convenient for use with 8-bit bytes
53
Arithmetic -- addition
Binary similar to decimal arithmetic
No carries 1 0 1 1 0 0 Carries
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 0 1 1 0 1
54
Arithmetic -- subtraction
No borrows 0 0 1 1 0 Borrows
1 0 1 1 0 1 1 1 1 0
- 1 0 0 1 0 - 1 0 0 1 1
0 0 1 0 0 0 1 0 1 1
0 - 1 results in a borrow
55
Arithmetic -- multiplication
1 0 1 1 Successive additions of
X 1 0 1 multiplicand or zero,
multiplied by 2 (102).
1 0 1 1
Note that multiplication
0 0 0 0
by 102 just shifts bits
1 0 1 1
left.
1 1 0 1 1 1
56
Hexadecimal Arithmetic
Similar
If you’re doing by hand, easiest to convert each set
of digits to decimal and back
Skill is not very useful…
57