FPGA Design with VHDL

Similar documents
Why FPGAs? FPGA Overview. Why FPGAs?

FPGA Design. Part I - Hardware Components. Thomas Lenzi

EECS150 - Digital Design Lecture 3 Synchronous Digital Systems Review. Announcements

L12: Reconfigurable Logic Architectures

RELATED WORK Integrated circuits and programmable devices

L11/12: Reconfigurable Logic Architectures

DIGITAL CIRCUIT LOGIC UNIT 9: MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

Field Programmable Gate Arrays (FPGAs)

COE328 Course Outline. Fall 2007


CSE115: Digital Design Lecture 23: Latches & Flip-Flops

Microprocessor Design

IE1204 Digital Design. F11: Programmable Logic, VHDL for Sequential Circuits. Masoumeh (Azin) Ebrahimi

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida

Lecture 6: Simple and Complex Programmable Logic Devices. EE 3610 Digital Systems

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits

Modeling Latches and Flip-flops

CDA 4253 FPGA System Design FPGA Architectures. Hao Zheng Dept of Comp Sci & Eng U of South Florida

Electrical and Telecommunications Engineering Technology_TCET3122/TC520. NEW YORK CITY COLLEGE OF TECHNOLOGY The City University of New York

Chapter 2. Digital Circuits

CSE140L: Components and Design Techniques for Digital Systems Lab. CPU design and PLDs. Tajana Simunic Rosing. Source: Vahid, Katz

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

Chapter 7 Memory and Programmable Logic

Sequential Logic. E&CE 223 Digital Circuits and Systems (A. Kennings) Page 1

The basic logic gates are the inverter (or NOT gate), the AND gate, the OR gate and the exclusive-or gate (XOR). If you put an inverter in front of

Combinational vs Sequential

L14: Quiz Information and Final Project Kickoff. L14: Spring 2004 Introductory Digital Systems Laboratory

CS6201 UNIT I PART-A. Develop or build the following Boolean function with NAND gate F(x,y,z)=(1,2,3,5,7).

MUHAMMAD NAEEM LATIF MCS 3 RD SEMESTER KHANEWAL

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

ROEVER COLLEGE OF ENGINEERING & TECHNOLOGY ELAMBALUR, PERAMBALUR DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING

Computer Architecture and Organization

DIGITAL SYSTEM DESIGN UNIT I (2 MARKS)

Counters

Bachelor Level/ First Year/ Second Semester/ Science Full Marks: 60 Computer Science and Information Technology (CSc. 151) Pass Marks: 24

Administrative issues. Sequential logic

Solution to Digital Logic )What is the magnitude comparator? Design a logic circuit for 4 bit magnitude comparator and explain it,

Tribhuvan University Institute of Science and Technology Bachelor of Science in Computer Science and Information Technology

Chapter Contents. Appendix A: Digital Logic. Some Definitions

EEE130 Digital Electronics I Lecture #1_2. Dr. Shahrel A. Suandi

VeriLab. An introductory lab for using Verilog in digital design (first draft) VeriLab

problem maximum score 1 28pts 2 10pts 3 10pts 4 15pts 5 14pts 6 12pts 7 11pts total 100pts

March 13, :36 vra80334_appe Sheet number 1 Page number 893 black. appendix. Commercial Devices

CHAPTER1: Digital Logic Circuits

Chapter 6. Flip-Flops and Simple Flip-Flop Applications

(CSC-3501) Lecture 7 (07 Feb 2008) Seung-Jong Park (Jay) CSC S.J. Park. Announcement

Introduction to Digital Logic Missouri S&T University CPE 2210 Exam 3 Logistics

Logic Design. Flip Flops, Registers and Counters

CHAPTER 4: Logic Circuits

ECE 263 Digital Systems, Fall 2015

Principles of Computer Architecture. Appendix A: Digital Logic

DIGITAL ELECTRONICS MCQs

PHYSICS 5620 LAB 9 Basic Digital Circuits and Flip-Flops

Sequential Logic. Analysis and Synthesis. Joseph Cavahagh Santa Clara University. r & Francis. TaylonSi Francis Group. , Boca.Raton London New York \

VU Mobile Powered by S NO Group

EEE2135 Digital Logic Design Chapter 6. Latches/Flip-Flops and Registers/Counters 서강대학교 전자공학과

Logic Design II (17.342) Spring Lecture Outline

EMT 125 Digital Electronic Principles I CHAPTER 6 : FLIP-FLOP

Unit 11. Latches and Flip-Flops

DIGITAL FUNDAMENTALS

Department of Computer Science and Engineering Question Bank- Even Semester:

R13 SET - 1 '' ''' '' ' '''' Code No: RT21053

TIME SCHEDULE. MODULE TOPICS PERIODS 1 Number system & Boolean algebra 17 Test I 1 2 Logic families &Combinational logic

CSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Tajana Simunic Rosing. Source: Vahid, Katz

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General...

Counter dan Register

Performance Evolution of 16 Bit Processor in FPGA using State Encoding Techniques


S.K.P. Engineering College, Tiruvannamalai UNIT I

Advanced Devices. Registers Counters Multiplexers Decoders Adders. CSC258 Lecture Slides Steve Engels, 2006 Slide 1 of 20

Sequential Logic Design CS 64: Computer Organization and Design Logic Lecture #14

CPS311 Lecture: Sequential Circuits

Registers and Counters

AIM: To study and verify the truth table of logic gates

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Previous Lecture Sequential Circuits. Slide Summary of contents covered in this lecture. (Refer Slide Time: 01:55)

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

WELCOME. ECE 2030: Introduction to Computer Engineering* Richard M. Dansereau Copyright by R.M. Dansereau,

R13. II B. Tech I Semester Regular Examinations, Jan DIGITAL LOGIC DESIGN (Com. to CSE, IT) PART-A

Come and join us at WebLyceum

Chapter. Synchronous Sequential Circuits

EEM Digital Systems II

MODEL QUESTIONS WITH ANSWERS THIRD SEMESTER B.TECH DEGREE EXAMINATION DECEMBER CS 203: Switching Theory and Logic Design. Time: 3 Hrs Marks: 100

BHARATHIDASAN ENGINEERING COLLEGE, NATTRAMPALLI DEPARTMENT OF ECE

EITF35: Introduction to Structured VLSI Design

Asynchronous (Ripple) Counters

EECS150 - Digital Design Lecture 15 Finite State Machines. Announcements

DIGITAL CIRCUIT LOGIC UNIT 11: SEQUENTIAL CIRCUITS (LATCHES AND FLIP-FLOPS)

EE292: Fundamentals of ECE

CHAPTER 4: Logic Circuits

Chapter 7 Counters and Registers

North Shore Community College

FPGAs for bits & giggles

We are here. Assembly Language. Processors Arithmetic Logic Units. Finite State Machines. Circuits Gates. Transistors

Sequencing. Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Fall,

Lecture 2: Basic FPGA Fabric. James C. Hoe Department of ECE Carnegie Mellon University

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

Flip Flop. S-R Flip Flop. Sequential Circuits. Block diagram. Prepared by:- Anwar Bari

CHAPTER 6 COUNTERS & REGISTERS

Transcription:

FPGA Design with VHDL Justus-Liebig-Universität Gießen, II. Physikalisches Institut Ming Liu Dr. Sören Lange Prof. Dr. Wolfgang Kühn ming.liu@physik.uni-giessen.de

Lecture Digital design basics Basic logic devices Combinational circuits Sequential circuits Programmable Logic Devices IC classifications FPGA architecture and technologies

Basic Logic Devices AND OR NOT

Basic Logic Devices NAND NOR

Basic Logic Devices XOR MUX X Y S Z S Z X Y

Basic Logic Devices Tri-state D Flip-Flop Q I O CLK Q E E O floating(z) I CLK else Q D Q

Combinational Circuits Combinational circuits Constructed with gate logics Have no synchronous elements (FFs) Have no concept of periodic timing Outputs dependent only on inputs, after a delay time x z x 2 t z 2 x n z m Z i = F i (X, X 2,... X n )

Combinational Circuits Examples: Multiplexer Adder Multiplier Divider Decoder Encoder Asynchronous RAM...

Combinational Circuits: Example 2-to- Multiplexer s w w w f s f (a) Graphical symbol w s f w w (c) Schematic f = w s + w s (b) Truth table (d) equation

Combinational Circuits: Example 2 Full Adder (FA) A B C in FA S C out Hidden for the lab!!! Do it by yourselves!!! (a) Graphical symbol A B C in S um (b) Truth table C out Hidden for the lab!!! Do it by yourselves!!! (c) Schematic (d) Ripple Carry Adder

Sequential Circuits Sequential circuits Constructed with gate logics & synchronous elements (FFs) Concept of periodic timing Outputs updated at clock rising edge or falling edge Important basics for pipelined processing Clocks are regular periodic signals Period (T = time between ticks) Frequency = /T Duty-cycle (time clock is high between ticks - expressed as % of period) duty cycle (in this case, 5%) period

Synchronous Element (FFs/Registers) D Q CLK positive edge-triggered flip-flop D Q CLK negative edge-triggered flip-flop Inputs sampled on clock rising/falling edge outputs change after a delay D CLK Qpos Qpos' Qneg Qneg' t t t t positive edge-triggered FF negative edge-triggered FF

Timing Analysis data D Q Logic D Q clock stable changing data clock Data is transferred from register to register Combinatoric logic between the registers Critical Path is the delay between two register levels fclk = /(Tcp + Tff) Register outputs are stable between clock cycles No glitches on the register outputs

Pipeline data D Q Logic D Q t clock data L L2 D Q D Q D Q /2 t /2 t clock For a pipelined design According to fclk = /(Tcp + Tff), fclk can be roughly doubled One more clock cycle delay introduced Computation throughput roughly doubled One more register utilization

Synchronous vs. Asynchronous Designs Synchronous circuits (clocked) Inputs are sampled and outputs changed in relation to a common reference signal (the clock) Asynchronous circuits (not clocked) Inputs directly change outputs independently of a common reference signal (glitches a major concern) Stay away from asynchronous designs! (only if you can...) In this course, only synchronous circuits are concerned.

IC Classifications & Timeline In the early 8s : Generic logic circuits (Example TTL: SN74) Complex applications assembled from basic building blocks: chips with few ( < ) hardwired logic functions Many PCBs, interconnects, inflexibility, cost... Programmable PAL/GAL... In the end 8s: FPGA invented by Xilinx, but only very limited capacity (http://en.wikipedia.org/wiki/fpga) 9's: VLSI Circuits (ASICs) + glue logics (CPLD/FPGA) 's: VLSI and PLD (especially FPGA) Nowadays, FPGA is large enough to host an entire system (System-on-an-FPGA), rather than only performing as glue logics. Programmable technologies are being merged with ASICs. FPGA-in-ASIC or ASIC-in-FPGA will be popular.

Comparison of different technologies Technology Performance/ Cost Time until running Time to high performance Time to change code functionality ASIC Very High Very Long Very Long Impossible Speed FPGA Medium Medium/ Long Long Long Flexibility DSP High Short/ Long short/medium Medium Generic CPU/PC Low-Medium Short Not Attainable Very Short The above conclusion is not really true. It depends on the real applications and cannot be easily called ''good'' or ''bad''!!!

PLD Programmable Logic Device (PLD) A general term including all configurable devices CPLD (EPLD) + FPGA + PAL + GAL... ROM-based, RAM-based, anti-fuse based RAM-based FPGA has large capacity and can be utilized in large-scale design. But it needs downloading configuration during power-on from non-volatile memories. ROM-based CPLD is small, but the configuration can be stored in non-volatile memories on-chip and needs not downloading during power-on. Anti-fuse based devices are mainly for aerospace and other radiation-aware applications. In this course, we discuss mainly normal FPGA designs

FPGA Overview Basic idea: 2D array of combination logic blocks (CL) and flip-flops (FF) with a means for the user to configure both:. the interconnection between the logic blocks, 2. the function of each block. Simplified version of FPGA internal architecture

Structure of FPGA (Xilinx) Logic Block I/O Block Interconnections

Simplified FPGA Logic Block Logic Block RAM latch set by configuration bit-stream INPUTS 4-LUT FF OUTPUT 4-input "look up table" 4-LUT vs. 6-LUT implements combinational logic functions Register optionally stores output of LUT RAM determines output: register or LUT

LUTs as general logic gate An n-lut as a direct implementation of a function truthtable Each latch location holds value of function corresponding to one input combination Example: 2-lut INPUTS AND OR Implements any function of 2 inputs. How many functions of n inputs? INPUTS F(,,,) F(,,,) F(,,,) F(,,,) Example: 4-lut store in st latch RAM bit store in 2nd latch RAM bit

Advanced Programmable Resources Except for LUTs and FFs, other programmable resources include: Block RAM (BRAM): dedicated RAM blocks on FPGAs. Can be used as small storage components for fast memory accessing. DSP slices: multiplier and adder for DSP computation Digital Clock Management (DCM): clock frequency synthesis Hardcore IPs: processor, Ethernet MAC, RocketIO,... Refer to "Virtex-4 Libraries Guide for HDL Designs" for detailed primitives on Virtex-4 FPGA

Communication Channels Single-end I/O (GPIO) vs. Differential I/O (LVDS) Driver Receiver Driver Receiver Data Out Data In Data Out Rt + - Data In Single ended data transfer Differential signal data transfer 3.3 V 2 V.8 V Logic High.2V swing Logic Low Traditional means of data transfer Data is carried on a single line Big voltage swing between logic Low and High 3.3 V.7 V.3 V.4V swing One data bit is carried through two signal lines Voltage difference determines logic High or Low Smaller voltage swing between logic Low and High Higher performance LVTTL input levels LVDS Input levels Lower power Lower noise (fantastic common mode rejection)

Configuration Interfaces Configuration is the process to download the design bitstream into the FPGA configuration memory Configuration interfaces: Serial or Parallel configuration with non-volatile memories Boundary-Scan and JTAG (http://en.wikipedia.org/wiki/jtag) Master serial configuration JTAG configuration

Self-study Karnaugh Map (K-map) Used to derive equations from truth tables Can simplify equations for less gate utilization http://en.wikipedia.org/wiki/karnaugh_map... http://www.ee.surrey.ac.uk/projects/labview/minimisation/karnaugh.html

References Wikipedia Virtex-4 User Guide Virtex-4 Configuration Guide