cse140-b: review & discussion session for midterm...

23
CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06 (13PM-13:50PM) Hao Zhuang Computer Science and Engineering Department, University of California, San Diego Acknowledge: templates of slides are designed by CMU’s SAFARI group

Upload: others

Post on 18-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

CSE140-B:

Review & Discussion Session

for

Midterm 3

2014/12/06 (13PM-13:50PM)

Hao Zhuang

Computer Science and Engineering Department,

University of California, San Diego

Acknowledge: templates of slides are designed by CMU’s SAFARI group

Page 2: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

SYSTEM DESIGN

2

Page 3: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Exercise 6: Problem 4

Last year’s exercise http://cseweb.ucsd.edu/classes/fa14/cse140-b/exams/exercise.pdf

Corrections for the problem IV Alg(X,Y, start, U, done);

Input X[7:0], Y[7:0], start;

Output U[7:0], done;

Local-object A[7:0], B[7:0], C[7:0];

S1: If start’ goto S1|| done <=1 ;

S2: A ⇐ X || B ⇐ Y || C ⇐ (00000000) || done ⇐ 0;

S3: A ⇐ Add(A, B) || C ⇐ Inc(C);

S4: If A’[7] goto S3;

S5: U ⇐ C || done ⇐ 1 || goto S1;

End Alg

3

Page 4: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

System Design: Implement the following algorithm

Alg(X,Y, start, U, done);

Input X[7:0], Y[7:0], start;

Output U[7:0], done;

Local-object A[7:0], B[7:0], C[7:0];

S1: If start’ goto S1|| done <=1 ;

S2: A ⇐ X || B ⇐ Y ||

C ⇐ (00000000) || done ⇐ 0;

S3: A ⇐ Add(A, B) || C ⇐ Inc(C);

S4: If A’[7] goto S3;

S5: U ⇐ C || done ⇐ 1 || goto S1;

End Alg

4

Data

Subsystem

Control

Subsystem

X Y

start

U

done

*Inc(C) means C+1

A[7] C0-C?

Page 5: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Data subsystem: use a table to list the instructions

State

Statement Operations Control signal

S2 A <= X A<=Load(X)

S2 B <= Y B<=Load(Y)

S2 C <= 0 C<=clear(C)

S3 A <= Add(A,B) A<=Add(A,B)

S3 C <= Inc(C) C<=Inc(C)

S5 U <= C Wires

5

S1: If start’ goto S1 || done <=1;

S2: A ⇐ X || B ⇐ Y || C ⇐ (00000000) || done ⇐ 0;

S3: A ⇐ Add(A, B) || C ⇐ Inc(C);

S4: If A’[7] goto S3;

S5: U ⇐ C || done ⇐ 1 || goto S1;

Always write down these state numbers, they help us assign control signals for

every state (during control subsystem design)

Page 6: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

6

Y LD

Register B

D R

8

X LD 8

Register A

D R A

B

Adder A

B S

A

State

Operations Control signal

S2 A<=Load(X)

S2 B<=Load(Y)

S2 C<=clear(C)

S3 A<=Add(A,B)

S3 C<=Inc(C)

S5 Wires

CLR

Counter C

D R U

INC

Data Subsystem Design: Storage & Function Components

Page 7: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

7

Operations Control signal

S2 A<=Load(X)

S2 B<=Load(Y)

S2 C<=clear(C)

S3 A<=Add(A,B)

S3 C<=Inc(C)

S5 Wires Y LD

Register B

D R

X LD

Register A

D R A

CLR

Counter C

D R U

INC

B

Adder A

B S

S0

0

1

C0 C1

C2

C3 C4

Data Subsystem Design: Wiring and Map Clock Signals

Page 8: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

8

Y LD

Register B

D R

X LD

Register A

D R A

CLR

Counter C

D R U

INC

B

Adder A

B S

Operations Control signal

S2 A<=Load(X) C1=1, C0=1

S2 B<=Load(Y) C2=1

S2 C<=clear(C) C3=1

S3 A<=Add(A,B) C0 = 0, C1=1

S3 C<=Inc(C) C4=1

S5 Wires done

S0

0

1

C0 C1

C2

C3 C4

Data Subsystem Design: Wiring and Map Clock Signals

Page 9: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

9

Y LD

Register B

D R

X LD

Register A

D R A

CLR

Counter C

D R U

INC

B

Adder A

B S

Operations Control signal

S2 A<=Load(X) C1=1, C0=1

S2 B<=Load(Y) C2=1

S2 C<=clear(C) C3=1

S3 A<=Add(A,B) C0 =0, C1=1

S3 C<=Inc(C) C4=1

S5 Wires done

S0

0

1

C0 C1

C2

C3 C4

Data Subsystem Design: Wiring and Map Clock Signals

Data

Subsystem

Control

Subsystem

X Y

start

U

done

A[7] C0-C4

Page 10: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

10

Y LD

Register B

D R

X LD

Register A

D R A

CLR

Counter C

D R U

INC

B

Adder A

B S

Operations Control signal

S2 A<=Load(X) C1=1, C0=1

S2 B<=Load(Y) C2=1

S2 C<=clear(C) C3=1

S3 A<=Add(A,B) C0 = 0, C1=1

S3 C<=Inc(C) C4=1

S5 Wires done

S0

0

1

C0 C1

C2

C3 C4

Control

Subsystem

C0-4

start done

A[7]

Data Subsystem Design: Identify Control Path Components

Page 11: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

11

Y LD

Register B

D R

X LD

Register A

D R A

CLR

Counter C

D R U

INC

B

Adder A

B S

Operations Control signal

S2 A<=Load(X) C1=1, C0=1

S2 B<=Load(Y) C2=1

S2 C<=clear(C) C3=1

S3 A<=Add(A,B) C0 =0, C1=1

S3 C<=Inc(C) C4=1

S5 Wires done

S0

0

1

C0 C1

C2

C3 C4

Control

Subsystem

C0

C1

C2

C3

C4

start done

A[7]

Page 12: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Control subsystem: State Diagram

12

S1

S1: If start’ goto S1 || done <=1;

S2: A ⇐ X || B ⇐ Y || C ⇐ (00000000) || done ⇐ 0;

S3: A ⇐ Add(A, B) || C ⇐ Inc(C);

S4: If A’[7] goto S3;

S5: U ⇐ C || done ⇐ 1 || goto S1;

S2

S3

S4

Start’

Start

A’[7]

S5

A[7]

Page 13: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Control Subsystem: List control signals for every state

13

Operations Control signal

S2 A<=Load(X) C0=1, C1=1

S2 B<=Load(Y) C2=1

S2 C<=clear(C) C3=1

S3 A<=Add(A,B) C0 =0, C1=1

S3 C<=Inc(C) C4=1

S5 Wires done Y

LD

Register B

D R

X LD

Register A

D R A

CLR

Counter C

D R C

INC

B

Adder A

B S

S0

0

1

C0 C1

C2

C3 C4

Control

Subsystem

C0-4

start done

A[7] C0 (MUX) C1 C2 C3 C4 done

S1 0 0 0 0 0 1

S2 1 1 1 1 0 0

S3 0 1 0 0 1 0

S4 0 0 0 0 0 0

S5 0 0 0 0 0 1

Page 14: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Control Subsystem: List control signals for every state

14

Operations Control signal

S2 A<=Load(X) C0=1, C1=1

S2 B<=Load(Y) C2=1

S2 C<=clear(C) C3=1

S3 A<=Add(A,B) C0 =0, C1=1

S3 C<=Inc(C) C4=1

S5 Wires done Y

LD

Register B

D R

X LD

Register A

D R A

CLR

Counter C

D R C

INC

B

Adder A

B S

S0

0

1

C0 C1

C2

C3 C4

Control

Subsystem

C0-4

start done

A[7]

C0 (MUX) C1 C2 C3 C4 done

S1 - 0 0 0 0 1

S2 1 1 1 1 0 0

S3 0 1 1 0 1 0

S4 - 0 0 0 0 0

S5 - 0 0 0 0 1

Only when C1 is 1, we need to know what C0 is. Otherwise, Register A

does not load anything from MUX.

Page 15: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Control Subsystem: One-Hot State Machine

15

S1

S1

S2

S3

S4

Start’

Start

A’[7]

S5

A[7]

S2

S3

S4

S5

Use a flip-flop to

replace each state

Page 16: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Control Subsystem: One-Hot State Machine

16

S1

S1

S2

S3

S4

Start’

Start

A’[7]

S5

A[7]

S2

S3

S4

S5

Start’ Start

We may use a

Demux to

distribute the

outward edges

Page 17: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Control Subsystem: One-Hot State Machine

17

S1

S1

S2

S3

S4

Start’

Start

A’[7]

S5

A[7]

S2

S3

S4

S5

Start’ Start

A’[7] A[7]

We use an OR

gate to collect

all inward edges

Page 18: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Control Subsystem: One-Hot State Machine

18

S1

S1

S2

S3

S4

Start’

Start

A’[7]

S5

A[7]

S2

S3

S4

S5

Start’ Start

A’[7] A[7]

Page 19: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Control Subsystem: One-Hot State Machine

19

S1

S2

S3

S4

S5

Start’

Start

A’[7] A[7]

C0 C1 C2 C3 C4 done

S1 - 0 0 0 0 1

S2 1 1 1 1 0 0

S3 0 1 0 0 1 0

S4 - 0 0 0 0 0

S5 - 0 0 0 0 1

done

C1

C4

C0, C2, C3

output the control signals

Page 20: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

References

YouTube video by Dao

Timing Analysis:

https://www.youtube.com/watch?v=JElzhGPYp68&feature=youtu.be

Multiplexers (I)

https://www.youtube.com/watch?v=iCYNPkVujH8

Multiplexers (II)

https://www.youtube.com/watch?v=Swb3majVmFQ

Data subsystem https://www.youtube.com/watch?v=6TnT_GpYZAI

Control Subsystem:

https://www.youtube.com/watch?v=mByGoCGESRY&feature=youtu.be

One-hot state machine:

https://www.youtube.com/watch?v=bdUQRL1Ofa8

Also read the corrections and FAQ @Piazza 189

https://piazza.com/class/hyd8lwowxmr4v6?cid=189

20

Page 21: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Preparations for Midterm 3

Timing

Maximum frequency

Longest Path

Setup time violation

clock skew

Hold time violation

Shortest Path

clock skew

Standard Combinational Modules:

Multiplexer, Decoder, etc

How to use them to implement Boolean function

Tips for the exam: always write down the input and output labels in your diagram

Page 22: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

Preparations for Midterm 3

System Design (covered this date)

Data subsystem

Table for operation (remember to write the state number)

Logic diagram

Control signals

Control subsystem

State diagram

Control signal for every state

One-hot state machine

22

Page 23: CSE140-B: Review & Discussion Session for Midterm 3cseweb.ucsd.edu/classes/fa14/cse140-b/ds/mid3review... · 2014-12-07 · CSE140-B: Review & Discussion Session for Midterm 3 2014/12/06

NEXT DISCUSSION

MONDAY 19:00-19:50

23