0% found this document useful (0 votes)
32 views

Intro Fpga

This document provides an introduction and overview of field programmable gate arrays (FPGAs). It discusses the historical development of programmable logic devices from PLAs to CPLDs to modern FPGAs. The basics of digital design using synchronous logic with combinational circuits and flip flops is covered. The structure of FPGAs is then introduced, including the logic block as the basic programmable component. The document outlines the traditional hardware description language (HDL) design flow for programming FPGAs and concludes with a planned demonstration.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

Intro Fpga

This document provides an introduction and overview of field programmable gate arrays (FPGAs). It discusses the historical development of programmable logic devices from PLAs to CPLDs to modern FPGAs. The basics of digital design using synchronous logic with combinational circuits and flip flops is covered. The structure of FPGAs is then introduced, including the logic block as the basic programmable component. The document outlines the traditional hardware description language (HDL) design flow for programming FPGAs and concludes with a planned demonstration.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 29

Introduction to Field

Programmable Gate Arrays


Lecture 1/3

CERN Accelerator School on Digital Signal Processing


Sigtuna, Sweden, 31 May – 9 June 2007
Javier Serrano, CERN AB-CO-HT
Outline
 Historical introduction.
 Basics of digital design.
 FPGA structure.
 Traditional (HDL) design flow.
 Demo.
Outline
 Historical introduction.
 Basics of digital design.
 FPGA structure.
 Traditional (HDL) design flow.
 Demo.
Historical Introduction
 In the beginning, digital design was done with the ’74 series of chips.

 Some people would design their own chips based on Gate Arrays, which
were nothing else than an array of NAND gates:
Historical Introduction
 The first programmable chips were PLAs (Programmable Logic Arrays): two
level structures of AND and OR gates with user programmable connections.

 Programmable Array Logic devices were an improvement in structure and


cost over PLAs. Today such devices are generically called Programmable
Logic Devices (PLDs).
Historical introduction
 A complex PLD (CPLD) is nothing else than a collection of multiple PLDs
and an interconnection structure.

 Compared to a CPLD, a Field Programmable Gate Array (FPGA) contains a


much larger number of smaller individual blocks + large interconnection
structure that dominates the entire chip.
Outline
 Historical introduction.
 Basics of digital design.
 FPGA structure.
 Traditional (HDL) design flow.
 Demo.
Basics of digital design
 Unless you really know what you are doing, stick to
synchronous design: sandwiching bunches of
combinational logic in between flip flops.

 Combinational logic: state of outputs depend on current


state of inputs alone (forgetting about propagation delays
for the time being). E.g. AND, OR, mux, decoder,
adder...

 D-type Flip flops propagate D to Q upon a rising edge in


the clk input.

 Synchronous design simplifies design analysis, which is


good given today’s logic densities.
Don’t do this!

Toggle flip-flops get triggered by glitches produced by different path


lengths of counter bits.
Basics of (synchronous) Digital Design

Clk
[31:0]
DataInB[31:0] [31:0]
D[31:0] Q[31:0] [31:0]
D[0] Q[0]
[31:0]
dataBC[31:0] dataSelectC 0
[31:0] [31:0]
[31:0]
D[31:0] Q[31:0] [31:0]
DataOut[31:0]
[31:0]
DataSelect 1
DataOut[31:0]
DataOut_3[31:0]
[31:0]

+ [31:0]
High clock rate:
[31:0]

DataInA[31:0] [31:0]
D[31:0] Q[31:0]
sum[31:0] 144.9 MHz on a
[31:0]

dataAC[31:0]
[31:0]
6.90 ns Xilinx Spartan IIE.
DataSelect D[0] Q[0] D[0] Q[0]

dataSelectC dataSelectCD1

[31:0] [31:0]
Clk D[31:0] Q[31:0] [31:0]
0
[31:0] [31:0] [31:0]
DataInB[31:0] [31:0]
D[31:0] Q[31:0] [31:0] [31:0]
D[31:0] Q[31:0] [31:0]
DataOut[31:0]
dataACd1[31:0] [31:0]
1
dataBC[31:0] DataOut[31:0]
DataOut_3[31:0]

[31:0]
Higher clock rate:
DataInA[31:0] [31:0]
[31:0]
D[31:0] Q[31:0] [31:0]
[31:0]

sum_1[31:0]
+ [31:0]
[31:0]
D[31:0]

sum[31:0]
Q[31:0] [31:0]
151.5 MHz on the
dataAC[31:0]
6.60 ns same chip.

Illustrating the latency/throughput tradeoff


Outline
 Historical introduction.
 Basics of digital design.
 FPGA structure.
 Traditional (HDL) design flow.
 Demo.
Basic FPGA architecture
The logic block: a summary view

Example: using a LUT


as a full adder.
A practical example: Xilinx Virtex II Pro
family (used in the lab)

Overview Configurable
Logic Block (CLB)

Embedded PowerPC

Digitally Controlled Impedance (DCI)


A practical example: Xilinx Virtex II Pro
family

Slice

Detail of half-slice
A practical example: Xilinx Virtex II Pro
family

Routing resources
FPGA state of the art

 In addition to logic gates and routing, in a modern FPGA


you can find:
 Embedded processors (soft or hard).
 Multi-Gb/s transceivers with equalization and hard IP for serial
standards as PCI Express and Gbit Ethernet.
 Lots of embedded MAC units, with enough bits to implement
single precision floating point arithmetic efficiently.
 Lots of dual-port RAM.
 Sophisticated clock management through DLLs and PLLs.
 System monitoring infrastructure including ADCs.
 On-substrate decoupling capacitors to ease PCB design.
 Digitally Controlled Impedance to eliminate on-board termination
resistors.
Embedded processors
Why use embedded processors?

Customization: take only the


peripherals you need and
replicate them as many times
as needed. Create your own
custom peripherals.

Strike optimum balance in system partitioning.


Serial signaling

 Avoids clock/data skew by using embedded clock.

 Reduces EMI and power consumption.

 Simplifies PCB routing.


Clock management
Outline
 Historical introduction.
 Basics of digital design.
 FPGA structure.
 Traditional (HDL) design flow.
 Demo.
Traditional design flow 1/3

Implement your
Behavioral design using VHDL
HDL Simulation
or Verilog

Functional
Synthesis Simulation

Timing
Implementation Simulation

In-Circuit
Download Verification
Traditional design flow 2/3

Behavioral
HDL Simulation

Synthesize the
Functional
Synthesis Simulation design to create an
FPGA netlist

Timing
Implementation Simulation

In-Circuit
Download Verification
Traditional design flow 3/3

Behavioral
HDL Simulation

Functional
Synthesis Simulation

Translate, place
Timing and route, and
Implementation Simulation
generate a
bitstream to
In-Circuit download in the
Download Verification FPGA
VHDL 101

Both VHDL code segments produce exactly the same hardware.


VHDL 101: hierarchy
Outline
 Historical introduction.
 Basics of digital design.
 FPGA structure.
 Traditional (HDL) design flow.
 Demo.
Demo
 Now, let’s see how you go from design
idea to hardware, using the traditional
flow.

 Many thanks to Jeff Weintraub (Xilinx


University Program), Bob Stewart
(University of Strathclyde) and Silica for
some of the slides.

You might also like