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 Is it worth it to kickstart an open-source FPGA IC project?
  • 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 15 replies
  • Subscribers 562 subscribers
  • Views 2733 views
  • Users 0 members are here
  • fpga
  • open source
  • xxicc
Related

Is it worth it to kickstart an open-source FPGA IC project?

manili
manili over 7 years ago

Hello all,

 

We know that FPGA itself is a kind of ASIC, i.e. some companies build ICs which have the capability to be reprogramed. We have open-source CPUs, GPUs, Bus Controllers and so many different types of IP cores in the community. Why there is not any sort of open-source FPGA ICs out there, is it because of it's complexity to design or is it even not worth it?

I just saw a project here which was about creating our own EDAs for FPGAs but the project suffered from lack of informations about the FPGA internals so the creator (@johnbeetem) did some reversed engineering, as far as I understood. I asked this question in a Quora comment and Kyle's answer helped me a lot but I need more info, please.

 

Cheers,

Mohammad

  • Sign in to reply
  • Cancel

Top Replies

  • genebren
    genebren over 7 years ago +9
    There is no benefit to manufacturers like Xilinx and others to give away their development on these device to others, i.e. to have open source designs. FPGAs are very complex devices to design, but their…
  • johnbeetem
    johnbeetem over 7 years ago in reply to manili +9
    manili wrote: Thanks a lot for your replies. Still I have 5 points to defend myself: 1. johnbeetem said "you'd have to sell millions of parts to compete ...", but I think this is not what we want from…
  • DAB
    DAB over 7 years ago +6
    I agree with Gene, the utility of FPGA devices fall into a subset of engineering solutions. In most cases, you can do the job using an off the shelf MCU, so why go to the complexity of an FPGA unless you…
Parents
  • manili
    manili over 7 years ago

    Thanks a lot for your replies.

    Still I have 5 points to defend myself:

     

    1. johnbeetem said "you'd have to sell millions of parts to compete ...", but I think this is not what we want from the open-source ecosystem. For example think about Linux OS very first dates, does Linus Torvalds really wanted to replace his OS with every single Unix versions to obtain much more market shares?

     

    2. In this link michaelkellett said "John B (who will probably chip in himself) thinks that if the Silicon companies would open up a bit and allow third parties including open source people ready access to the necessary info then open source tools could emerge that would change the game. So far no one has done that.", so I think with an open-source FPGA IC we can make very good open-source and free softwares based on it. Thus I think if developing softwares like IceStorm and XXICC have their own benefits, developing free ICs have the same benefits too.

     

    3. Companies could use this open-source IC to make their own FPGAs and add their own hard cores to the chip (as an example you can see this paper).

     

    4. Who knows maybe some people could add a new value to this project which makes other companies (Xilinx, Altera, etc.) use that feature in their next products (just like what is happening now in linux ecosystem).

     

    5. I think the total cost of such product (after manufacturing) is much less than its counterparts. However I'm not sure.

     

    Cheers,

    Mohammad

     

    P.S. Please bear with me, I'm asking such questions to learn much more.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 7 years ago in reply to manili

    manili  wrote:

     

    Thanks a lot for your replies.

    Still I have 5 points to defend myself:

     

    1. johnbeetem said "you'd have to sell millions of parts to compete ...", but I think this is not what we want from the open-source ecosystem. For example think about Linux OS very first dates, does Linus Torvalds really wanted to replace his OS with every single Unix versions to obtain much more market shares?

     

    2. In this link michaelkellett said "John B (who will probably chip in himself) thinks that if the Silicon companies would open up a bit and allow third parties including open source people ready access to the necessary info then open source tools could emerge that would change the game. So far no one has done that.", so I think with an open-source FPGA IC we can make very good open-source and free softwares based on it. Thus I think if developing softwares like IceStorm and XXICC have their own benefits, developing free ICs have the same benefits too.

     

    3. Companies could use this open-source IC to make their own FPGAs and add their own hard cores to the chip (as an example you can see this paper).

     

    4. Who knows maybe some people could add a new value to this project which makes other companies (Xilinx, Altera, etc.) use that feature in their next products (just like what is happening now in linux ecosystem).

     

    5. I think the total cost of such product (after manufacturing) is much less than its counterparts. However I'm not sure.

     

    Cheers,

    Mohammad

     

    P.S. Please bear with me, I'm asking such questions to learn much more.

    Good comments.

     

    There's a big difference in the amount of fund-raising you need for software versus PC-board-level hardware versus a custom IC.  If you're Linus Torvalds (or me with XXICC), you can do everything by investing your own time to write software and documentation.  There's no out-of-pocket expense other than a PC.  If you go with a cheap PC with limited computing power and limited memory you will produce a much better product than if you have an expensive ultra-fast machine with oodles of memory, which will encourage you to write sloppy code.  With software, if you make a mistake, you just produce a new release.  The only cost is your own time.

     

    If you want to prototype PC-board hardware, either microprocessor-based or FPGA-based, you get an inexpensive development board and maybe add on a custom PC board for additional parts.  If the add-on board avoids fine-pitch ICs, you can assemble it yourself with ordinary soldering tools.  Small custom boards with only a few layers are inexpensive.  In some cases you can get away with wire-wrap.  If you make a mistake, you may be able to fix it with re-work, or you fabricate a new PC board.  In any case, if the fine-pitch parts and BGAs are all on the dev board then you don't have to deal with them.  There is some out-of-pocket expense, but not unreasonable for a prototype.

     

    If you want to make a custom IC, be prepared to spend USD50K to USD1M depending on the complexity of the IC.  That's for the first IC, the follow-on chips are inexpensive if you make them in quantity of at least 1K (10K is better).  If you make a mistake, be prepared to spend that USD50K to USD1M all over again.  The cost is primarily making the masks, which are expensive for a prototype but cheap when shared over millions of ICs.  In the early days of VLSI there was something called MOSIS that made relatively inexpensive IC prototypes possible by producing wafers with many individual projects so they could share the mask-making cost.  I think MOSIS still exists, but I don't know how much those things cost nowadays.

     

    In contrast, I've been told that reverse-engineering an FPGA bit stream isn't that hard: it's something that takes a smart graduate student about 1 year of concentrated effort.  (How concentrated?  Do you like to do 16x16 Sudoku puzzles? Then you're a good candidate.)  The problem is legal.  IANAL, but my understanding is that if you try to do this and publish the results in the USA the FPGA vendor is likely to go after you with a cease-and-desist order.  You can do it in the European Union because their laws permit you reverse-engineering for the purpose of interoperability.  IceStorm's creators are in Austria, and there has been excellent Xilinx reverse-engineering in France and Germany.

     

    So, instead of designing a whole new FPGA it's much cheaper to hire an EU graduate student for a year to reverse-engineer an existing FPGA family from Xilinx, Altera, or Lattice.  Then you can buy cheap off-the-shelf chips, program them with your software, and "Bob's your uncle".

     

    JMO/YMMV/IANAL

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

    Thank you very much for the reply. Helped me a lot and now I can admit I defeated .image

    I like to know more about FPGA reverse-engineering... Where should I start that?

     

    P.S. I don't know if this community is a good place to ask/share ideas. Please accept my apologize if I did something wrong.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • manili
    manili over 7 years ago in reply to johnbeetem

    Thank you very much for the reply. Helped me a lot and now I can admit I defeated .image

    I like to know more about FPGA reverse-engineering... Where should I start that?

     

    P.S. I don't know if this community is a good place to ask/share ideas. Please accept my apologize if I did something wrong.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
Children
  • rachaelp
    rachaelp over 7 years ago in reply to manili

    manili  wrote:

     

    P.S. I don't know if this community is a good place to ask/share ideas. Please accept my apologize if I did something wrong.

     

    No need to apologize, this community is a perfect place to ask/share ideas! image There are lots of people hang out here and there is a vast range of experience and perspectives available and we all love a good discussion about interesting technical topics!

     

    Best Regards,

     

    Rachael

    • Cancel
    • Vote Up +6 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 7 years ago in reply to manili

    manili  wrote:

     

    Thank you very much for the reply. Helped me a lot and now I can admit I defeated .

    I like to know more about FPGA reverse-engineering... Where should I start that?

    Great topic.  Here are some links that may be helpful.

     

    One of the best articles I've seen is "From the Bitstream to the Netlist" by Jean-Baptist Note and Éric Rannaud.  It led me to Xilinx's XDL files.

     

    I've done some modest reverse-engineering of Xilinx Spartan-3 and Spartan-6 for my Flavia project.  The most recent version of Flavia is described in The XXICC Anthology.  I describe Flavia's reverse-engineering technique in Taming the Wild Bitstream.

     

    Clifford Wolff has a short description of how to do FPGA reverse-engineering at Reddit: scroll down half way.  His technique (as well as all others I've seen) is to figure out intermediate data files produced by the vendor's tools, like Xilinx's XDL.  These are often not documented or poorly documented, but if you've looked at enough net lists you know where to start.  Then you make small changes to a design and see how this affects the intermediate data files.  The reverse-engineering community is small and there's no money in it unless you do something illegal (e.g., reverse-engineering a customer's design to copy a product.)  So we try to help each other.  Documenting an FPGA vendor's bitstream so one can write better tools seems perfectly legit to all of us, and we're helping the FPGA vendor by addressing needs that they're neglecting.

     

    Today I found this new item at Reddit.  I haven't watched it but it looks interesting.

     

    Edit: I read the comments for the last item.  Sounds like they've reverse-engineered Xilinx series 7.  That is quite wonderful.

    • Cancel
    • Vote Up +6 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