Source Code
Technology
Load Example Code:
inv_2x
inv_8x
nand_4x
# The following imports are done automatically. No further imports are allowed. #import laygo2 #import laygo2_tech as tech #import numpy as np # Design Parameters libname = 'logic_generated' cellname = 'test' # Templates and Grids templates, grids = tech.load_templates_and_grids() pg, r23, r34 = grids['placement_basic'], grids['routing_23_cmos'], grids['routing_34_cmos'] # Create a design and generate instances. dsn = laygo2.Design(name=cellname, libname=libname, pgrid=pg, rgrid=r23) IN0 = templates['nmos'].generate(name='IN0', transform='R0', params={'tie': 'S', 'nf': 4}, netmap={'D': 'O', 'G': 'I'}) IP0 = templates['pmos'].generate(name='IP0', transform='MX', params={'tie': 'S', 'nf': 4}, netmap={'D': 'O', 'G': 'I'}) # Place instances. dsn.place(inst=[[IN0], [IP0]]) # Create and place wires. rc = laygo2.RoutingMeshTemplate(grid=dsn.rgrid) rc.add_trunk(name='rO', index=[IN0.p['D'].right[0], None], netname='O') rc.add_trunk(name='rI', index=[IN0.p['G'].left[0], None], netname='I') rc.add_node(dsn.instances) # Add all instances to the routing mesh as nodes. rc.add_node(dsn.virtual_instances) # Add all virtual instances to the routing mesh as nodes. rinst = rc.generate() dsn.place(inst=rinst) # Export command will be automatically added by the webserver
Load Technology Setup:
Default
etri_0p5um
sky130
Run Code