Design of Digital Circuits

Similar documents
Experiment 3. Digital Circuit Prototyping Using FPGAs

CSE/ESE 260M Introduction to Digital Logic and Computer Design. Lab 3 Supplement

CS2204 DIGITAL LOGIC & STATE MACHINE DESIGN FALL 2005

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow.

ECE 448 FPGA and ASIC Design with VHDL. Spring 2018

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

FPGA Based Digital Design Using Verilog HDL

FPGA: What? Why? Marco D. Santambrogio

EITF35 - Introduction to Structured VLSI Design (Fall ) 7. Assignment 3 - Arithmetic Logic Unit (ALU)

LAB 5 Implementing an ALU

discrete logic do not

Computer Architecture Lecture 2: Fundamental Concepts and ISA. Prof. Onur Mutlu Carnegie Mellon University Spring 2014, 1/15/2014

L2: FPGA HARDWARE : ADVANCED DIGITAL DESIGN PROJECT FALL 2015 BRANDON LUCIA

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration

Introduction to Field Programmable Gate Arrays

Keywords: Soft Core Processor, Arithmetic and Logical Unit, Back End Implementation and Front End Implementation.

DE2 Board & Quartus II Software

Fundamentals of Digital System Design ECE 3700, CPSC 3700

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

EE 434 ASIC & Digital Systems

The QR code here provides a shortcut to go to the course webpage.

The Nios II Family of Configurable Soft-core Processors

The assignments will help you learn Verilog as a Hardware Description Language and how hardware circuits can be developed using Verilog and FPGA.

INTRODUCTION TO FPGA ARCHITECTURE

PREFACE. Changes to the SOPC Edition

FPGA architecture and design technology

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

CE 435 Embedded Systems Spring 2018

TP : System on Chip (SoC) 1

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

Lab 5. Using Fpro SoC with Hardware Accelerators Fast Sorting

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

CSE 141L Computer Architecture Lab Fall Lecture 3

Don t expect to be able to write and debug your code during the lab session.

SoC Systeme ultra-schnell entwickeln mit Vivado und Visual System Integrator

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

PINE TRAINING ACADEMY

Lab 3 Verilog Simulation Mapping

Digital Design with FPGAs. By Neeraj Kulkarni

Digital Systems Design. System on a Programmable Chip

Multi Cycle Implementation Scheme for 8 bit Microprocessor by VHDL

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

ECE 448 Lecture 15. Overview of Embedded SoC Systems

The Xilinx XC6200 chip, the software tools and the board development tools

Institute of Engineering & Management

ELEC 4200 Lab#0 Tutorial

Xilinx Vivado/SDK Tutorial

TDT4255 Computer Design. Lecture 4. Magnus Jahre. TDT4255 Computer Design

Microprocessor (COM 9323)

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)

Lab 3 Finite State Machines Automated Teller Machine

EITF35 - Introduction to Structured VLSI Design (Fall 2017) Course projects

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

Spiral 2-8. Cell Layout

DESIGN AND IMPLEMENTATION OF APPLICATION SPECIFIC 32-BITALU USING XILINX FPGA

Getting started with Digilent NetFPGA SUME, a Xilinx Virtex 7 FPGA board for high performance computing and networking systems

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch

CS 250 VLSI Design Lecture 11 Design Verification

Digital Design Methodology

Prof. Steven Nowick. Chair, Computer Engineering Program

LSN 6 Programmable Logic Devices

I 3 I 2. ! Language of logic design " Logic optimization, state, timing, CAD tools

Lab 1: FPGA Physical Layout

FPGA Design Flow 1. All About FPGA

Field Programmable Gate Array (FPGA)

EMBEDDED SOPC DESIGN WITH NIOS II PROCESSOR AND VHDL EXAMPLES

ELEC 2520 Embedded Systems Engineering II

EITF35: Introduction to Structured VLSI Design

: : (91-44) (Office) (91-44) (Residence)

Chap.3 3. Chap reduces the complexity required to represent the schematic diagram of a circuit Library

Microprocessor Systems

URL: Offered by: Should already know how to design with logic. Will learn...

Introduction to FPGA Design with Vivado High-Level Synthesis. UG998 (v1.0) July 2, 2013

Atlys (Xilinx Spartan-6 LX45)

EE282H: Computer Architecture and Organization. EE282H: Computer Architecture and Organization -- Course Overview

Digital Systems Laboratory

Implementation of Low Power High Speed 32 bit ALU using FPGA

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University. Laboratory Exercise #1 Using the Vivado

ECE2029: Introduction to Digital Circuit Design Lab 3 Implementing a 4-bit Four Function ALU

Digital Integrated Circuits

Advanced FPGA Design Methodologies with Xilinx Vivado

ECE/CS Computer Design Lab

RTL Coding General Concepts

FPGAs in a Nutshell - Introduction to Embedded Systems-

Implementation of Ripple Carry and Carry Skip Adders with Speed and Area Efficient

15-740/ Computer Architecture Lecture 12: Issues in OoO Execution. Prof. Onur Mutlu Carnegie Mellon University Fall 2011, 10/7/2011

CS311 Lecture: CPU Implementation: The Register Transfer Level, the Register Set, Data Paths, and the ALU

Vivado Fpga Xilinx. Xilinx Vivado Vs Ise - S2i xilinx vivado vs ise user comparison of the fpga development tools 3/6 vivado 2013.

CSE140L: Components and Design Techniques for Digital Systems Lab

WELCOME TO. ENGR 303 Introduction to Logic Design. Hello my name is Dr. Chuck Brown

LAB 9 The Performance of MIPS

ECE U530 Digital Hardware Synthesis. Programming Assignments

Chapter 1: Introduction. Oregon State University School of Electrical Engineering and Computer Science

Reconfigurable Computing Systems ( L) Fall 2012 Hardware / Software Co-Design For FPGAs

Davide Rossi DEI University of Bologna AA

Chapter 4. The Processor. Instruction count Determined by ISA and compiler. We will examine two MIPS implementations

Transcription:

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 1

Lab Sessions Where? HG E 19, HG E 26.1, HG E 26.3, HG E 27 When? 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) 2

Grading 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://moodleapp2.let.ethz.ch/course/view.php?id=4352 digitaltechnik@lists.inf.ethz.ch 3

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

What We Will Learn? The Transformation Hierarchy Problem Algorithm Program/Language Touch upon implementation details System Software SW/HW Interface Micro-architecture Logic Devices Electrons Hands-on experience in digital circuit design and implementation Understanding how a processor works underneath the software layer 5

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 6

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

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

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! 9

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 10

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 11

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

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

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, 14

Lab 6: Testing the ALU Simulate your design from Lab 5 Learn how to debug your implementation to resolve problems 15

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 16

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 17

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

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

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 20

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 21

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

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

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 24

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

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

Advantages & Disadvantages of FPGAs Advantages 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 27

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? 28

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 29

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) 30

Tutorial and Demo We will see how to 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 31

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 32

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 33