CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/26/2009 (Course Overview, VHDL Overview 1). Instructor: Dr. Phillip Jones (phjones@iastate.edu) Reconfigurable Computing Laboratory Iowa State University Ames, Iowa, USA. http://class.ece.iastate.edu/cpre583/. Class Introduction.
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
F I N
Plus de contenu associé
Transcription de la présentation
CPRE 583Reconfigurable ComputingLecture 1: Wed 8/26/2009(Course Overview, VHDL Overview 1) Instructor: Dr. Phillip Jones (phjones@iastate.edu) Reconfigurable Computing Laboratory Iowa State University Ames, Iowa, USA http://class.ece.iastate.edu/cpre583/
Class Introduction • Class Survey (by next class, phjones@iastate.edu) • Background (year in school, 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://hapssupportnet.synplicity.com/download/VHDL-Handbook.pdf (quick ref) • VHDL online tutorials • http://www.seas.upenn.edu/~ese201/vhdl/vhdl_primer.html • http://www.vhdl-online.de/tutorial/
What you should learn • Basic objectives and topics covered in this class. • VDHL is NOT a programming language. It is a means to describe hardware.
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. 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)
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) opcode {+, -, AND, OR} A X ALU B Behavior VHDL: ALU compnt 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; Structural VHDL: ALU component 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;
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) opcode {+, -, AND, OR} A X ALU B opcode {+, -, AND, OR} ALU Structural VHDL: ALU component 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; 2 Xadd addAB 4:1 Mux A Xsub subAB X Xand andAB B Xor orAB
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) • Abstraction that allows • Reasoning about computation • Correctness • Extraction of parallelism • Transformations for optimization • Guarantee Properties FPGA CPU Memory
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) • Abstraction that allows • Reasoning about computation • Correctness • Extraction of parallelism • Transformations for optimization • Guarantee Properties Memory Function 2 Function 1 Function 4 Function 3
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) • Abstraction that allows • Reasoning about computation • Correctness • Extraction of parallelism • Transformations for optimization • Guarantee Properties Function 1 Memory Memory Function 2 Memory Function 5 Function 3 Memory Function 4 Memory
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) • Streaming Applications • Data Parallel Applications • Fix/Floating Point Computations • Performance Trade-offs • Fault Tolerance
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) X <= A+B; X <= A xor B; X <= A and B; X <= A or B; X X X X A A A A addAB xorAB andAB orAB B B B B A B X A B X A B X A B X 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 2-input Look Up Tables (LUTs) FPGA LUT LUT LUT LUT LUT LUT LUT LUT LUT LUT LUT LUT LUT LUT LUT LUT
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) X <= A+B; X <= A xor B; X <= A and B; X <= A or B; X X X X A A A A addAB xorAB andAB orAB B B B B A B X A B X A B X A B X 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 2-input Look Up Tables (LUTs) FPGA LUT addAB LUT LUT LUT LUT LUT xorAB andAB LUT LUT LUT LUT orAB LUT LUT
Main topics • Agenda • 1. Overview (2.5 Weeks) • a. Reconfigurable HW • b. VHDL • 2. Computation Models • (2.5 Weeks) • 3. Applications / Concerns • of FPGAs (4 Weeks) • 4. Mapping logic to FPGAs • (3 Weeks) • 5. Case Studies (1 Week) 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.
Machine Problems (MPs) • Agenda • 0. Platform Introduction • 1. Network String Matching • 2. Image: Edge Detection • 3. Image: PPC coprocessor • 4. Final Projects(~6 weeks) FPGA Power PC PC Display.c Ethernet (UDP/IP) User Defined Instruction VGA Monitor
Machine Problems (MPs) • Agenda • 0. Platform Introduction • 1. Network String Matching • 2. Image: Edge Detection • 3. Image: PPC coprocessor • 4. Final Projects(~6 weeks) FPGA Power PC PC Display.c Ethernet (UDP/IP) User Defined Instruction VGA Monitor
Machine Problems (MPs) • Agenda • 0. Platform Introduction • 1. Network String Matching • 2. Image: Edge Detection • 3. Image: PPC coprocessor • 4. Final Projects(~6 weeks) FPGA Power PC PC Display.c Ethernet (UDP/IP) User Defined Instruction VGA Monitor
Machine Problems (MPs) • Agenda • 0. Platform Introduction • 1. Network String Matching • 2. Image: Edge Detection • 3. Image: PPC coprocessor • 4. Final Projects(~6 weeks) • Choose your own topic • Groups of 2-3 (maybe 4 for a large enough project) • Encouraged to take on aggressive projects
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.
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.
What are rDPAs? • rDPA: reconfigurable Data Path Array • Function Units with programmable interconnects Example ALU ALU ALU ALU ALU ALU ALU ALU ALU
What are rDPAs? • rDPA: reconfigurable Data Path Array • Function Units with programmable interconnects Example ALU ALU ALU ALU ALU ALU ALU ALU ALU
What are rDPAs? • rDPA: reconfigurable Data Path Array • Function Units with programmable interconnects Example ALU ALU ALU ALU ALU ALU ALU ALU ALU
What are FPGAs? CLB CLB CLB CLB CLB CLB CLB CLB Configurable Logic Block CLB CLB CLB CLB CLB CLB CLB CLB • FPGA: Field Programmable Gate Array • Sea of general purpose logic gates
What are FPGAs? Configurable Logic Block • 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
What are FPGAs? Configurable Logic Block • FPGA: Field Programmable Gate Array • Sea of general purpose logic gates CLB CLB CLB CLB CLB CLB CLB CLB
Some FPGA Details CLB CLB Programmable Interconnection Point PIP CLB Z A LUT DFF B C D
Some FPGA Details CLB CLB Programmable Interconnection Point PIP CLB Z A LUT DFF B C D
FPGA Usage Models • Experimental ISA • Experimental Micro • Architectures • Run-time adaptation • Run-time Customization CPU + Specialized HW - Sparc-V8 Leon Partial Reconfiguration System on Chip (SoC) Fast Prototyping Full Reconfiguration Parallel Applications • Image Processing • Computational • Biology • Remote Update • Fault Tolerance
Development Platform Overview • ML507 Evaluation Platform User Guide (pgs. 14-16) • http://www.xilinx.com/support/documentation/boards_and_kits/ug347.pdf
Machine Problem 0 (MP0) Short Overview • Officially assigned Fri (8/28), Due Friday (9/4). • Note: 1 week • 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
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)
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
Some Key Differences from C VHDL example C example Initially: A,B,C,X,Y,Z,Ans =1 A = B + C X = Y + Z Ans = A + X A <= B + C X <= Y + Z Ans <= A + X Current Values: A = 1 B = 1 C = 1 X = 1 Y = 1 Z = 1 Ans = 1 Current Values: A = 1 B = 1 C = 1 X = 1 Y = 1 Z = 1 Ans = 1
Some Key Differences from C VHDL example C example Initially: A,B,C,X,Y,Z,Ans =1 A = B + C X = Y + Z Ans = A + X A <= B + C X <= Y + Z Ans <= A + X Current Values: A = 2 B = 1 C = 1 X = 1 Y = 1 Z = 1 Ans = 1 Current Values: A = 1 B = 1 C = 1 X = 1 Y = 1 Z = 1 Ans = 1
Some Key Differences from C VHDL example C example Initially: A,B,C,X,Y,Z,Ans =1 A = B + C X = Y + Z Ans = A + X A <= B + C X <= Y + Z Ans <= A + X Current Values: A = 2 B = 1 C = 1 X = 2 Y = 1 Z = 1 Ans = 1 Current Values: A = 1 B = 1 C = 1 X = 1 Y = 1 Z = 1 Ans = 1
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.