Mentor Case Study – ActivePython, ActiveTcl
- Build out a set of APIs (using Tcl) in order to make software solutions of Mentor, a Siemens business, extensible by its customers.
- Improve EDA tools by adding Machine Learning (ML) capabilities (using Python) that are exposed to the customer so they can retrain the model.
The OEM distribution of ActiveState’s Python (ActivePython) and Tcl (ActiveTcl) allowed Mentor to meet their extensibility and ML goals by freeing up development resources to focus on these tasks rather than creating, upgrading and maintaining their open source distributions.
Additionally, ActiveState’s indemnification offering eliminated the legal risk of incorporating open source libraries in Mentor’s products, removing the need for legal review, which was delaying time to market.
Standardized Python and Tcl distributions from ActiveState allowed Mentor to:
- Gain back time and resources across their build, development, management teams.
- Decrease support costs via a custom installer that deployed a portable ActivePython.
- Speed time to market by eliminating the need for legal department reviews.
Mentor is a US-based Electronic Design Automation (EDA) company founded in 1981. In 2017, Mentor became a Siemens business with almost 6,000 employees in 9 countries around the world. Mentor enables companies to develop better electronic products faster and more cost-effectively by helping engineers conquer design challenges with board and chip design. Mentor’s broad industry portfolio includes a number of best-in-class solutions, including:
- EDA for integrated circuits and printed circuit boards
- FPGA synthesis tools
- Electrical Systems, Cabling and Harness design
- Simulation Tools for analog mixed-signal design
- Mechanical Analysis
- Embedded Systems Development
Mentor’s solutions allow their customers to better address the challenges of ever decreasing lead times, shorter product life cycles and extreme
demand fluctuation. Mentor delivers these benefits by enabling customers across industries like automotive, telecom, electronics and others to reduce the time from initial design through to production.
EDA APIS & TCL
Like many EDA tools, Mentor’s suite of applications is primarily built in C++ and packaged for deployment on premise. Because each customer has their
own instance, it’s natural for them to want to customize it to their needs. Mentor chose Tcl for this purpose, wrapping some of their C++ APIs in order to expose key functionality. Customers use Tcl scripting in order to do things like add custom properties to their Integrated Circuit (IC), perform device manipulation or even drive the tool in terms of how the IC is analyzed.
As a result, Mentor has deep dependencies on Tcl, extending all the way from the graphical user interface (GUI) to multiple Tcl interpreters that perform compute intensive calculations in parallel.
ActiveState’s Tcl distribution, ActiveTcl has been a key part of Mentor’s solutions for more than four years. Because ActiveTcl closely tracks the
open source version, swapping in ActiveTcl for community Tcl was a simple exercise. Initially attracted by ActiveState’s leadership in the Tcl market, Mentor’s investment in ActiveTcl subsequently paid off by freeing up internal resources to focus on Mentor’s products rather than building, updating and maintaining Tcl. Net-net, the complexity of rolling their own Tcl distro made the “make vs buy” decision a simple equation of decreased costs.
Adding Python to the Polyglot Mix
Polyglot development is now the norm among enterprises, and Mentor is no exception with the addition of Python to their existing C++ and Tcl code base. Initially starting out with Python in-house via a Flask-based web app, Mentor is now leveraging Python for a Machine Learning (ML) initiative designed to “sharpen” the tools within their toolbox.
In this case, Python is used in Mentor’s Optical Proximity Correction module, whose primary audience are IC manufacturers. During the printing of an
integrated circuit, manufacturers shine laser light through a mask in order to illuminate the circuits to be etched. But with modern manufacturing processes, the IC has shrunk to smaller than the wavelength of light, resulting in interference patterns that result in blurry edges and corners. ML is used to refine the blurriness, resulting in much sharper corners.
Additionally, by exposing Python within the application, customers are able to retrain the underlying neural network, ensuring the solution can be adapted to evolving conditions over time. This is a win/win situation since the customer is empowered to improve the tool on their own without requiring assistance from Mentor’s engineers.
But similar to Tcl, the time and effort to create, upgrade and maintain Python was slowing down time to market. As a trusted partner, ActiveState’s
Python (called ActivePython) was top of mind when it came time to explore third-party Python solutions. One of the key advantages ActiveState also brought to the table was the option to deploy a portable version of Python, which includes all of the target system’s required DLLs. As a result, Mentor’s software installer can also install ActivePython into a pre-designated directory in a self-contained manner, simplifying deployment and support.
Polyglot Management With the Activestate Platform
The ActiveState Platform’s support for Python, Tcl and Perl (Mentor has been a long time user of ActivePerl) will enable Mentor to automatically build, certify and resolve their own distributions using a simple, wizard-like interface. The Platform streamlines open source language build engineering into three simple steps:
- Choose an open source language and version.
- Choose the third-party packages/modules to be included from the ecosystem (PyPI, CPAN, etc.).
- Select a target platform, and commit your selections.
The Platform automatically resolves all dependencies, compiles all packages and produces an installer that users can then push into a central repository, or else let teams pull directly from the ActiveState Platform. The result is quicker builds that can be updated much more frequently since the effort to build and roll back is minimal. This method also promotes innovation (since it’s simple to experiment with newer libraries and roll them back, if needed), as well as ensuring vulnerabilities are resolved in a timely manner.
The ActiveState Advantage
Prior to purchasing ActiveState, one of the key issues Mentor was languishing under was their corporate governance of open source licenses. No matter whether it was Tcl or Python, every time a change was made to the distribution (upgrading a package, including a new
component, etc.), those changes had to go through a legal review process that examined dependencies, packaging and licensing issues. That process was starting to have a serious impact on the agility of Mentor’s development teams, and ultimately their products’ time to market.
ActiveState was able to provide Mentor with indemnification for both Tcl and Python. ActiveState’s indemnification protects Mentor against open source licensing lawsuits, effectively removing Mentor’s legal department from the picture, speeding time to market.