1 - ecpe 583 (reconfigurable computing): course overview iowa state university (ames) cpre 583...

72
1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course Overview) Instructor: Dr. Phillip Jones ([email protected]) Reconfigurable Computing Laboratory Iowa State University Ames, Iowa, USA http:// class.ece.iastate.edu/ cpre583/

Upload: horace-cain

Post on 28-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

CPRE 583Reconfigurable ComputingLecture 1: Wed 8/24/2011

(Course Overview)

Instructor: Dr. Phillip Jones([email protected])

Reconfigurable Computing LaboratoryIowa State University

Ames, Iowa, USA

http://class.ece.iastate.edu/cpre583/

Page 2: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

2 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Class Introduction• Class Survey (by next class, [email protected])

– Background (year in school, C programming, VHDL/Verilog, EE/CPRE background, ISU login ID)

– What would you like to get from this class

• Syllabus

• Course Expectations– Reinforce research fundamentals– Asking the right question

• VHDL handbook (source Synplicity)– http://www.cs.umbc.edu/portal/help/VHDL/VHDL-Handbook.pdf (quick ref)

• VHDL online tutorials– http://www.seas.upenn.edu/~ese201/vhdl/vhdl_primer.html– http://www.vhdl-online.de/tutorial/

Page 3: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

3 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

• Basic objectives and topics covered in this class.

• VDHL is NOT a programming language. It is a means to describe hardware.

What you should learn

Page 4: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

4 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topicsAgenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

• Basic components of an FPGA (Chapter 1)

• Overview of ways in which reconfigurable computing can be integrated into a system (Chapter 2)

• Examples of reconfigurable systems (Chapter3)

• Managing the reconfiguration of systems? (Chapter 4)

Page 5: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

5 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topics

A

B

X

opcode {+, -, AND, OR}

Behavior VHDL: ALUcompnt ALU (A,B,opcode,X) case opcode when => opPlus X <= A + B; when => opSub X <= A – B; when => opAND X <= A and B; when => opOR X <= A or B; end case;end component;

ALU

Structural VHDL: ALUcomponent ALU (A,B,opcode, X) addAB(A,B,Xadd); subAB(A,B,Xsub); andAB(A,B,Xand); orAB(A,B,Xor); 4:1mux(opcode, Xadd,Xor, Xand,Xor,X);end component;

Agenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

Page 6: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

6 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topicsAgenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models &Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

A

B

X

opcode {+, -, AND, OR}

A

B

X

addAB

subAB

andAB

orAB

4:1Mux

opcode {+, -, AND, OR}

2Xadd

Xsub

Xand

Xor

ALU

ALUStructural VHDL: ALUcomponent ALU (A,B,opcode, X) addAB(A,B,Xadd); subAB(A,B,Xsub); andAB(A,B,Xand); orAB(A,B,Xor); 4:1mux(opcode, Xadd,Xor, Xand,Xor,X);end component;

Page 7: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

7 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topicsAgenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

Abstraction that allows– Reasoning about computation

• Correctness• Extraction of parallelism

– Transformations for optimization– Guarantee Properties

FPGA

Mem

ory

CPU

Page 8: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

8 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topicsAgenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

Abstraction that allows– Reasoning about computation

• Correctness• Extraction of parallelism

– Transformations for optimization– Guarantee Properties

Mem

ory

Function1

Function2

Function4

Function3

Page 9: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

9 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topicsAgenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

Abstraction that allows– Reasoning about computation

• Correctness• Extraction of parallelism

– Transformations for optimization– Guarantee Properties

Mem

ory

Function5

Function1

Memory

Function2

Function3

Function4

Memory

Memory

Memory

Page 10: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

10 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topicsAgenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

• Streaming Applications

• Data Parallel Applications

• Fix/Floating Point Computations

• Evolvable Hardware

• Performance Trade-offs

Page 11: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

11 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topics

AB

addABX A

BxorAB

X AB

andABX A

BorAB

X

0 00 11 0 1 1

A B X0110

0 00 11 0 1 1

A B X0110

0 00 11 0 1 1

A B X0001

0 00 11 0 1 1

A B X0111

2-input Look Up Tables (LUTs)FPGA

LUT LUT LUT LUT

LUT LUT LUT LUT

LUT LUT LUT LUT

LUT LUT LUT LUT

Agenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

X <= A+B; X <= A xor B; X <= A and B; X <= A or B;

Page 12: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

12 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topics

FPGA

LUT addAB LUT LUT

LUT xorABLUT LUT

LUTandAB LUT LUT

LUT orAB LUT LUT

Agenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (2 Weeks)

4. Case Studies (1 Week)

AB

addABX A

BxorAB

X AB

andABX A

BorAB

X

0 00 11 0 1 1

A B X0110

0 00 11 0 1 1

A B X0110

0 00 11 0 1 1

A B X0001

0 00 11 0 1 1

A B X0111

2-input Look Up Tables (LUTs)

X <= A+B; X <= A xor B; X <= A and B; X <= A or B;

Page 13: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

13 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Main topics

Lectures on interesting uses of FPGAs. Ideally covering topics that the class would like to learn more about.

Please give suggestions as the semester progresses.

Agenda

1. Overview (6 Weeks) a. Reconfigurable HW b. VHDL

2. Computation Models & Architectures

(4 Weeks)

3. Mapping logic to FPGAs (3 Weeks)

4. Case Studies (1 Week)

Page 14: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

14 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks)

Page 15: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

15 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)

ML507Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks)

Page 16: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

16 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks)

Page 17: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

17 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks) FPGA

PC SerialUART Echo.vhd

Page 18: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

18 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks) FPGA

PC SerialUART

Echo.vhd(Modify to

capitalize only (a-z))

Page 19: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

19 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks) FPGA

PC Echo.vhdEthernet(UDP/IP)

Page 20: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

20 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks) FPGA

PCEcho.vhd

(Modify to count strings (e.g. corn!))

Ethernet(UDP/IP)

Page 21: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

21 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks)

FPGA

PC Display.cEthernet(UDP/IP)

Power PC

User Defined Instruction

Monitor VGA

Page 22: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

22 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks)

FPGA

PC Display.cEthernet(UDP/IP)

Power PC

User Defined Instruction

Monitor VGA

Page 23: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

23 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks)

FPGA

PC Display.cEthernet(UDP/IP)

Power PC

User Defined Instruction

Monitor VGA

Page 24: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

24 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problems (MPs)Agenda

1. Platform Introduction

2. Network String Matching

3. Image: PPC coprocessor

4. Final Projects(~6 weeks)

• Choose your own topic

• Groups of 3-4 (maybe 5 for case by case)

• Encouraged to take on aggressive projects

Page 25: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

25 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Review Syllabus

• Objects

• Expectations

• Grading breakdown

• MP grading policy: (more flexible for Distance Students)– Up to 5% added for early completion (Fri Midnight)– -5% after Fri Midnight– -10% additional after Monday Midnight– -10% additional after Tue Midnight– After Wed Midnight will make a note.

Page 26: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

26 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

What is Reconfigurable Computing?

• Ask wiki: http://en.wikipedia.org/wiki/Reconfigurable_computing

• Computing on a medium that is not fixed• Examples:

– rDPA (course grain reconfiguration)– FPGA (fine grain reconfiguration)– General Purpose Processor (not really)

underlining hardware typical executes a relatively small fixed instruction set.

Page 27: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

27 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

What are rDPAs?

• rDPA: reconfigurable Data Path Array• Function Units with programmable interconnects

ALU ALU ALU

ALU ALU ALU

ALU ALU ALU

Example

Page 28: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

28 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

What are rDPAs?

• rDPA: reconfigurable Data Path Array• Function Units with programmable interconnects

ALU ALU ALU

ALU ALU ALU

ALU ALU ALU

Example

Page 29: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

29 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

What are rDPAs?

• rDPA: reconfigurable Data Path Array• Function Units with programmable interconnects

ALU ALU ALU

ALU ALU ALU

ALU ALU ALU

Example

Page 30: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

30 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

What are FPGAs?

• FPGA: Field Programmable Gate Array• Sea of general purpose logic gates

CLB CLB CLB CLB

CLB CLB CLB CLB

CLB CLB CLB CLB

CLB CLB CLB CLB

Configurable Logic Block

Page 31: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

31 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

What are FPGAs?

• FPGA: Field Programmable Gate Array• Sea of general purpose logic gates

CLB CLB CLB

CLB CLB CLB CLB

CLB CLB CLB CLB

CLB CLB CLB CLB

Configurable Logic Block

Page 32: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

32 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

What are FPGAs?

• FPGA: Field Programmable Gate Array• Sea of general purpose logic gates

CLB CLB

CLB

CLB

CLB CLB CLB CLB

Configurable Logic Block

Page 33: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

33 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some FPGA Details

CLB CLB

CLB CLB

Page 34: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

34 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some FPGA Details

CLB

CLB CLB

LUTABCD

Z

4 input Look Up Table

00000001

11101111

ABCD Z

Page 35: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

35 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some FPGA Details

CLB

CLB CLB

LUTABCD

Z

4 input Look Up Table

00000001

11101111

ABCD Z

00

01

ANDZA

BCD

Page 36: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

36 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some FPGA Details

CLB

CLB CLB

LUTABCD

Z

4 input Look Up Table

00000001

11101111

ABCD Z

01

11

ORZA

BCD

Page 37: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

37 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some FPGA Details

CLB

CLB CLB

LUTABCD

Z

4 input Look Up Table

X000X001

X110X111

ABCD Z

01

11

2:1Mux

CD

B

Z

Page 38: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

38 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some FPGA Details

CLB

CLB CLB

LUTABCD

Z

Page 39: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

39 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some FPGA Details

CLB

CLB CLB

LUTABCD

Z

DFF

PIP Programmable Interconnection Point

Page 40: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

40 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some FPGA Details

CLB

CLB CLB

LUTABCD

Z

DFF

PIP Programmable Interconnection Point

Page 41: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

41 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

FPGA Usage Models

FastPrototyping

PartialReconfiguration

FullReconfiguration

ParallelApplications

System onChip (SoC)

•Experimental ISA

•Experimental Micro Architectures

• Image Processing

• Computational Biology

CPU + Specialized HW - Sparc-V8 Leon

• Remote Update

• Fault Tolerance

• Run-time adaptation• Run-time Customization

Page 42: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

42 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Application Area for Acceleration

Page 43: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

43 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Development Platform Overview

• ML507 Evaluation Platform User Guide (pgs. 14-16)– http://www.xilinx.com/support/documentation/boards_and_kits/

ug347.pdf

Page 44: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

44 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Machine Problem 1 (MP1) Short Overview

• Assigned Fri (8/27), Due Friday (9/10).

• Purpose: Make sure you can run the tools. Very light VHDL coding.

• Primary Tasks:– Run the echo circuit without modifications– Run the echo circuit with a modification to convert lower

case ASCII characters to upper case.

• Distance Students: Test using NX for remotely access xilinx.ece.iastate.edu. You can download the NX client from:– For Windows: http://www.nomachine.com/download-client-windows.php– For Linux: http://www.nomachine.com/download-client-linux.php– For MAC OS: http://www.nomachine.com/download-client-macosx.php– For Solaris: http://www.nomachine.com/download-client-solaris.php

Page 45: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

45 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

VHDL basics

• VHDL: (V)HSIC (H)ardware (D)escription (L)anguage– VHSIC: (V)ery (H)igh (S)peed (I)ntegrated (C)ircuit

• It is NOT a programming language!!!

• It is a Hardware Description Language (HDL)

• Conceptually VERY different form C,C++

• Some links to VHDL tutorials– http://www.seas.upenn.edu/~ese201/vhdl/vhdl_primer.html– http://www.vhdl-online.de/tutorial/– http://hapssupportnet.synplicity.com/download/VHDL-Handbook.pdf (quick ref)

Page 46: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

46 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

• C is inherently sequential (serial), one statement executed at a time

• VHDL is inherently concurrent (parallel), many statements execute (simulate) at a time

Page 47: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

47 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 1B = 1C = 1X = 1Y = 1Z = 1Ans = 1

Current Values:A = 1B = 1C = 1X = 1Y = 1Z = 1Ans = 1

Page 48: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

48 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 1Y = 1Z = 1Ans = 1

Current Values:A = 1B = 1C = 1X = 1Y = 1Z = 1Ans = 1

Page 49: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

49 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 1

Current Values:A = 1B = 1C = 1X = 1Y = 1Z = 1Ans = 1

Page 50: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

50 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

Current Values:A = 1B = 1C = 1X = 1Y = 1Z = 1Ans = 1

Page 51: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

51 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

Current Values:A = 1B = 1C = 1X = 1Y = 1Z = 1Ans = 1

“Simulates in parallel ever delta time step”

Page 52: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

52 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

Current Values:A = 1B = 1C = 1X = 1Y = 1Z = 1Ans = 1

“Simulates in parallel ever delta time step”

Snap shot after input change

Page 53: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

53 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 2

“Simulates in parallel ever delta time step”

Page 54: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

54 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 2

“Simulates in parallel ever delta time step”

Different

Page 55: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

55 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 2

“Simulates in parallel ever delta time step”

Snap shot after input change

Page 56: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

56 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 2

“Simulates in parallel ever delta time step”

Page 57: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

57 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Some Key Differences from C

C example VHDL example

A = B + CX = Y + ZAns = A + X

Initially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

Current Values:A = 2B = 1C = 1X = 2Y = 1Z = 1Ans = 4

“Simulates in parallel ever delta time step”

Page 58: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

58 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Corresponding circuit

VHDL exampleInitially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

“Simulates in parallel ever delta time step”

Page 59: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

59 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Corresponding circuit

VHDL exampleInitially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

“Simulates in parallel ever delta time step”

+

+

B(1)

C(1)

Y(1)

Z(1)

+

A(1)

X(1)

Ans(1)

Page 60: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

60 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Corresponding circuit

VHDL exampleInitially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

“Simulates in parallel ever delta time step”

+

+

B(1)

C(1)

Y(1)

Z(1)

+

A(2)

X(2)

Ans(2)

Page 61: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

61 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Corresponding circuit

VHDL exampleInitially: A,B,C,X,Y,Z,Ans =1

A <= B + CX <= Y + ZAns <= A + X

“Simulates in parallel ever delta time step”

+

+

B(1)

C(1)

Y(1)

Z(1)

+

A(2)

X(2)

Ans(4)

Page 62: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

62 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Corresponding circuit (More realistic)

VHDL exampleInitially: A,B,C,X,Y,Z,Ans =1

A <= B + C after 2nsX <= Y + Z after 2nsAns <= A + X after 2ns

“Simulates in parallel ever delta time step”

+

+

B(1)

C(1)

Y(1)

Z(1)

+

A(1)

X(1)

Ans(1)2ns

2ns

2ns

Page 63: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

63 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

VHDL exampleInitially: A,B,C,X,Y,Z,Ans =1

“Simulates in parallel ever delta time step”

+

+

B(1)

C(1)

Y(1)

Z(1)

+

A(2)

X(2)

Ans(2)

Corresponding circuit (More realistic)

2ns

2ns

2ns

A <= B + C after 2nsX <= Y + Z after 2nsAns <= A + X after 2ns

Page 64: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

64 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

VHDL exampleInitially: A,B,C,X,Y,Z,Ans =1

“Simulates in parallel ever delta time step”

+

+

B(1)

C(1)

Y(1)

Z(1)

+

A(2)

X(2)

Ans(4)

Corresponding circuit (More realistic)

2ns

2ns

2ns

A <= B + C after 2nsX <= Y + Z after 2nsAns <= A + X after 2ns

Page 65: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

65 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Typical Structure of a VHDL FileLIBRARY ieee;

ENTITY test_circuit IS PORT(B,C,Y,Z,Ans);END test_circuit;

ARCHITECTURE structure OF test_circuit IS signal A : std_logic_vector(7 downto 0); signal X : std_logic_vector(7 downto 0);

BEGIN

A <= B or C;

END

Include Libraries

Define component name andInput/output ports

Declare internalsignals, components

Implement components functionality

Page 66: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

66 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Next Lecture

• Basic components of an FPGA• VHDL overview cont.

Page 67: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

67 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Questions/Comments/Concerns

Page 68: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

68 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Fast Prototyping Fast

PrototypingPartial

Reconfiguration

FullReconfiguration

ParallelApplications

System onChip (SoC)

Page 69: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

69 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Highly Parallel ApplicationsFast

PrototypingPartial

Reconfiguration

FullReconfiguration

ParallelApplications

System onChip (SoC)

Page 70: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

70 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

System on Chip (SoC) Fast

PrototypingPartial

Reconfiguration

FullReconfiguration

ParallelApplications

System onChip (SoC)

Page 71: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

71 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Full Reconfiguration Fast

PrototypingPartial

Reconfiguration

FullReconfiguration

ParallelApplications

System onChip (SoC)

Page 72: 1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course

72 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames)

Partial Reconfiguration Fast

PrototypingPartial

Reconfiguration

FullReconfiguration

ParallelApplications

System onChip (SoC)