Digital Systems Design Overview ENGIN 341 – Advanced Digital Design University of Massachusetts Boston Department of Engineering Dr. Filip Cuckov.

Slides:



Advertisements
Similar presentations
Lecture 11-1 FPGA We have finished combinational circuits, and learned registers. Now are ready to see the inside of an FPGA.
Advertisements

ECE 506 Reconfigurable Computing ece. arizona
Lecture 15 Finite State Machine Implementation
Digital Design: Combinational Logic Blocks
Xilinx CPLDs and FPGAs Module F2-1. CPLDs and FPGAs XC9500 CPLD XC4000 FPGA Spartan FPGA Spartan II FPGA Virtex FPGA.
Survey of Reconfigurable Logic Technologies
Programmable Logic Devices
Spartan II Features  Plentiful logic and memory resources –15K to 200K system gates (up to 5,292 logic cells) –Up to 57 Kb block RAM storage  Flexible.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR SRAM-based FPGA n SRAM-based LE –Registers in logic elements –LUT-based logic element.
©2004 Brooks/Cole FIGURES FOR CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES Click the mouse to move to the next page. Use the ESC key.
Implementing Logic Gates and Circuits Discussion D5.1.
Implementing Logic Gates and Circuits Discussion D5.3 Section 11-2.
ENGIN112 L38: Programmable Logic December 5, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 38 Programmable Logic.
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.
Programmable logic and FPGA
Silicon Programming--Altera Tools1 “Silicon Programming“ programmable logic Altera devices and the Altera tools major tasks in the silicon programming.
Introduction to Field Programmable Gate Arrays (FPGAs) COE 203 Digital Logic Laboratory Dr. Aiman El-Maleh College of Computer Sciences and Engineering.
Multiplexers, Decoders, and Programmable Logic Devices
February 4, 2002 John Wawrzynek
ECE 331 – Digital System Design Tristate Buffers, Read-Only Memories and Programmable Logic Devices (Lecture #16) The slides included herein were taken.
Programmable Array Logic (PAL) Fixed OR array programmable AND array Fixed OR array programmable AND array Easy to program Easy to program Poor flexibility.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
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.
The Xilinx Spartan 3 FPGA EGRE 631 2/2/09. Basic types of FPGA’s One time programmable Reprogrammable (non-volatile) –Retains program when powered down.
Dr. Konstantinos Tatas ACOE201 – Computer Architecture I – Laboratory Exercises Background and Introduction.
Figure to-1 Multiplexer and Switch Analog
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
A Company Selling Technology and not just a Product.
Lecture 7 1. Introduction  Comparison of Standard Logic Circuits and Programmable Logic Circuits  Evolution and Overview of PLC:  PROM, PLA, PAL 
EE4OI4 Engineering Design Programmable Logic Technology.
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 120: Digital Systems and Standard-Cell ASIC Design Tutorial 4: Digital Systems Concepts November 16, 2005.
Electronics in High Energy Physics Introduction to Electronics in HEP Field Programmable Gate Arrays Part 1 based on the lecture of S.Haas.
ECE 465 Introduction to CPLDs and FPGAs Shantanu Dutt ECE Dept. University of Illinois at Chicago Acknowledgement: Extracted from lecture notes of Dr.
Unit 9 Multiplexers, Decoders, and Programmable Logic Devices Ku-Yaw Chang Assistant Professor, Department of Computer Science.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
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.
CPLD (Complex Programmable Logic Device)
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.
CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES
Chapter 4 Programmable Logic Devices: CPLDs with VHDL Design Copyright ©2006 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
Basic Sequential Components CT101 – Computing Systems Organization.
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.
BR 1/991 Issues in FPGA Technologies Complexity of Logic Element –How many inputs/outputs for the logic element? –Does the basic logic element contain.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
FPGA Based System Design
M.Mohajjel. Why? TTM (Time-to-market) Prototyping Reconfigurable and Custom Computing 2Digital System Design.
ESS | FPGA for Dummies | | Maurizio Donna FPGA for Dummies Basic FPGA architecture.
Survey of Reconfigurable Logic Technologies
ESS | FPGA for Dummies | | Maurizio Donna FPGA for Dummies Modern FPGA architecture.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Devices ECE 448 Lecture 5.
PLDS Mohammed Anvar P.K AP/ECE Al-Ameen Engineering College.
FPGA Technology Overview Carl Lebsack * Some slides are from the “Programmable Logic” lecture slides by Dr. Morris Chang.
FPGA 상명대학교 소프트웨어학부 2007년 1학기.
Introduction to the FPGA and Labs
This chapter in the book includes: Objectives Study Guide
Issues in FPGA Technologies
Sequential Programmable Devices
Sequential Logic Design
Topics SRAM-based FPGA fabrics: Xilinx. Altera..
This chapter in the book includes: Objectives Study Guide
ECE 4110–5110 Digital System Design
Electronics for Physicists
Spartan FPGAs مرتضي صاحب الزماني.
This chapter in the book includes: Objectives Study Guide
FIGURE 7.1 Conventional and array logic diagrams for OR gate
Electronics for Physicists
Exploring Application Specific Programmable Logic Devices
Presentation transcript:

Digital Systems Design Overview ENGIN 341 – Advanced Digital Design University of Massachusetts Boston Department of Engineering Dr. Filip Cuckov

Overview 1.Introduction to Programmable Logic Devices 2.Field Programmable Gate Arrays (FPGAs) 3.Implementing Functions on FPGAs 4.The Zynq System on Chip (SoC) 5.FPGA Design Flow

1. Introduction to Programmable Logic Devices

Programmable Devices Comparison SPLD PLA PAL GAL PROM EPROM EEPROM CPLD FPGA

Implementing Functions Using ROMs In General

Programmable Logic Arrays F 0 = A’B’ + AC’ F 1 = B + AC’ F 2 = A’B’ + BC’ F 3 = AC + B PLA Example Implementation PLA Architecture

GAL 22V10 Output Logic Macrocell Detail

CPLD Example – Xilinx CoolRunner XCR3064XL

2. Field Programmable Gate Arrays Field Programmable Logic Block Arrays (FPLBA ???) Name due to early PLD-type block usage in Altera devices. Modern FPGAs mostly use LUTs First FPGA: Xilinx XC2000 ca FPGA Market Share (2013 data) FPGAs vs CPLDs

FPGA Architectures

FPGA Programmable Logic Block* Models Usually composed from Look-Up-Tables (LUTs) Actel: MUX based LUT-Based Logic Block MUX-Based Logic Block *As in: basic building blocks

Actual FPGA Logic Block Variants Simplified view of sample Xilinx (slice) and Altera (logic element) Logic Blocks

FPGA Programmable Interconnect

FPGA Programmable I/O Blocks

3. Implementing Functions on FPGAs Book Chapter 6 Boole’s Expansion Theorem / Shannon’s Expansion or Decomposition F(a,b,c,d,e) = a’ ∙ F(0,b,c,d,e) + a ∙ F(1,b,c,d,e) = a’ ∙ F 0 + a ∙ F 1 Example: F(a,b,c,d,e) = abc’e + a’b’cd + cde’ + a’b F 0 = 0 ∙ bc’e + 1 ∙ b’cd + cde’ + 1 ∙ b = b’cd + cde’ + b F 1 = 1 ∙ bc’e + 0 ∙ b’cd + cde’ + 0 ∙ b = bc’e + cde’ Claude Elwood Shannon (1916–2001) George Boole ( ) vs

Expansion/Decomposition Example Implement F using 4-input LUTs (LUT4) F 0 = b’cd + cde’ + b | F 1 = bc’e + cde’ | F = a’ ∙ F 0 + a ∙ F 1 bcdeF0F bcdeF1F F 0 (b,c,d,e) F 1 (b,c,d,e) abcdeF Original Function aF1F1 F0F0 *F F (a,F 1,F 0,*) * is a LUT input we don’t care about LUT4 b c d e F0F0 b c d e F1F1 a F

Further Decomposition F(a,b,c,d,e) = a’b’ ∙ F(0,0,c,d,e) + a’b ∙ F(0,1,c,d,e) + ab’ ∙ F(1,0,c,d,e) + ab ∙ F(1,1,c,d,e) = a’b’ ∙ F 00 + a’b ∙ F 01 + ab’ ∙ F 10 + ab ∙ F 11 This would be done in order to implement F using 3-input LUT (LUT3) Same Example: F(a,b,c,d,e) = abc’e + a’b’cd + cde’ + a’b F 00 = 0 ∙ 0 ∙ c’e + 1 ∙ 1 ∙ cd + cde’ + 1 ∙ 0 = cd + cde’ F 01 = 0 ∙ 1 ∙ c’e + 1 ∙ 0 ∙ cd + cde’ + 1 ∙ 1 = 1 F 10 = 1 ∙ 0 ∙ c’e + 0 ∙ 1 ∙ cd + cde’ + 0 ∙ 0 = cde’ F 11 = 1 ∙ 1 ∙ c’e + 0 ∙ 0 ∙ cd + cde’ + 0 ∙ 1 = c’e + cde’

F 00 = cd + cde’ | F 01 = 1 | F 10 = cde’ | F 11 = c’e + cde’ F = a’b’ ∙ F 00 + a’b ∙ F 01 + ab’ ∙ F 10 + ab ∙ F 11 = ( F 1 + F 2 + F 3 ) + F 4 = F F 4 cdeF F 00 (c,d,e) abcdeF Original Function cdeF F 01 (c,d,e) cdeF F 10 (c,d,e) cdeF F 11 (c,d,e) abF 00 F1F F 1 (a,b,F 00 ) abF 01 F2F F 2 (a,b,F 01 ) abF 10 F3F F 3 (a,b,F 10 ) abF 11 F4F F 4 (a,b,F 11 ) F1F1 F2F2 F3F3 F F 123 (F 1,F 2,F 3 ) F 123 F4F4 * F(F 123,F 4,*) Further Decomposition Example

Diagram and Alternative MUX Implementation LUT3 c d e F 01 LUT3 c d e F 00 LUT3 c d e F 11 LUT3 c d e F 10 LUT3 a b F1F1 a b F2F2 a b F3F3 a b F4F4 F 123 LUT3 F c d e F 01 LUT3 c d e F 00 LUT3 c d e F 11 LUT3 c d e F 10 b b F a

4. The Zynq System on Chip (SoC) Xilinx Zynq System on Chip (SoC) Overview Zynq Overview – 16m 25s (Optional – Answers why was Zynq created) Zynq Overview Zynq Architecture – 10m 49s (Brief overview of the PS and PL components) Zynq Architecture Zynq Processing System (PS) – 7m 25s (Optional – Brief overview of Zynq PS) Zynq Processing System Zynq Programmable Logic (PL) – 9m 23s (Brief overview of Zynq PL) Zynq Programmable Logic Zynq PL Architecture Xilinx 7 Series FPGA Overview – 28m 21s (Optional - General overview, watch at 1.5x speed) Xilinx 7 Series FPGA Overview CLB Architecture – 21m 52s (A must see, IMDB rating of 9.1) CLB Architecture Additional Xilinx videos and training:

Digilent Zybo FeatureDescription FPGA Zynq-7000 AP SoC XC7Z010-1CLG400 I/O Interfaces USB-UART for programming, serial comm., and power One 10/100/1G Ethernet USB OTG 2.0 USB-UART bridge 16-bit VGA output Dual role (Input/Output) HDMI I2S CODEC Audio Line-In, Line-Out, microphone Memory 512 Mbyte DDR3 128 Mbit Quad-SPI Flash MicroSD card connector Switches and LEDs 4 Slide switches accessible from PL 4 LEDs accessible from PL 1 LED accessible from PS 4 Push-buttons accessible from PL 2 Push-buttons accessible from PS 1 Reset button accessible from PL 1 Reset button accessible from PS Clocks one MHz Oscillator for PS Expansion ports One processor-dedicated Pmod connector One dual (analog/digital) Pmod conenctor 4 Pmod connectors

Zynq-7000 AP SoC XC7Z010-1CLG400 Processing System (PS) 650Mhz dual-core Cortex-A9 processor DDR3 memory controller with 8 DMA channels High-bandwidth peripheral controllers: 1G Ethernet, USB 2.0, SDIO Low-bandwidth peripheral controller: SPI, UART, CAN, I2C Programmable Logic (PL) Equivalent to Artix-7 (7 Series) FPGA: 4,400 logic slices, each with four 6-input LUTs and 8 flip-flops 240 KB of fast block RAM Two clock management tiles, each with a PLL and a MMCM 80 DSP slices Internal clock speeds exceeding 450MHz On-chip analog-to-digital converter (XADC)

Xilinx 7 Series FPGA Configurable Logic Block Each CLB is composed of of 2 slices Slices can be of type SLICEL SLICEM Slice features: Real 6-input look-up table (LUT) technology Dual LUT5 (5-input LUT) option Distributed Memory and Shift Register Logic capability Dedicated high-speed carry logic for arithmetic functions Wide multiplexers for efficient utilization Xilinx 7 Series FPGA CLB Source: Xilinx 7 Series FPGA CLB User GuideXilinx 7 Series FPGA CLB User Guide

The four (A, B, C, and D) 6-input (A1-A6) LUTs provide 2 independent outputs (O5 and O6) The LUTs can implement: Any arbitrarily defined six-input Boolean function OR Two arbitrarily defined five-input Boolean functions, as long as these two functions share common inputs Slices also contain three multiplexers used to combine up to four LUTs to implement any function of 7or 8 inputs. F7AMUX: Used to generate 7-input functions from LUTs A and B F7BMUX: Used to generate 7-input functions from LUTs C and D F8MUX: Used to combine all LUTs to generate 8- input functions. Xilinx 7 Series FPGA Slice Detail SLICEL element shown. See source for SLICEM details.

Carry Chain(s) Dedicated fast lookahead carry logic can perform fast arithmetic addition and subtraction. Cascadable to form wider add/subtract logic. Run upward and have a height of four bits per slice. For each bit, there is a carry MUX and a XOR gate for adding/subtracting the operands with selected carry bits. The dedicated carry path and carry MUX can also be used to cascade function generators for implementing wide logic functions. Memory Elements Flip-Flops 8 in total 4 are only DFF and 4 can be configured as DFF or Latch Distributed RAM LUTs can be configured as RAM (SLICEM only) Dual-Port 32 x 1bit RAM, up to Single-Port 256 x 1bit RAM Xilinx 7 Series FPGA Slice Detail

Other PL Elements Clock Management Mixed-Mode Clock Manager Phase Locked Loop (PLL) DSP Slices 25x18 bit signed multiplier 48 bit adder/accumulator 25 bit pre-adder Block RAM Dual-port 36KB blocks Programmable FIFO logic Zynq Layout Snapshot using Vivado PS PL

5. FPGA Design Flow Computer Aided Design (CAD) Tools Xilinx Vivado Aldec Active-HDL (Free Student Edition)Free Student Edition Functional Simulation Synthesis Post Synthesis Simulation Mapping, Placement, Routing Implementation