This document covers the tools, licenses, and environment setups for enabling electronic-photonic design automation (EPDA) through Virtuoso Custom IC Design Platform.
Setting-up Virtuoso for Photonics
Virtuoso should be updated to ICADVM18.1 ISR3 or later. To enable the photonics flows, user needs either of the following two type of licenses from Cadence, and each type of license require different shell environment variable setup:
- Virtuoso Photonics Platform (95551)
- Virtuoso Photonics Option (95550)
Please refer to the following Cadence document for additional info:
- Document: Virtuoso Software Licensing and Configuration User Guide
- Section: License Checkout for Virtuoso Photonics Platform
Adding EPDA environment to user’s Virtuoso working directory
INTERCONNECT should be updated to Lumerical 2019b Release or later. Instructions for installing Lumerical Suite are available at: Linux Installation Manual.
To enable EPDA, user needs the following licenses from Lumerical:
- INTERCONNECT Photonic Integrated Circuit Simulator
- Virtuoso ADE Interoperability
Once Lumerical 2019b Release has been installed and licenses have been set up, user needs to add EPDA working environment to user’s working directory. There are two approaches for installation: auto installation or manual installation. Each approach only copies files into user’s working directory, without making any change to Virtuoso installation directory or Lumerical 2019b installation directory, so the auto approach is recommended.
A default installation of Lumerical 2019b creates the following folder:
This folder contains an auto-installation bash file “interface_install.sh”, and a “README” file explaining the installation.
Note: User can do manual installation by following the instruction in the README file. For manual installation, user can skip the following steps and jump to the Manual-installation part.
Before executing the “interface_install.sh”, please make sure that Linux environment has configured $PATH for INTERCONNECT. This can be checked in terminal using “which” commands:
Execute the “interface_install.sh” bash file to automatically install EPDA working environment:
Note: The file can be run with the following option:
-w for Your project working directory
If “-w” option is not provided, home directory will be used as working directory. Working directory is the place where the EPDA environment will be setup, and the place where user would launch virtuoso for EPDA designs.
Here is an example for installation with -w option:
sh ./interface_install.sh –w /home/<username>/test/
The following message will be shown after running the “interface_install.sh” file:
This question requires a [y/n] input. If all the paths are correct, provide [y] to proceed. The following messages will be shown:
* Please read carefully the above message and set environment variable "INTERCONNECT_HOME".
Before performing the manual installation, please make sure that Linux environment has configured $PATH for INTERCONNECT. This can be checked in terminal using “which” commands:
in user’s working directory, the EPDA interface requires the following changes:
- Create folder “menus”, and copy file “<Lumerical 2019b installation directory>/interfaces/cadence/virtuoso/menus/INTERCONNECT.menus” to this folder.
- Copy files ".cdsinit", "csfLookupConfig", "setup.loc", and "lumerical.conf" from folder “<Lumerical 2019b installation directory>/interfaces/cadence/virtuoso/” to user’s working directory.
A) If INTERCONNECT is not installed in the default directory, user MUST change the last line of "setup.loc" file to “<INTERCONNECT installation directory>/interfaces/cadence/virtuoso/”. User also MUST either define a shell variable “INTERCONNECT_HOME” for INTERCONNECT installation directory.
B) if working directory has an existing “.cdsinit” file for other purpose, user Must copy the contents of “<INTERCONNECT installation directory>/interfaces/cadence/virtuoso/.cdsinit” into the existing “.cdsinit” file.
- Create a “cds.lib” file with the following line, if the file doesn’t exist:
DEFINE INTERCONNECTLib <directory of the file>/INTERCONNECTLib
- Launch INTERCONNECT, and manually install design kits INTERCONNECTLibCML and opticalLibCML to INTERCONNECT by running the following script in INTERCONNECT GUI:
loaddesignkit('INTERCONNECTLibCML','<Lumerical 2019b installation directory>/interfaces/cadence/virtuoso/INTERCONNECTLibCML');
loaddesignkit('opticalLibCML','<Lumerical 2019b installation directory>/interfaces/cadence/virtuoso/opticalLibCML');
Verify EPDA environment installation
Verify Virtuoso library
With successful installation, the following files/libraries will be added to the working directory that is specified by user, as shown in below:
Now, navigate to the working directory and launch virtuoso, user should be able to see the loading of Virtuoso Photonics Option and INTERCONNECT, as shown in below:
And the “INTERCONNECT interop” will be appeared in the main tool bar.
Then, Open Library Manager by:
Tools -> Library Manager
User should be able to see the “INTERCONNECTLib” in the list, as shown in below:
User can add libraries to virtuoso by editing the cds.lib file in the working directory with adding strings:
DEFINE <library name> <library path>
or by using the “Library Path” feature in Library Manager:
Tools->Library Manager->Edit->Library Path
Verify EPDA tool's versions
With successful installation, a pull-down menu “INTERCONNECT Interop” will be added to the virtuoso CIW window, as shown in below:
Check the versions of tools by:
INTERCONNECT Interop -> EPDA versions
which prints out the versions of INTERCONNECT, Virtuoso, and SPECTRE that are compatible with the EPDA working environment, which are the minimal requirements. We highly recommend users update their tools to the latest release versions.
Verify INTERCONNECT compact model library (CML)
With successful installation, INTERCONNECTLibCML and opticalLibCML will be added to the Design Kits folder of INTERCONNECT, as shown in below: