Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 57

COMP541 (160)

Digital Logic and


Computer Design

Montek Singh

Jan 11, 2007

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;

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

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

 Send email if you want to meet

19
Now Shift to Technology

Should be review for all of you

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

 Why not multilevel signaling?

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?

 Actually there’s a family of Gray codes

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

 Shared with LEGO 1st year seminar

37
Backup Slides

Should be all review material

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

What is 10011100 in decimal?

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

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

45
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 ?
46
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
Why use
4 0100 4 12 1100 c base 16?
5 0101 5 13 1101 d
6 0110 6 14 1110 e •Power of 2
7 0111 7 15 1111 f
•Size of byte

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

0010 1010 1100 1010 a


1011 b
0x2ac = 001010101100 1100 c
1101 d
No magic – remember hex digit = 4 bits 1110 e
1111 f 48
Binary to Hex Bin Hex
0000 0
0001 1
0010 2
0011 3
 Just convert groups of 4 bits
0100 4
101001101111011 0101 5
0110 6

0101  0011  0111  1011 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

1+1 is 2 (or 102), which results in a carry

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

You might also like