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