Cross-sections and routing · 4 of 6
Ports and cross-sections
A marker placed on the start or end of a shape drawn with a cross-section takes the cross-section. The port also gets the width of the main section and a type ("waveguide" by default), so there is nothing to write but the position:
marker {
input { at wg.start } # xsection = strip, width = 500nm, type = "waveguide"
output { at wg.end }
}The same goes for markers placed on ports of instances: an exported port keeps the cross-section of the port it sits on.
Cross-sections become part of the connection checks. Two connected ports with different cross-sections, such as a rib waveguide butted against a strip waveguide, are an error, just like ports of different widths. Submit reports it, and so do laylight netlist and laylight lvs.
Exercise
Give Straight the ports input and output at the ends of its waveguide. Then fix Link: between the rib waveguide a and the strip waveguide b, insert a Converter, attached port to port, and export the free ends as the ports input and output of Link.