Nothing Special   »   [go: up one dir, main page]

COMP541 (160) Digital Logic and Computer Design

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