You are on page 1of 57

COMP541 (160)

Digital Logic and


Computer Design
Montek Singh
Jan 11, 2007

Todays Topics
Course description
Whats it about
Mechanics: grading, etc.
Material from Chapter 1 (review)
What is digital logic?
Binary signaling
Number systems
Codes

Whats 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

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

We Will Use This Board

Schematic Diagram

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

Xilinx Software
Use design tools from chip maker
Have full version on lab PCs
Can install on your PC
ModelSim simulator or built-in

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

Textbook and Syllabus


Largely follow Prof. Lastras 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

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

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

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

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)

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

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

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

Whats Your Background?


Course experience
Work, etc.
Which COMP120?
Whats your intent in taking class?
Questions?

Office Hours
Would like to wait a week to set
Send email if you want to meet

Now Shift to Technology


Should be review for all of you

20

Digital vs. Analog


Analog infinite resolution
Like (old fashioned) radio dial
Well do very little with analog
VGA, maybe sound

Digital a finite set of values


Like money
Cant get smaller than cents
Typically also has maximum value

Binary Signaling
Zero volts
FALSE or 0
3.3 or 5 volts
TRUE or 1
Modern chips down to 1V

Why not multilevel signaling?

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

Numbers and Arithmetic


Ive put most of these slides at end
Backup in case youve forgotten
Review of binary numbers,

Hexadecimal,
Arithmetic

Lets cover
Other codes, parity

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.

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 theres a family of Gray codes

Ref: http://lib-www.lanl.gov/numerical/bookcpdf/c20-2.pdf

Shaft Encoder

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

ASCII table

Even Parity
Sometimes high-order bit of ASCII coded to

enable detection of errors


Even parity set bit to make number of 1s
even
Examples
A (01000001) with even parity is 01000001
C (01000011) with even parity is 11000011

Odd Parity
Similar except make the number of 1s odd
Examples
A (01000001) with odd parity is 11000001
C (01000011) with odd parity is 01000011

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

Todays 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

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.

Reading
Skim chapter 1
Quick read to make sure youre comfortable with
material
Read Chapter 2

Next Week
Combinational Logic Basics
Lab preview
Ill demo tools in class, probably Thursday
Lab on Friday the 19th
Schematic capture
Maybe simple Verilog
Run on FPGA

Lab Walkthrough
Lets go see the lab
Shared with LEGO 1st year seminar

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 2n

Binary Powers of 2
Positional representation
Each digit represents a power of 2
So 101 binary is
1 22 + 0 21 + 1 20
or
14 + 02 + 11=5

Converting Binary to Decimal


Easy, just multiply digit by power of 2
Just like a decimal number is represented
Example follows

Binary Decimal Example


7

27

26

25

24

23

22

21

20

128

64

32

16

What is 10011100 in decimal?


1

128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = 156
4

Decimal to Binary
A little more work than binary to decimal
Some examples
3 = 2 + 1 = 11 (thats 121 + 120)
5 = 4 + 1 = 101 (thats 122 + 021 + 120)

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

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

27

26

25

24

23

22

21

20

128

64

32

16

Hexadecimal
Strings of 0s and 1s too hard to write
Use base-16 or hexadecimal 4 bits

Dec

Bin

Hex

Dec

Bin

Hex

0000

1000

0001

1001

0010

10

1010

0011

11

1011

0100

12

1100

0101

13

1101

0110

14

1110

0111

15

1111

Hexadecimal
Letters to represent 10-15

Dec

Bin

Hex

Dec

Bin

Hex

0000

1000

0001

1001

0010

10

1010

0011

11

1011

0100

12

1100

0101

13

1101

0110

14

1110

0111

15

1111

Why use
base 16?
Power of 2
Size of byte
4

Hex to Binary

Bin

Hex

0000

0001

0010

Convention write 0x before number

0011

Hex to Binary just convert digits

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0x2ac
0010 1010 1100
0x2ac = 001010101100

No magic remember hex digit = 4 bits

Binary to Hex
Just convert groups of 4 bits

101001101111011
0101 0011 0111 1011
5

101001101111011 = 0x537b

Bin

Hex

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Hex to Decimal

Dec

Hex

Just multiply each hex digit by decimal

10

11

12

13

14

15

value, and add the results.

0x2ac
2 256 + 10 16 + 12 1 = 684

163

162

161

160

4096

256

16

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

Decimal to Hex
684
684/256 = 2

0x2__

684%256 = 172
172/16 = 10 = a

0x2a_
172%16 = 12 = c 0x2ac

163

162

161

160

4096

256

16

Dec

Hex

10

11

12

13

14

15

Octal
Octal is base 8
Similar to hexadecimal
Conversions
Less convenient for use with 8-bit bytes

Arithmetic -- addition
Binary similar to decimal arithmetic

No carries

1 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 0 1 1 0 1

Carries

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


5

Arithmetic -- subtraction

0 0 1 1 0

No borrows

1 1 1 1 0

1 0 1 1 0
-

1 0 0 1 0
0 0 1 0 0

Borrows

1 0 0 1 1
0 1 0 1 1

0 - 1 results in a borrow
5

Arithmetic -- multiplication

1 0 1 1
X

1 0 1
1 0 1 1

0 0 0 0
1 0 1 1

Successive additions of
multiplicand or zero,
multiplied by 2 (102).
Note that multiplication
by 102 just shifts bits
left.

1 1 0 1 1 1

Hexadecimal Arithmetic
Similar
If youre doing by hand, easiest to convert

each set of digits to decimal and back


Skill is not very useful

You might also like