diff --git a/pyproject.toml b/pyproject.toml index 2005e39..500c266 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ readme = "README.md" requires-python = ">=3.8" license = {file = "LICENSE"} dependencies = [ - "siliconcompiler>=0.25.0", + "siliconcompiler>=0.26.2", "Jinja2>=3.1.2", "lambdapdk>=0.1.12", "lambdalib>=0.2.0" diff --git a/scgallery/designs/caliptra/__init__.py b/scgallery/designs/caliptra/__init__.py deleted file mode 100644 index 510d2d3..0000000 --- a/scgallery/designs/caliptra/__init__.py +++ /dev/null @@ -1,121 +0,0 @@ -import os -from siliconcompiler import Library - - -def __register(lib): - lib.register_source( - name='caliptra-rtl', - path='git+https://github.com/chipsalliance/caliptra-rtl.git', - ref='v1.0') - - -def __add_sources(lib, root, files): - for src in files: - lib.input(os.path.join(root, src)) - - -def __make_lib(chip, name, root, files, idirs=None): - lib = Library(chip, name, package='caliptra-rtl') - __register(lib) - - __add_sources(lib, root, files) - - if idirs: - lib.add('option', 'idir', idirs) - - return lib - - -def setup(chip): - libs_root = os.path.join('src', 'libs', 'rtl') - integration_root = os.path.join('src', 'integration', 'rtl') - datavault_root = os.path.join('src', 'datavault', 'rtl') - keyvault_root = os.path.join('src', 'keyvault', 'rtl') - pcrvault_root = os.path.join('src', 'pcrvault', 'rtl') - sha512_root = os.path.join('src', 'sha512', 'rtl') - return [ - __make_lib( - chip, - 'caliptra_libs', - libs_root, - ( - 'caliptra_sram.sv', - 'ahb_defines_pkg.sv', - 'caliptra_ahb_srom.sv', - 'apb_slv_sif.sv', - 'ahb_slv_sif.sv', - 'caliptra_icg.sv', - 'clk_gate.sv', - 'caliptra_2ff_sync.sv', - 'ahb_to_reg_adapter.sv' - ), - [ - libs_root - ]), - __make_lib( - chip, - 'caliptra_top_defines', - integration_root, - [], - [ - integration_root - ]), - __make_lib( - chip, - 'caliptra_datavault', - datavault_root, - ( - 'dv_reg_pkg.sv', - 'dv_reg.sv', - 'dv_defines_pkg.sv', - 'dv.sv' - ), - [ - datavault_root - ]), - __make_lib( - chip, - 'caliptra_keyvault', - keyvault_root, - ( - 'kv_reg_pkg.sv', - 'kv_reg.sv', - 'kv_defines_pkg.sv', - 'kv.sv', - 'kv_fsm.sv', - 'kv_read_client.sv', - 'kv_write_client.sv' - ), - [ - keyvault_root - ]), - __make_lib( - chip, - 'caliptra_pcrvault', - pcrvault_root, - ( - 'pv_reg_pkg.sv', - 'pv_reg.sv', - 'pv_defines_pkg.sv', - 'pv.sv', - 'pv_gen_hash.sv' - ), - [ - pcrvault_root - ]), - __make_lib( - chip, - 'caliptra_sha512', - sha512_root, - ( - 'sha512_reg_pkg.sv', - 'sha512_params_pkg.sv', - 'sha512_ctrl.sv', - 'sha512.sv', - 'sha512_core.v', - 'sha512_h_constants.v', - 'sha512_k_constants.v', - 'sha512_w_mem.v', - 'sha512_reg.sv' - )) - ] diff --git a/scgallery/designs/caliptra/datavault.py b/scgallery/designs/caliptra/datavault.py index 2f68fb6..37e9b1c 100755 --- a/scgallery/designs/caliptra/datavault.py +++ b/scgallery/designs/caliptra/datavault.py @@ -10,7 +10,7 @@ from siliconcompiler import Chip from siliconcompiler.targets import freepdk45_demo -from scgallery.designs import caliptra +from scgallery.designs.caliptra.src import datavault from scgallery import Gallery @@ -22,12 +22,7 @@ def setup(target=freepdk45_demo): sdc_root = os.path.join('caliptra', 'constraints', 'datavault') - chip.use(caliptra) - chip.add('option', 'library', [ - 'caliptra_datavault', - 'caliptra_libs', - 'caliptra_top_defines' - ]) + chip.use(datavault) chip.set('option', 'entrypoint', 'dv') diff --git a/scgallery/designs/caliptra/keyvault.py b/scgallery/designs/caliptra/keyvault.py index a430703..03e3df7 100755 --- a/scgallery/designs/caliptra/keyvault.py +++ b/scgallery/designs/caliptra/keyvault.py @@ -10,7 +10,7 @@ from siliconcompiler import Chip from siliconcompiler.targets import freepdk45_demo -from scgallery.designs import caliptra +from scgallery.designs.caliptra.src import keyvault from scgallery import Gallery @@ -22,12 +22,7 @@ def setup(target=freepdk45_demo): sdc_root = os.path.join('caliptra', 'constraints', 'keyvault') - chip.use(caliptra) - chip.add('option', 'library', [ - 'caliptra_keyvault', - 'caliptra_libs', - 'caliptra_top_defines' - ]) + chip.use(keyvault) chip.set('option', 'entrypoint', 'kv') diff --git a/scgallery/designs/caliptra/sha512.py b/scgallery/designs/caliptra/sha512.py index de5e9a9..5c63508 100755 --- a/scgallery/designs/caliptra/sha512.py +++ b/scgallery/designs/caliptra/sha512.py @@ -10,7 +10,7 @@ from siliconcompiler import Chip from siliconcompiler.targets import freepdk45_demo -from scgallery.designs import caliptra +from scgallery.designs.caliptra.src import sha512 from scgallery import Gallery @@ -22,14 +22,7 @@ def setup(target=freepdk45_demo): sdc_root = os.path.join('caliptra', 'constraints', 'sha512') - chip.use(caliptra) - chip.add('option', 'library', [ - 'caliptra_sha512', - 'caliptra_pcrvault', - 'caliptra_keyvault', - 'caliptra_libs', - 'caliptra_top_defines' - ]) + chip.use(sha512) chip.set('option', 'entrypoint', 'sha512_ctrl') diff --git a/scgallery/designs/caliptra/src/__init__.py b/scgallery/designs/caliptra/src/__init__.py new file mode 100644 index 0000000..ecbc110 --- /dev/null +++ b/scgallery/designs/caliptra/src/__init__.py @@ -0,0 +1,26 @@ +import os +from siliconcompiler import Library + + +def __register(lib): + lib.register_source( + name='caliptra-rtl', + path='git+https://github.com/chipsalliance/caliptra-rtl.git', + ref='v1.0') + + +def __add_sources(lib, root, files): + for src in files: + lib.input(os.path.join(root, src)) + + +def make_lib(chip, name, root, files, idirs=None): + lib = Library(chip, name, package='caliptra-rtl', auto_enable=True) + __register(lib) + + __add_sources(lib, root, files) + + if idirs: + lib.add('option', 'idir', idirs) + + return lib diff --git a/scgallery/designs/caliptra/src/datavault.py b/scgallery/designs/caliptra/src/datavault.py new file mode 100644 index 0000000..441a30d --- /dev/null +++ b/scgallery/designs/caliptra/src/datavault.py @@ -0,0 +1,21 @@ +from ..src import make_lib +from ..src import libs + + +def setup(chip): + lib = make_lib( + chip, + 'caliptra_datavault', + 'src/datavault/rtl', + ( + 'dv_reg_pkg.sv', + 'dv_reg.sv', + 'dv_defines_pkg.sv', + 'dv.sv' + ), + [ + 'src/datavault/rtl' + ]) + lib.use(libs) + + return lib diff --git a/scgallery/designs/caliptra/src/keyvault.py b/scgallery/designs/caliptra/src/keyvault.py new file mode 100644 index 0000000..ca01aa6 --- /dev/null +++ b/scgallery/designs/caliptra/src/keyvault.py @@ -0,0 +1,24 @@ +from ..src import make_lib +from ..src import libs + + +def setup(chip): + lib = make_lib( + chip, + 'caliptra_keyvault', + 'src/keyvault/rtl', + ( + 'kv_reg_pkg.sv', + 'kv_reg.sv', + 'kv_defines_pkg.sv', + 'kv.sv', + 'kv_fsm.sv', + 'kv_read_client.sv', + 'kv_write_client.sv' + ), + [ + 'src/keyvault/rtl' + ]) + lib.use(libs) + + return lib diff --git a/scgallery/designs/caliptra/src/libs.py b/scgallery/designs/caliptra/src/libs.py new file mode 100644 index 0000000..2f37c53 --- /dev/null +++ b/scgallery/designs/caliptra/src/libs.py @@ -0,0 +1,26 @@ +from ..src import make_lib +from ..src import top_defines + + +def setup(chip): + lib = make_lib( + chip, + 'caliptra_libs', + 'src/libs/rtl', + ( + 'caliptra_sram.sv', + 'ahb_defines_pkg.sv', + 'caliptra_ahb_srom.sv', + 'apb_slv_sif.sv', + 'ahb_slv_sif.sv', + 'caliptra_icg.sv', + 'clk_gate.sv', + 'caliptra_2ff_sync.sv', + 'ahb_to_reg_adapter.sv' + ), + [ + 'src/libs/rtl' + ]) + lib.use(top_defines) + + return lib diff --git a/scgallery/designs/caliptra/src/pcrvault.py b/scgallery/designs/caliptra/src/pcrvault.py new file mode 100644 index 0000000..3b19792 --- /dev/null +++ b/scgallery/designs/caliptra/src/pcrvault.py @@ -0,0 +1,22 @@ +from ..src import make_lib +from ..src import libs + + +def setup(chip): + lib = make_lib( + chip, + 'caliptra_pcrvault', + 'src/pcrvault/rtl', + ( + 'pv_reg_pkg.sv', + 'pv_reg.sv', + 'pv_defines_pkg.sv', + 'pv.sv', + 'pv_gen_hash.sv' + ), + [ + 'src/pcrvault/rtl' + ]) + lib.use(libs) + + return lib diff --git a/scgallery/designs/caliptra/src/sha512.py b/scgallery/designs/caliptra/src/sha512.py new file mode 100644 index 0000000..88e04df --- /dev/null +++ b/scgallery/designs/caliptra/src/sha512.py @@ -0,0 +1,24 @@ +from ..src import make_lib +from ..src import pcrvault, keyvault + + +def setup(chip): + lib = make_lib( + chip, + 'caliptra_sha512', + 'src/sha512/rtl', + ( + 'sha512_reg_pkg.sv', + 'sha512_params_pkg.sv', + 'sha512_ctrl.sv', + 'sha512.sv', + 'sha512_core.v', + 'sha512_h_constants.v', + 'sha512_k_constants.v', + 'sha512_w_mem.v', + 'sha512_reg.sv' + )) + lib.use(pcrvault) + lib.use(keyvault) + + return lib diff --git a/scgallery/designs/caliptra/src/top_defines.py b/scgallery/designs/caliptra/src/top_defines.py new file mode 100644 index 0000000..381d81b --- /dev/null +++ b/scgallery/designs/caliptra/src/top_defines.py @@ -0,0 +1,14 @@ +from ..src import make_lib + + +def setup(chip): + lib = make_lib( + chip, + 'caliptra_top_defines', + 'src/integration/rtl', + [], + [ + 'src/integration/rtl' + ]) + + return lib