Netlist Reference
The Netlist of a PCell represents the logical structure of a PCell. It defines how a PCell consists of subcells and how they are interconnected.
Netlist view building blocks
All information of your netlist is captured in the i3.NetlistView
.
Contains all the information of a netlist (terms, instances and nets). |
The netlist view contains the following data:
Note
For more details and explanation about the Netlist view in IPKISS, please check out the netlist guide.
The following code snippet provides the skeleton of a typical Netlist.
import ipkiss3.all as i3
class MyCell(i3.PCell):
child = i3.ChildCellProperty()
class Netlist(i3.NetlistView):
def _generate_netlist(self, nl):
nl += i3.OpticalTerm(name='in')
nl += i3.OpticalTerm(name='out')
nl += i3.Instance(reference=self.child, name='child')
nl.link('in', 'child:in', name='link_in')
nl.link('out', 'child:out', name='link_out')
return nl
Netlist extraction
If your component already has a layout, then the netlist can be extracted automatically from this layout. Below is a list of use cases for netlist extraction:
post-layout simulation: to directly run circuit simulations from layout, where all important layout parameters are preserved (i.e., waveguide lengths, …)
layout vs netlist: to compare your layout versus the netlist that’s provided by someone else.
When exporting to IPKISS Canvas.
Netlist extraction from a layout view. |
|
Extract the terms from a layout view (electrical + optical). |
|
Configuration settings for extracting a netlist from a layout. |