CPRE 583 Reconfigurable Computing Instructor: Dr. Phillip Jones

Slides:



Advertisements
Similar presentations
VHDL 5 FINITE STATE MACHINES (FSM) Some pictures are obtained from FPGA Express VHDL Reference Manual, it is accessible from the machines in the lab at.
Advertisements

Tutorial 2 Sequential Logic. Registers A register is basically a D Flip-Flop A D Flip Flop has 3 basic ports. D, Q, and Clock.
1 - ECpE 583 (Reconfigurable Computing): XPS / MP3 Overview + Midterm Overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 15:
Registers and Counters. Register Register is built with gates, but has memory. The only type of flip-flop required in this class – the D flip-flop – Has.
1 - ECpE 583 (Reconfigurable Computing): State Machines (Part 2) Iowa State University (Ames) ECpE 583 Reconfigurable Computing Lect 5: Tues 9/9/2008 (State.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi Some of the slides were taken from K Gaj’s lecture slides from GMU’s.
Sequential Logic in Verilog
1 - ECpE 583 (Reconfigurable Computing): Placing Applications onto FPGAs, Part II Iowa State University (Ames) ECpE 583 Reconfigurable Computing Lecture.
1 - ECpE 583 (Reconfigurable Computing): Course overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 1: Wed 8/24/2011 (Course.
1 - CPRE 583 (Reconfigurable Computing): FPGA Features and Convey Computer HC-1 Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture.
1 - CPRE 583 (Reconfigurable Computing): Exam 1 Review Session Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 13: Wed 10/5/2011.
1 - CPRE 583 (Reconfigurable Computing): Floating Point Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 14: Fri 10/12/2011 (Floating.
1 - CPRE 583 (Reconfigurable Computing): Reconfigurable Computing Architectures Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture.
1 - CPRE 583 (Reconfigurable Computing): Reconfigurable Computing Systems Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 8: Wed.
1 - CPRE 583 (Reconfigurable Computing): VHDL to FPGA: A Tool Flow Overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 5: 9/7/2011.
1 - CPRE 583 (Reconfigurable Computing): Reconfiguration Management Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 11: Wed 9/28/2011.
1 - CPRE 583 (Reconfigurable Computing): Reconfigurable Computing HW, VHDL 2 Iowa State University (Ames) CPRE 583 Reconfigurable Computing (VHDL Overview.
VHDL – Behavioral Modeling and Registered Elements ENGIN 341 – Advanced Digital Design University of Massachusetts Boston Department of Engineering Dr.
1 - CPRE 583 (Reconfigurable Computing): System Architectures Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 13: Fri 10/8/2010.
1 - CPRE 583 (Reconfigurable Computing): System Architectures Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 21: Fri 11/4/2011.
1 - ECpE 583 (Reconfigurable Computing): CoreGen Overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 18: Wed 10/26/2011 (CoreGen.
1 - CPRE 583 (Reconfigurable Computing): High-level Acceleration Approaches Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 23:
1 - CPRE 583 (Reconfigurable Computing): Floating Point Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 18: Fri 10/27/2010 (Floating.
1 - ECpE 583 (Reconfigurable Computing): Project Introductions Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 16: Wed 10/14/2011.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU 99-1 Under-Graduate Project Design of Datapath Controllers Speaker: Shao-Wei Feng Adviser:
1 - CPRE 583 (Reconfigurable Computing): Streaming Applications Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 10: Fri 11/13/2009.
1 - ECpE 583 (Reconfigurable Computing): Midterm Overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 17: Wed 10/21/2011 (Midterm.
1 - CPRE 583 (Reconfigurable Computing): VHDL overview 1 Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 2: 8/26/2011 (VHDL Overview.
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL Code.
Instructor: Dr. Phillip Jones
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
CPRE 583 Common VHDL mistakes “It works perfect in simulation,
CPRE 583 Reconfigurable Computing
CPRE 583 Reconfigurable Computing (VHDL Overview )
Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
Algorithmic State Machine (ASM) Charts: VHDL Code & Timing Diagrams
CPRE 583 Reconfigurable Computing
Instructor: Dr. Phillip Jones
CPRE 583 Reconfigurable Computing
Instructor: Dr. Phillip Jones
ECE 551: Digital System Design & Synthesis
Non-synthesizable VHDL Poor Design Practices
CPRE 583 Reconfigurable Computing
Instructor: Alexander Stoytchev
CPRE 583 Reconfigurable Computing Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
Lecture 17 Logistics Last lecture Today HW5 due on Wednesday
Instructor: Dr. Phillip Jones
Advanced FPGA Based System Design
Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
CPRE 583 Reconfigurable Computing
Finite State Machines (part 1)
Instructor: Dr. Phillip Jones
Instructor: Dr. Phillip Jones
The Verilog Hardware Description Language
Instructor: Alexander Stoytchev
Lecture 17 Logistics Last lecture Today HW5 due on Wednesday
Instructor: Alexander Stoytchev
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Instructor: Dr. Phillip Jones
Instructor: Michael Greenbaum
Instructor: Dr. Phillip Jones
Presentation transcript:

CPRE 583 Reconfigurable Computing Instructor: Dr. Phillip Jones Lecture 7: 9/15/2010 (Common VHDL Mistakes: “It works perfect in simulation, but not in the hardware!” ) Instructor: Dr. Phillip Jones (phjones@iastate.edu) Reconfigurable Computing Laboratory Iowa State University Ames, Iowa, USA http://class.ece.iastate.edu/cpre583/

Announcements/Reminders MP1/HW1 Due midnight tonight MP2: Make sure to get started by Thursday (tomorrow HW2: Delayed Thur/Fri release, due date will be appropriated adjusted. Mini literary survey PowerPoint tree due: Fri 9/17 by class, so try to have to me by 9/16 night. My current plan is to summarize some of the classes findings during class. Final 5-10 page write up on your tree due: Fri 9/24 midnight.

Literary Survey Start with searching for papers from 2007-2010 on IEEE Xplorer: http://ieeexplore.ieee.org/ Advanced Search (Full Text & Meta data) Find popular cross references for each area For each area try to identify 1 good survey papers For each area Identify 2-3 core Problems/issues For each problem identify 2-3 Approaches for addressing For each approach identify 1-2 papers that Implement the approach.

Literary Survey: Example Structure Hardware Accelerated Bioinformatics P1 P2 P3 A1 A2 A3 A1 A2 A1 A2 I1 I1 I2 I1 I1 I1 I1 I2 I1 5-10 page write up on your survey tree

Common Questions

Common Questions

Overview Common VHDL mistakes What you should learn What are the ~6 common mistakes How to identify these mistakes How to fix these mistakes

My design works in simulation, but not in hardware!! Clocked and non-clock processes common issues. Clean Statemachine design, using best know practices Common Mistakes pdf document

Clocked vs. non-clock processes Non-clocked process (clock is NOT in the sensitivity list) Clocked process (clock is ONLY in the sensitivity list) process (clk) begin -- check for rising edge of the clk if(clk’event and clk = ‘1’) then -- initialize all driven signals during reset if(reset = ‘1’) then a_out <= x”00”; data_out <= x”00”; else if (sel = ‘1’) then a_out <= a; data_out <= my_data; end if; end process; process (sel, a, my_data) begin -- default all driven signals a_out <= x”00”; data_out <= x”00”; if (sel = ‘1’) then a_out <= a; data_out <= my_data; end if; end process;

State Machine Structure -- Assign STATE to next state process (clk) begin -- check for rising edge of the clk if(clk’event and clk = ‘1’) then -- initialize all driven signals during reset if(reset = ‘1’) then STATE <= S1; else STATE <= Next_STATE; end if; end process; -- Compute next state process (STATE, x) begin -- defaults next_state <= STATE; case STATE is when S1 => if(x = ‘0’) then Next_STATE <= S1; else Next_STATE <= S2; end if; when S2 => Next_State <= S1; end process; No memory!!!! Has memory (e.g. flip-flops)

Manage Registers/Counters process (clk) begin if(clk’event and clk = ‘1’) then -- initialize all driven signals during reset if(reset = ‘1’) then store_x_reg <= x”00”; counter_1 <= x“00”; else -- update registers and counters if(update_reg) then store_x_reg <= new_val; end if; if(update_count) then counter_1 <= new_count; end process; These are memory elements (e.g. flip-flops)

Good papers on state machine design FSM “good practices” paper (Note: inVerilog) http://www.sunburst-design.com/papers/ The Fundamentals of Efficient Synthesizable Finite State Machine (2002) Synthesizable Finite State Machine Design Techniques (2003)

Common Mistakes in more detail See Common VHDL mistakes pdf on course web

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail

Common Mistakes in more detail Correct Example of a counter

Common Mistakes in more detail

MP2 overview

MP2 overview

MP2 overview

MP2 overview

MP2 overview

Next Class VHDL -> FPGA, or Short History of Reconfigurable computing

Questions/Comments/Concerns