81
FPGA – VHDL Cristian Alejandro Sisterna, MSc Universidad Nacional de San Juan Argentina

Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA – VHDL Cr ist ian A le jandro S isterna, MSc

Univers idad Nacional de San Juan

Argent ina

Page 2: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGAFIELD PROGRAMMABLE GATES ARRAY

ICTP FPGA-VHDL 2

Page 3: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

o History and trends

o FPGA Configuration and Routing Cells

o FPGA Logic

o FPGA Dedicated blocks

o Digital System Based on FPGA, Design Flowo Synthesis

o Simulation

o FPGA SoC

o FPGA Configuration options

ICTP FPGA-VHDL 3

Agenda

Page 4: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 4

FPGA: Very Competitive Market

Altera Inc. Actel Corp.

Lucent Technology Philips Semiconductors

Intel Corp. Motorola Semiconductors

QuickLogic Cypress

Lattice Semiconductors AMD

Vantis Xilinx

FPGA Vendors20002015

MicroSemi

Page 5: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Device Transistor Count Year Designer Process Area

Intel 4040 2.300 1971 Intel 10µm 12mm2

MOS 6502 3.510 1975 WDC 8µm 21mm2

8086 29.000 1978 Intel 3µm 33mm2

XC2000 1500 (gates) 1985 Xilinx

80486 1.180.235 1989 Intel 1µm 213mm2

Pentium II 7.500.000 1997 Intel 0.35µm 113mm2

Virtex 70.000.000 1997 Xilinx

Virtex II 350.000.000 2000 Xilinx 130nm

Pentium 4 184.000.000 2006 Intel 90nm 90mm2

Virtex-5 1.1000.0000 2006 Xilinx 65nm

Core 2 Duo 411.000.000 2007 Intel 45nm 107mm2

Stratix V 3.8000.000.000 2011 Altera 28nm

Quad Core i7 1.400.000.000 2014 Intel 22nm 177mm2

Octal Core i7 2.600.000.000. 2014 Intel 22nm 355mm2

Virtex Ultrascale 20.000.000.000 2014 Xilinx 20nmICTP FPA-VHDL 5

Transistor Counts: FPGA-Microprocessors

Page 6: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Programmable LogicFlips-Flops Look-Up-Tables (LUTs)

Dedicated Blocks:MemoryClock ManagementDSP blocksHard coded processor(s) – Hard CoreGigabits serial transmission/receptionEthernet controllerExternal Memory controllers. . .

IO Blocks

Interconnections and Routings

ICTP FPGA-VHDL 6

FPGA – What’s inside ?

Page 7: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 7

FPGA Architecture

Columns

filas

Rows

RAM MemoryBlock

SLICEs

DSPBlock

I/O Block

Page 8: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 8

FPGA Architecture

ICTP 2014CRISTIAN SISTERNA

I/O Block

DSPBlock

RAM Memory

LogicElements

ExternalInterfaces

ClockManager

Page 9: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 9

FPGA Architecture

Virtex-6 FPGAs Spartan-6 FPGAs

150K Logic Cell

Device

760K Logic Cell

Device

Common Resources

3.3 Volt compatible I/O

Hardened Memory Controllers

LUT-6 CLB

DSP Slices

BlockRAM

HSS Transceivers*

Parallel I/O FIFO Logic

System Monitor

Tri-mode EMAC

PCIe® Interface

High-performance Clocking

Page 10: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 10

FPGA Architecture - Artix 7 Internal View

Page 11: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 11

7-Series FPGA Families

Page 12: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA - Configuration & Routing Cells

ICTP FPGA-VHDL 12

Page 13: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 13

FPGA Configuration & Routing

Page 14: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 14

FPGA Routing Options

Page 15: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 15

Logic and Routing Configuration

Configuration & Routing Bits 110101011101010010001

L

Source: Actel

Page 16: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

The basic cell for configuring both the logic elements and the internal routings and interconnections can be based on one of the following technologies:

◦ SRAM

◦Anti-Fuse

◦Flash

◦Flash & SRAM

Technology for Configuring the FPGA

ICTP FPGA-VHDL 16

Page 17: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Advantages◦ Standard fab process

◦ Very low cost

◦ Process highly tested

◦ High yield

◦ Infinitely reprogrammable

SRAM Based FPGA

ICTP FPGA-VHDL 17

Disadvantages◦ Volatile cell

◦ Long routing delays

◦ Slow configuration process (~500ms)

◦ Need an external configuration memory

◦ Unsafe connection between FPGA-memory

FPGA Conf. Memory

Page 18: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Anti-Fuse Based FPGA

ICTP FPGA-VHDL 18

Advantages◦ No Volatile◦ Small interconnection delays◦ No sensible to ionic particles◦ Commonly used in special

systems◦ No need of external

configuration memoryDisadvantages◦ Specific fab process

◦ Very high cost

◦ One-time programmable (OTP)

◦ Long and tough verification process

◦ Yield relatively low

Page 19: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Flash Based FPGA

ICTP FPGA-VHDL 19

Advantages◦ No volatile

◦ Small interconnection delays

◦ Low sensibility to ionic particles

◦ Used in special systems

Disadvantages◦ Fab process still expensive

◦ Slow configuration process (~3-5 seg)

Page 20: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Flash-SRAM Based FPGA

ICTP FPGA-VHDL 20

Advantages◦ It can be said that is No Volatile

◦ Configuration time slow (~<1ms)

◦ SRAM cells can be used during the debug process

◦ No need of external configuration memory

◦ Safe system (safe bitstream)Disadvantages◦ Fab process still expensive

Page 21: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA Routing & Interconnecting

Transistor de Paso

M

Y0

Y

PIP

ICTP FPGA-VHDL 21

Page 22: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA Routing & Interconnecting

ICTP FPGA-VHDL 22

Page 23: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA Routing & Interconnecting

ICTP FPGA-VHDL 23

Page 24: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA Routing & Interconnecting

ICTP FPGA-VHDL 24

Page 25: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA Resources

ICTP FPGA-VHDL 25

Page 26: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 26

FPGA Programmable Logic

Page 27: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 27

Configurable Logic Block and SLICEs

CLB

Page 28: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 28

Different Type of SLICEs

SLICEX

Page 29: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 29

Half SLICE(?) Detailed View

Page 30: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 30

Look Up Table

A B C D Z

0 0 0 0 0

0 0 0 1 0

0 0 1 0 0

0 0 1 1 1

0 1 0 0 1

0 1 0 1 1

. . .

1 1 0 0 0

1 1 0 1 0

1 1 1 0 0

1 1 1 1 1

VHDL

Page 31: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 31

I/O Resources

ICTP 2014

31

CRISTIAN SISTERNA

I/O Block (IOB)

Page 32: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 32

7-Series I/O Block

Page 33: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

o Digital Controlled Impedance (DCI)

o Drive Strength

o Slew Rate

o Bus Hold (Bus keeper)

o Pull-up/Pull-down

o Differential Termination

o IODelay (V5, V6, V7, S6)o Fixed

o Variable

ICTP FPGA-VHDL 33

I/O Resources

Page 34: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 34

FPGA More Common I/O StandardsStandard Description Usage Input Buffer Output Buffer

LVTTL Low-Voltage TTL Propósito general 3.3V LVTTL Push-pull

LVCMOS Low-Voltage CMOS Propósito general 3.3V, 2.5V, 1.8V, 1.5V CMOS Push-pull

PCI Peripheral Component Interconnect Bus PCI LVTTL Push-pull

GTL Gunning Transceiver Logic Bus alta velocidad, backplane VREF Open Drain

GTL+ GTL Plus Intel Pentium Pro VREF Open Drain

HSTL High Speed Transceiver Logic Interface con SRAM VREF Push-pull

SSTL3 Stub Series Terminated Logic 3.3V SRAM/SDRAM VREF Push-pull

SSTL2 Stub Series Terminated Logic 2.5V SRAM/SDRAM VREF Push-pull

SSTL18 Stub Series Terminated Logic 1.8V SRAM/SDRAM VREF Push-pull

Differential Standards

LVDS Low-Voltage Differential Signaling High speed interface Diferencial Diferencial

BLVDS Bus LVDS Multipoint LVDS Diferencial Diferencial

LVPECL Low Voltage Positive ECL High-speed clocks Diferencial Diferencial

LDT Lightning Data TransportBidireccional serie/paralelo (Hyper

Transport)Diferencial Diferencial

Mini-LVDS Mini-LVDS Flat Panel Displays Diferencial Diferencial

LVDSExt Extensión de LVDS Hard Drive interface Diferencial Diferencial

RSDS Reduced Swing Differencial Signaling DVI/HDMI Diferencial Diferencial

Page 35: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 35

FPGA Memory Blocks

o Fully synchronous operation

o Optional internal pipeline register for higher frequency operation

o Two independent ports access common data

o Multiple configuration optionsoTrue dual-port, simple dual-port, single-port

o Integrated cascade logic

o Byte-write enable in wider configurations

o Integrated control for fast and efficient FIFOs

Page 36: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 36

‘Hard’ Memory Controller

o Guaranteed memory interface performance providing◦ Reduced engineering & board design time

◦ DDR, DDR2, DDR3 & LP DDR support

◦ Up to 12.8Mbps bandwidth for each memory controller

o Automatic calibration features

o Multiport structure for user interface◦ Six 32-bit programmable ports from fabric

◦ Controller interface to 4, 8 or 16 bit memories devices

DRAM

SRAM

FLASH

EEPROM

DRAM

SRAM

FLASH

EEPROM

Spartan-6Spartan-6

DRAM

DDR

DDR2

DDR3

LP DDR

DRAMDRAM

DDR

DDR2

DDR3

LP DDR

Page 37: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 37

FPGA Multipliers & DSP Blocks

Page 38: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 38

Virtex / Zynq DSP Block

Page 39: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 39

FPGA Clock Resources

Clock

Region

BUFR

IO

Columns

CMT

Columns

HROW

BUFG in

Center of

Device

BUFIO

BUFMR

Clock Buffer

& Routing

Column

Transceiver

Column

Leaf Cell

Clocks

BUFH

Page 40: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 40

I/O Clock Networks

Each clock region has four I/O clock networks

These networks can drive only the clock ports of the ILOGIC/OLOGIC resources and the high-speed clock ports (CLK) of the ISERDES/OSERDES

Each I/O clock network is driven by a BUFIO

Highest quality clock available

I/O Clock

Networks

Page 41: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA SoC

ICTP FPGA-VHDL 41

Page 42: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 42

Growth of Processors in FPGAs

0

20,000

40,000

60,000

80,000

100,000

120,000

Without CPU With CPU

Page 43: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 43

Altera SoCProcessor

Dual-core ARM® Cortex™-A9 MPCore™ processor

Up to 5,250 MIPS (1050 MHz per core maximum)

NEON coprocessor with double-precision FPU

32-KB/32-KB L1 caches per core

512-KB shared L2 cache

Multiport SDRAM controller DDR3, DDR3L, DDR2, LPDDR2

Integrated ECC support

High-bandwidth on-chip interfaces > 125-Gbps HPS-to-FPGA interface

> 125-Gbps FPGA-to-SDRAM interface

Cost- and power-optimized FPGA fabric Lowest power transceivers

Up to 1,600 GMACS, 300 GFLOPS

Up to 25Mb on-chip RAM

More hard intellectual property (IP)

Page 44: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 44

Altera SoC Portfolio

• 28nm TSMC

• 925 MHz Dual ARM

CortexTM-A9 MPCoreTM

• 5G Transceivers

• 400 MHz DDR3

• 25 to 110 KLE

• Up to 224 Multipliers

(18x19)

• 28nm TSMC

• 1.05 GHz Dual ARM

CortexTM-A9 MPCoreTM

• 10G Transceivers

• 533 MHz DDR3

• Up to 462 KLE

• Up to 2136 Multipliers

(18x19)

• 20nm TSMC

• 1.5 GHz Dual ARM

CortexTM-A9 MPCoreTM

• 17G Transceivers

• 1333 MHz DDR4

• Up to 660 KLE

• Up to 3356 Multipliers

(18x19)

• 14nm Intel Tri-Gate

• 64-bit Quad ARM A53 MP

CoreTM

• Optimized for Max

Performance per Watt

• Over 4000 KLE

LOW END SoCs(Lowest Power, Form Factor & Cost)

HIGH END SoCs(Highest Performance & System Bandwidth)

MID RANGE SoCs(High Performance with Low Power, Form Factor & Cost)

LO

W P

OW

ER

HIG

H P

ER

FO

RM

AN

CE

Page 45: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 45

Xilinx SoC – Zynq

Complete ARM®-based processing system◦ Application Processor Unit (APU)

◦ Dual ARM Cortex™-A9 processors◦ Caches and support blocks

◦ Fully integrated memory controllers◦ I/O peripherals

Tightly integrated programmable logic◦ Used to extend the processing system◦ Scalable density and performance

Flexible array of I/O◦ Wide range of external multi-standard I/O◦ High-performance integrated serial transceivers◦ Analog-to-digital converter inputs

Page 46: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 46

Xilinx SoC Portfolio

Page 47: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA – Configuration Methods

ICTP FPGA-VHDL 47

Page 48: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

SRAM FPGA Configuration

ICTP FPGA-VHDL 48

Page 49: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Configuring Multiple SRAM FPGA Devices

ICTP FPGA-VHDL 49

Page 50: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA Passive Serial Configuration

ICTP FPGA-VHDL 50

Page 51: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA Configured By a Microprocessor

ICTP FPGA-VHDL 51

Page 52: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

JTAG Configuration

ICTP FPGA-VHDL 52

Page 53: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

FPGA Active Parallel Configuration

ICTP FPGA-VHDL 53

Page 54: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL

ICTP FPGA-VHDL 54

Page 55: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL

Very High Speed

ICsHardware

Description

Language

VHDL

ICTP FPGA-VHDL 55

Page 56: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Hardware Description Language

FPGA ASIC

ActelXilinx Altera Lattice

HDL(VHDL/Verilog)

ICTP FPGA-VHDL 56

Page 57: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

HDL – Main Features

o High level of abstraction

o Easy to debug

o Parameterized designs

o Re-uso

o IP Cores (free) available

if(reset=‘1’) then

count <= 0;

elsif(rising_edge(clk)) then

count <= count+1;

end if;

ICTP FPGA-VHDL 57

Page 58: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

What is not HDL

Neither Verilog, nor VHDL ARE A programming language;

They ARE A HARDWARE DESCRIPTION LENGUAGE

Verilog o VHDL is not (yet) a highly abstract language:

y(n) = 0.75y(n-1) + 0.3x(n) ;

(Simulink/FPGA design flow)

ICTP FPGA-VHDL 58

Page 59: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL - FPGA Flow Process

ICTP FPGA-VHDL 59

Spec

HDL

Compilation

Functional Verification

Synthesis & Optimization

Post-SynthesisVerification

Place & Route

Timing Verification

Page 60: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL Synthesis – VHDL Simulation

VHDL Synthesizable

VHDL

Used to write code to simulate the

behavior of a design

Used to implement the design into hardware (for

instance in an FPGA)

ICTP FPGA-VHDL 60

Page 61: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL Synthesis – FPGA Place & Route

Synthesis Tool

VHDL Code

FPGA Library of Components

with tmp select

j <= w when “1000”,

x when “0100”,

z when “0001”,

'0‘when others;

Cyclone

Spartan

NET CLOCK PERIOD = 50 ns;

NET LOAD LOC = P14

attribute syn_encoding of

my_fsm: type is “one-hot”;

Place & Route Tool

ICTP FPGA-VHDL 61

Constraints

Attributes

Page 62: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Implemented Design in an FPGA

ICTP FPGA-VHDL 62

Page 63: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL – Simple Hardware Description Example

x

yz

sel

0

1

if(sel=‘1’) then

z <= y;

else

z <= x;

end if;

z <= y when sel=‘1’ else x;

ICTP FPGA-VHDL 63

Page 64: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL – Simple Hardware Description Example

d q

clk

if(clk )then

q <= d;

else

q <= q;

end if;

if(clk )then

q <= d;

end if; if(rising_edge(clk))then

q <= d;

end if;

ICTP FPGA-VHDL 64

Page 65: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL Module Structure

d q

clk

entity

architecture

I/O

Functionality

ff.vhd

ICTP FPGA-VHDL 65

Page 66: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

VHDL Module Structure

d q

clk

entity ff is

port(

d,clk : in std_logic;

q : out std_logic);

end ff;

architecture test of ff is

begin

process(clk)

begin

if(rising_edge(clk)) then

q <= d;

end if;

end test;

ff.vhd

entity f

port(

end ff;

architecture test of ff is

begin

process(clk)

begin

end test;

ICTP FPGA-VHDL 66

Page 67: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Components in VHDL

Page 68: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

The Role of Components in VHDL

Hierarchy in VHDL Components

Divide & Conquer

Each subcomponent can be designed and completely tested

Create library of components (technology independent if possible)

Third-party available components

Code for reuse

ICTP FPGA-VHDL 68

Page 69: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Hierarchy in VHDL - Components

High-Speed

DDR ADC

Ethernet

ICTP FPGA-VHDL 69

FPGA

Page 70: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 70

Importance of Hierarchy in VHDL

DDR IF

HSpeedDDR ADC

RAM Buffer

EthIF

FPGA

Mem Rd / Eth Ctrl

Mem Wr

Page 71: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 71

Importance of Hierarchy in VHDL: IP

DDR IF

RAM Buffer

EthIF

Mem Rd / Eth Ctrl

Mem Wr

My_ADC_DDR_IP

Page 72: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

ICTP FPGA-VHDL 72

IP I/O Interfaces on a SoC FPGA (Zynq)

My_ADC_DDR_IPARM 9AMBA

AXI M/S IF

PLPS

FPGA

my_adc_ddr_ip_axi

Page 73: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Component Declarationentity nand2 is

port (a, b: in std_logic,

z: out std_logic);

end;

architecture rtl of nand2 is

end;entity top is

port(…

);

end;

achitecture structural of top is

component nand2

port (a, b: in std_logic,

z : out std_logic);

end component;

begin

….

end; ICTP FPGA-VHDL 73

Page 74: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Component Instantiation

◦ component_label it labels the instance by giving a name to thecomponent to be instantiated

◦ generic_assocation_list assigns new values to the default generic values (given in the entity declaration)

◦ port_association_list associate the signals in the top entity/architecture with the ports of the component. There are two waysof specifying the port map:

• Positional Association / Name Association

component_label: component_name

[generic map (generic_assocation_list)]

port map (port_association_list);

ICTP FPGA-VHDL 74

Page 75: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Association by Position

◦ Each actual in the component instantiation is mapped by position with each port in the component declaration

◦ That is, the first port in the component declaration correspondsto the first actual in the component instantiation, the secondwith the second and so on

◦ The I/Os on the component declaration, are called formals

In positional association, an association list is of the form

(actual1, actual2, actual3, … actualn);

ICTP FPGA-VHDL 75

Page 76: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Association by Position

-- component declaration

component NAND2

port (a, b: in std_logic,

z: out std_logic);

end component;

-- component instantiation

U1: NAND2 port map (S1, S2, S3);

-- S1 associated with a

-- S2 associated with b

-- S3 associated with z

actuals

formals

ICTP FPGA-VHDL 76

Page 77: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Association by Name

In named association, an association list is of the form

(formal1=>actual1, formal2=>actual2, … formaln=>actualn);

-- component declaration

component NAND2

port (a, b: in std_logic;

z: out std_logic);

end component;

-- component instantiation

U1: NAND2 port map (a=>S1, z=>S3, b=>S2);

-- S1 associated with a, S2 with b and S3 with z

Connected to Component I/O Port Internal Signal or Entity I/O Port

ICTP FPGA-VHDL 77

Page 78: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Unconnected Outputs

When a component is instanced, one of the outputs sometimes has to be unconnected

This can be done using the keyword open

architecture rtl of top_level is

component ex4

port (a, b: in std_logic;

q1, q2: out std_logic;

end component;

begin

U1: ex4 port map(a=>a, b=>b, q1=>dout, q2=>open);

end;

ICTP FPGA-VHDL 78

Page 79: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Generic Map

o If a generic have been specified in the component to be instanced, their value can be changed during instantiation using the command generic map

o By using generics, it is possible to design components which can be parameterized

o Positional and named association can be used

generic map (generic_assocation_list);

ICTP FPGA-VHDL 79

Page 80: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Component Example Using genericarchitecture ejemplo of regist_variable is

component dff

generic (width: positive);

port (rst, clk: in std_logic;

d: in std_logic_vector(width-1 downto 0);

q: out std_logic_vector(width-1 downto 0));

end component;

constant width_8: positive:= 8;

constant width_16: positive:= 16;

constant width_32: positive:= 32;

signal d8, q8: std_logic_vector(7 downto 0);

signal d16, q16: std_logic_vector(15 downto 0);

signal d32, q32: std_logic_vector(31 downto 0);

ICTP FPGA-VHDL 80

Page 81: Presentación de PowerPointindico.ictp.it/event/a14283/session/61/contribution/246/material/slides/0.pdf · DRAM SRAM FLASH EEPROM SpartanSpartan --66 DRAM DDR DDR2 DDR3 LP DDR DRAMDRAM

Component Example Using generic

ICTP FPGA-VHDL 81

architecture ejemplo of regist_variable is

component dff

generic (width: positive);

port (rst, clk: in std_logic;

d: in std_logic_vector(width-1 downto 0);

q: out std_logic_vector(width-1 downto 0));

end component;

constant width_8: positive:= 8;

constant width_16: positive:= 16;

constant width_32: positive:= 32;

signal d8, q8: std_logic_vector(7 downto 0);

signal d16, q16: std_logic_vector(15 downto 0);

signal d32, q32: std_logic_vector(31 downto 0);

begin

ff8: dff generic map(width_8)

port map (rst, clk, d8, q8);

ff16:dff generic map(width_16)

port map (rst, clk, d16, q16);

ff32:dff generic map(width_32)

port map (rst=>rst,clk=>clk,d=>d32, q=>q32);

end ejemplo;