Skip to content

Commit

Permalink
Merge pull request #76 from siliconcompiler/lambdaimpl
Browse files Browse the repository at this point in the history
update lambdalib implementation to include dependencies on logic/macr…
  • Loading branch information
gadfort authored Aug 19, 2024
2 parents 4b4d7de + e6b217f commit 4afdc5c
Show file tree
Hide file tree
Showing 10 changed files with 76 additions and 20 deletions.
20 changes: 15 additions & 5 deletions lambdapdk/asap7/libs/asap7sc7p5t.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,12 +121,22 @@ def _setup_lib(chip, libname, suffix):
libdir + '/apr/openroad/global_connect.tcl')

libs = [lib]
for libtype in ('stdlib', 'auxlib'):
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libtype}_{libname}',
std_lambda_lib = siliconcompiler.Library(chip, f'lambdalib_stdlib_{libname}',
package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', libdir + f'/lambda/{libtype}')
libs.append(lambda_lib)
register_data_source(std_lambda_lib)
std_lambda_lib.add('option', 'ydir', libdir + '/lambda/stdlib')
std_lambda_lib.use(lib)
std_lambda_lib.set('asic', 'logiclib', lib.design)
libs.append(std_lambda_lib)
aux_lambda_lib = siliconcompiler.Library(chip, f'lambdalib_auxlib_{libname}',
package='lambdapdk')
register_data_source(aux_lambda_lib)
aux_lambda_lib.add('option', 'ydir', libdir + '/lambda/auxlib')
aux_lambda_lib.use(std_lambda_lib)
aux_lambda_lib.use(lib)
aux_lambda_lib.set('asic', 'logiclib', lib.design)
aux_lambda_lib.set('option', 'library', std_lambda_lib.design)
libs.append(aux_lambda_lib)

return libs

Expand Down
3 changes: 3 additions & 0 deletions lambdapdk/asap7/libs/fakeram7.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ def setup(chip):
lambda_lib = Library(chip, 'lambdalib_fakeram7', package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', 'lambdapdk/asap7/libs/fakeram7/lambda')
for lib in libs:
lambda_lib.use(lib)
lambda_lib.add('asic', 'macrolib', lib.design)

libs.append(lambda_lib)

Expand Down
3 changes: 3 additions & 0 deletions lambdapdk/freepdk45/libs/fakeram45.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ def setup(chip):
lambda_lib = Library(chip, 'lambdalib_fakeram45', package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', 'lambdapdk/freepdk45/libs/fakeram45/lambda')
for lib in libs:
lambda_lib.use(lib)
lambda_lib.add('asic', 'macrolib', lib.design)

libs.append(lambda_lib)

Expand Down
20 changes: 15 additions & 5 deletions lambdapdk/freepdk45/libs/nangate45.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,12 +100,22 @@ def setup(chip):
lib.set('option', 'var', f'{tool}_tielow_port', "Z")

libs = [lib]
for libtype in ('stdlib', 'auxlib'):
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libtype}_{libname}',
std_lambda_lib = siliconcompiler.Library(chip, f'lambdalib_stdlib_{libname}',
package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', libdir + f'/lambda/{libtype}')
libs.append(lambda_lib)
register_data_source(std_lambda_lib)
std_lambda_lib.add('option', 'ydir', libdir + '/lambda/stdlib')
std_lambda_lib.use(lib)
std_lambda_lib.set('asic', 'logiclib', lib.design)
libs.append(std_lambda_lib)
aux_lambda_lib = siliconcompiler.Library(chip, f'lambdalib_auxlib_{libname}',
package='lambdapdk')
register_data_source(aux_lambda_lib)
aux_lambda_lib.add('option', 'ydir', libdir + '/lambda/auxlib')
aux_lambda_lib.use(std_lambda_lib)
aux_lambda_lib.use(lib)
aux_lambda_lib.set('asic', 'logiclib', lib.design)
aux_lambda_lib.set('option', 'library', std_lambda_lib.design)
libs.append(aux_lambda_lib)

return libs

Expand Down
2 changes: 2 additions & 0 deletions lambdapdk/gf180/libs/gf180io.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ def setup(chip):
lambda_lib = siliconcompiler.Library(chip, 'lambdalib_gf180mcu_fd_io', package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', 'lambdapdk/gf180/libs/gf180mcu_fd_io/lambda')
lambda_lib.use(lib)
lambda_lib.set('asic', 'macrolib', lib.design)

return [*libs, lambda_lib]

Expand Down
20 changes: 15 additions & 5 deletions lambdapdk/gf180/libs/gf180mcu.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,22 @@ def setup(chip):

libs.append(lib)

for libtype in ('stdlib', 'auxlib'):
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libtype}_{libname}',
std_lambda_lib = siliconcompiler.Library(chip, f'lambdalib_stdlib_{libname}',
package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', libdir + f'/lambda/{libtype}')
libs.append(lambda_lib)
register_data_source(std_lambda_lib)
std_lambda_lib.add('option', 'ydir', libdir + '/lambda/stdlib')
std_lambda_lib.use(lib)
std_lambda_lib.set('asic', 'logiclib', lib.design)
libs.append(std_lambda_lib)
aux_lambda_lib = siliconcompiler.Library(chip, f'lambdalib_auxlib_{libname}',
package='lambdapdk')
register_data_source(aux_lambda_lib)
aux_lambda_lib.add('option', 'ydir', libdir + '/lambda/auxlib')
aux_lambda_lib.use(std_lambda_lib)
aux_lambda_lib.use(lib)
aux_lambda_lib.set('asic', 'logiclib', lib.design)
aux_lambda_lib.set('option', 'library', std_lambda_lib.design)
libs.append(aux_lambda_lib)

return libs

Expand Down
3 changes: 3 additions & 0 deletions lambdapdk/gf180/libs/gf180sram.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ def setup(chip):
lambda_lib = Library(chip, 'lambdalib_gf180sram', package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', 'lambdapdk/gf180/libs/gf180mcu_fd_ip_sram/lambda')
for lib in libs:
lambda_lib.use(lib)
lambda_lib.add('asic', 'macrolib', lib.design)

libs.append(lambda_lib)

Expand Down
2 changes: 2 additions & 0 deletions lambdapdk/sky130/libs/sky130io.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ def setup(chip):
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libname}', package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', 'lambdapdk/sky130/libs/sky130io/lambda')
lambda_lib.use(lib)
lambda_lib.set('asic', 'macrolib', lib.design)

return [lib, lambda_lib]

Expand Down
20 changes: 15 additions & 5 deletions lambdapdk/sky130/libs/sky130sc.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,12 +182,22 @@ def setup(chip):

libs.append(lib)

for libtype in ('stdlib', 'auxlib'):
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libtype}_{libname}',
std_lambda_lib = siliconcompiler.Library(chip, f'lambdalib_stdlib_{libname}',
package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', libdir + f'/lambda/{libtype}')
libs.append(lambda_lib)
register_data_source(std_lambda_lib)
std_lambda_lib.add('option', 'ydir', libdir + '/lambda/stdlib')
std_lambda_lib.use(lib)
std_lambda_lib.set('asic', 'logiclib', lib.design)
libs.append(std_lambda_lib)
aux_lambda_lib = siliconcompiler.Library(chip, f'lambdalib_auxlib_{libname}',
package='lambdapdk')
register_data_source(aux_lambda_lib)
aux_lambda_lib.add('option', 'ydir', libdir + '/lambda/auxlib')
aux_lambda_lib.use(std_lambda_lib)
aux_lambda_lib.use(lib)
aux_lambda_lib.set('asic', 'logiclib', lib.design)
aux_lambda_lib.set('option', 'library', std_lambda_lib.design)
libs.append(aux_lambda_lib)

return libs

Expand Down
3 changes: 3 additions & 0 deletions lambdapdk/sky130/libs/sky130sram.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ def setup(chip):
lambda_lib = Library(chip, 'lambdalib_sky130sram', package='lambdapdk')
register_data_source(lambda_lib)
lambda_lib.add('option', 'ydir', 'lambdapdk/sky130/libs/sky130sram/lambda')
for lib in libs:
lambda_lib.use(lib)
lambda_lib.add('asic', 'macrolib', lib.design)

libs.append(lambda_lib)

Expand Down

0 comments on commit 4afdc5c

Please sign in to comment.