Icarus Verilog Commercial Support

Icarus Verilog paid support support is a way to get timely or preferential support for your issues. If you have a specific feature you wish added, or a specific issue you wish addressed, and you need some sort of guarantee that your feature or issue gets priority, you can request paid support. Instead of support subscriptions, I typically work on per-instance basis, either time and material or fixed price.

Why Paid Support?

The majority of users need no support at all beyond the free community support. You will only start looking for paid support if your needs are not met with Icarus Verilog as is. For example, it is possible that you have found an issue or have a specific need (i.e. a bug or a custom feature) that you would like help with. This is where you might start looking for outside help.

Given that Icarus Verilog is free and available in source code form, why would you need to pay for support? In principle, you can take the source code and use your own skill and staff to do whatever you want with it. And you are welcome to do so. The Icarus Verilog developers will do what we can to make your internal efforts successful, as your success is hopefully fed back to Icarus Verilog and becomes everybody's benefit.

But Icarus Verilog is a very complex piece of software and it can take time to get your own engineers up to speed and productive. It may well be more cost effective for you to contract with someone who already has the skills to take on your task. A task that can be done in 20hours by an experienced Icarus Verilog developer may take you man-months of learning curve effort before even beginning to write useful code. Your engineers may also have better things to do. They should be working on your business.

If I pay for support, I might as well buy a closed-source tool. Right?

Maybe. If Icarus Verilog doesn't meet your needs and it would be too expensive to bring it up to what you need, then indeed you might be better off with closed source tools. There are good ones out there, no doubt about it.

But consider the lifetime costs. Typical closed-source tools charge per active user, so the costs of outfitting an engineering team scales with your head count. Also, tool vendors commonly charge subscription fees so it becomes a recurring cost. With Icarus Verilog, you only pay for the support you use, and only if you use paid support.The tool itself is free.

Many Icarus Verilog users have a hybrid scheme, where the company has a few instances of a closed source tool that they use for integrated regression tests but the individual engineers use Icarus Verilog for their day-to-day design work. This method makes sense as it limits your software license costs but doesn't hamstring your engineers.

In any case, Icarus Verilog only costs you money if you choose to pay for specific changes, and those are one-time fees. So over the long run, Icarus Verilog, even with paid updates, may save you money.

The Nature of Paid Support

This is largely up to you. I have worked on time and material (T&M) basis, and on fixed price contracts. I find that maximum flexibility is achieved with smaller, separable units of work, although we can discuss longer term contracts if interested.

Typically, the work I do on Icarus Verilog, paid or not, is intended for GPL release with the rest of Icarus Verilog. This is my general preference and is usually satisfactory for your needs. Some examples of work that I prefer be released under GPL:

  • Priority bug fixes to the core compiler or simulator,
  • Increased language coverage,
  • New support for standard languages (i.e. VHDL, SystemVerilog, Verilog-A, etc.)

In some cases brief embargoes can be negotiated, especially for larger tasks. Since I prefer GPL work, it will generally come with a price benefit.

There are some opportunities for proprietary work. For example, you may desire a custom feature that can be implemented using one of Icarus Verilog's APIs: VPI or the ivl_target.h. In these cases, your proprietary code is wholly separable from the Icarus Verilog distribution, and the deliverable to you would typically be the source code for the loadable module. You can then choose to maintain it yourself (i.e. to track newer versions of the Icarus Verilog core) or you can request ongoing support. Examples of work that I may consider doing proprietary:

  • Interfaces via VPI or ivl_target.h to third-party tools,
  • Custom simulation models that use VPI or similar interfaces,
  • Loadable target modules that perform specialized tasks (i.e. custom DRC)

I generally charge more for proprietary work, so consider open-source work where you can.

Contact Me

If you wish to discuss with me the possibility of doing paid support for you, you can contact me directly via e-mail. There is contact information on my "About Me" page.