Differentiate Yourself

If you have a project which was done a 100 times before you, then there is a high probability that this use case is very will supported by propriety tools. There might even be a wizards to implement the functionality you need to implement. But at the same time, this feature will not be the functionality that will differentiate your product from all the other products. So the feature you implemented will not add to the differentiation value of the product.

On the other hand, if the feature you are implementing is the essential differentiation because is solves a problem up to now no one was able to solve (maybe because it was too hard to solve), it is very likely that you propriety tool does not very well support you in designing the solution. It might be that it was even impossible to realize a solution because of the limitation of the propriety tools. Therefore researchers in the past had to build their own tools (like Gallileo the first telescope).

With open source, you can extend the tool to your needs. This is especially useful when you start your project and you do not yet have a clear understanding what features you will need from your tools.

You don’t get stuck. If you find out half way into the project that your propriety tool is not up to the task, you need to start over again.

To be competitive in the market requires that you offer products which are different from the products of your competitor. Your offering can be cheaper, can be more easily available, or can have features others do not provide.

An open source FPGA toolchain can help you in all three areas.

When you decide to design a product, you define a feature set your product will offer so that people are willing to pay for it. Then you need to implement this feature set with the tools available to to. With FPGAs this are the tools provided by the manufacturer of the chips.

You might not want to out-compete your competitor to be cheaper by just accepting a lower salary. You need to be able to design faster than your competitor, who is using the same tools as you. Which means that you need to be smarter or more experienced to gain an competitive advantage. Which might not always be the case.

You might want to out-compete your competitor by offering a innovative feature set in your product. As you are the first designer using the FPGa tool set for this new kind of feature, you  will probably discover a lot of bugs in the FPGA tool as noone else before you did use the tool in this new way. But this gives you the possibility to out-compete your competitor by inventing “tool-bug workarounds” and finishing your innovative product. Finding those bugs in the tools and inventing workaround takes a lot of time and cost a lot of money.

Your  experience gained in this process will become obsolete with the next version of the tools because the toolmaker will fix many of those bugs.

If you use an opensource toolchain, you are not bound by the feature set the commercial tool vendor is offering. you can break away from your competitor by extending the open source toolchain in a new creative way. This way you can design products which differ from your competitors products as you use different tools.

For sure, opensource toolchain do not support all the features commercial tools offer today. for for designing a intriguing products, it might be that you don’t need all those features, but only the already available once in the opens source tools and you add one really important feature to design the compelling product your clients are willing to pay for.

Google could have used Windows NT or Solaris to build its search clusters, but decided to use the inferior Linux, as it was a good enough fit, and offered the possibility to adapt it to the specific needs of google to build a large search cluster.

If you can use the open source FPGA toolchain with its limited feature set to build the product you imagine, but you would need to push the limits of the commercial toolchain to realize your innovative product, you are very likely better off using the open source toolchain, because you will not need to work around the bugs in the toolchain, but can hire a toolchain developer to fix and adopt the toolchain to your specific needs, which saves you a lot of time and money.

Therefore, if  using a open source FPGA toolchain can result in a cheaper, earlier and more useful product.

Help yourself

Open source is not about cheaper tools or easier to use tools. Open source makes projects possible which might be impossible with propriety tools.

LinkedIn found out that commercial switching equipment manufacturers did not provide what they needed. They found that:

  • Bugs in software that could not be addressed in a timely manner
  • Software features on switches that were not needed in our data center environment. Exacerbating the problem was that we also had to deal with any bugs related to those features.
  • Lack of Linux based platform for automation tools, e.g. Chef/Puppet/CFEngine
  • Out-of-date monitoring and logging software, i.e. less reliance on SNMP
  • High cost of scaling the software license and support.

What they wanted was:

  • Run our merchant silicon of choice on any hardware platform
  • Run some of the same infrastructure software and tools we use on our application servers on the switching platform, for example, telemetry, alerting, Kafka, logging, and security
  • Respond quickly to requirements and change
  • Advance DevOps operations such that switches are run like servers and share a single automation and operational platform
  • Limitless programmability options
  • Feature velocity
  • Faster, better innovation cycle
  • Greater control of hardware and software costs

This could not be provided by any propriety vendor.

So they had to build their switches themself. This was only possible because they could reuse on freely available open source software. In the future they might even use FPGAs and program them with open source FPGA tools .