iCE65 mobileFPGA Configuration and Programming Overview

iCE65 mobileFPGA™
Configuration & Programming
Overview
05/12/2010
Configuration vs. Programming
• CONFIGURATION
– iCE65 is a standard SRAM FPGA (reconfigurable)
– During power up, a configuration image is loaded into the iCE65
device to start functioning
• In Master mode, the iCE65 “CONFIGURES” itself from built-in
NVCM or external SPI flash memory
• In Slave mode, a processor/programmer “CONFIGURES” iCE65
FPGAs
• PROGRAMMING
– Storing the FPGA configuration image into an external SPI flash
memory or built-in NVCM
• By using programming cable and software
• SPI flash can be programmed many times
• NVCM can be programmed only once
2
SiliconBlue Confidential
iCE65 Configuration Options
• There are “3” ways to configure iCE65 FPGAs
– SPI flash configuration
– SysMem configuration
– NVCM configuration
3
SiliconBlue Confidential
•
Off-board:
FLASH
SPI FLASH Configuration
iCE65
– User-programmed SPI FLASH device connects to header on customer board to
configure iCE65 device
•
On-board:
FLASH
iCE65
– User-programmed SPI FLASH device connects directly to iCE65 device
– Header is typically used to program FLASH device
•
Benefits
– Customer in control of SPI FLASH programming (standard programming tools)
– Familiar to FPGA users
– Multiple images can be stored
4
SiliconBlue Confidential
SysMem Configuration
System
Mem
iCE65
uP
•
•
User-programmed system memory stores iCE65 configuration bitstream
Microprocessor used to control configuration process
•
Benefits
–
–
–
–
–
•
Eliminates needs for separate configuration memory
Customer in control of system memory programming
Familiar to FPGA users
Multiple images can be stored
Support field upgrade
Requires user to implement control program in processor
5
SiliconBlue Confidential
NVCM Configuration
iCE65
NVCM
NVCM = Non-Volatile Configuration
Memory
• On-chip NVCM memory stores iCE65 configuration bitstream
• Benefits
– One-chip solution eliminates need for separate configuration memory
– NVCM consumes less power than FLASH solutions
– Instant-On
• SiliconBlue recommends factory programming of NVCM memory for
production phase
– 100% programming yield guarantee
– Can offer other services such as custom marking
6
SiliconBlue Confidential
SPI FLASH CONFIGURATION
AND PROGRAMMING
7
SiliconBlue Confidential
SPI Flash Configuration Options
• Two Ways:
– On-board SPI flash
– Off-board SPI flash
8
SiliconBlue Confidential
On-Board Flash
• Best for design needing frequent update
• Same as standard SRAM-based FPGA approach
SPI flash programming cable
USB 2.0
iCE65
5
SS
MOSI
MISO
SCK
GND
6
VCC_SPI
1
2
3
SPI flash
Target Board
9
4
SiliconBlue Confidential
SPI programming
utility
Connections on Prototype
Optional “Flying Leads”
• Little to no board space
required on prototype
• Connect to test points on
board (Digilent part
number: 6-Pin MTE)
• Optionally spot solder
leads to pads on
prototype
10
Prototype does not have room for 6
pin header, so test points are used
SiliconBlue Confidential
iCE65
SPI flash
Recommended 3rd Party SPI Flash
Programming Cables
Dedi-prog
Aardvark
SF100
I2C/SPI Host
Adapter
Now
Now
Software
DediProgrammer
Pro
Flash Center
Software
Unit Price
$210
$250
Product Name
Availability
11
SiliconBlue Confidential
Connection to SPI Flash
6
VCC
4.7k Ω
Write protect must be
disabled during
programming .
VCC
3 MOSI
2 MISO
D
Q
1
SS
4
SCK
S
C
W
High
HOLD
High
M25Pxx
VSS
1
6-pin Male
Header
SS
2
3
SPI_VCC
MOSI
4
MISO
SCK
5
SPI_ SI
SPI_ SO
SPI_ SS_B
GND
6
VCC_SPI
SPI_ SCK
VCCIO_2
iCEcable connection
7
CRESET _B
8
CDONE
12
2 .3 V to 3 .0 V
ColdBoot Only
CBSEL1
iCE65
Controlled by
prototype system
CBSEL0
TRST _ B
4.7kΩ
7
CRESET_ B
Need ability to hold
CRESET _B pin Low
throughout programming .
5
VPP _ 2V5
CDONE
GND
GND
SiliconBlue Confidential
Low
8
Open -drain output with
weak pull -up to VCCIO _2
Using Remote Configuration Module
• Easier migration to NVCM production model
• Same header can be used to program NVCM (ISP)
Use included 6-pin “gender
changer” cable
PROM
iCE65
Female Header
13
iCE65
Male Header
SiliconBlue Confidential
Remote Configuration Module
• 16Mbit SPI storage module
– 3.3V M25P16 Flash PROM
– Large enough for multiple ColdBoot,
WarmBoot images
• Program using download cable
– Plugs directly into cable
• After programming, plug it into iCE65
prototype
• Includes 6-pin “gender changer” cable
• Can be purchased from Digilent Inc.
www.digilentinc.com/Products/Detail.cfm?NavTop=2&NavSub=489&Prod=PMOD-SF
14
SiliconBlue Confidential
Connection to
Remote Configuration Module
PROM
6
4.7 kΩ
6-pin Header
1
2
3
4
5
6
VCC
(3.3V)
USB programming interface
and SPI PROM on iCEman65
board requires 3.3V.
SS
MOSI
MISO
SCK
GND
VCC_SPI
3 MISO
2 MOSI
1
SS
4 SCK
iCEman65 board can optionally
supply 3.3V to prototype
SPI_VCC
SPI_SI
SPI_SO
SPI_SS_B
SPI_SCK
VPP_2V5
iCE 65
CBSEL1
CBSEL0
TRST_B
CRESET_B
CDONE
2.3V to 3.0V
ColdBoot Only
Controlled by
prototype system
Low
Open-drain output with
weak pull-up to VCCIO_2
GND
5
GND
When ready for production, connect CRESET_B to program NVCM
15
SiliconBlue Confidential
SYSMEM CONFIGURATION
AND PROGRAMMING
16
SiliconBlue Confidential
SysMem Configuration
• Saves extra memory cost
• Provides seamless field upgrade capability
• Familiar to all FPGA designers
iCE65
CPU
Target Board
17
SiliconBlue Confidential
SysMem Configuration Connections
• Also known as “processor/CPU configuration”
• Very popular & well known to FPGA designers
• Reference code available in ARM, MIPS, & PXA270
VCCIO_2
10K Ohm
10K Ohm
CDONE
CRESET_B
SPI_SS_B
CPU/MCU
SPI_CLK
SPI_SDI
SPI_SDO
18
SiliconBlue Confidential
iCE65 FPGA
Configuration Procedures
6.
7.
Set SPI_SS_B to low
Pulse CRESET_B low for at least 200 ns
Wait 300 µs for internal CRAM to be cleared
Send NVCM power off instructions (to minimize power)
Send entire bitstream file with 5 ~ 25MHz and 50% duty cycle clock,
drive data with falling edge clock with MSB first
Continue to send extra 50 clocks, CDONE pin will go high
Release all SPI I/F, iCE65 should enter user mode
CDONE
CRESET_B
49 SPI_SCK Cycles
Rising edge to rising edge
>=200ns
>=300us
iCE65 clears internal
configuration memory
NVCM
Power-off
Config bit
stream
...
SPI_SCK
...
SPI_SS_B
SPI_SDI
19
...
SiliconBlue Confidential
...
Device IO pin available for user.
1.
2.
3.
4.
5.
Configuration File Update
• Bitstream file can be stored in the system memory or
implemented as part of the CPU/processor code
• When implemented as part of CPU code, it will allow
virtually seamless field upgrade
– FPGA configuration file will be updated during
firmware update
20
SiliconBlue Confidential
Conclusion
• Three options = Maximum flexibility
• Choose the iCE65 configuration mode that best matches
your application requirements
– Self-loaded (automatically “boot” at power-up)
– ASIC-like single chip option
– Ability to do field upgrade
• No Limits: Use just one mode or use all three in the same
application
21
SiliconBlue Confidential
NVCM PROGRAMMING
LOGISTICS
22
SiliconBlue Confidential
Programming Success Factors and
Influences
Factor
• Robust electrical connections
between the programmer and
the device
Influence
• Qualified hardware that is well
maintained
– Clean, strong contacts
– Careful handling
• Proper application of electrical
pulses to sufficiently program
the device
– Number of pulses
– Timing
23
• Latest released programming
software
• Proper board design and layout
(In-System Programming)
SiliconBlue Confidential
Prototype NVCM Programming
• Prototype programming support is intended for low
quantities, typically less than 100 units
• Two methods are supported:
– ISP with iCEcable Programming Kit: Devices are
mounted on customer‟s board with a header for
programming
• Header can be used for both SPI configuring and NVCM
programming
– Stand-alone station with iCEprog Programming Kit
24
SiliconBlue Confidential
Production Programming
• Production programming support is intended for
large quantities
• Objective is to ensure customer satisfaction by:
– Maximizing programming yield
• Note that mounted devices are considered “consumed” and not
eligible for return
• SBT will not accept non-blank devices for return
– Simplify board and system design
– Removing barriers to customer adoption
25
SiliconBlue Confidential
Production Programming Options
• Factory programmed iCE devices
– Low programming cost
– No programming yield issues: All devices shipped are
guaranteed to be properly programmed
– Secure: Security bit prevents examination of NVCM contents
– Customization available (such as marking)
• Non-ISP programming by customer
– Using iCEprog for 1000 to 5000 units
– Using qualified 3rd party equipment - Dediprog
(http://www.dediprog.com)
• Qualified programming house (available mid-2010)
– Using qualified 3rd party equipment
26
SiliconBlue Confidential
Summary of Production Programming
Options
Option
Benefit
Risk
• Low (no) cost
• Least impact to
customer
• Secure – security bit
locks design
• Allows special support
(e.g. marking)
• None
Customer
Non-ISP
Programming
• Customer controls
programming
• Limited quantities for
iCEprog stand-alone
programmer (1K – 5K)
• 3rd party equipment
(Dediprog)
• Yield loss is customer‟s
responsibility
Qualified
Programming
House
• Customer can choose
vendor
• 3rd party equipment not
available until mid 2010
Factory
Programming
27
SiliconBlue Confidential
Supported
Packages
Other
• All
• VQ100
• CB132/196
• CB284
• CS36, CS63
and CC72 not
supported
• VQ100
• CB132/196
• CB284
• CS36, CS63
and CC72 not
supported
SILICONBLUE PROGRAMMING
PRODUCTS
28
SiliconBlue Confidential
iCEcable Programming Kit
Cable
iCEchip Software
Model
Avail
Version
Avail
iCEcable
Now
2.x & Up
Now
Comments
Improvements; faster support
iCEcable Kit
Programming
Cable
iCE65
iCEchip
Software
29
SiliconBlue Confidential
Customer‟s
Board
iCEprog Programming Kit
Cable
iCEprog
iCEchip Software
Model
Avail
Model
Avail
Version
Avail
iCEcable
Now
1050
Now
2.1.5
Now
Comments
Improve
manufacturability
Adapter
iCEprog Programming Kit
Programming
Cable
iCEchip
Software
30
SiliconBlue Confidential
iCEprog 10xx
iCE65
Adapter
Avail
VQ100
Now
CB132/
196
Now
CB284
Now
DEDIPROG PROGRAMMING
PRODUCTS
31
SiliconBlue Confidential
Summary of Dediprog Programming
Products
Gang Programming Products
Description
Race100-S4
• 4 position gang programmer
http://www.dediprog.com/SPI-flash-gangprogrammer/Race100-S4
Race 100-S8
• 8 position gang programmer
http://www.dediprog.com/SPI-flash-gangprogrammer/Race100-S8
Socket Adapter Products
Description
050-VQ100-1414
• Race100 Socket adapter for VQ100 packages
50-CB-196-88
• Race 100 Socket adapter for CB196 packages
50-CB-132-88
• Race 100 Socket adapter for CB132 packages
50-CB-284-88
• Race 100 Socket adapter for CB284 packages
Cable Products
SF100-SBT
32
Description
• Supports iCE65 SRAM configuration, plus generic SPI flash
• NVCM not supported
SiliconBlue Confidential
ICEMAN EVALUATION BOARD
33
SiliconBlue Confidential
iCEman65 Board for Configuration
• iCEman65 evaluation board includes a USB-based
programming solution and SPI expansion header
• Use iCEman65 board to configure another prototype
iCE65 system
• Connect prototype to 6-pin header J8 on iCEman65
board
• Program SPI serial Flash on iCEman65 board
• Configure iCE65 on prototype PCB from SPI Flash on
iCEman65 board
• VCC_SPI on prototype must be 3.3V
34
SiliconBlue Confidential
iCEman Configuration Setup
Windows-based PC with
Adept/ICEUTIL programming
software installed
iCEman65
Evaluation Kit Board
iCE65 on iCEman65
board disabled, jumper
JP13 installed
SPI Flash PROM on
iCEman65 Board
Prototype System
with iCE65
USB Cable
(A to mini-B)
Cable or wires connected to
Header J8 on iCEman65 board
(3.3V interface, power optionally
supplied from iCEman65 Board)
35
SiliconBlue Confidential
iCEman Jumper Locations
Jumper J11:
Programming Option, always
set to USB (default)
Jumper J9:
Set to „25‟ (default)
Mini USB
connector:
Connect to PC
with standard
A-to-miniB USB
cable.
Header J8:
SPI programming
expansion
Jumper JP13:
CRESET_B. Insert
jumper to hold iCE65
on iCEman65 board
in reset, forcing all
I/O pins to Hi-Z.
Borrow jumper from
JP10 if needed.
36
Connect to SPI configuration/
programming expansion header to
prototype system. Use 6-pin cable
included with iCEman65 kit or connect to
testpoints on prototype system.
SiliconBlue Confidential