element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Forum Project IceStorm: fully open-source FPGA tools for Lattice iCE40
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 36 replies
  • Subscribers 558 subscribers
  • Views 17737 views
  • Users 0 members are here
  • floss
  • icestorm
  • fpga
  • ice40
  • yosys
Related

Project IceStorm: fully open-source FPGA tools for Lattice iCE40

johnbeetem
johnbeetem over 10 years ago

As some of you may have noticed, I've been obsessed for many decades with having open FPGA bitstream documentation so that people can write their own FPGA designs tools, especially FLOSS (Free-as-in-Liberty Open Source Software).

 

I recently found out about IceStorm, a project that has somehow reverse-engineered and documented the Lattice iCE40 FPGA.  They've actually put together a fully-open-source tool chain with Yosys for Verilog synthesis and Arachne_pnr for placement and routing.  I don't know how usable or robust the tools are.  I'm planning on taking a close look starting next month.

 

If you're interested, here's the IceStorm link, which has links to the other tools: Project IceStorm

Discussion of Yosys and the tools is at reddit: Yosys Open SYnthesis Suite

 

Update: Here are a couple of nice Hackaday items about IceStorm:

 

From 29 March 2015: Reverse Engineering Lattice’s iCE40 FPGA Bitstream | Hackaday

From 29 May 2015: An Open Source Toolchain For iCE40 FPGAs | Hackaday

 

Update 2: Here are some good IceStorm installation instructions: Projet IceStorm : le FPGA libéré ! | Front de Libération des FPGA.  They're in a combination of French and GNU/Linux.

 

Here's the Lattice IceStick directly supported by IceStorm: Lattice Semiconductor: ICE40HX1K-STICK-EVN iCEstick Evaluation Kit.  It's US$20.89 in the USA.

  • Sign in to reply
  • Cancel

Top Replies

  • johnbeetem
    johnbeetem over 9 years ago +2
    I found out from a friend about another iCE40 board: Olimex iCE40HX1K-EVB It's a tiny board (5x5 cm or 2"x2") with an iCE40HX1K-VQ100, 256K x 16 SRAM, 16 Mb serial flash, 2 buttons, 2 LEDs, oscillator…
  • diablero
    diablero over 9 years ago in reply to johnbeetem +2
    A new board. Does the World Need an FPGA Arduino? | Hackaday
  • michaelkellett
    michaelkellett over 9 years ago in reply to johnbeetem +2
    My thinking was that if you are going to buy a board you could expect it to be made on a production line and almost any would be able to place BGAs. You can use one of Lattice's sparsely pinned BGAs on…
  • johnbeetem
    johnbeetem over 10 years ago in reply to Jan Cumps

    Jan Cumps wrote:

     

    Look at what devbisme2 did with the reverse engineered bitstream: [video]

    That's very nice -- thank you for sharing.  I was able to find Dave's project at Hackaday: CAT Board

    It's really great seeing IceStorm-based projects take off.  It's the best thing to happen to FPGAs in many years.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 10 years ago in reply to DAB

    DAB wrote:

     

    Do you have any projects planned or are you just getting the tools ready to use?

    I'm planning to incorporate IceStorm and arachne-pnr into my XXICC (21st Century Co-design) software.  This will provide an alternate open-source design flow, with designs specified using my GCHD (GalaxC for Hardware Design) text language and/or logic diagrams instead of Verilog or VHDL.  GCHD is IMO a much cleaner language and lends itself better to synthesis than Verilog and VHDL, which are designed primarily for simulation.  For IceStorm, XXICC will synthesize GCHD into BLIF (Berkeley Logic Interchange Format), the input format for arachne-pnr.  The output of arachne-pnr is a text file for IceStorm, which generates the Lattice bitstream.  XXICC doesn't need the Verilog step.

     

    I actually have a proof-of-concept version working with Boolean-only designs.  I can go from GCHD to a running example in a couple seconds, much faster than Lattice tools.  I'd like to make some major improvements to my GCHD (GalaxC for Hardware Design) implementation before the next XXICC release.  Unfortunately, I've had too many other demands on my time to work on XXICC these days so I don't know when I'll be able to get back to all this goodness.

     

    I don't have any specific hardware projects at this time.  My goal is to make FPGAs fun and easy.  They're very hard with vendor FPGA tools, and it's really held the technology back from its potential.  The yosys - arachne - IceStorm chain is a lot better, but I think XXICC will be even better... and more fun!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • clem57
    clem57 over 9 years ago in reply to johnbeetem

    johnbeetem

         Just a wondering how are things on the FPGA front.

    Thanks,

    Clem

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 9 years ago in reply to clem57

    Hi Clem,

     

    Thanks for asking!  Unfortunately, I'm currently swamped with family obligations so I've had to put XXICC on the back burner for a while.  It's too bad, since thanks to IceStorm I can now make a very decent FPGA design suite using GCHD and other XXICC tools as the front end, with arachne-pnr and IceStorm as the back end.  I pretty much know what I want to implement when I can get back to XXICC.  I'm also planning ahead some ideas for the future of XXICC.  These are things that are hard to think about when I'm in the middle of an implementation so it may be good that circumstances are forcing me to sit back from implementation for a bit.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 9 years ago

    I found out from a friend about another iCE40 board: Olimex iCE40HX1K-EVB

     

    It's a tiny board (5x5 cm or 2"x2") with an iCE40HX1K-VQ100, 256K x 16 SRAM, 16 Mb serial flash, 2 buttons, 2 LEDs, oscillator, and connectors.  You need an external programmer.

     

    I don't know if they've prototyped any yet, or what they're going to charge.

     

    It's good to see more iCE40 boards.  Lattice has been terrible about making iCEsticks available.  It think they must lose money on them.  iCEsticks are supposed to pay for themselves when companies use them for evaluation and then buy millions of iCE40 parts, but the payoff isn't immediate when tens of thousands of enthusiastic experimenters buy iCEsticks just to play with and then don't design high-volume products.  OTOH there's a big long-term payoff in getting people excited about Lattice parts, right?

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • diablero
    diablero over 9 years ago in reply to johnbeetem

    A new board.
    Does the World Need an FPGA Arduino? | Hackaday

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 9 years ago in reply to diablero

    Fine idea but awful execution. Only the smaller ICE40 range parts are available in TQFP package - if they had used one of the BGA packages they could have had the largest 8k LUT device which is much more capable. The board cost wouldn't have changed much.

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • diablero
    diablero over 9 years ago in reply to michaelkellett

    OK, you're right, but I think TQFP case it was preferred because it probably was solder by hand. I saw the photos of the empty boards.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 9 years ago in reply to diablero

    Viorel Bianu wrote:

     

    OK, you're right, but I think TQFP case it was preferred because it probably was solder by hand.

    Looks like a nice board -- thank you for sharing.  While I agree with michaelkellett that the BGA lets you have more capable devices, IMO the board cost does go up quite a bit with a BGA because you need more layers to get the signals out from under the BGA.  Plus solderability, as you point out.

     

    I am glad that the board has a TQ144, since that lets you use the iCE40 HX4K, which has 2.75 times as many LUTs as the HX1K.  The TQ144 also gives you a PLL or two, which is not available on the VQ100 used by Nandland's Go Board.  The last time I looked the HX4K didn't have IceStorm support like the HX1K and HX8K.

     

    HX1K and HX4K are enough capability to get started with FPGAs.  If you need a lot more capability, you'll probably need a big FPGA like Xilinx Spartan-6 or Altera equivalent.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 9 years ago in reply to johnbeetem

    My thinking was that if you are going to buy a board you could expect it to be made on a production line and almost any would be able to place BGAs. You can use one of Lattice's sparsely pinned BGAs on an OSHPark specced 4 layer pcb and get all the critical pins out and easily enough general pins for an Arduino.

    I agree that you can do quite a bit with the 4k parts (and the PLLs are used in all my ICE40 commercial designs).

     

    With regard to Spartan6 - (and  a bit off topic) - I attended a 1 day seminar about Xilinx's Vivado toolset the other day (bring your own computer hands on with little projects kind of seminar). Even the free version is amazingly sophisticated (and complicated !) but it only works with Artix, Zynq and later devices. It's  a very long way from HX4k and the IceStorm level of support but very attractive for more ambitious projects. An Artix part in 1mm pitch 256 pin BGA will cost you about £25 or you could pay $99 for an Arty board from Digilent. The free toolset now includes the HLS features so you can do at least some of the work in C or System C as well as Verilog, System Verilog or VHDL. (free as in beer in all cases). When the Arty board arrives I'll try to find time to blog about it.

     

    MK

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
<>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube