Embecosm provide a low risk route to adopting open source technology through tailored support packages for compiler toolchain ports and a wide range of open source EDA tools.

  • Support for ports of compiler toolchains and libraries.
  • Support for front-end EDA tools for ASIC and FPGA development.
  • Managed introduction of code into mainstream distributions.
  • Flexible training solutions for intermediate and advanced users.

Support is provided both remotely and on-site.

Technical Details

Compiler Tool Chain Support

Modern open source compiler tool chains such as GCC and LLVM comprise around 10 million lines of code, and are very actively developed, with new features and functionality being added.  Embecosm will do the following:

  • roll forward your tool chain to the latest official upstream code base to ensure you support the newest features;
  • provide regular tested releases, typically on a 3-, 6- or 12-month cycle;
  • add further features and optimizations specific to your architecture;
  • fix bugs that you and your users encounter; and
  • provide a skilled engineering single point of contact for all your issues.

We encourage our customers to contribute any changes and fixes back to the official release, to ensure they become a permanent part of the official tool chain.  This avoids any risk of needing a reimplementation when the tool chain is rolled forward.

Support for Open Source EDA Tools

Free and open source tools are increasingly used in silicon chip front end design, but lack of guaranteed support can be a risk. Embecosm can provide support for tools such as Verilator, GTKwave and Icarus Verilog, complementing and supplementing the efforts of the community.  This can include:

  • customization, such as adding symbolic instruction decoding for GTKwave;
  • extensions, such as adding new language feature support to Verilator or Icarus Verilog; and
  • bug fixing.

Professional support from Embecosm reduces the risk of adopting open source technology for silicon chip design.

Introduction of Code Into Official Distributions

Having a compiler implementation accepted into the official code distribution offers two main advantages.  First of all by becoming part of the code base, it helps ensure your architecture will continue to be support, and there are far less likely to be changes to the code base that will cause problems.  Secondly it provides an informal badge of competence for your compiler implementation—upstream distributions will not accept  incomplete or buggy compilers.

Acceptance upstream requires recognition of the competence of the team making the contribution, something Embecosm has already demonstrated as official maintainer of two GCC architectures.  In the case of GNU tools it also requires legal agreements with the Free Software Foundation, something which Embecosm has in place.

Upstream acceptance can never be guaranteed, since it requires the wider community to agree.  However Embecosm has the track record to work with the community to achieve that acceptance.

Training

Embecosm is not primarily a training organization.  However as an open source business, we see sharing our expertise as a core value.  We provide training in a number of ways:

  • running knowledge sharing seminars and workshops, where we work with experienced customer engineers to share our expertise in aspects of tool porting and support;
  • integrating customer team members within the Embecosm team to train up in-house tool chain support staff; and
  • organizing industry conferences to bring together experts from around the wold.

Of these, integrating customer staff within the team during compiler tool chain porting is something we do for almost all our customers.  It helps the customer have a really good handle on the project as it progresses, and longer term means first line support can be provided in-house.

Case Study

Extending SystemVerilog support in Verilator.

One of Embecosm’s customers provides a CASE tool for programming its range of over 200 8-bit microprocessors.  That tool includes a cycle accurate model, which is generated directly from the Verilog design of the processor using Verilator.

When the customer switched to using SystemVerilog for its chip designs, it found that Verilator was missing some of the language features they needed.  Over  a three year period from 2012-2015, Embecosm extended Verilator to add the missing features.  This is a good example of the multiplication effect of open source tools. Embecosm worked closely with the community and much of the work was done by them.  Embecosm only needed to supply part of the functionality needed, reducing the cost.

We were also able to engage one of the customer’s own engineers in the world, allowing them to take over maintenance of the project, once the required functionality had been added.

Hardware Modeling

Hardware Modeling

Embecosm has extensive experience in all aspects of software modeling of hardware, from the creation of high-level transaction level models (TLM) through to fully cycle accurate simulations.

Toolchain Porting

Compiler Tool Chain Development

Embecosm is able to provide new and upgraded ports of binutils, GCC, GDB, GNU libraries, LLVM, LLDB, LLVM utilities and LLVM libraries, whether for the smallest deeply embedded processor, or the largest supercomputer cluster.