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.

All information of your netlist is captured in the NetlistView. 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_instances(self, insts):
          # In _generate_instances, we'll specify the
          # references to child cells
          insts += i3.Instance(reference=self.child, name='child')
          return insts

      def _generate_terms(self, terms):
          # in _generate_terms we specify the terms (inputs and outputs) of our cell
          terms += i3.OpticalTerm(name='in')
          terms += i3.OpticalTerm(name='out')
          return terms

      def _generate_nets(self, nets):
          # in _generate_nets the terms are connected
          nets += i3.OpticalLink(term1=self.terms['in'],
                                 term2=self.instances['child'].terms['in'], name="link_in")
          nets += i3.OpticalLink(term1=self.instances['child'].terms['out'],
                                 term2=self.terms['out'], name="link_out")
          return nets