Create Layout
This example creates a microstrip layout in a default technology. It adds pins to the design and prepares an RFPro simulation view. It requires that you have a workspace open with a library that does not already have a cell called “cell_lay”.
def create_layout_and_add_pins_to_design_and_run_pro_view(library: de.Library) -> None:
from keysight.ads import de
from keysight.ads.de import db_uu
design = db_uu.create_layout(f"{library.name}:cell_lay:layout")
layer_id = design.create_layer_id("cond")
design.add_rectangle(layer_id, (0.0, 0.0), (100.0, 10.0))
design.add_rectangle(layer_id, (0.0, 20.0), (100.0, 30.0))
dot = design.add_dot(layer_id, (0.0, 5.0))
net = design.find_or_add_net("P1")
term = design.add_term(net, "P1")
design.add_pin(term, dot)
dot = design.add_dot(layer_id, (100.0, 5.0))
net = design.find_or_add_net("P2")
term = design.add_term(net, "P2")
design.add_pin(term, dot)
dot = design.add_dot(layer_id, (0.0, 25.0))
net = design.find_or_add_net("P3")
term = design.add_term(net, "P3")
design.add_pin(term, dot)
dot = design.add_dot(layer_id, (100.0, 25.0))
net = design.find_or_add_net("P4")
term = design.add_term(net, "P4")
design.add_pin(term, dot)
design.save_design()
# de.experimental.create_pro_view won't work in automation mode but will work while running inside ADS
if de.is_pde_app():
de.experimental.create_pro_view(
db_uu.LCVName(f"{library.name}", "cell_lay", "rfpro"),
"rfpro",
db_uu.LCVName(f"{library.name}", "cell_lay", "layout"),
"tech",
)