PowerPoint 프레젠테이션
Download
Report
Transcript PowerPoint 프레젠테이션
Seoul National University
Logic Design
1
Seoul National University
Overview of Logic Design
Fundamental Hardware Requirements
Computation
Storage
Communication
How to get values from one place to another
Bits are Our Friends
Everything expressed in terms of values 0 and 1
Computation
Compute Boolean functions
Storage
Store bits of information
Communication
Low or high voltage on wire
2
Seoul National University
Digital Signals
0
1
0
Voltage
Time
Use voltage thresholds to extract discrete values from continuous signal
Simplest version: 1-bit signal
Either high range (1) or low range (0)
With guard range between them
Not strongly affected by noise or low quality circuit elements
Can make circuits simple, small, and fast
3
Seoul National University
Computing with Logic Gates
And
a
b
Or
out
out = a && b
a
b
Not
out
out = a | | b
a
out
out = ! a
Outputs are Boolean functions of inputs
Respond continuously to changes in inputs
With some, small delay
a && b
b
Voltage
a
Time
4
Seoul National University
Combinational Circuits
Acyclic Network
Inputs
Outputs
Acyclic Network of Logic Gates
Continuously responds to changes on inputs
Outputs become (after some delay) Boolean functions of inputs
5
Seoul National University
Bit Equality
Bit equal
a
HCL Expression
eq
bool eq = (a&&b)||(!a&&!b)
b
Generate 1 if a and b are equal
Hardware Control Language (HCL)
Very simple hardware description language
Boolean operations have syntax similar to C logical operations
We’ll use it to describe control logic for processors
6
Seoul National University
Word Equality
Word-Level Representation
b31
Bit equal
eq31
B
a31
b30
Bit equal
=
eq30
Eq
A
a30
HCL Representation
Eq
bool Eq = (A == B)
b1
Bit equal
eq1
a1
b0
a0
Bit equal
eq0
32-bit word size
HCL representation
Equality operation
Generates Boolean value
7
Seoul National University
Bit-Level Multiplexor
s
Bit MUX
HCL Expression
b
out
bool out = (s&&a)||(!s&&b)
a
Control signal s
Data signals a and b
Output a when s=1, b when s=0
8
Seoul National University
Word Multiplexor
Word-Level Representation
s
s
B
b31
out31
HCL Representation
out30
a30
b0
a0
Out
A
a31
b30
MUX
int Out = [
s : A;
1 : B;
];
Select input word A or B depending on
out0
control signal s
HCL representation
Case expression
Series of test : value pairs
Output value for first successful test
9
Seoul National University
HCL Word-Level Examples
Minimum of 3 Words
C
B
A
MIN3
Min3
int Min3 = [
A < B && A < C : A;
B < A && B < C : B;
1
: C;
];
D0
D1
D2
D3
MUX4
Out4
input words
HCL case expression
Final case guarantees
match
Select one of 4 inputs
4-Way Multiplexor
s1
s0
Find minimum of three
int Out4 = [
!s1&&!s0: D0;
!s1
: D1;
!s0
: D2;
1
: D3;
];
based on two control bits
HCL case expression
Simplify tests by
assuming sequential
matching
10
Seoul National University
Arithmetic Logic Unit
0
Y
A
X
B
1
Y
A
L
U
A
X+Y
OF
ZF
CF
X
B
2
Y
A
L
U
A
X-Y
OF
ZF
CF
X
B
3
Y
A
L
U
A
X&Y
OF
ZF
CF
X
B
A
L
U
X^Y
OF
ZF
CF
Combinational logic
Continuously responding to inputs
Control signal selects function computed
Corresponding to 4 arithmetic/logical operations in Y86
Also computes values for condition codes
11
Seoul National University
Sequential Circuit: Registers
Structure
i7
D
C
Q+
o7
i6
D
C
Q+
o6
i5
D
C
Q+
o5
i4
D
C
Q+
o4
i3
D
C
Q+
o3
i2
D
C
Q+
o2
i1
D
C
Q+
o1
i0
D
C
Q+
o0
I
O
Clock
Clock
Stores word of data
Different from program registers seen in assembly code
Collection of edge-triggered latches
Loads input on rising edge of clock
12
Seoul National University
Register Operation
State = x
Input = y
Output = x
x
State = y
Rising
clock
Output = y
y
Stores data bits
For most of time acts as barrier between input and output
As clock rises, loads input
13
Seoul National University
State Machine Example
Comb. Logic
0
Accumulator circuit
Load or accumulate on
A
L
U
0
each cycle
Out
MUX
In
1
Load
Clock
Clock
Load
In
Out
x0
x1
x0
x0+x1
x2
x0+x1+x2
x3
x4
x3
x3+x4
x5
x3+x4+x5
14
Seoul National University
Random-Access Memory
Stores multiple words of memory
Address input specifies which word to
read or write
Register file
Holds values of program registers
%eax, %esp, etc.
Register identifier serves as address
– ID 15 (0xF) implies no read or write
performed
Multiple Ports
Can read and/or write multiple words in
one cycle
– Each has separate address and data
input/output
valA
srcA
Read
Ports
A
valW
Register
file
valB
srcB
W
dstW
Write
Port
B
Clock
15
Seoul National University
Register File Timing
valA
srcA
x
A
Register
file
valB
srcB
x
2
address
B
2
2
Reading
Like combinational logic
Output data generated based on input
x
valW
Register
file
W
Clock
dstW
y
2
After some delay
Writing
Like register
Update only as clock rises
Rising
clock
2
y
valW
Register
file
W
dstW
Clock
16
Seoul National University
Hardware Control Language
Very simple hardware description language
Can only express limited aspects of hardware operation
Parts we want to explore and modify
Data Types
bool: Boolean
a, b, c, …
int: words
A, B, C, …
Does not specify word size---bytes, 32-bit words, …
Statements
bool a = bool-expr ;
int A = int-expr ;
17
Seoul National University
HCL Operations
Classify by type of value returned
Boolean Expressions
Logic Operations
a && b, a || b, !a
Word Comparisons
A == B, A != B, A < B, A <= B, A >= B, A > B
Set Membership
A in { B, C, D }
– Same as A == B || A == C || A == D
Word Expressions
Case expressions
[ a : A; b : B; c : C ]
Evaluate test expressions a, b, c, … in sequence
Return word expression A, B, C, … for first successful test
18
Seoul National University
Summary
Combinational circuit: Computation
Performed by combinational logic
Computes Boolean functions
Continuously reacts to input changes
Sequential circuit: Storage
Registers
Hold single words
Loaded as clock rises
Random-access memories
Hold multiple words
Multiple read or write ports
Read word when address input changes
Write word as clock rises
19