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 17739 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…
Parents
  • DAB
    DAB over 10 years ago

    Hi John,

     

    Having worked in the bit-slice world I understand your interest in FPGA devices.

    Just having access to the raw power of the silicon to solve problems is definitely addicting.

     

    Alas, I can no longer handle the detail needed to put this level of implementation to good use.

     

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

     

    DAB

    • 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
Reply
  • 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
Children
No Data
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