[LICENSE] Add SPDX Identifier
diff --git a/.travis.yml b/.travis.yml
index 2083d54..10a17a9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 language: minimal
 
diff --git a/.travisCI/runPrecheck.sh b/.travisCI/runPrecheck.sh
index d495481..3d3f0e3 100644
--- a/.travisCI/runPrecheck.sh
+++ b/.travisCI/runPrecheck.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 export TARGET_PATH=$(pwd)
 cd ..
 export PDK_ROOT=$(pwd)/pdks
diff --git a/.travisCI/travisBuild.sh b/.travisCI/travisBuild.sh
index 907c1e6..2c5d3e1 100644
--- a/.travisCI/travisBuild.sh
+++ b/.travisCI/travisBuild.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 export TARGET_PATH=$(pwd)
 git clone https://github.com/efabless/open_mpw_precheck.git
diff --git a/gds/gds2mag-all.sh b/gds/gds2mag-all.sh
index a7160b2..2f816a1 100755
--- a/gds/gds2mag-all.sh
+++ b/gds/gds2mag-all.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 
diff --git a/gds/gen_caravel.tcl b/gds/gen_caravel.tcl
index eadca1d..322a304 100644
--- a/gds/gen_caravel.tcl
+++ b/gds/gen_caravel.tcl
@@ -8,6 +8,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 drc off
 gds readonly true
diff --git a/mag/bump_bond.tcl b/mag/bump_bond.tcl
index a9d66a8..97c1643 100644
--- a/mag/bump_bond.tcl
+++ b/mag/bump_bond.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 namespace path {::tcl::mathop ::tcl::mathfunc}
 
diff --git a/mag/mag2maglef-all.sh b/mag/mag2maglef-all.sh
index 60feffc..a33bc1f 100755
--- a/mag/mag2maglef-all.sh
+++ b/mag/mag2maglef-all.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 o-mag2maglef-maglef.sh simple_por
diff --git a/mag/run_lvs_por.sh b/mag/run_lvs_por.sh
index 81c3f70..2e5c5a7 100755
--- a/mag/run_lvs_por.sh
+++ b/mag/run_lvs_por.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #--------------------------------------------------------------------------------
 # Run LVS on the simple_por layout
diff --git a/openlane/DFFRAM/config.tcl b/openlane/DFFRAM/config.tcl
index 4517766..2a4b17b 100644
--- a/openlane/DFFRAM/config.tcl
+++ b/openlane/DFFRAM/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 # User config
diff --git a/openlane/DFFRAM/pdn.tcl b/openlane/DFFRAM/pdn.tcl
index 041526a..b3feb71 100644
--- a/openlane/DFFRAM/pdn.tcl
+++ b/openlane/DFFRAM/pdn.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # Power nets
 set ::power_nets $::env(VDD_PIN)
diff --git a/openlane/caravel/config.tcl b/openlane/caravel/config.tcl
index 9e4c320..be674c6 100755
--- a/openlane/caravel/config.tcl
+++ b/openlane/caravel/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # User config
 set script_dir [file dirname [file normalize [info script]]]
diff --git a/openlane/caravel/interactive.lvs.tcl b/openlane/caravel/interactive.lvs.tcl
index e92a0d7..f009946 100755
--- a/openlane/caravel/interactive.lvs.tcl
+++ b/openlane/caravel/interactive.lvs.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 package require openlane
 set script_dir [file dirname [file normalize [info script]]]
diff --git a/openlane/caravel/interactive.tcl b/openlane/caravel/interactive.tcl
index 55e3f12..8584fde 100755
--- a/openlane/caravel/interactive.tcl
+++ b/openlane/caravel/interactive.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 package require openlane
 set script_dir [file dirname [file normalize [info script]]]
diff --git a/openlane/chip_io/config.tcl b/openlane/chip_io/config.tcl
index d7e8f07..62be896 100755
--- a/openlane/chip_io/config.tcl
+++ b/openlane/chip_io/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 
diff --git a/openlane/chip_io/interactive.tcl b/openlane/chip_io/interactive.tcl
index 4ad3155..8dd4d94 100755
--- a/openlane/chip_io/interactive.tcl
+++ b/openlane/chip_io/interactive.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 package require openlane
 set script_dir [file dirname [file normalize [info script]]]
diff --git a/openlane/digital_pll/config.tcl b/openlane/digital_pll/config.tcl
index b1d3e3c..dc69dbf 100644
--- a/openlane/digital_pll/config.tcl
+++ b/openlane/digital_pll/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 # User config
diff --git a/openlane/digital_pll/pdn.tcl b/openlane/digital_pll/pdn.tcl
index 64740f2..595294e 100644
--- a/openlane/digital_pll/pdn.tcl
+++ b/openlane/digital_pll/pdn.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # Power nets
 set ::power_nets $::env(VDD_PIN)
diff --git a/openlane/gpio_control_block/config.tcl b/openlane/gpio_control_block/config.tcl
index f59a203..640bbf8 100644
--- a/openlane/gpio_control_block/config.tcl
+++ b/openlane/gpio_control_block/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 
diff --git a/openlane/mgmt_core/config.tcl b/openlane/mgmt_core/config.tcl
index 0e00f43..72e615e 100644
--- a/openlane/mgmt_core/config.tcl
+++ b/openlane/mgmt_core/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 
diff --git a/openlane/mgmt_core/pdn.tcl b/openlane/mgmt_core/pdn.tcl
index 0bed45d..1430d5a 100644
--- a/openlane/mgmt_core/pdn.tcl
+++ b/openlane/mgmt_core/pdn.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # Power nets
 set ::power_nets $::env(VDD_PIN)
diff --git a/openlane/mgmt_protect/config.tcl b/openlane/mgmt_protect/config.tcl
index 16a2dc6..714dd7f 100755
--- a/openlane/mgmt_protect/config.tcl
+++ b/openlane/mgmt_protect/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 
diff --git a/openlane/mgmt_protect_hv/config.tcl b/openlane/mgmt_protect_hv/config.tcl
index 185a629..71eceb3 100644
--- a/openlane/mgmt_protect_hv/config.tcl
+++ b/openlane/mgmt_protect_hv/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 
diff --git a/openlane/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped/config.tcl b/openlane/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped/config.tcl
index b7a998b..2a63660 100644
--- a/openlane/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped/config.tcl
+++ b/openlane/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # This is an analog design. It will be designed by hand.
 # This is a placeholder to get things going.
diff --git a/openlane/storage/config.tcl b/openlane/storage/config.tcl
index 22a7347..59fb951 100644
--- a/openlane/storage/config.tcl
+++ b/openlane/storage/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 
diff --git a/openlane/storage/pdn.tcl b/openlane/storage/pdn.tcl
index ce4be26..ef4a029 100644
--- a/openlane/storage/pdn.tcl
+++ b/openlane/storage/pdn.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # Power nets
 set ::power_nets $::env(VDD_PIN)
diff --git a/openlane/user_id_programming/config.tcl b/openlane/user_id_programming/config.tcl
index bd5410e..9d870f9 100755
--- a/openlane/user_id_programming/config.tcl
+++ b/openlane/user_id_programming/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 # User config
diff --git a/openlane/user_proj_example/config.tcl b/openlane/user_proj_example/config.tcl
index 8675e62..52cc64f 100644
--- a/openlane/user_proj_example/config.tcl
+++ b/openlane/user_proj_example/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 
diff --git a/openlane/user_project_wrapper/interactive.tcl b/openlane/user_project_wrapper/interactive.tcl
index 8556356..27ccd59 100644
--- a/openlane/user_project_wrapper/interactive.tcl
+++ b/openlane/user_project_wrapper/interactive.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 package require openlane
 set script_dir [file dirname [file normalize [info script]]]
diff --git a/openlane/user_project_wrapper/pdn.tcl b/openlane/user_project_wrapper/pdn.tcl
index a000e0b..ad170df 100644
--- a/openlane/user_project_wrapper/pdn.tcl
+++ b/openlane/user_project_wrapper/pdn.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # Power nets
 set ::power_nets $::env(_VDD_NET_NAME)
diff --git a/openlane/user_project_wrapper_empty/config.tcl b/openlane/user_project_wrapper_empty/config.tcl
index 20b1f44..9451860 100644
--- a/openlane/user_project_wrapper_empty/config.tcl
+++ b/openlane/user_project_wrapper_empty/config.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 set script_dir [file dirname [file normalize [info script]]]
 
diff --git a/openlane/user_project_wrapper_empty/gen_pdn.tcl b/openlane/user_project_wrapper_empty/gen_pdn.tcl
index 22c35e8..eb793ad 100644
--- a/openlane/user_project_wrapper_empty/gen_pdn.tcl
+++ b/openlane/user_project_wrapper_empty/gen_pdn.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 read_lef $::env(MERGED_LEF_UNPADDED)
 read_def $::env(CURRENT_DEF)
diff --git a/openlane/user_project_wrapper_empty/interactive.tcl b/openlane/user_project_wrapper_empty/interactive.tcl
index 957fd60..f5ee85e 100644
--- a/openlane/user_project_wrapper_empty/interactive.tcl
+++ b/openlane/user_project_wrapper_empty/interactive.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 package require openlane
 set script_dir [file dirname [file normalize [info script]]]
diff --git a/openlane/user_project_wrapper_empty/pdn.tcl b/openlane/user_project_wrapper_empty/pdn.tcl
index a000e0b..ad170df 100644
--- a/openlane/user_project_wrapper_empty/pdn.tcl
+++ b/openlane/user_project_wrapper_empty/pdn.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # Power nets
 set ::power_nets $::env(_VDD_NET_NAME)
diff --git a/qflow/digital_pll_controller/project_vars.sh b/qflow/digital_pll_controller/project_vars.sh
index 2c1ddb7..7110940 100644
--- a/qflow/digital_pll_controller/project_vars.sh
+++ b/qflow/digital_pll_controller/project_vars.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #------------------------------------------------------------
 # project variables for project ~/gits/caravel/qflow/digital_pll_controller
diff --git a/qflow/digital_pll_controller/qflow_exec.sh b/qflow/digital_pll_controller/qflow_exec.sh
index d01bc16..93fa53e 100755
--- a/qflow/digital_pll_controller/qflow_exec.sh
+++ b/qflow/digital_pll_controller/qflow_exec.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #-------------------------------------------
 # qflow exec script for project ~/gits/caravel/qflow/digital_pll_controller
diff --git a/qflow/digital_pll_controller/qflow_vars.sh b/qflow/digital_pll_controller/qflow_vars.sh
index 856cd6c..b6347c3 100644
--- a/qflow/digital_pll_controller/qflow_vars.sh
+++ b/qflow/digital_pll_controller/qflow_vars.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #-------------------------------------------
 # qflow variables for project ~/gits/caravel/qflow/digital_pll_controller
diff --git a/qflow/ring_osc2x13/project_vars.sh b/qflow/ring_osc2x13/project_vars.sh
index 13cdf09..6dec30a 100644
--- a/qflow/ring_osc2x13/project_vars.sh
+++ b/qflow/ring_osc2x13/project_vars.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #------------------------------------------------------------
 # project variables for project ~/gits/caravel/qflow/ring_osc2x13
diff --git a/qflow/ring_osc2x13/qflow_exec.sh b/qflow/ring_osc2x13/qflow_exec.sh
index 7219049..61568dc 100755
--- a/qflow/ring_osc2x13/qflow_exec.sh
+++ b/qflow/ring_osc2x13/qflow_exec.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #-------------------------------------------
 # qflow exec script for project ~/gits/caravel/qflow/ring_osc2x13
diff --git a/qflow/ring_osc2x13/qflow_vars.sh b/qflow/ring_osc2x13/qflow_vars.sh
index 8ca2d23..59f7d83 100644
--- a/qflow/ring_osc2x13/qflow_vars.sh
+++ b/qflow/ring_osc2x13/qflow_vars.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #-------------------------------------------
 # qflow variables for project ~/gits/caravel/qflow/ring_osc2x13
diff --git a/scripts/compositor.py b/scripts/compositor.py
index 4a3c2e2..3191d93 100755
--- a/scripts/compositor.py
+++ b/scripts/compositor.py
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #
 # compositor.py ---
diff --git a/scripts/generate_fill.py b/scripts/generate_fill.py
index d939cef..330482d 100755
--- a/scripts/generate_fill.py
+++ b/scripts/generate_fill.py
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #
 # generate_fill.py ---
diff --git a/scripts/set_user_id.py b/scripts/set_user_id.py
index 5707920..7e1b65a 100755
--- a/scripts/set_user_id.py
+++ b/scripts/set_user_id.py
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #
 # set_user_id.py ---
diff --git a/spi/lvs/run_lvs.sh b/spi/lvs/run_lvs.sh
index 8d898a2..af4c349 100644
--- a/spi/lvs/run_lvs.sh
+++ b/spi/lvs/run_lvs.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 NETGEN_SETUP=$PDK_ROOT/sky130A/libs.tech/netgen/sky130A_setup.tcl
diff --git a/utils/addmpwseal.tcl b/utils/addmpwseal.tcl
index 4320fe2..7473760 100644
--- a/utils/addmpwseal.tcl
+++ b/utils/addmpwseal.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 drc off
 gds readonly true
diff --git a/utils/core_scripts/magic-drc.sh b/utils/core_scripts/magic-drc.sh
index d2d6549..56c8493 100644
--- a/utils/core_scripts/magic-drc.sh
+++ b/utils/core_scripts/magic-drc.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # To call: ./magic-drc.sh <target_path> <design_name> <pdk-root> <target-type> <pdk-name> <output_path>
 
diff --git a/utils/core_scripts/magic-drc.tcl b/utils/core_scripts/magic-drc.tcl
index 3db318e..1ea14a5 100755
--- a/utils/core_scripts/magic-drc.tcl
+++ b/utils/core_scripts/magic-drc.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 if { $::env(TARGET_TYPE) == "gds"} {
 	gds read $::env(TARGET_DIR)/$::env(DESIGN_NAME).gds
diff --git a/utils/core_scripts/magic-ext.sh b/utils/core_scripts/magic-ext.sh
index bd51abd..bd3ccd9 100644
--- a/utils/core_scripts/magic-ext.sh
+++ b/utils/core_scripts/magic-ext.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # To call: ./magic-ext.sh <target_path> <design_name> <pdk-root> <target-type> <pdk-name> <output_path>
 
diff --git a/utils/core_scripts/magic-ext.tcl b/utils/core_scripts/magic-ext.tcl
index a67ba3b..a4fcc2f 100644
--- a/utils/core_scripts/magic-ext.tcl
+++ b/utils/core_scripts/magic-ext.tcl
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 puts "Performing Spice Extractions..."
diff --git a/utils/drc-def-sky130A.sh b/utils/drc-def-sky130A.sh
index 5e009ec..c894ad0 100644
--- a/utils/drc-def-sky130A.sh
+++ b/utils/drc-def-sky130A.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # To call: ./drc-def-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/]
 
diff --git a/utils/drc-gds-sky130A.sh b/utils/drc-gds-sky130A.sh
index aff4cec..0791491 100644
--- a/utils/drc-gds-sky130A.sh
+++ b/utils/drc-gds-sky130A.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # To call: ./drc-gds-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/]
 
diff --git a/utils/drc-mag-sky130A.sh b/utils/drc-mag-sky130A.sh
index 9fedad3..1acba4c 100644
--- a/utils/drc-mag-sky130A.sh
+++ b/utils/drc-mag-sky130A.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # To call: ./drc-mag-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/]
 
diff --git a/utils/examples/addmpwseal.tcl b/utils/examples/addmpwseal.tcl
index f666baf..de30568 100644
--- a/utils/examples/addmpwseal.tcl
+++ b/utils/examples/addmpwseal.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 drc off
 gds readonly true
diff --git a/utils/examples/create-project.sh b/utils/examples/create-project.sh
index 9bcf6d5..65277df 100755
--- a/utils/examples/create-project.sh
+++ b/utils/examples/create-project.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 cat <<'EOT' > .gitignore
 .DS_Store
diff --git a/utils/examples/drc-mag.sh b/utils/examples/drc-mag.sh
index 8fbc697..ca6eb21 100644
--- a/utils/examples/drc-mag.sh
+++ b/utils/examples/drc-mag.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export MAGTYPE=mag ;
diff --git a/utils/examples/drc-maglef.sh b/utils/examples/drc-maglef.sh
index 7eaddf5..6915791 100644
--- a/utils/examples/drc-maglef.sh
+++ b/utils/examples/drc-maglef.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export MAGTYPE=maglef ;
diff --git a/utils/examples/drc.sh b/utils/examples/drc.sh
index 8fbc697..ca6eb21 100755
--- a/utils/examples/drc.sh
+++ b/utils/examples/drc.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export MAGTYPE=mag ;
diff --git a/utils/examples/edit.tcl b/utils/examples/edit.tcl
index ea2fc8d..7431bc3 100644
--- a/utils/examples/edit.tcl
+++ b/utils/examples/edit.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 drc off
 puts "Small delay..."
diff --git a/utils/examples/ext-gds.sh b/utils/examples/ext-gds.sh
index a079e76..360ff0f 100644
--- a/utils/examples/ext-gds.sh
+++ b/utils/examples/ext-gds.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export MAGTYPE=maglef ;
diff --git a/utils/examples/ext-mag.sh b/utils/examples/ext-mag.sh
index 67fc8f1..e625099 100644
--- a/utils/examples/ext-mag.sh
+++ b/utils/examples/ext-mag.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export MAGTYPE=mag ;
diff --git a/utils/examples/ext.sh b/utils/examples/ext.sh
index 39a14e5..1c557d4 100644
--- a/utils/examples/ext.sh
+++ b/utils/examples/ext.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export MAGTYPE=maglef ;
diff --git a/utils/examples/extract.tcl b/utils/examples/extract.tcl
index a596111..dc62a06 100644
--- a/utils/examples/extract.tcl
+++ b/utils/examples/extract.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 lef read $::env(PDKPATH)/libs.ref/techLEF/scs8hd/scs8hd_tech.lef
 set macro_mags "openram_tc_core.mag"
diff --git a/utils/examples/lvs.sh b/utils/examples/lvs.sh
index 1ff1dd1..7a11878 100755
--- a/utils/examples/lvs.sh
+++ b/utils/examples/lvs.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 /ef/apps/bin/netgen -noconsole << EOF
 readnet spice $1.spice
diff --git a/utils/examples/mag2gds.tcl b/utils/examples/mag2gds.tcl
index 5283852..84eabd2 100644
--- a/utils/examples/mag2gds.tcl
+++ b/utils/examples/mag2gds.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # assumes an /ef tree or at least a symlink
 drc off
diff --git a/utils/examples/magic_drc.tcl b/utils/examples/magic_drc.tcl
index 9ea88fa..dc65943 100755
--- a/utils/examples/magic_drc.tcl
+++ b/utils/examples/magic_drc.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 set ::env(DESIGN_NAME) openram_tc_1kb
 drc off
 lef read ../lef/sram_1rw1r_32_256_8_sky130_lp1.lef
diff --git a/utils/examples/pfg.sh b/utils/examples/pfg.sh
index dce3cf3..36cb05e 100755
--- a/utils/examples/pfg.sh
+++ b/utils/examples/pfg.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export PDKPATH=/home/mk/zooz/pdks/ef-skywater-s8/EFS8A
diff --git a/utils/examples/run_openram_tc_1kb.sh b/utils/examples/run_openram_tc_1kb.sh
index be2a2ee..89e77f8 100755
--- a/utils/examples/run_openram_tc_1kb.sh
+++ b/utils/examples/run_openram_tc_1kb.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 #
 # Run netgen on striVe (top level)
diff --git a/utils/examples/setup.tcl b/utils/examples/setup.tcl
index d4e1021..5e95030 100644
--- a/utils/examples/setup.tcl
+++ b/utils/examples/setup.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # We must flatten these because the ports are disconnected
 flatten class {-circuit1 dummy_cell_6t}
diff --git a/utils/examples/wrap.tcl b/utils/examples/wrap.tcl
index 674d989..99f1d2a 100644
--- a/utils/examples/wrap.tcl
+++ b/utils/examples/wrap.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 drc off
 gds readonly yes
diff --git a/utils/examples/wrap2.tcl b/utils/examples/wrap2.tcl
index bb30b45..ac255cc 100644
--- a/utils/examples/wrap2.tcl
+++ b/utils/examples/wrap2.tcl
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 drc off
 gds readonly yes
diff --git a/utils/examples/xor.sh b/utils/examples/xor.sh
index eb98446..474dcfe 100755
--- a/utils/examples/xor.sh
+++ b/utils/examples/xor.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 : ${1?"Usage: $0 file1.gds file2.gds <top_level_module_name>"}
diff --git a/utils/ext-def-sky130A.sh b/utils/ext-def-sky130A.sh
index 0977ccf..44cb503 100644
--- a/utils/ext-def-sky130A.sh
+++ b/utils/ext-def-sky130A.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # To call: ./ext-def-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/]
 
diff --git a/utils/ext-gds-sky130A.sh b/utils/ext-gds-sky130A.sh
index d7ddb64..f21504d 100644
--- a/utils/ext-gds-sky130A.sh
+++ b/utils/ext-gds-sky130A.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # To call: ./ext-gds-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/]
 
diff --git a/utils/ext-mag-sky130A.sh b/utils/ext-mag-sky130A.sh
index 16f110f..7970190 100644
--- a/utils/ext-mag-sky130A.sh
+++ b/utils/ext-mag-sky130A.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 # To call: ./ext-mag-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/]
 
diff --git a/utils/gds2mag-mag.local.sh b/utils/gds2mag-mag.local.sh
index c914f70..5f55959 100755
--- a/utils/gds2mag-mag.local.sh
+++ b/utils/gds2mag-mag.local.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 export PDK_ROOT=~/foss/pdks/open_pdks/sky130;
 export MAGTYPE=mag ; 
diff --git a/utils/gds2mag-mag.sh b/utils/gds2mag-mag.sh
index c8c3cab..06d8bdf 100755
--- a/utils/gds2mag-mag.sh
+++ b/utils/gds2mag-mag.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 export PDK_ROOT=~/foss/pdks/open_pdks/sky130;
 export MAGTYPE=mag ; 
diff --git a/utils/lef2maglef.sh b/utils/lef2maglef.sh
index d128a88..4d9dc1a 100755
--- a/utils/lef2maglef.sh
+++ b/utils/lef2maglef.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export PDK_ROOT=~/foss/pdks/open_pdks/sky130;
diff --git a/utils/mag2maglef-mag.sh b/utils/mag2maglef-mag.sh
index a42e584..1ba5699 100755
--- a/utils/mag2maglef-mag.sh
+++ b/utils/mag2maglef-mag.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export PDK_ROOT=~/foss/pdks/open_pdks/sky130;
diff --git a/utils/mag2maglef-maglef.localrc.sh b/utils/mag2maglef-maglef.localrc.sh
index 72de47d..91f9b6b 100755
--- a/utils/mag2maglef-maglef.localrc.sh
+++ b/utils/mag2maglef-maglef.localrc.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export PDK_ROOT=~/foss/pdks/open_pdks/sky130;
diff --git a/utils/mag2maglef-maglef.sh b/utils/mag2maglef-maglef.sh
index e905083..bb2f25c 100755
--- a/utils/mag2maglef-maglef.sh
+++ b/utils/mag2maglef-maglef.sh
@@ -12,6 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 
 export PDK_ROOT=~/foss/pdks/open_pdks/sky130;
diff --git a/verilog/dv/caravel/defs.h b/verilog/dv/caravel/defs.h
index f255737..9707d0e 100644
--- a/verilog/dv/caravel/defs.h
+++ b/verilog/dv/caravel/defs.h
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #ifndef _STRIVE_H_
diff --git a/verilog/dv/caravel/mgmt_soc/gpio/gpio.c b/verilog/dv/caravel/mgmt_soc/gpio/gpio.c
index 0f9e61b..16503bb 100644
--- a/verilog/dv/caravel/mgmt_soc/gpio/gpio.c
+++ b/verilog/dv/caravel/mgmt_soc/gpio/gpio.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/hkspi/hkspi.c b/verilog/dv/caravel/mgmt_soc/hkspi/hkspi.c
index 036c40f..8a5155a 100644
--- a/verilog/dv/caravel/mgmt_soc/hkspi/hkspi.c
+++ b/verilog/dv/caravel/mgmt_soc/hkspi/hkspi.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/hkspi/hkspi_tb.v b/verilog/dv/caravel/mgmt_soc/hkspi/hkspi_tb.v
index 73be020..4702574 100644
--- a/verilog/dv/caravel/mgmt_soc/hkspi/hkspi_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/hkspi/hkspi_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /*	
diff --git a/verilog/dv/caravel/mgmt_soc/mem/mem.c b/verilog/dv/caravel/mgmt_soc/mem/mem.c
index e53abad..0309bb5 100644
--- a/verilog/dv/caravel/mgmt_soc/mem/mem.c
+++ b/verilog/dv/caravel/mgmt_soc/mem/mem.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/mprj_ctrl/mprj_ctrl.c b/verilog/dv/caravel/mgmt_soc/mprj_ctrl/mprj_ctrl.c
index 0077a90..d92618b 100644
--- a/verilog/dv/caravel/mgmt_soc/mprj_ctrl/mprj_ctrl.c
+++ b/verilog/dv/caravel/mgmt_soc/mprj_ctrl/mprj_ctrl.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/mprj_ctrl/mprj_ctrl_tb.v b/verilog/dv/caravel/mgmt_soc/mprj_ctrl/mprj_ctrl_tb.v
index 8c12a8a..d1950ed 100644
--- a/verilog/dv/caravel/mgmt_soc/mprj_ctrl/mprj_ctrl_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/mprj_ctrl/mprj_ctrl_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/caravel/mgmt_soc/pass_thru/pass_thru.c b/verilog/dv/caravel/mgmt_soc/pass_thru/pass_thru.c
index 68c58b7..adf5f88 100644
--- a/verilog/dv/caravel/mgmt_soc/pass_thru/pass_thru.c
+++ b/verilog/dv/caravel/mgmt_soc/pass_thru/pass_thru.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/pass_thru/pass_thru_tb.v b/verilog/dv/caravel/mgmt_soc/pass_thru/pass_thru_tb.v
index 5a5823d..099b814 100644
--- a/verilog/dv/caravel/mgmt_soc/pass_thru/pass_thru_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/pass_thru/pass_thru_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /*	
diff --git a/verilog/dv/caravel/mgmt_soc/perf/perf.c b/verilog/dv/caravel/mgmt_soc/perf/perf.c
index 55d680c..e4e7f58 100644
--- a/verilog/dv/caravel/mgmt_soc/perf/perf.c
+++ b/verilog/dv/caravel/mgmt_soc/perf/perf.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/pll/pll.c b/verilog/dv/caravel/mgmt_soc/pll/pll.c
index d0441d3..ee3fc7b 100644
--- a/verilog/dv/caravel/mgmt_soc/pll/pll.c
+++ b/verilog/dv/caravel/mgmt_soc/pll/pll.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/pll/pll_tb.v b/verilog/dv/caravel/mgmt_soc/pll/pll_tb.v
index be1b1c4..5c0316f 100644
--- a/verilog/dv/caravel/mgmt_soc/pll/pll_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/pll/pll_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/caravel/mgmt_soc/storage/storage.c b/verilog/dv/caravel/mgmt_soc/storage/storage.c
index 8096ec1..375b090 100644
--- a/verilog/dv/caravel/mgmt_soc/storage/storage.c
+++ b/verilog/dv/caravel/mgmt_soc/storage/storage.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/sysctrl/sysctrl.c b/verilog/dv/caravel/mgmt_soc/sysctrl/sysctrl.c
index b54414c..6c90647 100644
--- a/verilog/dv/caravel/mgmt_soc/sysctrl/sysctrl.c
+++ b/verilog/dv/caravel/mgmt_soc/sysctrl/sysctrl.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/sysctrl/sysctrl_tb.v b/verilog/dv/caravel/mgmt_soc/sysctrl/sysctrl_tb.v
index 743d58c..9912c3d 100644
--- a/verilog/dv/caravel/mgmt_soc/sysctrl/sysctrl_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/sysctrl/sysctrl_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/caravel/mgmt_soc/timer/timer.c b/verilog/dv/caravel/mgmt_soc/timer/timer.c
index 9ab89f0..5d1000c 100644
--- a/verilog/dv/caravel/mgmt_soc/timer/timer.c
+++ b/verilog/dv/caravel/mgmt_soc/timer/timer.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/timer2/timer2.c b/verilog/dv/caravel/mgmt_soc/timer2/timer2.c
index aa59530..ab06d99 100644
--- a/verilog/dv/caravel/mgmt_soc/timer2/timer2.c
+++ b/verilog/dv/caravel/mgmt_soc/timer2/timer2.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/mgmt_soc/uart/uart.c b/verilog/dv/caravel/mgmt_soc/uart/uart.c
index b83322b..0dea68a 100644
--- a/verilog/dv/caravel/mgmt_soc/uart/uart.c
+++ b/verilog/dv/caravel/mgmt_soc/uart/uart.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/stub.c b/verilog/dv/caravel/stub.c
index 28090ca..c89330c 100644
--- a/verilog/dv/caravel/stub.c
+++ b/verilog/dv/caravel/stub.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 void putchar(char c)
diff --git a/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c b/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c
index 7e45bf4..d570ee1 100644
--- a/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c
+++ b/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/user_proj_example/io_ports/io_ports_tb.v b/verilog/dv/caravel/user_proj_example/io_ports/io_ports_tb.v
index 4999fd4..b155c3d 100644
--- a/verilog/dv/caravel/user_proj_example/io_ports/io_ports_tb.v
+++ b/verilog/dv/caravel/user_proj_example/io_ports/io_ports_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/caravel/user_proj_example/la_test1/la_test1.c b/verilog/dv/caravel/user_proj_example/la_test1/la_test1.c
index a28540f..7bea99e 100644
--- a/verilog/dv/caravel/user_proj_example/la_test1/la_test1.c
+++ b/verilog/dv/caravel/user_proj_example/la_test1/la_test1.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/user_proj_example/la_test1/la_test1_tb.v b/verilog/dv/caravel/user_proj_example/la_test1/la_test1_tb.v
index d3d74d7..1fbf764 100644
--- a/verilog/dv/caravel/user_proj_example/la_test1/la_test1_tb.v
+++ b/verilog/dv/caravel/user_proj_example/la_test1/la_test1_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/caravel/user_proj_example/la_test2/la_test2.c b/verilog/dv/caravel/user_proj_example/la_test2/la_test2.c
index 2bd97f2..cb1f04d 100644
--- a/verilog/dv/caravel/user_proj_example/la_test2/la_test2.c
+++ b/verilog/dv/caravel/user_proj_example/la_test2/la_test2.c
@@ -12,6 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ * SPDX-License-Identifier: Apache-2.0
  */
 
 #include "../../defs.h"
diff --git a/verilog/dv/caravel/user_proj_example/la_test2/la_test2_tb.v b/verilog/dv/caravel/user_proj_example/la_test2/la_test2_tb.v
index 17adcea..f1dcb54 100644
--- a/verilog/dv/caravel/user_proj_example/la_test2/la_test2_tb.v
+++ b/verilog/dv/caravel/user_proj_example/la_test2/la_test2_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/dummy_slave.v b/verilog/dv/dummy_slave.v
index add6694..4b12665 100644
--- a/verilog/dv/dummy_slave.v
+++ b/verilog/dv/dummy_slave.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module dummy_slave(
diff --git a/verilog/dv/wb_utests/gpio_wb/gpio_wb_tb.v b/verilog/dv/wb_utests/gpio_wb/gpio_wb_tb.v
index 06b729b..a8eedda 100644
--- a/verilog/dv/wb_utests/gpio_wb/gpio_wb_tb.v
+++ b/verilog/dv/wb_utests/gpio_wb/gpio_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/wb_utests/intercon_wb/intercon_wb_tb.v b/verilog/dv/wb_utests/intercon_wb/intercon_wb_tb.v
index 0f1e1f3..a4eb60c 100644
--- a/verilog/dv/wb_utests/intercon_wb/intercon_wb_tb.v
+++ b/verilog/dv/wb_utests/intercon_wb/intercon_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/wb_utests/la_wb/la_wb_tb.v b/verilog/dv/wb_utests/la_wb/la_wb_tb.v
index 293f1fc..3ee98a6 100644
--- a/verilog/dv/wb_utests/la_wb/la_wb_tb.v
+++ b/verilog/dv/wb_utests/la_wb/la_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 `timescale 1 ns / 1 ps
diff --git a/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v b/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v
index d7d7772..44e8190 100644
--- a/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v
+++ b/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/wb_utests/mprj_ctrl/mprj_ctrl_tb.v b/verilog/dv/wb_utests/mprj_ctrl/mprj_ctrl_tb.v
index 8609ae2..f31dd45 100644
--- a/verilog/dv/wb_utests/mprj_ctrl/mprj_ctrl_tb.v
+++ b/verilog/dv/wb_utests/mprj_ctrl/mprj_ctrl_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/wb_utests/spi_sysctrl_wb/spi_sysctrl_wb_tb.v b/verilog/dv/wb_utests/spi_sysctrl_wb/spi_sysctrl_wb_tb.v
index 3c4d553..e78f723 100644
--- a/verilog/dv/wb_utests/spi_sysctrl_wb/spi_sysctrl_wb_tb.v
+++ b/verilog/dv/wb_utests/spi_sysctrl_wb/spi_sysctrl_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/wb_utests/spimemio_wb/spimemio_wb_tb.v b/verilog/dv/wb_utests/spimemio_wb/spimemio_wb_tb.v
index 3a3a15a..b200db6 100644
--- a/verilog/dv/wb_utests/spimemio_wb/spimemio_wb_tb.v
+++ b/verilog/dv/wb_utests/spimemio_wb/spimemio_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/wb_utests/storage_wb/storage_wb_tb.v b/verilog/dv/wb_utests/storage_wb/storage_wb_tb.v
index ee90a86..7f51648 100644
--- a/verilog/dv/wb_utests/storage_wb/storage_wb_tb.v
+++ b/verilog/dv/wb_utests/storage_wb/storage_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 // `define DBG
diff --git a/verilog/dv/wb_utests/sysctrl_wb/sysctrl_wb_tb.v b/verilog/dv/wb_utests/sysctrl_wb/sysctrl_wb_tb.v
index a7ae0d9..95128f3 100644
--- a/verilog/dv/wb_utests/sysctrl_wb/sysctrl_wb_tb.v
+++ b/verilog/dv/wb_utests/sysctrl_wb/sysctrl_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/dv/wb_utests/uart_wb/uart_wb_tb.v b/verilog/dv/wb_utests/uart_wb/uart_wb_tb.v
index debbc74..b95fc20 100644
--- a/verilog/dv/wb_utests/uart_wb/uart_wb_tb.v
+++ b/verilog/dv/wb_utests/uart_wb/uart_wb_tb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 
diff --git a/verilog/gl/DFFRAM.v b/verilog/gl/DFFRAM.v
index bc350da..5db928b 100644
--- a/verilog/gl/DFFRAM.v
+++ b/verilog/gl/DFFRAM.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/caravel.v b/verilog/gl/caravel.v
index c68e423..243ec45 100644
--- a/verilog/gl/caravel.v
+++ b/verilog/gl/caravel.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/chip_io.v b/verilog/gl/chip_io.v
index 9c6bb4a..2caf6b7 100644
--- a/verilog/gl/chip_io.v
+++ b/verilog/gl/chip_io.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/digital_pll.v b/verilog/gl/digital_pll.v
index 001afab..72b7592 100644
--- a/verilog/gl/digital_pll.v
+++ b/verilog/gl/digital_pll.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/gpio_control_block.v b/verilog/gl/gpio_control_block.v
index 7ef8381..66e4737 100644
--- a/verilog/gl/gpio_control_block.v
+++ b/verilog/gl/gpio_control_block.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/mgmt_core.v b/verilog/gl/mgmt_core.v
index 17ce650..833b929 100644
--- a/verilog/gl/mgmt_core.v
+++ b/verilog/gl/mgmt_core.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/mgmt_protect.v b/verilog/gl/mgmt_protect.v
index 40d5357..c7f34da 100644
--- a/verilog/gl/mgmt_protect.v
+++ b/verilog/gl/mgmt_protect.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/mgmt_protect_hv.v b/verilog/gl/mgmt_protect_hv.v
index 68a4634..1c18bf4 100644
--- a/verilog/gl/mgmt_protect_hv.v
+++ b/verilog/gl/mgmt_protect_hv.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/simple_por.v b/verilog/gl/simple_por.v
index ce4133b..082b567 100644
--- a/verilog/gl/simple_por.v
+++ b/verilog/gl/simple_por.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
diff --git a/verilog/gl/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v b/verilog/gl/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v
index 7dbac90..c070cc6 100644
--- a/verilog/gl/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v
+++ b/verilog/gl/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/storage.v b/verilog/gl/storage.v
index 5c4fe5f..743a4fc 100644
--- a/verilog/gl/storage.v
+++ b/verilog/gl/storage.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
diff --git a/verilog/gl/user_id_programming.v b/verilog/gl/user_id_programming.v
index 78dbd63..4cdbaf3 100644
--- a/verilog/gl/user_id_programming.v
+++ b/verilog/gl/user_id_programming.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/user_proj_example.v b/verilog/gl/user_proj_example.v
index 8267ec2..7a25bdb 100644
--- a/verilog/gl/user_proj_example.v
+++ b/verilog/gl/user_proj_example.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/gl/user_project_wrapper.v b/verilog/gl/user_project_wrapper.v
index 8fda509..ff8dc73 100644
--- a/verilog/gl/user_project_wrapper.v
+++ b/verilog/gl/user_project_wrapper.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Generated by Yosys 0.9+2406 (git sha1 347dd01, gcc 8.3.1 -fPIC -Os) */
 
diff --git a/verilog/rtl/DFFRAM.v b/verilog/rtl/DFFRAM.v
index 615dfaa..55a03a2 100644
--- a/verilog/rtl/DFFRAM.v
+++ b/verilog/rtl/DFFRAM.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 `ifndef USE_CUSTOM_DFFRAM
diff --git a/verilog/rtl/DFFRAMBB.v b/verilog/rtl/DFFRAMBB.v
index dd2f71d..defb258 100644
--- a/verilog/rtl/DFFRAMBB.v
+++ b/verilog/rtl/DFFRAMBB.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /*
diff --git a/verilog/rtl/caravel_clocking.v b/verilog/rtl/caravel_clocking.v
index e187d47..0235f19 100644
--- a/verilog/rtl/caravel_clocking.v
+++ b/verilog/rtl/caravel_clocking.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 // This routine synchronizes the 
diff --git a/verilog/rtl/chip_io.v b/verilog/rtl/chip_io.v
index 55b5832..d45af63 100644
--- a/verilog/rtl/chip_io.v
+++ b/verilog/rtl/chip_io.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 // `default_nettype none
 module chip_io(
diff --git a/verilog/rtl/clock_div.v b/verilog/rtl/clock_div.v
index b29ac94..8535243 100644
--- a/verilog/rtl/clock_div.v
+++ b/verilog/rtl/clock_div.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 /* Integer-N clock divider */
 `default_nettype none
diff --git a/verilog/rtl/convert_gpio_sigs.v b/verilog/rtl/convert_gpio_sigs.v
index c9aeefa..b197c7d 100644
--- a/verilog/rtl/convert_gpio_sigs.v
+++ b/verilog/rtl/convert_gpio_sigs.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /* Convert the standard set of GPIO signals: input, output, output_enb,
diff --git a/verilog/rtl/counter_timer_high.v b/verilog/rtl/counter_timer_high.v
index 81c8b0e..235e740 100755
--- a/verilog/rtl/counter_timer_high.v
+++ b/verilog/rtl/counter_timer_high.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /* Simple 32-bit counter-timer for Caravel. */
diff --git a/verilog/rtl/counter_timer_low.v b/verilog/rtl/counter_timer_low.v
index 7dd30bc..074fab4 100755
--- a/verilog/rtl/counter_timer_low.v
+++ b/verilog/rtl/counter_timer_low.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /* Simple 32-bit counter-timer for Caravel. */
diff --git a/verilog/rtl/defines.v b/verilog/rtl/defines.v
index eb99a7b..508ef4e 100644
--- a/verilog/rtl/defines.v
+++ b/verilog/rtl/defines.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 // Global parameters
diff --git a/verilog/rtl/digital_pll.v b/verilog/rtl/digital_pll.v
index 395a207..3458349 100644
--- a/verilog/rtl/digital_pll.v
+++ b/verilog/rtl/digital_pll.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 // Digital PLL (ring oscillator + controller)
diff --git a/verilog/rtl/digital_pll_controller.v b/verilog/rtl/digital_pll_controller.v
index 8014131..3b745c7 100644
--- a/verilog/rtl/digital_pll_controller.v
+++ b/verilog/rtl/digital_pll_controller.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 // (True) digital PLL
diff --git a/verilog/rtl/gpio_control_block.v b/verilog/rtl/gpio_control_block.v
index 109dd9a..f4a92bb 100644
--- a/verilog/rtl/gpio_control_block.v
+++ b/verilog/rtl/gpio_control_block.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /* 
diff --git a/verilog/rtl/gpio_wb.v b/verilog/rtl/gpio_wb.v
index a89464b..bcd4a22 100644
--- a/verilog/rtl/gpio_wb.v
+++ b/verilog/rtl/gpio_wb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module gpio_wb # (
diff --git a/verilog/rtl/housekeeping_spi.v b/verilog/rtl/housekeeping_spi.v
index 73a579a..c4bb78e 100644
--- a/verilog/rtl/housekeeping_spi.v
+++ b/verilog/rtl/housekeeping_spi.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 //-------------------------------------
diff --git a/verilog/rtl/la_wb.v b/verilog/rtl/la_wb.v
index 1d9910d..cec862f 100644
--- a/verilog/rtl/la_wb.v
+++ b/verilog/rtl/la_wb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module la_wb # (
diff --git a/verilog/rtl/mem_wb.v b/verilog/rtl/mem_wb.v
index 23c7b22..10fe839 100644
--- a/verilog/rtl/mem_wb.v
+++ b/verilog/rtl/mem_wb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module mem_wb (
diff --git a/verilog/rtl/mgmt_core.v b/verilog/rtl/mgmt_core.v
index b706079..f88155c 100644
--- a/verilog/rtl/mgmt_core.v
+++ b/verilog/rtl/mgmt_core.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module mgmt_core (
diff --git a/verilog/rtl/mgmt_protect.v b/verilog/rtl/mgmt_protect.v
index 2e03158..306de34 100644
--- a/verilog/rtl/mgmt_protect.v
+++ b/verilog/rtl/mgmt_protect.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /*----------------------------------------------------------------------*/
diff --git a/verilog/rtl/mgmt_protect_hv.v b/verilog/rtl/mgmt_protect_hv.v
index f2ea418..99e4baf 100644
--- a/verilog/rtl/mgmt_protect_hv.v
+++ b/verilog/rtl/mgmt_protect_hv.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /*----------------------------------------------------------------------*/
diff --git a/verilog/rtl/mprj_ctrl.v b/verilog/rtl/mprj_ctrl.v
index b7f02da..c9648ab 100644
--- a/verilog/rtl/mprj_ctrl.v
+++ b/verilog/rtl/mprj_ctrl.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module mprj_ctrl_wb #(
diff --git a/verilog/rtl/mprj_io.v b/verilog/rtl/mprj_io.v
index 34fb303..16a49a7 100644
--- a/verilog/rtl/mprj_io.v
+++ b/verilog/rtl/mprj_io.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 // `default_nettype none
 module mprj_io #(
diff --git a/verilog/rtl/pads.v b/verilog/rtl/pads.v
index 25bc89f..6813066 100644
--- a/verilog/rtl/pads.v
+++ b/verilog/rtl/pads.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 // `default_nettype none
 `ifndef TOP_ROUTING 
diff --git a/verilog/rtl/ring_osc2x13.v b/verilog/rtl/ring_osc2x13.v
index c371e34..a96167f 100644
--- a/verilog/rtl/ring_osc2x13.v
+++ b/verilog/rtl/ring_osc2x13.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 // Tunable ring oscillator---synthesizable (physical) version.
diff --git a/verilog/rtl/simple_por.v b/verilog/rtl/simple_por.v
index faf7ffb..04bbafe 100644
--- a/verilog/rtl/simple_por.v
+++ b/verilog/rtl/simple_por.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 `timescale 1 ns / 1 ps
diff --git a/verilog/rtl/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v b/verilog/rtl/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v
index 71ee6b5..1ec81ef 100644
--- a/verilog/rtl/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v
+++ b/verilog/rtl/sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 module sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped (
 	X    ,
diff --git a/verilog/rtl/sram_1rw1r_32_256_8_sky130.v b/verilog/rtl/sram_1rw1r_32_256_8_sky130.v
index 86985ec..5840f13 100644
--- a/verilog/rtl/sram_1rw1r_32_256_8_sky130.v
+++ b/verilog/rtl/sram_1rw1r_32_256_8_sky130.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 // OpenRAM SRAM model
diff --git a/verilog/rtl/storage.v b/verilog/rtl/storage.v
index e671cc5..b519e0d 100644
--- a/verilog/rtl/storage.v
+++ b/verilog/rtl/storage.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
  
diff --git a/verilog/rtl/storage_bridge_wb.v b/verilog/rtl/storage_bridge_wb.v
index 3e46251..23c81e2 100644
--- a/verilog/rtl/storage_bridge_wb.v
+++ b/verilog/rtl/storage_bridge_wb.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module storage_bridge_wb (
diff --git a/verilog/rtl/sysctrl.v b/verilog/rtl/sysctrl.v
index 93f2dcb..8a694aa 100644
--- a/verilog/rtl/sysctrl.v
+++ b/verilog/rtl/sysctrl.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module sysctrl_wb #(
diff --git a/verilog/rtl/user_id_programming.v b/verilog/rtl/user_id_programming.v
index f25d08f..41fd248 100644
--- a/verilog/rtl/user_id_programming.v
+++ b/verilog/rtl/user_id_programming.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 // This module represents an unprogrammed mask revision
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v
index be1cadb..ec99e66 100644
--- a/verilog/rtl/user_proj_example.v
+++ b/verilog/rtl/user_proj_example.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /*
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 6ea1eef..2e5b525 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 /*
diff --git a/verilog/rtl/wb_intercon.v b/verilog/rtl/wb_intercon.v
index e0c7358..e008406 100644
--- a/verilog/rtl/wb_intercon.v
+++ b/verilog/rtl/wb_intercon.v
@@ -11,6 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
 module wb_intercon #(