Overview
This document illustrates the method and rules for mapping a Virtuoso element to INTERCONNECT element.
Mapping rules
The first step is to create an element in Cadence virtuoso. The created element should have a “symbol” view that is used for schematic capture, and an “INTERCONNECT” view that is used for optical netlist. The geometric illustration of “symbol” view and “INTERCONNECT” view can be the same. As an example, the following figure shows the library tree and symbol view geometry of a created CW laser element.
The component parameters of the CW laser element are specified in: Virtuoso CIW window -> Tools -> CDF -> Edit, as shown below.
Then, select the created CW laser element from library list and add simulation parameters (e.g., power, frequency…) in “Component Parameter” tab, as shown below.
The mapping rules between virtuoso element and INTERCONNECT element is defined in “Simulation Information” tab of CDF window, as illustrated below.
The following figure shows the information of the INTERCONNECT CW laser element to be mapped.
In general the simulation information needs to be defined based on the following rules:
- instParameters: List all the parameters that INTERCONNECT model requires.
- propMapping: Provide the mapping between INTERCONNECT model parameters and Virtuoso schematic parameters, using format:
nil <INTC parameter1> <virtuoso parameter 1> <INTC parameter2> <virtuoso parameter 2>…
For INTERCONNECT parameter names having space characters, please replace each space character using double underscore (e.g., use waveguide__length for parameter waveguide length).
- componentName: specify the name of INTERCONNECT element shown in INTERCONNECT Element Library. Most INTERCONNECT primitive element names include space character. Please replace each space character using double underscore. As shown in the CDF information window figure above, componentName is defined as CW__Laser, which will be mapped to INTERCONNECT primitive element: CW Laser.
- termMapping: Define the terminal name mapping using format:
nil <virtuoso terminal 1> <INTC terminal 1> <virtuoso terminal 2> <INTC terminal 2>…
As shown in the CDF information window figure above, the virtuoso element terminal lightOut is mapped to INTERCONNECT element terminal output.
- termOrder: Define the terminal orders of the virtuoso schematic element. The virtuoso terminal order MUST be the same as INTERCONNECT terminal order, otherwise, netlist connections would be out of order. For example, a virtuoso symbol has terminals port1 and port2 to be mapped to INTERCONNECT terminals input and output, correspondingly. If INTERCONNECT terminal order is input output (user can check this information in INTERCONNECT “port view” tab), we should put port1 port2 in termOrder.
For more information on Cadence CDF definition, please refer to Cadence “Component Description Format User Guide”.