Forums

size lattice iCE40 config files

Started by kristoff May 11, 2017
Hi all,


I am working on a STM32-based programmer for the olimex iCE40HX1K-EVB 
fpga dev.board.
(now trying to implement the "SPI Slave configuration" protocol).


Looking at the Lattice "programming and Configuration guide" (page 11), 
it is noted on table 8 that a FLASH EPROM for a ICE40-LP/LX1K must be at 
least 34112 bytes.
However, all binary-files as created by the icestorm-tools are all 
smaller: all 32220 bytes.
(and the smaller file does seams to match for the format as described in 
the lattice documentation).

Does anybody have any idea where this "34112 bytes" figure comes from in 
the lattice doc comes from?


Kristoff
On Thu, 11 May 2017 13:44:37 +0200
kristoff <kristoff@skypro.be> wrote:

> Looking at the Lattice "programming and Configuration > guide" (page 11), it is noted on table 8 that a FLASH EPROM > for a ICE40-LP/LX1K must be at least 34112 bytes. > However, all binary-files as created by the icestorm-tools are > all smaller: all 32220 bytes. > (and the smaller file does seams to match for the format as > described in the lattice documentation). > > Does anybody have any idea where this "34112 bytes" figure > comes from in the lattice doc comes from? > > > Kristoff
Adding RAM initialisation increases the configuration file size. Jan Coombs
Hello Jan,



On 11-05-17 20:03, Jan Coombs wrote:
>> Looking at the Lattice "programming and Configuration >> guide" (page 11), it is noted on table 8 that a FLASH EPROM >> for a ICE40-LP/LX1K must be at least 34112 bytes. >> However, all binary-files as created by the icestorm-tools are >> all smaller: all 32220 bytes. >> (and the smaller file does seams to match for the format as >> described in the lattice documentation). >> Does anybody have any idea where this "34112 bytes" figure >> comes from in the lattice doc comes from?
> Adding RAM initialisation increases the configuration file size.
I have been doing a little more research on this. As documented on the "project icestorm" webpage, the Lattice configuration-file is not just a "memory dump" of the configuration and block-ram data, it's actually a bit like a programming-language. I guess you are correct that there is certain things not present in the 32220 bytes file created by icestorm, but it all BRAM data is there (based on output of the "iceunpack" tool). Anycase, for my original issue ("what is the size of the configuration file to be uploaded by the programmer to the ice40"), the answer is "not defined, the FPGA just reads the configuration data until it receives "01 06" ("wake up") sequence.
> Jan Coombs
Kristoff