Skip to content

Commit 7f9324d

Browse files
authored
Merge pull request #42 from siliconcompiler/fix-libs
cleanup lambdalib and make it ready for softlib support
2 parents 840f64b + a0e8a56 commit 7f9324d

File tree

8 files changed

+53
-137
lines changed

8 files changed

+53
-137
lines changed

lambdalib/__init__.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,43 @@
1-
from siliconcompiler import Chip
1+
from siliconcompiler import Chip, Library
22
import siliconcompiler.package as sc_package
33
import glob
44
import os
55
import shutil
66
__version__ = "0.1.5"
77

8+
_libraries = (
9+
'iolib',
10+
'stdlib',
11+
'ramlib',
12+
'padring',
13+
'syslib',
14+
'vectorlib'
15+
)
16+
17+
18+
########################
19+
# SiliconCompiler Setup
20+
########################
21+
def setup(chip):
22+
'''Lambdalib library setup script'''
23+
24+
add_idirs = ('padring',)
25+
26+
libs = []
27+
# Iterate over all libs
28+
for name in _libraries:
29+
lib = Library(chip, f'lambdalib_{name}', package='lambdalib')
30+
register_data_source(lib)
31+
32+
lib.add('option', 'ydir', f"lambdalib/{name}/rtl")
33+
34+
if name in add_idirs:
35+
lib.add('option', 'idir', f"lambdalib/{name}/rtl")
36+
37+
libs.append(lib)
38+
39+
return libs
40+
841

942
def register_data_source(chip):
1043
sc_package.register_python_data_source(

lambdalib/lambdalib.py

Lines changed: 0 additions & 34 deletions
This file was deleted.

lambdalib/padring/floorplan/la_iopadring.py

Lines changed: 0 additions & 18 deletions
This file was deleted.

lambdalib/padring/padring.py

Lines changed: 0 additions & 20 deletions
This file was deleted.

lambdalib/ramlib/ramlib.py

Lines changed: 0 additions & 25 deletions
This file was deleted.

lambdalib/stdlib/stdlib.py

Lines changed: 0 additions & 28 deletions
This file was deleted.

tests/test_paths.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from siliconcompiler import Chip
22

3-
from lambdalib import lambdalib
3+
import lambdalib
44

55

66
def test_pdk_paths():

tests/test_setup.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
1+
import pytest
12
from siliconcompiler import Chip
23

3-
from lambdalib import lambdalib
4+
import lambdalib
45

56

6-
def test_setup_without_depencency():
7+
@pytest.mark.parametrize('lib', lambdalib._libraries)
8+
def test_setup(lib):
79
chip = Chip('<lib>')
810
chip.use(lambdalib)
911

10-
assert 'la_stdlib' in chip.getkeys('library')
12+
lib_name = f'lambdalib_{lib}'
1113

12-
assert len(chip.get('library', 'la_stdlib', 'option', 'ydir')) == 1
14+
assert lib_name in chip.getkeys('library')
15+
assert len(chip.get('library', lib_name, 'option', 'ydir')) == 1
1316

1417

15-
def test_setup_with_depencency():
18+
@pytest.mark.parametrize(
19+
'lib,has_idir',
20+
[(lib, lib == 'padring') for lib in lambdalib._libraries])
21+
def test_setup_with_idir(lib, has_idir):
1622
chip = Chip('<lib>')
1723
chip.use(lambdalib)
1824

19-
assert 'la_stdlib' in chip.getkeys('library')
20-
assert 'la_iolib' in chip.getkeys('library')
21-
assert 'la_ramlib' in chip.getkeys('library')
25+
lib_name = f'lambdalib_{lib}'
26+
assert lib_name in chip.getkeys('library')
2227

23-
assert len(chip.get('library', 'la_iolib', 'option', 'ydir')) == 2
24-
assert len(chip.get('library', 'la_ramlib', 'option', 'ydir')) == 2
28+
excpect_idir = 0
29+
if has_idir:
30+
excpect_idir = 1
31+
32+
assert len(chip.get('library', lib_name, 'option', 'idir')) == excpect_idir

0 commit comments

Comments
 (0)