Introduction to the FPGA and Labs

Slides:



Advertisements
Similar presentations
EELE 367 – Logic Design Module 2 – Modern Digital Design Flow Agenda 1.History of Digital Design Approach 2.HDLs 3.Design Abstraction 4.Modern Design Steps.
Advertisements

CPT 310 Logic and Computer Design Instructor: David LublinerPhone Engineering Technology Dept.Cell
The Spartan 3e FPGA. CS/EE 3710 The Spartan 3e FPGA  What’s inside the chip? How does it implement random logic? What other features can you use?  What.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
February 4, 2002 John Wawrzynek
Programmable Array Logic (PAL) Fixed OR array programmable AND array Fixed OR array programmable AND array Easy to program Easy to program Poor flexibility.
DIGITAL DESIGN WITH VHDL Exercise 1 1Muhammad Amir Yousaf.
ALTERA UP2 Tutorial 1: The 15 Minute Design. Figure 1.1 The Altera UP 1 CPLD development board. ALTERA UP2 Tutorial 1: The 15 Minute Design.
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Chapter 4 Programmable Logic Devices: CPLDs with VHDL Design Copyright ©2006 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
Programmable Logic Devices
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
Field Programmable Gate Arrays (FPGAs) An Enabling Technology.
Basic Sequential Components CT101 – Computing Systems Organization.
This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Lecture #3 Page 1 ECE 4110–5110 Digital System Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.HW#2 assigned Due.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May – 9 June 2007 Javier.
Teaching Digital Logic courses with Altera Technology
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
Appendix C Basics of Logic Design. Appendix C — Logic Basic — 2 Logic Design Basics §4.2 Logic Design Conventions Objective: To understand how to build.
This chapter in the book includes: Objectives Study Guide
EET 1131 Unit 4 Programmable Logic Devices
ETE Digital Electronics
Programmable Logic Devices
CHAPTER 16 SEQUENTIAL CIRCUIT DESIGN
Sequential Logic Design
EECE6017C Lab 1 Introduction to Altera tools and Circuit Simulation
Lab 1: Using NIOS II processor for code execution on FPGA
This chapter in the book includes: Objectives Study Guide
A tutorial guide to start with ISE
Introduction to Programmable Logic
ECE 4110–5110 Digital System Design
Basics of digital systems
Instructor: Dr. Phillip Jones
Electronics for Physicists
This chapter in the book includes: Objectives Study Guide
Getting Started with Programmable Logic
Programmable Logic Devices: CPLDs and FPGAs with VHDL Design
Combinatorial Logic Design Practices
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
We will be studying the architecture of XC3000.
Digital Building Blocks
Getting Started with Programmable Logic
Week 5, Verilog & Full Adder
T Computer Architecture, Autumn 2005
Programmable Configurations
Digital Fundamentals Tenth Edition Floyd Chapter 11.
Programmable Logic- How do they do that?
Electronics for Physicists
"Computer Design" by Sunggu Lee
THE ECE 554 XILINX DESIGN PROCESS
Design of Digital Circuits Lab 5 Supplement: Implementing an ALU
Prof. Onur Mutlu ETH Zurich Spring March 2019
ECE 448 Lab 3 – Part 1 FPGA Design Flow Based on
Design of Digital Circuits Lab 8 Supplement: Full System Integration
Digital Designs – What does it take
ECE 448 Lab 3 – Part 1 FPGA Design Flow Based on
THE ECE 554 XILINX DESIGN PROCESS
(Lecture by Hasan Hassan)
Programmable logic and FPGA
Presentation transcript:

Introduction to the FPGA and Labs I am a doctoral student of Professor Capkun

Lab Sessions In HG E 26.1 and E 26.3 Tuesday 15:15-17:00 (also in HG E 19) Wednesday 15:15-17:00 Friday 08:15-10:00 Friday 10:15-12:00 There is enough seating for you to hop around occasionally

Labs in this Course 9 labs, 25 points in total We will put the lab manuals online Grading No need to hand in the reports! The questions are optional The assistants will check your work and note down your grade You should finish the labs within 1 week after they are announced We want to help you successfully complete all the labs! Feel free to let us know if you have issues Assistant next year Individual questions Any questions?

What will we learn? What are programmable logic devices? We will use a Field Programmable Gate Array (FPGA) in the exercises, what is this FPGA? How does an FPGA work? Information about the FPGA board we will use Using Vivado to program the FPGA board What will we do in the labs? High-level last week Basic building blocks Learn with the FPGA programming

Logic Arrays Programmable logic arrays (PLAs) AND array followed by OR array Perform combinational logic only Fixed internal connections Field programmable gate arrays (FPGAs) Array of configurable logic blocks (CLBs) Perform combinational and sequential logic Programmable internal connections Combinational vs sequential Example: counter

Programming PLAs Show how the PLA can be configured to realize: X = (A ∙ B ∙ C) + (A ∙ B ∙ C) Y = A ∙ B

PLAs: Dot Notation

FPGAs: Field Programmable Gate Arrays Composed of: CLBs (Configurable Logic Blocks): perform logic IOBs (Input/Output Buffers): interface with outside world Programmable interconnection: connect CLBs and IOBs Some FPGAs include other building blocks such as: multipliers and RAMs

Typical FPGA Schematic

CLBs: Configurable Logic Blocks Composed of: LUTs (LookUp Tables): perform combinational logic Flip-flops (FF): perform sequential functions Multiplexers: connect LUTs and flip-flops More details tomorrow and coming weeks

CLB Configuration Example Show how the CLB can be configured to realize: X = (A ∙ B ∙ C) + (A ∙ B ∙ C) Y = A ∙ B

CLB Configuration Example Show how the CLB can be configured to realize: X = (A ∙ B ∙ C) + (A ∙ B ∙ C) Y = A ∙ B

FPGA Design Flow A CAD tool (such as Vivado) is used to design and implement a digital system. The user enters the design using schematic entry or an HDL. Correct functionality is verified using simulation A synthesis tool maps your description onto the FPGA. The result is a bitfile that contains configures the CLBs and the connections between them and the IOBs. The bitfile is downloaded to the FPGA

The FPGA board for the Lab Exercises Each lab group will use an FPGA board for the exercises. Video out microUSB (power/programming) USB Power switch FPGA chip Buttons Seven-segment displays LEDs Switches

What exactly is this FPGA board? Contains a Programmable Logic Device (FPGA) Various Interfaces Switches and Lights Video (VGA) Interface Keyboard/Mouse Interface Support Circuits Circuits to store the configuration Power and Clock for all the components

What will we do with the FPGA Board ? At the end of the exercises, we will have built a 32-bit microprocessor running on the FPGA board. It will be a small processor, but it will be able to execute small programs. Each week we will have a new exercise. Not all exercises will require the board. You are encouraged to experiment with the board on your own. We may have some extra boards for those who are interested It is not possible to destroy the board by programming!

Lab 1 Draw a comparator circuit on paper Compare two inputs and output 1 if they are all the same No FPGA programming, but you can try out the board

Lab 2 Design a Full Adder and a 4-bit Adder Full Adder 4-bit Adder Combinational circuit Full Adder Takes 2 bits and output their sum and carry 4-bit Adder Instantiate 4 Full Adders to add 2 4-bit values Use FPGA boards Input: switches Output: LEDs

Lab 3 Show your results from Lab 2 on a seven segment display

Lab 4 Implement a finite state machine using sequential circuit Blinking LEDs for a car’s turn signals

Lab 5 Towards implementing your very first processor Implement your own Arithmetic and Logic Unit (ALU) An ALU is an important part of the CPU Arithmetic operations: add, subtract, multiply, compare, … Logic operations: AND, OR, …

Lab 6 Simulate your ALU design using a testbench Validate that your ALU is functionally correct Learn how to find and resolve problems in your circuit

Lab 7 Assembly coding MIPS Implement an program which you will later use to run on your processor Calculate sum or number ranges Image manipulation

Lab 8 Learn how a processor is built Complete your first design of a MIPS processor Run a “snake”program

Lab 9 Improve the performance of your MIPS processor by adding some new instructions Multiplication Bit shifting

Vivado Design circuits using Hardware Description Langauge (HDL) Hardware Description Languages Verilog (this is the one we use in this course!) VHDL FPGA Board Systhesis Implementation Program Simulation Testbenches

Typical design process on the FPGA board Create a Vivado Project Implement your circuit using Verilog code Use the constraint file to specify which I/O to use Implement your circuit Generate the bitstream Program to the board (target)

A Short Tutorial The AND gate The output is true (1) only if both inputs are true (1). Reading assignment: binary numbers

Summary Quick introduction of the FPGA Short Tutorial on FPGA programming Getting started guide: https://reference.digilentinc.com/learn/programmable- logic/tutorials/basys-3-getting-started/start Demo: https://reference.digilentinc.com/reference/programmable- logic/basys-3/start Overview of the labs Tomorrow: Combinational circuits