FlexNet Licensing
FlexNet Licensing for EDA Tools
Comprehensive guide to FlexNet license management for EDA tools including setup, optimization, monitoring, and troubleshooting best practices.
Understanding FlexNet in the EDA Ecosystem
FlexNet, originally developed by GLOBEtrotter and now maintained by Flexera, is the dominant license management system used across the semiconductor design industry. Every major EDA vendor including Cadence, Synopsys, and Siemens EDA relies on FlexNet to control access to their tools. The system works through a client-server model where a license server daemon, lmgrd, manages a pool of license tokens defined in a license file. Client machines running EDA tools contact the server to check out a token before launching, and return it when done. This centralized approach enables design teams of any size to share a pool of licenses efficiently, reducing idle time and ensuring critical tools remain accessible during peak design cycles.Setting Up a FlexNet License Server
A typical FlexNet license server setup requires careful planning. The license server machine should be a dedicated Linux host with static IP address and reliable network connectivity, since any interruption can disrupt tool access across the entire design team. The core components include the license file, which contains vendor daemon definitions and feature lines, and the lmgrd daemon binary. To start the server, first set the LM_LICENSE_FILE environment variable to point to the license file, then launch lmgrd with the path to the license file and a debug log. It is best practice to run lmgrd as a non-root user through a systemd service for automatic restart on reboot. The client machines simply need the same LM_LICENSE_FILE environment variable set to port at host: the listening port and the server hostname or IP address.License Optimization Strategies
Managing EDA license costs requires active optimization. One effective strategy is creating feature-based pools that allocate licenses to specific groups or projects, preventing a single team from consuming all available licenses. Another approach is configuring license reservation policies in the license file, which reserve a minimum number of licenses for critical teams or projects. The lmstat command provides real-time usage data. Running lmstat -a on the server shows all features, their total counts, current usage, and which users hold checked-out licenses. Scheduling cron jobs to run lmstat at intervals and log results to a file enables trend analysis over weeks and months. Many large semiconductor companies also implement license borrowing for remote designers and flexlm-based queuing systems for high-demand features.Managing cdsmgr for Cadence Tools
Cadence tools use a vendor daemon called cdsmgr on top of the standard FlexNet platform. The cdsmgr daemon handles Cadence-specific licensing features and must be registered in the license file with a VENDOR cdsmgr line pointing to the cdsmgr binary. One common configuration is to run cdsmgr on a dedicated port, specified in the license file using the PORT line. This separation prevents conflicts with Synopsys or Siemens licenses on the same server. For teams using both Cadence and Synopsys tools, running separate lmgrd instances on different ports for each vendor vendor daemon is recommended. Monitoring cdsmgr-specific features requires using the Cadence License Tools, a set of utilities that provide detailed usage reports and diagnostic information for Cadence product suites including Virtuoso, Innovus, and Genus.Troubleshooting Common FlexNet Issues
The most frequent FlexNet issues fall into a few categories. License checkout failures typically produce error codes that point to the root cause: -97 means the server is unreachable, -95 means all licenses are in use, and -89 indicates a corrupted feature line in the license file. For server connectivity issues, verify that lmgrd is running on the server using ps aux or systemctl status, and check that the port is reachable from the client using tools like telnet or nc. For license denial errors, run lmstat -a to see current usage and identify who is holding licenses. If the license file needs updating with new features or expiration dates, edit the file and send a SIGHUP signal to lmgrd to reload it without stopping running sessions. Always keep backup copies of license files and maintain a changelog of modifications.Related Articles
- What Is EDA Automation?
- Cadence SKILL Scripting Guide
- CAD Infrastructure for Semiconductor
- PDK Setup and Enablement
- DRC/LVS Physical Verification
- Synopsys Custom Compiler Automation
- ASIC Design Flow & Platform Support
- Tcl/Tk for EDA Automation
- Virtuoso Layout Automation
- GDSII OASIS Layout Automation
- Open Source EDA Tools Guide
- RISC-V EDA Tools Guide
- Advanced Node Verification
- Cloud EDA SaaS Solutions
- DFT Design for Test Automation
- Timing Closure Automation Guide
- Calibre SVRF TVF Rule Decks Guide
- Python EDA Automation Guide
- IP Porting and Migration Guide
- Mixed-Signal Verification Guide
Frequently Asked Questions
What is FlexNet licensing and how does it work in EDA?+
FlexNet, formerly known as FlexLM, is a software license manager widely used by EDA vendors including Cadence, Synopsys, and Siemens EDA. It manages license tokens that control access to specific features of EDA tools. The FlexNet Publisher daemon, typically called lmgrd, coordinates license check-outs and check-ins across a network of client machines.
What is the difference between node-locked and floating licenses?+
Node-locked licenses are tied to a specific host by MAC address or host ID, allowing the tool to run only on that machine. Floating licenses, also called network licenses, are stored on a central license server and can be checked out by any client on the network, up to the purchased count. Floating licenses are more flexible for design teams with varying workloads.
How can I monitor FlexNet license usage?+
FlexNet provides several tools for monitoring: the lmstat command shows real-time license usage, checkout history, and server status; lmdiag tests feature availability; and lmborrow enables offline usage. Many EDA teams also use third-party tools like OpenLM or LicenseStat for dashboards and historical trend analysis.
What causes 'No such feature exists' errors in FlexNet?+
This error typically indicates one of three issues: the license file does not contain the requested feature, the license daemon has not been restarted after updating the license file, or the client configuration points to the wrong port or server for that specific feature. Running lmstat -a on the server can confirm which features are available.