(Lecture by Hasan Hassan)

Slides:



Advertisements
Similar presentations
FPGA (Field Programmable Gate Array)
Advertisements

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.
ENGIN112 L38: Programmable Logic December 5, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 38 Programmable Logic.
FPGA chips and DSP Algorithms By Emily Fabes. 2 Agenda FPGA Background Reasons to use FPGA’s Advantages and disadvantages of using FPGA’s Sample VHDL.
February 4, 2002 John Wawrzynek
Reconfigurable Computing in the Undergraduate Curriculum Jason D. Bakos Dept. of Computer Science and Engineering University of South Carolina.
Implementation of DSP Algorithm on SoC. Mid-Semester Presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompaning engineer : Emilia Burlak.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
Introduction to FPGA and DSPs Joe College, Chris Doyle, Ann Marie Rynning.
COM181 Computer Hardware Ian McCrumRoom 5B18,
Dr. Konstantinos Tatas ACOE201 – Computer Architecture I – Laboratory Exercises Background and Introduction.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Technion – Israel Institute of Technology Department of Electrical Engineering High Speed Digital Systems Lab Spring 2009.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
CS1Q Computer Systems Lecture 9 Simon Gay. Lecture 9CS1Q Computer Systems - Simon Gay2 Addition We want to be able to do arithmetic on computers and therefore.
PROGRAMMABLE LOGIC DEVICES (PLD)
J. Christiansen, CERN - EP/MIC
FPGA (Field Programmable Gate Array): CLBs, Slices, and LUTs Each configurable logic block (CLB) in Spartan-6 FPGAs consists of two slices, arranged side-by-side.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
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.
EE3A1 Computer Hardware and Digital Design
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
M.Mohajjel. Why? TTM (Time-to-market) Prototyping Reconfigurable and Custom Computing 2Digital System Design.
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
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
Introduction to the FPGA and Labs
Maj Jeffrey Falkinburg Room 2E46E
Computer Organization and Architecture Lecture 1 : Introduction
EET 1131 Unit 4 Programmable Logic Devices
Programmable Logic Devices
Sequential Logic Design
EECE6017C Lab 1 Introduction to Altera tools and Circuit Simulation
Fang Fang James C. Hoe Markus Püschel Smarahara Misra
Programmable Hardware: Hardware or Software?
Xilinx Spartan-6 FPGA Board Setup
Computer Organization and Machine Language Programming CPTG 245
Lab 1: Using NIOS II processor for code execution on FPGA
Using Xilinx ChipScope Pro Tools
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Stateless Combinational Logic and State Circuits
Introduction to Programmable Logic
COMP541 Datapaths I Montek Singh Mar 28, 2012.
ECE 4110–5110 Digital System Design
ENG3050 Embedded Reconfigurable Computing Systems
Instructor: Dr. Phillip Jones
Electronics for Physicists
CS703 - Advanced Operating Systems
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Getting Started with Programmable Logic
Programmable Logic Devices: CPLDs and FPGAs with VHDL Design
Reconfigurable Computing
Getting Started with Programmable Logic
Dynamically Reconfigurable Architectures: An Overview
Week 5, Verilog & Full Adder
T Computer Architecture, Autumn 2005
Instructor: Dr. Phillip Jones
HIGH LEVEL SYNTHESIS.
Programmable Logic- How do they do that?
Electronics for Physicists
THE ECE 554 XILINX DESIGN PROCESS
Design of Digital Circuits Lab 6 Supplement: Testing the ALU
Design of Digital Circuits Lab 5 Supplement: Implementing an ALU
Prof. Onur Mutlu ETH Zurich Spring March 2019
Prof. Onur Mutlu ETH Zurich Spring March 2019
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL code ECE 448 – FPGA and ASIC Design.
Design of Digital Circuits Lab 8 Supplement: Full System Integration
Digital Designs – What does it take
THE ECE 554 XILINX DESIGN PROCESS
Programmable logic and FPGA
Presentation transcript:

(Lecture by Hasan Hassan) Design of Digital Circuits Lecture 3: Introduction to the Labs and FPGAs Prof. Onur Mutlu (Lecture by Hasan Hassan) ETH Zurich Spring 2018 1 March 2018

Lab Sessions Where? When? HG E 19, HG E 26.1, HG E 26.3, HG E 27 Tuesday 15:15-17:00 (E 19, E 26.1, E 26.3) Wednesday 15:15-17:00 (E 26.1, E 26.3, E 27) Friday 08:15-10:00 (E 19, E 26.3, E 27) Friday 10:15-12:00 (E 19, E 26.3, E 27)

Grading For questions 10 labs, 30 points in total We will put the lab manuals online https://safari.ethz.ch/digitaltechnik/doku.php?id=labs Grading Policy No need to hand in the reports! 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! For questions Moodle Q&A (preferred) https://moodle-app2.let.ethz.ch/course/view.php?id=4352 digitaltechnik@lists.inf.ethz.ch

Agenda Logistics What We Will learn? Overview of the Lab Exercises Our FPGA Development Board FPGA Microarchitecture Programming an FPGA Tutorial and Demo

The Transformation Hierarchy What We Will Learn? The Transformation Hierarchy Problem Algorithm Program/Language System Software SW/HW Interface Touch upon implementation details Hands-on experience in digital circuit design and implementation Micro-architecture Logic The lecture will focus on design space and tradeoffs in those three layers In the labs: We will get hands on experience, We will touch upon the implementation details of digital circuits Devices Electrons Understanding how a processor works underneath the software layer

What We Will Learn? (2) Considering the trade-offs between performance and area/complexity in your hardware implementation Hands-on experience on: Hardware Prototyping on FPGA Debugging Your Hardware Implementation Hardware Description Language (HDL) Hardware Design Flow Computer-Aided Design (CAD) Tools

Agenda Logistics What We Will learn? Overview of the Lab Exercises Our FPGA Development Board FPGA Microarchitecture Programming an FPGA Tutorial and Demo

Basys 3: Our FPGA Board Video out (VGA) microUSB (power/programming) Power switch FPGA chip Push-buttons Seven-segment displays LEDs Switches https://reference.digilentinc.com/reference/programmable-logic/basys-3/start

High Level Labs Summary 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 FPGA 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: Drawing a Basic Circuit Comparison is a common operation in software programming We usually want to know the relation between two variables (e.g., <, >, ==, …) We will compare two electrical signals (inputs), and find whether they are same The result (output) is also an electrical signal No FPGA programming involved We encourage you to try later

Lab 2: Mapping Your Circuit to FPGA Another common operation in software programming? Addition Design a circuit that adds two 1-bit numbers Reuse the 1-bit adder multiple times to perform 4-bit addition Implement the design on the FPGA board Input: switches Output: LEDs

Lab 3: Verilog for Combinatorial Circuits Show your results from Lab 2 on a Seven Segment Display https://reference.digilentinc.com/reference/programmable-logic/basys-3/reference-manual

Lab 4: Finite State Machines Blinking LEDs for a car’s turn signals Implement and use memories Change the blinking speed

Lab 5: Implementing an ALU 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: Testing the ALU Simulate your design from Lab 5 Learn how to debug your implementation to resolve problems

Lab 7: Writing Assembly Code Programming in assembly language MIPS Implement a program which you will later use to run on your processor Image manipulation

Lab 8: Full System Integration Will be covered in two weeks Learn how a processor is built Complete your first design of a MIPS processor Run a “snake” program

Lab 9: The Performance of MIPS Improve the performance of your processor from Lab 8 by adding new instructions Multiplication Bit shifting

Basys 3: Our FPGA Board Video out (VGA) microUSB (power/programming) Power switch FPGA chip Push-buttons Seven-segment displays LEDs Switches https://reference.digilentinc.com/reference/programmable-logic/basys-3/start

What is an FPGA? Field Programmable Gate Array FPGA is a reconfigurable substrate Reconfigurable functions Reconfigurable interconnection of functions Reconfigurable input/output (IO) … FPGAs fill the gap between software and hardware Achieves higher performance than software Maintains more flexibility than hardware

FPGA Architecture - Looking Inside an FPGA Two main building blocks: Look-Up Tables (LUT) and Switches Andre DeHon, “The Density Advantage of Configurable Computing”, Computer, 2000

3-LUT can implement any 3-bit input function How Do We Program LUTs? 3-bit input LUT (3-LUT) Data Input 0 0 0 0 0 1 0 1 0 3-LUT can implement any 3-bit input function 0 1 1 output (1 bit) 1 0 0 Multiplexer (Mux): Selects one of the data input corresponding to select input 1 0 1 1 1 0 1 1 1 Select Input 3 input (3 bits)

An Example of Programming a LUT Let’s implement a function that outputs ‘1’ when there are more than one ‘1’ in select inputs Data Input 0 0 0 Configuration Memory 0 0 1 0 1 0 1 0 1 1 output (1 bit) 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 3 input (3 bits)

How to Implement Complex Functions? FPGAs are composed of a large number of LUTs and switches FPGA Chip Andre DeHon, “The Density Advantage of Configurable Computing”, Computer, 2000

Modern FPGA Architectures Typically 6-LUTs Thousands of them An order of MB distributed on-chip memory Hard-coded special purpose hardware blocks for high-performance operations Memory interface Low latency and high bandwidth off-chip I/O … Even a processor embedded within the FPGA chip

Xilinx Zynq Ultrascale+ https://www.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html

Advantages & Disadvantages of FPGAs Low development cost Short time to market Reconfigurable in the field Reusability An algorithm can be implemented directly in hardware No ISA, high specialization Disadvantages Not as fast and power efficient as application specific hardware Reconfigurability adds significant area overhead

Computer-Aided Design (CAD) Tools FPGAs have many resources (e.g., LUTs, switches) They are hard to program manually How can we represent a high-level functional description of our hardware circuit using the FPGA resources? select the resources to map our circuit to? optimally configure the interconnect between the selected resources? generate a final configuration file to properly configure an FPGA?

Hardware Description Language (HDL) FPGA Design Flow Problem Definition Your task! Hardware Description Language (HDL) Verilog, VHDL Logic Synthesis Xilinx Vivado Placement and Routing Bitstream Generation Programming the FPGA

Vivado IDE-like software that helps us throughout the FPGA design flow Provides tools to simulate our designs Validate the correctness of the implementation Debugging Provides drivers and graphical interface to easily program the FPGA using a USB cable Installed in computer rooms in HG (E 19, E 26.1, E 26.3, E 27)

Tutorial and Demo We will see how to PONG Game demo use Vivado to write Verilog code follow the FPGA design flow steps download the bitstream into the FPGA PONG Game demo An example for a simple hardware that you can easily develop by the end of semester https://github.com/CynicalApe/BASYS3-PONG

What We Have Covered Today? Logistics What We Will learn? Overview of the Lab Exercises Our FPGA Development Board FPGA Microarchitecture Programming an FPGA Tutorial and Demo

(Lecture by Hasan Hassan) Design of Digital Circuits Lecture 3: Introduction to the Labs and FPGAs Prof. Onur Mutlu (Lecture by Hasan Hassan) ETH Zurich Spring 2018 1 March 2018