update
diff --git a/README.md b/README.md
index b155839..c9fd837 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,20 @@
+<!---
+# SPDX-FileCopyrightText: 2020 RIOS Lab
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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
+-->
+
 # RIOS Lab GreenRio1.0 RISC-V Processor GF180 Version
 
 [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![UPRJ_CI](https://github.com/efabless/caravel_project_example/actions/workflows/user_project_ci.yml/badge.svg)](https://github.com/efabless/caravel_project_example/actions/workflows/user_project_ci.yml) [![Caravel Build](https://github.com/efabless/caravel_project_example/actions/workflows/caravel_build.yml/badge.svg)](https://github.com/efabless/caravel_project_example/actions/workflows/caravel_build.yml)
diff --git a/verilog/base.sdc b/verilog/base.sdc
index 0b64f49..10e4ed4 100755
--- a/verilog/base.sdc
+++ b/verilog/base.sdc
@@ -1,3 +1,19 @@
+# SPDX-FileCopyrightText: 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http:#www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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 caravel global defines for the number of the user project IO pads 
 ###############################################################################
 # Created by write_sdc
 # Wed Nov 10 17:01:46 2021
diff --git a/verilog/rtl/defines.v b/verilog/rtl/defines.v
index 44a29a0..0a7b96c 100644
--- a/verilog/rtl/defines.v
+++ b/verilog/rtl/defines.v
@@ -50,6 +50,22 @@
 
 // not really parameterized but just to easily keep track of the number
 // of ram_block across different modules
+// SPDX-FileCopyrightText: 2020 Efabless Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 caravel global defines for the number of the user project IO pads 
 `define RAM_BLOCKS 1
 
 // Clock divisor default value
diff --git a/verilog/rtl/user_defines.v b/verilog/rtl/user_defines.v
index 5f1ba27..0954f62 100644
--- a/verilog/rtl/user_defines.v
+++ b/verilog/rtl/user_defines.v
@@ -25,20 +25,18 @@
 // Authoritive source of these MODE defs is: caravel/verilog/rtl/user_defines.v
 // Useful GPIO mode values.  These match the names used in defs.h.
 //
-`define GPIO_MODE_MGMT_STD_INPUT_NOPULL    13'h0403
-`define GPIO_MODE_MGMT_STD_INPUT_PULLDOWN  13'h0c01
-`define GPIO_MODE_MGMT_STD_INPUT_PULLUP    13'h0801
-`define GPIO_MODE_MGMT_STD_OUTPUT          13'h1809
-`define GPIO_MODE_MGMT_STD_BIDIRECTIONAL   13'h1801
-`define GPIO_MODE_MGMT_STD_ANALOG          13'h000b
 
-`define GPIO_MODE_USER_STD_INPUT_NOPULL    13'h0402
-`define GPIO_MODE_USER_STD_INPUT_PULLDOWN  13'h0c00
-`define GPIO_MODE_USER_STD_INPUT_PULLUP    13'h0800
-`define GPIO_MODE_USER_STD_OUTPUT          13'h1808
-`define GPIO_MODE_USER_STD_BIDIRECTIONAL   13'h1800
-`define GPIO_MODE_USER_STD_OUT_MONITORED   13'h1802
-`define GPIO_MODE_USER_STD_ANALOG          13'h000a
+`define GPIO_MODE_MGMT_STD_INPUT_NOPULL    10'h007
+`define GPIO_MODE_MGMT_STD_INPUT_PULLDOWN  10'h047
+`define GPIO_MODE_MGMT_STD_INPUT_PULLUP    10'h087
+`define GPIO_MODE_MGMT_STD_OUTPUT          10'h00b
+`define GPIO_MODE_MGMT_STD_BIDIRECTIONAL   10'h009
+
+`define GPIO_MODE_USER_STD_INPUT_NOPULL    10'h006
+`define GPIO_MODE_USER_STD_INPUT_PULLDOWN  10'h046
+`define GPIO_MODE_USER_STD_INPUT_PULLUP    10'h086
+`define GPIO_MODE_USER_STD_OUTPUT          10'h00a
+`define GPIO_MODE_USER_STD_BIDIRECTIONAL   10'h008
 
 // The power-on configuration for GPIO 0 to 4 is fixed and cannot be
 // modified (allowing the SPI and debug to always be accessible unless
@@ -52,41 +50,41 @@
 // up in a state that can be used immediately without depending on
 // the management SoC to run a startup program to configure the GPIOs.
 
-`define USER_CONFIG_GPIO_5_INIT  `GPIO_MODE_MGMT_STD_INPUT_NOPULL
-`define USER_CONFIG_GPIO_6_INIT  `GPIO_MODE_MGMT_STD_INPUT_PULLDOWN
-`define USER_CONFIG_GPIO_7_INIT  `GPIO_MODE_MGMT_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_8_INIT  `GPIO_MODE_MGMT_STD_OUTPUT 
-`define USER_CONFIG_GPIO_9_INIT  `GPIO_MODE_MGMT_STD_BIDIRECTIONAL
-`define USER_CONFIG_GPIO_10_INIT `GPIO_MODE_MGMT_STD_ANALOG
-`define USER_CONFIG_GPIO_11_INIT `GPIO_MODE_USER_STD_INPUT_NOPULL
-`define USER_CONFIG_GPIO_12_INIT `GPIO_MODE_USER_STD_INPUT_PULLDOWN
-`define USER_CONFIG_GPIO_13_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP
+`define USER_CONFIG_GPIO_5_INIT  `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_6_INIT  `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_7_INIT  `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_8_INIT  `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_9_INIT  `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_10_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_11_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_12_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_13_INIT `GPIO_MODE_INVALID
 
 // Configurations of GPIO 14 to 24 are used on caravel but not caravan.
-`define USER_CONFIG_GPIO_14_INIT `GPIO_MODE_USER_STD_OUTPUT 
-`define USER_CONFIG_GPIO_15_INIT `GPIO_MODE_USER_STD_BIDIRECTIONAL
-`define USER_CONFIG_GPIO_16_INIT `GPIO_MODE_USER_STD_OUT_MONITORED
-`define USER_CONFIG_GPIO_17_INIT `GPIO_MODE_USER_STD_ANALOG 
-`define USER_CONFIG_GPIO_18_INIT `GPIO_MODE_MGMT_STD_INPUT_NOPULL
-`define USER_CONFIG_GPIO_19_INIT `GPIO_MODE_MGMT_STD_INPUT_PULLDOWN 
-`define USER_CONFIG_GPIO_20_INIT `GPIO_MODE_MGMT_STD_BIDIRECTIONAL
-`define USER_CONFIG_GPIO_21_INIT `GPIO_MODE_MGMT_STD_ANALOG
-`define USER_CONFIG_GPIO_22_INIT `GPIO_MODE_USER_STD_INPUT_PULLDOWN 
-`define USER_CONFIG_GPIO_23_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_24_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
+`define USER_CONFIG_GPIO_14_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_15_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_16_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_17_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_18_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_19_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_20_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_21_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_22_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_23_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_24_INIT `GPIO_MODE_INVALID
 
-`define USER_CONFIG_GPIO_25_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_26_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_27_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_28_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_29_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_30_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_31_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_32_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_33_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_34_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_35_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_36_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
-`define USER_CONFIG_GPIO_37_INIT `GPIO_MODE_USER_STD_INPUT_PULLUP 
+`define USER_CONFIG_GPIO_25_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_26_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_27_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_28_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_29_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_30_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_31_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_32_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_33_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_34_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_35_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_36_INIT `GPIO_MODE_INVALID
+`define USER_CONFIG_GPIO_37_INIT `GPIO_MODE_INVALID
 
 `endif // __USER_DEFINES_H
\ No newline at end of file
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v
index 26081e9..f7f2360 100644
--- a/verilog/rtl/user_proj_example.v
+++ b/verilog/rtl/user_proj_example.v
@@ -39,8 +39,8 @@
     parameter BITS = 32
 )(
 `ifdef USE_POWER_PINS
-    inout vccd1,	// User area 1 1.8V supply
-    inout vssd1,	// User area 1 digital ground
+    inout vdd,	// User area 1 1.8V supply
+    inout vss,	// User area 1 digital ground
 `endif
 
     // Wishbone Slave ports (WB MI A)
@@ -56,9 +56,9 @@
     output [31:0] wbs_dat_o,
 
     // Logic Analyzer Signals
-    input  [127:0] la_data_in,
-    output [127:0] la_data_out,
-    input  [127:0] la_oenb,
+    input  [63:0] la_data_in,
+    output [63:0] la_data_out,
+    input  [63:0] la_oenb,
 
     // IOs
     input  [`MPRJ_IO_PADS-1:0] io_in,
@@ -162,4 +162,4 @@
     end
 
 endmodule
-`default_nettype wire
+`default_nettype wire
\ No newline at end of file
diff --git a/verilog/rtl_sram_out_cache/hehe/src/base.sdc b/verilog/rtl_sram_out_cache/hehe/src/base.sdc
index 837fb81..e3f6119 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/base.sdc
+++ b/verilog/rtl_sram_out_cache/hehe/src/base.sdc
@@ -1,3 +1,18 @@
+# SPDX-FileCopyrightText: 2022 RIOSLab
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http:#www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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
 ###############################################################################
 # Created by write_sdc
 # Wed Nov 10 17:01:46 2021
diff --git a/verilog/rtl_sram_out_cache/hehe/src/cache/l1icache_32.v b/verilog/rtl_sram_out_cache/hehe/src/cache/l1icache_32.v
index 1774b55..2e54145 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/cache/l1icache_32.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/cache/l1icache_32.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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  l1icache_32 
 #(
     parameter VIRTUAL_ADDR_LEN = 32,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/cache/params.vh b/verilog/rtl_sram_out_cache/hehe/src/cache/params.vh
index b8deb41..99cb6d2 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/cache/params.vh
+++ b/verilog/rtl_sram_out_cache/hehe/src/cache/params.vh
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 PARAMS_VH
 `define PARAMS_VH
 // MACROS
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/core_empty.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/core_empty.v
index d30e30c..9d16bff 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/core_empty.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/core_empty.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 "params.vh"
 module core_empty #(
     parameter XLEN = 64,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/ac.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/ac.v
index b8ed12e..b2b1eed 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/ac.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/ac.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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
 /////////////////////////
 // Author: Peichen Guo //
 //    RIOS Lab work    //
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/agu.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/agu.v
index 1b7c0ed..70ceb3b 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/agu.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/agu.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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
 /////////////////////////
 // Author: Peichen Guo //
 //    RIOS Lab work    //
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/cu.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/cu.v
index 7a80177..bafa4a2 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/cu.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/cu.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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
 /////////////////////////
 // Author: Peichen Guo //
 //    RIOS Lab work    //
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/lr.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/lr.v
index 567cdf2..c4411bc 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/lr.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/lr.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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
 /////////////////////////
 // Author: Peichen Guo //
 //    RIOS Lab work    //
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/lsq.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/lsq.v
index 5d069fe..56a276c 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/lsq.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/lsq.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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
 /////////////////////////
 // Author: Peichen Guo //
 //    RIOS Lab work    //
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/nblsu.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/nblsu.v
index 635f952..9b9c39a 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/nblsu.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/nblsu.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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
 /////////////////////////
 // Author: Peichen Guo //
 //    RIOS Lab work    //
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/params.vh b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/params.vh
index b8deb41..99cb6d2 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/params.vh
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/lsu/params.vh
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 PARAMS_VH
 `define PARAMS_VH
 // MACROS
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/leaf_pte_check.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/leaf_pte_check.v
deleted file mode 100755
index 8225b3e..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/leaf_pte_check.v
+++ /dev/null
@@ -1,83 +0,0 @@
-`include "../params.vh"
-module leaf_pte_check
-    #(
-    parameter PTE_SIZE_IN_BIT = 64
-)
-    (
-
-    input [1:0] access_mode_i,
-    input csr_sstatus_mxr_i,
-    input csr_sstatus_sum_i,
-    input [1:0] priviledge_level_i,
-    input [1:0] page_table_level_i,
-
-    input pte_active_i,
-    input [PTE_SIZE_IN_BIT - 1 : 0] pte_i,
-    input pte_is_leaf_i,
-
-    output pte_valid_o,
-    output page_fault_valid_o
-);
-    reg page_fault_valid;
-
-
-    initial begin
-        page_fault_valid = 0;
-    end
-
-
-    always @(*) begin
-        if (pte_active_i && pte_is_leaf_i) begin
-            // Step 5: Check access mode
-            if ((access_mode_i == ACCESS_MODE_READ)
-            && (!pte_i[`pte_r] && !(pte_i[`pte_x] && csr_sstatus_mxr_i)))begin
-                page_fault_valid = 1;
-                $display("cause : 1");
-            end
-            else if ((access_mode_i == ACCESS_MODE_WRITE)
-            && (!pte_i[`pte_w]))begin
-                page_fault_valid = 1;
-                $display("cause : 2");
-            end
-            else if ((access_mode_i == ACCESS_MODE_EXECUTE)
-            && (!pte_i[`pte_x]))begin
-                page_fault_valid = 1;
-                $display("cause : 3");
-            end
-
-
-            // Step 5: Check priviledge level
-            else if ((priviledge_level_i == U_MODE) && !pte_i[`pte_u])begin
-                page_fault_valid = 1;
-                $display("cause : 4");
-            end
-            else if ((priviledge_level_i == S_MODE) && pte_i[`pte_u] && !csr_sstatus_sum_i)begin
-                page_fault_valid = 1;
-                $display("cause : 5");
-            end
-
-            // Step 6: misaligned superpage check
-            else if (((pte_i[`pte_ppn0] != 0) && (page_table_level_i > 0)) ||
-            ((pte_i[`pte_ppn1]!= 0) && (page_table_level_i > 1)))begin
-                page_fault_valid = 1;
-                $display("cause : 6");
-            end
-
-
-            // Step 7: 
-            else if (!pte_i[`pte_a] || ((access_mode_i == ACCESS_MODE_WRITE) && !pte_i[`pte_d]))begin
-                page_fault_valid = 1;
-                $display("cause : 7");
-            end
-            else
-                page_fault_valid = 0;
-
-        end else begin
-            page_fault_valid = 0;
-        end
-    end
-
-    assign pte_valid_o = ~page_fault_valid;
-    assign page_fault_valid_o = page_fault_valid;
-
-endmodule : leaf_pte_check
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/mmu_sv39.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/mmu_sv39.v
deleted file mode 100755
index 10b2dd4..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/mmu_sv39.v
+++ /dev/null
@@ -1,342 +0,0 @@
-
-`include "../params.vh"
-module mmu_sv39
-    #(
-    parameter PTE_SIZE = 8,
-    parameter PTE_SIZE_IN_BIT = 64,
-    parameter PAGE_TABLE_LEVELS = 3,
-
-    parameter VIRTUAL_ADDR_LEN_SV39 = 39,
-    parameter PHYSICAL_ADDR_LEN_SV39 = 56,
-    parameter PAGE_OFFSET_WIDTH = 12,
-
-    parameter VPN_WIDTH = 27,
-    parameter VPN_SLICE_WIDTH = 9,
-    parameter PPN_WIDTH = 44,
-    parameter PPN_SLICE_0_WIDTH = 9,
-    parameter PPN_SLICE_1_WIDTH = 9,
-    parameter PPN_SLICE_2_WIDTH = 26
-)
-    (
-    input                                   clk,
-    input                                   rstn,
-
-    input                                   flush_i,
-
-    input [63:0]                            csr_satp_i,
-    input [63:0]                            csr_mstatus_i,
-    input [1:0]                             priviledge_level_i,
-
-    input [1:0]                             access_mode_i,
-
-    // AGU -> MMU
-    input                                   lsu_req_valid_i,
-    input [VIRTUAL_ADDR_LEN_SV39 - 1 : 0]   lsu_req_addr_i,
-    output                                  lsu_req_ready_o,
-    // MMU -> AGU
-    output                                  lsu_resp_valid_o,
-    output [PHYSICAL_ADDR_LEN_SV39 - 1 : 0] lsu_resp_addr_o,
-    input                                   lsu_resp_ready_i,
-
-    // MMU -> Cache
-    output                                  ptw_req_valid_o,
-    output [PHYSICAL_ADDR_LEN_SV39 - 1 : 0] ptw_req_addr_o,
-    output [5:0]                            ptw_req_len_o,
-    input                                   ptw_req_ready_i,
-    // Cache -> MMU
-    input                                   ptw_resp_valid_i,
-    input [PTE_SIZE_IN_BIT - 1 : 0]         ptw_resp_pte_i,
-    output                                  ptw_resp_ready_o,
-
-    // Fault
-    output                                  page_fault_valid_o,
-    output [3:0]                            page_fault_cause_o
-);
-    initial begin
-        $dumpfile("wave.vcd");
-        $dumpvars;
-        $dumpon;
-        $dumpall;
-        $dumpflush;
-    end
-
-    // M0 Stage
-    // get input data from LSU/FETCH/CACHE
-
-    // Control signal
-    // LSU
-    wire m0_lsu_clk_en, m0_lsu_ready, m0_lsu_valid;
-    // CACHE
-    wire m0_ptw_clk_en, m0_ptw_ready, m0_ptw_valid;
-    // Payload
-    // LSU
-    reg                                                 m0_lsu_valid_d, m0_lsu_valid_q;
-    reg [1:0]                                           m0_priviledge_level_d, m0_priviledge_level_q;
-    reg                                                 m0_mprv_d, m0_mprv_q;
-    reg [1:0]                                           m0_mpp_d, m0_mpp_q;
-    reg                                                 m0_smxr_d, m0_smxr_q;
-    reg                                                 m0_ssum_d, m0_ssum_q;
-    reg [SATP_PPN_WIDTH - 1 : 0]                        m0_satp_ppn_d, m0_satp_ppn_q;
-    reg [SATP_ASID_WIDTH - 1 : 0]                       m0_satp_asid_d, m0_satp_asid_q;
-    reg [SATP_MODE_WIDTH - 1 : 0]                       m0_satp_mode_d, m0_satp_mode_q;
-    reg [VIRTUAL_ADDR_LEN_SV39 - 1 : 0]                 m0_virtual_address_d, m0_virtual_address_q;
-    reg [1:0]                                           m0_access_mode_d, m0_access_mode_q;
-    reg [1:0]                                           m0_init_page_table_level_d, m0_init_page_table_level_q;
-    // CACHE
-    reg                                                 m0_ptw_valid_d, m0_ptw_valid_q;
-    reg [PTE_SIZE_IN_BIT - 1 : 0]                       m0_ptw_pte_d, m0_ptw_pte_q;
-    reg [1:0]                                           m0_ptw_page_table_level_d, m0_ptw_page_table_level_q;
-
-
-    // M1 Stage
-    // Process and generate output
-
-    // Control signal
-    wire m1_lsu_clk_en, m1_lsu_valid, m1_lsu_ready;
-    wire m1_ptw_clk_en, m1_ptw_valid, m1_ptw_ready;
-
-    wire m1_stall_m0_lsu, m1_stall_m0_ptw;
-    wire m1_serve_ptw, m1_serve_lsu;
-
-    // Payload
-    reg                                     m1_lsu_valid_d, m1_lsu_valid_q;
-    reg                                     m1_ptw_valid_d, m1_ptw_valid_q;
-    reg [PHYSICAL_ADDR_LEN_SV39 - 1 : 0]    m1_lsu_resp_addr_d, m1_lsu_resp_addr_q;
-    reg [PHYSICAL_ADDR_LEN_SV39 - 1 : 0]    m1_ptw_req_addr_d, m1_ptw_req_addr_q;
-    reg                                     m1_page_fault_valid_d, m1_page_fault_valid_q;
-    reg [3:0]                               m1_page_fault_cause_d, m1_page_fault_cause_q;
-
-    // Intermediate register
-    reg [1:0]                               m1_page_table_level;
-    reg [PPN_SLICE_2_WIDTH -1 : 0]          m1_ppn2;
-    reg [PPN_SLICE_1_WIDTH -1 : 0]          m1_ppn1;
-    reg [PPN_SLICE_0_WIDTH -1 : 0]          m1_ppn0;
-    reg [PAGE_OFFSET_WIDTH -1 : 0]          m1_pgoff;
-
-    wire m1_req_next_level_pte;
-    wire m1_pte_is_leaf;
-    wire m1_pte_valid_leaf;
-
-    wire m1_page_fault_valid_illegal_page_table_level;
-    wire m1_page_fault_valid_illegal_req;
-    wire m1_page_fault_valid_invalid_pte;
-    wire m1_page_fault_valid_inaccessable_leaf_pte;
-
-
-    // Status management
-    reg m0_lsu_active_d, m0_lsu_active_q;
-    reg m0_ptw_active_d, m0_ptw_active_q;
-
-    assign m0_lsu_active_d = m0_ptw_valid ? 1'b0 : (m0_lsu_valid ? 1'b1 : m0_lsu_active_q);
-    assign m0_ptw_active_d = (m1_pte_is_leaf | m1_page_fault_valid_d) ? 1'b0: (m0_ptw_valid ? 1'b1 : m0_ptw_active_q);
-    
-
-
-    // M0 Stage
-    // Output
-    assign lsu_req_ready_o      = m0_lsu_ready & m0_ptw_ready;
-    assign ptw_resp_ready_o     = m0_ptw_ready;
-
-    // LSU
-    // Control
-    assign m0_lsu_clk_en            = m0_lsu_ready & m0_lsu_valid;
-    assign m0_lsu_ready             = ~m1_stall_m0_lsu;
-    assign m0_lsu_valid             = m0_lsu_ready & lsu_req_valid_i;
-    // Payload
-    assign m0_lsu_valid_d           = ~flush_i & (m1_stall_m0_lsu ? m0_lsu_valid_q : m0_lsu_clk_en);
-    assign m0_priviledge_level_d    = priviledge_level_i;
-    assign m0_mprv_d                = csr_mstatus_i[17];
-    assign m0_mpp_d                 = csr_mstatus_i[12:11];
-    assign m0_smxr_d                = csr_mstatus_i[`sstatus_mxr];
-    assign m0_ssum_d                = csr_mstatus_i[`sstatus_sum];
-    assign m0_satp_ppn_d            = csr_satp_i[SATP_PPN_WIDTH - 1 : 0];
-    assign m0_satp_asid_d           = csr_satp_i[SATP_ASID_WIDTH + SATP_PPN_WIDTH - 1 : SATP_PPN_WIDTH];
-    assign m0_satp_mode_d           = csr_satp_i[XLEN - 1 : XLEN - SATP_MODE_WIDTH];
-    assign m0_virtual_address_d     = lsu_req_addr_i;
-    assign m0_access_mode_d         = access_mode_i;
-    assign m0_init_page_table_level_d    = PAGE_TABLE_LEVELS - 1;
-    // CACHE
-    // Control
-    assign m0_ptw_clk_en            = m0_ptw_ready & m0_ptw_valid;
-    assign m0_ptw_ready             = ~m1_stall_m0_ptw;
-    assign m0_ptw_valid             = m0_ptw_ready & ptw_resp_valid_i;
-    // Payload
-    assign m0_ptw_valid_d           = ~flush_i & (m1_stall_m0_ptw ? m0_ptw_valid_q : m0_ptw_clk_en);
-    assign m0_ptw_pte_d                 = ptw_resp_pte_i;
-
-    assign m0_ptw_page_table_level_d    = m1_serve_ptw ? ((m0_ptw_page_table_level_q == 0) ? 0 : m0_ptw_page_table_level_q - 1) : m0_init_page_table_level_q;
-
-
-    // M1 Stage
-
-    // Output
-    assign lsu_resp_valid_o     = m1_lsu_valid_q & ~m1_page_fault_valid_q;
-    assign lsu_resp_addr_o      = m1_lsu_resp_addr_q;
-
-    assign ptw_req_valid_o      = m1_ptw_valid_q & ~m1_page_fault_valid_q;
-    assign ptw_req_addr_o       = m1_ptw_req_addr_q;
-    assign ptw_req_len_o        = PTE_SIZE;
-
-    assign page_fault_valid_o   = m1_page_fault_valid_q;
-    assign page_fault_cause_o   = m1_page_fault_cause_q;
-
-
-    // Internal logic
-
-
-    // If ptw is activated, lsu requeset should be blocked
-    // Priority: ptw > lsu
-    assign m1_stall_m0_lsu = m0_lsu_valid_q & (~m1_ptw_ready | ~m1_lsu_ready | m1_serve_ptw);
-    assign m1_stall_m0_ptw = m1_serve_ptw & (~m1_ptw_ready | ~m1_lsu_ready);
-
-    assign m1_lsu_clk_en = m1_lsu_valid & m1_lsu_ready;
-    // @FIXME
-    assign m1_lsu_valid = m1_lsu_ready & ((m0_ptw_valid_q & m1_pte_is_leaf) | m1_page_fault_valid_d);
-    assign m1_lsu_ready = lsu_resp_ready_i;
-
-    assign m1_ptw_clk_en = m1_ptw_valid & m1_ptw_ready;
-    // @FIXME
-    assign m1_ptw_valid = ptw_req_ready_i & ((m0_lsu_valid_q | m0_ptw_valid_q) & m1_req_next_level_pte | m1_page_fault_valid_d);
-    assign m1_ptw_ready = ptw_req_ready_i;
-
-    assign m1_lsu_valid_d = ~flush_i & m1_lsu_valid;
-    assign m1_ptw_valid_d = ~flush_i & m1_ptw_valid;
-
-
-    assign m1_serve_ptw         = m0_ptw_active_q;
-    assign m1_serve_lsu         = m0_lsu_active_q;
-    assign m1_page_table_level  = m1_serve_lsu ? m0_init_page_table_level_q : m0_ptw_page_table_level_q;
-
-    // Page fault logic
-    assign m1_page_fault_valid_illegal_req              = m1_serve_lsu & (m0_satp_ppn_q == 0);
-    assign m1_page_fault_valid_illegal_page_table_level = (m1_page_table_level == 0) & m1_req_next_level_pte;
-
-    assign m1_page_fault_valid_d = m1_page_fault_valid_inaccessable_leaf_pte | m1_page_fault_valid_invalid_pte | m1_page_fault_valid_illegal_req | m1_page_fault_valid_illegal_page_table_level;
-    assign m1_page_fault_cause_d = (m0_access_mode_q == ACCESS_MODE_READ) ? EXCEPTION_LOAD_PAGE_FAULT : ((m0_access_mode_q == ACCESS_MODE_WRITE) ? EXCEPTION_STORE_PAGE_FAULT : EXCEPTION_INSTR_PAGE_FAULT);
-
-    // Generate lsu response physical address
-    assign m1_ppn2              = ((m1_page_table_level <= 2) && m1_serve_ptw) ? m0_ptw_pte_q[`pte_ppn2] : {17'b0, m0_virtual_address_q[`va_vpn2]};
-    assign m1_ppn1              = ((m1_page_table_level <= 1) && m1_serve_ptw) ? m0_ptw_pte_q[`pte_ppn1] : m0_virtual_address_q[`va_vpn1];
-    assign m1_ppn0              = ((m1_page_table_level <= 0) && m1_serve_ptw) ? m0_ptw_pte_q[`pte_ppn0] : m0_virtual_address_q[`va_vpn0];
-    assign m1_pgoff             = m0_virtual_address_q[PAGE_OFFSET_WIDTH - 1 :0];
-    assign m1_lsu_resp_addr_d   = {m1_ppn2, m1_ppn1, m1_ppn0, m1_pgoff};
-
-    // Generate ptw requeset ppn
-    ptw #(
-    .PTE_SIZE                   (PTE_SIZE),
-    .PTE_SIZE_IN_BIT            (PTE_SIZE_IN_BIT),
-    .VIRTUAL_ADDR_LEN_SV39      (VIRTUAL_ADDR_LEN_SV39),
-    .PHYSICAL_ADDR_LEN_SV39     (PHYSICAL_ADDR_LEN_SV39),
-    .PAGE_OFFSET_WIDTH          (PAGE_OFFSET_WIDTH),
-    .VPN_SLICE_WIDTH            (VPN_SLICE_WIDTH)
-    ) ptw (
-        .ptw_enable_i           (m1_serve_ptw | m1_serve_lsu),
-        .page_table_level_i     (m1_page_table_level),
-        .virtual_address_i      (m0_virtual_address_q),
-        .pte_active_i           (m1_serve_ptw),
-        .pte_i                  (m0_ptw_pte_q),
-        .satp_ppn_i             (m0_satp_ppn_q),
-        .pte_is_leaf_o          (m1_pte_is_leaf),
-        .req_next_level_pte_o   (m1_req_next_level_pte),
-        .pte_req_address_o      (m1_ptw_req_addr_d),
-        .page_fault_valid_o     (m1_page_fault_valid_invalid_pte)
-
-    );
-
-    leaf_pte_check #(
-    .PTE_SIZE_IN_BIT(PTE_SIZE_IN_BIT)
-    ) ptw_leaf (
-        .access_mode_i          (m0_access_mode_q),
-        .csr_sstatus_mxr_i      (m0_smxr_q),
-        .csr_sstatus_sum_i      (m0_ssum_q),
-        .priviledge_level_i     (m0_priviledge_level_q),
-        .page_table_level_i     (m1_page_table_level),
-        .pte_active_i           (m1_serve_ptw),
-        .pte_i                  (m0_ptw_pte_q),
-        .pte_is_leaf_i          (m1_pte_is_leaf),
-        .pte_valid_o            (m1_pte_valid_leaf),
-        .page_fault_valid_o     (m1_page_fault_valid_inaccessable_leaf_pte)
-    );
-
-
-    always @(posedge clk) begin : m0_lsu_valid_dff
-        if (~rstn) begin
-            m0_lsu_valid_q <= 1'b0;
-            m0_lsu_active_q <= 1'b0;
-        end else begin
-            m0_lsu_valid_q <= m0_lsu_valid_d;
-            m0_lsu_active_q <= m0_lsu_active_d;
-        end
-    end
-
-    always @(posedge clk) begin : m0_lsu_payload_dff
-        if (m0_lsu_clk_en) begin
-            m0_priviledge_level_q      <= m0_priviledge_level_d;
-            m0_mprv_q                  <= m0_mprv_d;
-            m0_mpp_q                   <= m0_mpp_q;
-            m0_smxr_q                  <= m0_smxr_d;
-            m0_ssum_q                  <= m0_ssum_d;
-            m0_satp_ppn_q              <= m0_satp_ppn_d;
-            m0_satp_asid_q             <= m0_satp_asid_d;
-            m0_satp_mode_q             <= m0_satp_mode_d;
-            m0_virtual_address_q       <= m0_virtual_address_d;
-            m0_access_mode_q           <= m0_access_mode_d;
-            m0_init_page_table_level_q <= m0_init_page_table_level_d;
-        end
-    end
-
-    always @(posedge clk) begin : m0_ptw_valid_dff
-        if (~rstn) begin
-            m0_ptw_valid_q <= 1'b0;
-            m0_ptw_active_q <= 1'b0;
-        end else begin
-            m0_ptw_valid_q <= m0_ptw_valid_d;
-            m0_ptw_active_q <= m0_ptw_active_d;
-        end
-    end
-
-    always @(posedge clk) begin : m0_ptw_payload_dff
-        if (m0_ptw_clk_en) begin
-            m0_ptw_pte_q                <= m0_ptw_pte_d;
-            m0_ptw_page_table_level_q   <= m0_ptw_page_table_level_d;
-        end
-    end
-
-    always @(posedge clk) begin : m1_lsu_valid_dff
-        if (~rstn) begin
-            m1_lsu_valid_q <= 1'b0;
-        end else begin
-            m1_lsu_valid_q <= m1_lsu_valid_d;
-        end
-    end
-
-    always @(posedge clk) begin : m1_lsu_payload_dff
-        if (m1_lsu_clk_en) begin
-            m1_lsu_resp_addr_q       <= m1_lsu_resp_addr_d;
-            m1_page_fault_valid_q    <= m1_page_fault_valid_d;
-            m1_page_fault_cause_q    <= m1_page_fault_cause_d;
-        end
-    end
-
-    always @(posedge clk) begin : m1_ptw_valid_dff
-        if (~rstn) begin
-            m1_ptw_valid_q <= 1'b0;
-        end else begin
-            m1_ptw_valid_q <= m1_ptw_valid_d;
-        end
-    end
-
-    always @(posedge clk) begin : m1_ptw_payload_dff
-        if (m1_ptw_clk_en) begin
-            m1_ptw_req_addr_q        <= m1_ptw_req_addr_d;
-            m1_page_fault_valid_q    <= m1_page_fault_valid_d;
-            m1_page_fault_cause_q    <= m1_page_fault_cause_d;
-        end
-    end
-
-    // @TODO: TLB
-
-endmodule : mmu_sv39
-
-
-
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/ptw.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/ptw.v
deleted file mode 100755
index d92b930..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/mmu/ptw.v
+++ /dev/null
@@ -1,112 +0,0 @@
-`include "../params.vh"
-
-module ptw
-    # (
-    parameter PTE_SIZE = 8,
-    parameter PTE_SIZE_IN_BIT = 64,
-
-    parameter VIRTUAL_ADDR_LEN_SV39 = 39,
-    parameter PHYSICAL_ADDR_LEN_SV39 = 56,
-    parameter PAGE_OFFSET_WIDTH = 12,
-
-    parameter VPN_SLICE_WIDTH = 9
-)
-    (
-    input                                   ptw_enable_i,
-    input [1:0]                             page_table_level_i,
-
-    input [VIRTUAL_ADDR_LEN_SV39 - 1 : 0]   virtual_address_i,
-
-    input                                   pte_active_i,
-    input [PTE_SIZE_IN_BIT - 1 : 0]         pte_i,
-    input [SATP_PPN_WIDTH - 1 : 0]          satp_ppn_i,
-
-
-    output                                  pte_is_leaf_o,
-    output                                  req_next_level_pte_o,
-    output [PHYSICAL_ADDR_LEN_SV39 - 1 : 0] pte_req_address_o,
-
-    output                                  page_fault_valid_o
-);
-    reg pte_is_leaf;
-    reg req_next_level_pte;
-    reg [PHYSICAL_ADDR_LEN_SV39 - 1 : 0]    pte_req_address;
-    reg [VPN_SLICE_WIDTH - 1: 0]            pte_req_index;
-
-    reg page_fault_valid;
-
-    assign pte_is_leaf_o = pte_is_leaf;
-    assign req_next_level_pte_o = req_next_level_pte;
-    assign pte_req_address_o = pte_req_address;
-    assign page_fault_valid_o = page_fault_valid;
-
-
-    always @(*) begin
-
-        if (ptw_enable_i) begin
-
-            case (page_table_level_i)
-                2'b10:  pte_req_index = virtual_address_i[`va_vpn2];
-                2'b01:  pte_req_index = virtual_address_i[`va_vpn1];
-                2'b00:  pte_req_index = virtual_address_i[`va_vpn0];
-                default:  page_fault_valid = 1'b1;
-            endcase
-
-            if (pte_active_i) begin
-
-                pte_req_address = ({12'h000,pte_i[`pte_ppn]} << PAGE_OFFSET_WIDTH) + pte_req_index * PTE_SIZE;
-
-                // Step 4: Leaf/Non-leaf pte check
-                casez ({pte_i[`pte_x],pte_i[`pte_w],pte_i[`pte_r],pte_i[`pte_v]})
-                    // pte.v = 0 ==> page fault
-                    4'b???0: begin
-                        pte_is_leaf = 1'b0;
-                        req_next_level_pte = 1'b0;
-                        page_fault_valid = 1'b1;
-                    end
-                    // pte.r = 0 and pte.w = 1 ==> page fault
-                    4'b?101: begin
-                        pte_is_leaf = 1'b0;
-                        req_next_level_pte = 1'b0;
-                        page_fault_valid = 1'b1;
-                    end
-                    // pte.x = 1 ==> leaf pte
-                    // @TODO: x-only pte is for I-TLB
-                    4'b1001: begin
-                        pte_is_leaf = 1'b1;
-                        req_next_level_pte = 1'b0;
-                        page_fault_valid = 1'b0;
-                    end
-                    // pte.r = 1 ==> leaf pte
-                    4'b??11: begin
-                        pte_is_leaf = 1'b1;
-                        req_next_level_pte = 1'b0;
-                        page_fault_valid = 1'b0;
-                    end
-                    // default ==> request next level pte
-                    default: begin
-                        pte_is_leaf = 1'b0;
-                        req_next_level_pte = 1'b1;
-                        page_fault_valid = 1'b0;
-                    end
-                endcase
-
-            end else begin
-                pte_is_leaf = 1'b0;
-                req_next_level_pte = 1'b1;
-                pte_req_address = ({12'h000,satp_ppn_i} << PAGE_OFFSET_WIDTH) + pte_req_index * PTE_SIZE;
-                page_fault_valid = 1'b0;
-            end
-
-        end else begin
-            pte_is_leaf = 1'b0;
-            req_next_level_pte = 1'b0;
-            pte_req_address = '0;
-            page_fault_valid = 1'b0;
-        end
-
-
-    end
-
-endmodule
-
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/params.vh b/verilog/rtl_sram_out_cache/hehe/src/core_empty/params.vh
index b8deb41..99cb6d2 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/params.vh
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/params.vh
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 PARAMS_VH
 `define PARAMS_VH
 // MACROS
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/pipeline/backend.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/pipeline/backend.v
index e0249c7..e8a5b1d 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/pipeline/backend.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/pipeline/backend.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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
 //gpc改一下backend哈,参照着core_empty改
 `ifndef BACKEND_V
 `define BACKEND_V
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/pipeline/frontend.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/pipeline/frontend.v
index ea19fed..cbf3a0c 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/pipeline/frontend.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/pipeline/frontend.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 FRONTEND_V
 `define FRONTEND_V
 
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/btb.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/btb.v
index 7a4aaae..f4a920c 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/btb.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/btb.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 btb #(
     parameter BTB_SIZE = 4,
     parameter BTB_SIZE_1 = 3,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter.v
index cfceb13..1452043 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 counter#(
     parameter CNT_SIZE = 32 + 8,
     parameter CNT_SIZE_WIDTH = 6
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter_rob.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter_rob.v
index 77b1ab7..04d2f99 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter_rob.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter_rob.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 counter_rob#(
     parameter CNT_SIZE = 32 + 8,
     parameter CNT_SIZE_WIDTH = 6
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter_tmp.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter_tmp.v
index 2cd0a00..befa0a0 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter_tmp.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/counter_tmp.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 counter_tmp#(
     parameter CNT_SIZE = 32 + 8,
     parameter CNT_SIZE_WIDTH = 6
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/csr.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/csr.v
index e4d5004..bb4eecd 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/csr.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/csr.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 CSR_V
 `define CSR_V
 
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/decode.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/decode.v
index b01edc2..6b731e7 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/decode.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/decode.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 DECODE_V
 `define DECODE_V
 
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/excep_ctrl.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/excep_ctrl.v
index 6665003..297f7d7 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/excep_ctrl.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/excep_ctrl.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 "../params.vh"
 module excep_ctrl (
     //from rob
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fake_icache.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fake_icache.v
index 53335d4..ad0f777 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fake_icache.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fake_icache.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 fake_icache (  
     input clk,
     input reset,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fetch.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fetch.v
index d89ba49..d239f13 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fetch.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fetch.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 FETCH_V
 `define FETCH_V
 // `include "../params.vh"
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fifo.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fifo.v
index 8c526f9..302af92 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fifo.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fifo.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 fifo #( //p0 is not in the fifo
     parameter FIFO_DATA_WIDTH = 5,
     parameter FIFO_SIZE = 32,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fifo_tmp.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fifo_tmp.v
index d1b93e5..2953664 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fifo_tmp.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/fifo_tmp.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 fifo_tmp #(
     parameter FIFO_DATA_WIDTH = 5,
     parameter FIFO_SIZE = 32,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/gshare.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/gshare.v
index a17c0e1..379b1da 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/gshare.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/gshare.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 gshare 
 #(
   parameter GSHARE_WIDTH = 4,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/ins_buffer.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/ins_buffer.v
index ce6fae8..072ed9c 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/ins_buffer.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/ins_buffer.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 ins_buffer #(
     parameter INS_BUFFER_DATA = 96,
     parameter INS_BUFFER_SIZE = 8,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/new_alu.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/new_alu.v
index 782b080..01ad0c4 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/new_alu.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/new_alu.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 new_alu(
 input clk,
 input rstn,
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/new_fu.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/new_fu.v
index a5173b4..9132a75 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/new_fu.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/new_fu.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 FU_V
 `define FU_V
 
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/physical_regfile.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/physical_regfile.v
index 20cbb85..76f1095 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/physical_regfile.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/physical_regfile.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 physical_regfile #(
     parameter REG_SIZE = 64,
     parameter REG_SIZE_WIDTH = 6
diff --git a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/rcu.v b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/rcu.v
index 7fb849e..85ff46f 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/rcu.v
+++ b/verilog/rtl_sram_out_cache/hehe/src/core_empty/units/rcu.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 "/work/stu/yzhang/workspace/hehecore/src/params.vh"
 `include "../params.vh"
 module rcu (
diff --git a/verilog/rtl_sram_out_cache/hehe/src/macros/gds/sky130_sram_1kbyte_1rw1r_32x256_8.gds b/verilog/rtl_sram_out_cache/hehe/src/macros/gds/sky130_sram_1kbyte_1rw1r_32x256_8.gds
deleted file mode 100755
index 7ed1528..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/macros/gds/sky130_sram_1kbyte_1rw1r_32x256_8.gds
+++ /dev/null
Binary files differ
diff --git a/verilog/rtl_sram_out_cache/hehe/src/macros/gds/sky130_sram_1rw1r_64x256_8.gds b/verilog/rtl_sram_out_cache/hehe/src/macros/gds/sky130_sram_1rw1r_64x256_8.gds
deleted file mode 100755
index 741ec5a..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/macros/gds/sky130_sram_1rw1r_64x256_8.gds
+++ /dev/null
Binary files differ
diff --git a/verilog/rtl_sram_out_cache/hehe/src/macros/lef/sky130_sram_1kbyte_1rw1r_32x256_8.lef b/verilog/rtl_sram_out_cache/hehe/src/macros/lef/sky130_sram_1kbyte_1rw1r_32x256_8.lef
deleted file mode 100755
index 30b2ff4..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/macros/lef/sky130_sram_1kbyte_1rw1r_32x256_8.lef
+++ /dev/null
@@ -1,1093 +0,0 @@
-VERSION 5.4 ;
-NAMESCASESENSITIVE ON ;
-BUSBITCHARS "[]" ;
-DIVIDERCHAR "/" ;
-UNITS
-  DATABASE MICRONS 1000 ;
-END UNITS
-MACRO sky130_sram_1kbyte_1rw1r_32x256_8
-   CLASS BLOCK ;
-   SIZE 479.78 BY 397.5 ;
-   SYMMETRY X Y R90 ;
-   PIN din0[0]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  106.76 0.0 107.14 1.06 ;
-      END
-   END din0[0]
-   PIN din0[1]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  112.88 0.0 113.26 1.06 ;
-      END
-   END din0[1]
-   PIN din0[2]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  118.32 0.0 118.7 1.06 ;
-      END
-   END din0[2]
-   PIN din0[3]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  125.12 0.0 125.5 1.06 ;
-      END
-   END din0[3]
-   PIN din0[4]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  130.56 0.0 130.94 1.06 ;
-      END
-   END din0[4]
-   PIN din0[5]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  136.0 0.0 136.38 1.06 ;
-      END
-   END din0[5]
-   PIN din0[6]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  141.44 0.0 141.82 1.06 ;
-      END
-   END din0[6]
-   PIN din0[7]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  148.24 0.0 148.62 1.06 ;
-      END
-   END din0[7]
-   PIN din0[8]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  153.68 0.0 154.06 1.06 ;
-      END
-   END din0[8]
-   PIN din0[9]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  159.12 0.0 159.5 1.06 ;
-      END
-   END din0[9]
-   PIN din0[10]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  165.24 0.0 165.62 1.06 ;
-      END
-   END din0[10]
-   PIN din0[11]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  170.68 0.0 171.06 1.06 ;
-      END
-   END din0[11]
-   PIN din0[12]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  177.48 0.0 177.86 1.06 ;
-      END
-   END din0[12]
-   PIN din0[13]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  182.92 0.0 183.3 1.06 ;
-      END
-   END din0[13]
-   PIN din0[14]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  188.36 0.0 188.74 1.06 ;
-      END
-   END din0[14]
-   PIN din0[15]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  194.48 0.0 194.86 1.06 ;
-      END
-   END din0[15]
-   PIN din0[16]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  201.28 0.0 201.66 1.06 ;
-      END
-   END din0[16]
-   PIN din0[17]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  206.72 0.0 207.1 1.06 ;
-      END
-   END din0[17]
-   PIN din0[18]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  212.16 0.0 212.54 1.06 ;
-      END
-   END din0[18]
-   PIN din0[19]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  217.6 0.0 217.98 1.06 ;
-      END
-   END din0[19]
-   PIN din0[20]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  224.4 0.0 224.78 1.06 ;
-      END
-   END din0[20]
-   PIN din0[21]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  229.84 0.0 230.22 1.06 ;
-      END
-   END din0[21]
-   PIN din0[22]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  235.28 0.0 235.66 1.06 ;
-      END
-   END din0[22]
-   PIN din0[23]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  241.4 0.0 241.78 1.06 ;
-      END
-   END din0[23]
-   PIN din0[24]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  246.84 0.0 247.22 1.06 ;
-      END
-   END din0[24]
-   PIN din0[25]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  253.64 0.0 254.02 1.06 ;
-      END
-   END din0[25]
-   PIN din0[26]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  259.08 0.0 259.46 1.06 ;
-      END
-   END din0[26]
-   PIN din0[27]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  264.52 0.0 264.9 1.06 ;
-      END
-   END din0[27]
-   PIN din0[28]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  269.96 0.0 270.34 1.06 ;
-      END
-   END din0[28]
-   PIN din0[29]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  276.08 0.0 276.46 1.06 ;
-      END
-   END din0[29]
-   PIN din0[30]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  282.88 0.0 283.26 1.06 ;
-      END
-   END din0[30]
-   PIN din0[31]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  288.32 0.0 288.7 1.06 ;
-      END
-   END din0[31]
-   PIN addr0[0]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  77.52 0.0 77.9 1.06 ;
-      END
-   END addr0[0]
-   PIN addr0[1]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 128.52 1.06 128.9 ;
-      END
-   END addr0[1]
-   PIN addr0[2]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 137.36 1.06 137.74 ;
-      END
-   END addr0[2]
-   PIN addr0[3]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 142.12 1.06 142.5 ;
-      END
-   END addr0[3]
-   PIN addr0[4]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 150.28 1.06 150.66 ;
-      END
-   END addr0[4]
-   PIN addr0[5]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 155.72 1.06 156.1 ;
-      END
-   END addr0[5]
-   PIN addr0[6]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 164.56 1.06 164.94 ;
-      END
-   END addr0[6]
-   PIN addr0[7]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 170.68 1.06 171.06 ;
-      END
-   END addr0[7]
-   PIN addr1[0]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  397.12 396.44 397.5 397.5 ;
-      END
-   END addr1[0]
-   PIN addr1[1]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  478.72 82.96 479.78 83.34 ;
-      END
-   END addr1[1]
-   PIN addr1[2]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  478.72 74.8 479.78 75.18 ;
-      END
-   END addr1[2]
-   PIN addr1[3]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  478.72 68.0 479.78 68.38 ;
-      END
-   END addr1[3]
-   PIN addr1[4]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  415.48 0.0 415.86 1.06 ;
-      END
-   END addr1[4]
-   PIN addr1[5]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  413.44 0.0 413.82 1.06 ;
-      END
-   END addr1[5]
-   PIN addr1[6]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  414.12 0.0 414.5 1.06 ;
-      END
-   END addr1[6]
-   PIN addr1[7]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  414.8 0.0 415.18 1.06 ;
-      END
-   END addr1[7]
-   PIN csb0
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 27.88 1.06 28.26 ;
-      END
-   END csb0
-   PIN csb1
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  478.72 382.16 479.78 382.54 ;
-      END
-   END csb1
-   PIN web0
-      DIRECTION INPUT ;
-      PORT
-         LAYER met3 ;
-         RECT  0.0 36.04 1.06 36.42 ;
-      END
-   END web0
-   PIN clk0
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  29.24 0.0 29.62 1.06 ;
-      END
-   END clk0
-   PIN clk1
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  450.16 396.44 450.54 397.5 ;
-      END
-   END clk1
-   PIN wmask0[0]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  83.64 0.0 84.02 1.06 ;
-      END
-   END wmask0[0]
-   PIN wmask0[1]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  89.08 0.0 89.46 1.06 ;
-      END
-   END wmask0[1]
-   PIN wmask0[2]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  95.88 0.0 96.26 1.06 ;
-      END
-   END wmask0[2]
-   PIN wmask0[3]
-      DIRECTION INPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  100.64 0.0 101.02 1.06 ;
-      END
-   END wmask0[3]
-   PIN dout0[0]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  139.4 0.0 139.78 1.06 ;
-      END
-   END dout0[0]
-   PIN dout0[1]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  146.2 0.0 146.58 1.06 ;
-      END
-   END dout0[1]
-   PIN dout0[2]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  151.64 0.0 152.02 1.06 ;
-      END
-   END dout0[2]
-   PIN dout0[3]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  159.8 0.0 160.18 1.06 ;
-      END
-   END dout0[3]
-   PIN dout0[4]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  165.92 0.0 166.3 1.06 ;
-      END
-   END dout0[4]
-   PIN dout0[5]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  172.04 0.0 172.42 1.06 ;
-      END
-   END dout0[5]
-   PIN dout0[6]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  178.16 0.0 178.54 1.06 ;
-      END
-   END dout0[6]
-   PIN dout0[7]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  184.28 0.0 184.66 1.06 ;
-      END
-   END dout0[7]
-   PIN dout0[8]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  189.04 0.0 189.42 1.06 ;
-      END
-   END dout0[8]
-   PIN dout0[9]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  196.52 0.0 196.9 1.06 ;
-      END
-   END dout0[9]
-   PIN dout0[10]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  203.32 0.0 203.7 1.06 ;
-      END
-   END dout0[10]
-   PIN dout0[11]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  209.44 0.0 209.82 1.06 ;
-      END
-   END dout0[11]
-   PIN dout0[12]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  215.56 0.0 215.94 1.06 ;
-      END
-   END dout0[12]
-   PIN dout0[13]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  221.68 0.0 222.06 1.06 ;
-      END
-   END dout0[13]
-   PIN dout0[14]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  227.8 0.0 228.18 1.06 ;
-      END
-   END dout0[14]
-   PIN dout0[15]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  233.24 0.0 233.62 1.06 ;
-      END
-   END dout0[15]
-   PIN dout0[16]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  239.36 0.0 239.74 1.06 ;
-      END
-   END dout0[16]
-   PIN dout0[17]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  245.48 0.0 245.86 1.06 ;
-      END
-   END dout0[17]
-   PIN dout0[18]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  252.96 0.0 253.34 1.06 ;
-      END
-   END dout0[18]
-   PIN dout0[19]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  257.04 0.0 257.42 1.06 ;
-      END
-   END dout0[19]
-   PIN dout0[20]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  265.88 0.0 266.26 1.06 ;
-      END
-   END dout0[20]
-   PIN dout0[21]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  272.0 0.0 272.38 1.06 ;
-      END
-   END dout0[21]
-   PIN dout0[22]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  278.12 0.0 278.5 1.06 ;
-      END
-   END dout0[22]
-   PIN dout0[23]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  284.24 0.0 284.62 1.06 ;
-      END
-   END dout0[23]
-   PIN dout0[24]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  289.0 0.0 289.38 1.06 ;
-      END
-   END dout0[24]
-   PIN dout0[25]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  296.48 0.0 296.86 1.06 ;
-      END
-   END dout0[25]
-   PIN dout0[26]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  302.6 0.0 302.98 1.06 ;
-      END
-   END dout0[26]
-   PIN dout0[27]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  309.4 0.0 309.78 1.06 ;
-      END
-   END dout0[27]
-   PIN dout0[28]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  315.52 0.0 315.9 1.06 ;
-      END
-   END dout0[28]
-   PIN dout0[29]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  321.64 0.0 322.02 1.06 ;
-      END
-   END dout0[29]
-   PIN dout0[30]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  327.76 0.0 328.14 1.06 ;
-      END
-   END dout0[30]
-   PIN dout0[31]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  333.88 0.0 334.26 1.06 ;
-      END
-   END dout0[31]
-   PIN dout1[0]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  140.76 396.44 141.14 397.5 ;
-      END
-   END dout1[0]
-   PIN dout1[1]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  147.56 396.44 147.94 397.5 ;
-      END
-   END dout1[1]
-   PIN dout1[2]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  153.0 396.44 153.38 397.5 ;
-      END
-   END dout1[2]
-   PIN dout1[3]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  159.8 396.44 160.18 397.5 ;
-      END
-   END dout1[3]
-   PIN dout1[4]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  165.92 396.44 166.3 397.5 ;
-      END
-   END dout1[4]
-   PIN dout1[5]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  172.72 396.44 173.1 397.5 ;
-      END
-   END dout1[5]
-   PIN dout1[6]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  178.84 396.44 179.22 397.5 ;
-      END
-   END dout1[6]
-   PIN dout1[7]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  184.28 396.44 184.66 397.5 ;
-      END
-   END dout1[7]
-   PIN dout1[8]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  191.08 396.44 191.46 397.5 ;
-      END
-   END dout1[8]
-   PIN dout1[9]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  196.52 396.44 196.9 397.5 ;
-      END
-   END dout1[9]
-   PIN dout1[10]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  203.32 396.44 203.7 397.5 ;
-      END
-   END dout1[10]
-   PIN dout1[11]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  209.44 396.44 209.82 397.5 ;
-      END
-   END dout1[11]
-   PIN dout1[12]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  216.24 396.44 216.62 397.5 ;
-      END
-   END dout1[12]
-   PIN dout1[13]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  221.68 396.44 222.06 397.5 ;
-      END
-   END dout1[13]
-   PIN dout1[14]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  227.8 396.44 228.18 397.5 ;
-      END
-   END dout1[14]
-   PIN dout1[15]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  234.6 396.44 234.98 397.5 ;
-      END
-   END dout1[15]
-   PIN dout1[16]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  240.72 396.44 241.1 397.5 ;
-      END
-   END dout1[16]
-   PIN dout1[17]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  247.52 396.44 247.9 397.5 ;
-      END
-   END dout1[17]
-   PIN dout1[18]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  252.96 396.44 253.34 397.5 ;
-      END
-   END dout1[18]
-   PIN dout1[19]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  259.76 396.44 260.14 397.5 ;
-      END
-   END dout1[19]
-   PIN dout1[20]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  265.2 396.44 265.58 397.5 ;
-      END
-   END dout1[20]
-   PIN dout1[21]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  271.32 396.44 271.7 397.5 ;
-      END
-   END dout1[21]
-   PIN dout1[22]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  278.12 396.44 278.5 397.5 ;
-      END
-   END dout1[22]
-   PIN dout1[23]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  284.24 396.44 284.62 397.5 ;
-      END
-   END dout1[23]
-   PIN dout1[24]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  291.04 396.44 291.42 397.5 ;
-      END
-   END dout1[24]
-   PIN dout1[25]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  296.48 396.44 296.86 397.5 ;
-      END
-   END dout1[25]
-   PIN dout1[26]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  303.28 396.44 303.66 397.5 ;
-      END
-   END dout1[26]
-   PIN dout1[27]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  309.4 396.44 309.78 397.5 ;
-      END
-   END dout1[27]
-   PIN dout1[28]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  316.2 396.44 316.58 397.5 ;
-      END
-   END dout1[28]
-   PIN dout1[29]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  321.64 396.44 322.02 397.5 ;
-      END
-   END dout1[29]
-   PIN dout1[30]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  327.76 396.44 328.14 397.5 ;
-      END
-   END dout1[30]
-   PIN dout1[31]
-      DIRECTION OUTPUT ;
-      PORT
-         LAYER met4 ;
-         RECT  334.56 396.44 334.94 397.5 ;
-      END
-   END dout1[31]
-   PIN vccd1
-      DIRECTION INOUT ;
-      USE POWER ; 
-      SHAPE ABUTMENT ; 
-      PORT
-         LAYER met4 ;
-         RECT  473.28 4.76 475.02 392.74 ;
-         LAYER met4 ;
-         RECT  4.76 4.76 6.5 392.74 ;
-         LAYER met3 ;
-         RECT  4.76 4.76 475.02 6.5 ;
-         LAYER met3 ;
-         RECT  4.76 391.0 475.02 392.74 ;
-      END
-   END vccd1
-   PIN vssd1
-      DIRECTION INOUT ;
-      USE GROUND ; 
-      SHAPE ABUTMENT ; 
-      PORT
-         LAYER met4 ;
-         RECT  1.36 1.36 3.1 396.14 ;
-         LAYER met3 ;
-         RECT  1.36 394.4 478.42 396.14 ;
-         LAYER met3 ;
-         RECT  1.36 1.36 478.42 3.1 ;
-         LAYER met4 ;
-         RECT  476.68 1.36 478.42 396.14 ;
-      END
-   END vssd1
-   OBS
-   LAYER  met1 ;
-      RECT  0.62 0.62 479.16 396.88 ;
-   LAYER  met2 ;
-      RECT  0.62 0.62 479.16 396.88 ;
-   LAYER  met3 ;
-      RECT  1.66 127.92 479.16 129.5 ;
-      RECT  0.62 129.5 1.66 136.76 ;
-      RECT  0.62 138.34 1.66 141.52 ;
-      RECT  0.62 143.1 1.66 149.68 ;
-      RECT  0.62 151.26 1.66 155.12 ;
-      RECT  0.62 156.7 1.66 163.96 ;
-      RECT  0.62 165.54 1.66 170.08 ;
-      RECT  1.66 82.36 478.12 83.94 ;
-      RECT  1.66 83.94 478.12 127.92 ;
-      RECT  478.12 83.94 479.16 127.92 ;
-      RECT  478.12 75.78 479.16 82.36 ;
-      RECT  478.12 68.98 479.16 74.2 ;
-      RECT  1.66 129.5 478.12 381.56 ;
-      RECT  1.66 381.56 478.12 383.14 ;
-      RECT  478.12 129.5 479.16 381.56 ;
-      RECT  0.62 28.86 1.66 35.44 ;
-      RECT  0.62 37.02 1.66 127.92 ;
-      RECT  1.66 4.16 4.16 7.1 ;
-      RECT  1.66 7.1 4.16 82.36 ;
-      RECT  4.16 7.1 475.62 82.36 ;
-      RECT  475.62 4.16 478.12 7.1 ;
-      RECT  475.62 7.1 478.12 82.36 ;
-      RECT  1.66 383.14 4.16 390.4 ;
-      RECT  1.66 390.4 4.16 393.34 ;
-      RECT  4.16 383.14 475.62 390.4 ;
-      RECT  475.62 383.14 478.12 390.4 ;
-      RECT  475.62 390.4 478.12 393.34 ;
-      RECT  0.62 171.66 0.76 393.8 ;
-      RECT  0.62 393.8 0.76 396.74 ;
-      RECT  0.62 396.74 0.76 396.88 ;
-      RECT  0.76 171.66 1.66 393.8 ;
-      RECT  0.76 396.74 1.66 396.88 ;
-      RECT  478.12 383.14 479.02 393.8 ;
-      RECT  478.12 396.74 479.02 396.88 ;
-      RECT  479.02 383.14 479.16 393.8 ;
-      RECT  479.02 393.8 479.16 396.74 ;
-      RECT  479.02 396.74 479.16 396.88 ;
-      RECT  1.66 393.34 4.16 393.8 ;
-      RECT  1.66 396.74 4.16 396.88 ;
-      RECT  4.16 393.34 475.62 393.8 ;
-      RECT  4.16 396.74 475.62 396.88 ;
-      RECT  475.62 393.34 478.12 393.8 ;
-      RECT  475.62 396.74 478.12 396.88 ;
-      RECT  478.12 0.62 479.02 0.76 ;
-      RECT  478.12 3.7 479.02 67.4 ;
-      RECT  479.02 0.62 479.16 0.76 ;
-      RECT  479.02 0.76 479.16 3.7 ;
-      RECT  479.02 3.7 479.16 67.4 ;
-      RECT  0.62 0.62 0.76 0.76 ;
-      RECT  0.62 0.76 0.76 3.7 ;
-      RECT  0.62 3.7 0.76 27.28 ;
-      RECT  0.76 0.62 1.66 0.76 ;
-      RECT  0.76 3.7 1.66 27.28 ;
-      RECT  1.66 0.62 4.16 0.76 ;
-      RECT  1.66 3.7 4.16 4.16 ;
-      RECT  4.16 0.62 475.62 0.76 ;
-      RECT  4.16 3.7 475.62 4.16 ;
-      RECT  475.62 0.62 478.12 0.76 ;
-      RECT  475.62 3.7 478.12 4.16 ;
-   LAYER  met4 ;
-      RECT  106.16 1.66 107.74 396.88 ;
-      RECT  107.74 0.62 112.28 1.66 ;
-      RECT  113.86 0.62 117.72 1.66 ;
-      RECT  119.3 0.62 124.52 1.66 ;
-      RECT  126.1 0.62 129.96 1.66 ;
-      RECT  131.54 0.62 135.4 1.66 ;
-      RECT  154.66 0.62 158.52 1.66 ;
-      RECT  260.06 0.62 263.92 1.66 ;
-      RECT  107.74 1.66 396.52 395.84 ;
-      RECT  396.52 1.66 398.1 395.84 ;
-      RECT  30.22 0.62 76.92 1.66 ;
-      RECT  398.1 395.84 449.56 396.88 ;
-      RECT  78.5 0.62 83.04 1.66 ;
-      RECT  84.62 0.62 88.48 1.66 ;
-      RECT  90.06 0.62 95.28 1.66 ;
-      RECT  96.86 0.62 100.04 1.66 ;
-      RECT  101.62 0.62 106.16 1.66 ;
-      RECT  136.98 0.62 138.8 1.66 ;
-      RECT  140.38 0.62 140.84 1.66 ;
-      RECT  142.42 0.62 145.6 1.66 ;
-      RECT  147.18 0.62 147.64 1.66 ;
-      RECT  149.22 0.62 151.04 1.66 ;
-      RECT  152.62 0.62 153.08 1.66 ;
-      RECT  160.78 0.62 164.64 1.66 ;
-      RECT  166.9 0.62 170.08 1.66 ;
-      RECT  173.02 0.62 176.88 1.66 ;
-      RECT  179.14 0.62 182.32 1.66 ;
-      RECT  185.26 0.62 187.76 1.66 ;
-      RECT  190.02 0.62 193.88 1.66 ;
-      RECT  195.46 0.62 195.92 1.66 ;
-      RECT  197.5 0.62 200.68 1.66 ;
-      RECT  202.26 0.62 202.72 1.66 ;
-      RECT  204.3 0.62 206.12 1.66 ;
-      RECT  207.7 0.62 208.84 1.66 ;
-      RECT  210.42 0.62 211.56 1.66 ;
-      RECT  213.14 0.62 214.96 1.66 ;
-      RECT  216.54 0.62 217.0 1.66 ;
-      RECT  218.58 0.62 221.08 1.66 ;
-      RECT  222.66 0.62 223.8 1.66 ;
-      RECT  225.38 0.62 227.2 1.66 ;
-      RECT  228.78 0.62 229.24 1.66 ;
-      RECT  230.82 0.62 232.64 1.66 ;
-      RECT  234.22 0.62 234.68 1.66 ;
-      RECT  236.26 0.62 238.76 1.66 ;
-      RECT  240.34 0.62 240.8 1.66 ;
-      RECT  242.38 0.62 244.88 1.66 ;
-      RECT  247.82 0.62 252.36 1.66 ;
-      RECT  254.62 0.62 256.44 1.66 ;
-      RECT  258.02 0.62 258.48 1.66 ;
-      RECT  266.86 0.62 269.36 1.66 ;
-      RECT  270.94 0.62 271.4 1.66 ;
-      RECT  272.98 0.62 275.48 1.66 ;
-      RECT  277.06 0.62 277.52 1.66 ;
-      RECT  279.1 0.62 282.28 1.66 ;
-      RECT  285.22 0.62 287.72 1.66 ;
-      RECT  289.98 0.62 295.88 1.66 ;
-      RECT  297.46 0.62 302.0 1.66 ;
-      RECT  303.58 0.62 308.8 1.66 ;
-      RECT  310.38 0.62 314.92 1.66 ;
-      RECT  316.5 0.62 321.04 1.66 ;
-      RECT  322.62 0.62 327.16 1.66 ;
-      RECT  328.74 0.62 333.28 1.66 ;
-      RECT  334.86 0.62 412.84 1.66 ;
-      RECT  107.74 395.84 140.16 396.88 ;
-      RECT  141.74 395.84 146.96 396.88 ;
-      RECT  148.54 395.84 152.4 396.88 ;
-      RECT  153.98 395.84 159.2 396.88 ;
-      RECT  160.78 395.84 165.32 396.88 ;
-      RECT  166.9 395.84 172.12 396.88 ;
-      RECT  173.7 395.84 178.24 396.88 ;
-      RECT  179.82 395.84 183.68 396.88 ;
-      RECT  185.26 395.84 190.48 396.88 ;
-      RECT  192.06 395.84 195.92 396.88 ;
-      RECT  197.5 395.84 202.72 396.88 ;
-      RECT  204.3 395.84 208.84 396.88 ;
-      RECT  210.42 395.84 215.64 396.88 ;
-      RECT  217.22 395.84 221.08 396.88 ;
-      RECT  222.66 395.84 227.2 396.88 ;
-      RECT  228.78 395.84 234.0 396.88 ;
-      RECT  235.58 395.84 240.12 396.88 ;
-      RECT  241.7 395.84 246.92 396.88 ;
-      RECT  248.5 395.84 252.36 396.88 ;
-      RECT  253.94 395.84 259.16 396.88 ;
-      RECT  260.74 395.84 264.6 396.88 ;
-      RECT  266.18 395.84 270.72 396.88 ;
-      RECT  272.3 395.84 277.52 396.88 ;
-      RECT  279.1 395.84 283.64 396.88 ;
-      RECT  285.22 395.84 290.44 396.88 ;
-      RECT  292.02 395.84 295.88 396.88 ;
-      RECT  297.46 395.84 302.68 396.88 ;
-      RECT  304.26 395.84 308.8 396.88 ;
-      RECT  310.38 395.84 315.6 396.88 ;
-      RECT  317.18 395.84 321.04 396.88 ;
-      RECT  322.62 395.84 327.16 396.88 ;
-      RECT  328.74 395.84 333.96 396.88 ;
-      RECT  335.54 395.84 396.52 396.88 ;
-      RECT  398.1 1.66 472.68 4.16 ;
-      RECT  398.1 4.16 472.68 393.34 ;
-      RECT  398.1 393.34 472.68 395.84 ;
-      RECT  472.68 1.66 475.62 4.16 ;
-      RECT  472.68 393.34 475.62 395.84 ;
-      RECT  4.16 1.66 7.1 4.16 ;
-      RECT  4.16 393.34 7.1 396.88 ;
-      RECT  7.1 1.66 106.16 4.16 ;
-      RECT  7.1 4.16 106.16 393.34 ;
-      RECT  7.1 393.34 106.16 396.88 ;
-      RECT  0.62 0.62 0.76 0.76 ;
-      RECT  0.62 0.76 0.76 1.66 ;
-      RECT  0.76 0.62 3.7 0.76 ;
-      RECT  3.7 0.62 28.64 0.76 ;
-      RECT  3.7 0.76 28.64 1.66 ;
-      RECT  0.62 1.66 0.76 4.16 ;
-      RECT  3.7 1.66 4.16 4.16 ;
-      RECT  0.62 4.16 0.76 393.34 ;
-      RECT  3.7 4.16 4.16 393.34 ;
-      RECT  0.62 393.34 0.76 396.74 ;
-      RECT  0.62 396.74 0.76 396.88 ;
-      RECT  0.76 396.74 3.7 396.88 ;
-      RECT  3.7 393.34 4.16 396.74 ;
-      RECT  3.7 396.74 4.16 396.88 ;
-      RECT  416.46 0.62 476.08 0.76 ;
-      RECT  416.46 0.76 476.08 1.66 ;
-      RECT  476.08 0.62 479.02 0.76 ;
-      RECT  479.02 0.62 479.16 0.76 ;
-      RECT  479.02 0.76 479.16 1.66 ;
-      RECT  451.14 395.84 476.08 396.74 ;
-      RECT  451.14 396.74 476.08 396.88 ;
-      RECT  476.08 396.74 479.02 396.88 ;
-      RECT  479.02 395.84 479.16 396.74 ;
-      RECT  479.02 396.74 479.16 396.88 ;
-      RECT  475.62 1.66 476.08 4.16 ;
-      RECT  479.02 1.66 479.16 4.16 ;
-      RECT  475.62 4.16 476.08 393.34 ;
-      RECT  479.02 4.16 479.16 393.34 ;
-      RECT  475.62 393.34 476.08 395.84 ;
-      RECT  479.02 393.34 479.16 395.84 ;
-   END
-END    sky130_sram_1kbyte_1rw1r_32x256_8
-END    LIBRARY
diff --git a/verilog/rtl_sram_out_cache/hehe/src/macros/lef/sky130_sram_1rw1r_64x256_8.lef b/verilog/rtl_sram_out_cache/hehe/src/macros/lef/sky130_sram_1rw1r_64x256_8.lef
deleted file mode 100755
index bd72971..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/macros/lef/sky130_sram_1rw1r_64x256_8.lef
+++ /dev/null
Binary files differ
diff --git a/verilog/rtl_sram_out_cache/hehe/src/macros/verilog/sky130_sram_1kbyte_1rw1r_32x256_8.v b/verilog/rtl_sram_out_cache/hehe/src/macros/verilog/sky130_sram_1kbyte_1rw1r_32x256_8.v
deleted file mode 100755
index 9633856..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/macros/verilog/sky130_sram_1kbyte_1rw1r_32x256_8.v
+++ /dev/null
@@ -1,111 +0,0 @@
-// OpenRAM SRAM model
-// Words: 256
-// Word size: 32
-// Write size: 8
-/* verilator lint_off UNUSED */
-/* verilator lint_off MULTIDRIVEN */
-module sky130_sram_1kbyte_1rw1r_32x256_8(
-`ifdef USE_POWER_PINS
-    vccd1,
-    vssd1,
-`endif
-// Port 0: RW
-    clk0,csb0,web0,wmask0,addr0,din0,dout0,
-// Port 1: R
-    clk1,csb1,addr1,dout1
-  );
-
-  parameter NUM_WMASKS = 4 ;
-  parameter DATA_WIDTH = 32 ;
-  parameter ADDR_WIDTH = 8 ;
-  parameter RAM_DEPTH = 1 << ADDR_WIDTH;
-  // FIXME: This delay is arbitrary.
-  parameter DELAY = 3 ;
-  parameter VERBOSE = 1 ; //Set to 0 to only display warnings
-  parameter T_HOLD = 1 ; //Delay to hold dout value after posedge. Value is arbitrary
-
-`ifdef USE_POWER_PINS
-    inout vccd1;
-    inout vssd1;
-`endif
-  input  clk0; // clock
-  input   csb0; // active low chip select
-  input  web0; // active low write control
-  input [NUM_WMASKS-1:0]   wmask0; // write mask
-  input [ADDR_WIDTH-1:0]  addr0;
-  input [DATA_WIDTH-1:0]  din0;
-  output [DATA_WIDTH-1:0] dout0;
-  input  clk1; // clock
-  input   csb1; // active low chip select
-  input [ADDR_WIDTH-1:0]  addr1;
-  output [DATA_WIDTH-1:0] dout1;
-
-  reg  csb0_reg;
-  reg  web0_reg;
-  reg [NUM_WMASKS-1:0]   wmask0_reg;
-  reg [ADDR_WIDTH-1:0]  addr0_reg;
-  reg [DATA_WIDTH-1:0]  din0_reg;
-  reg [DATA_WIDTH-1:0]  dout0;
-  reg [DATA_WIDTH-1:0]    mem [0:RAM_DEPTH-1];
-  // All inputs are registers
-  always @(posedge clk0)
-  begin
-    csb0_reg <= csb0;
-    web0_reg <= web0;
-    wmask0_reg <= wmask0;
-    addr0_reg <= addr0;
-    din0_reg <= din0;
-    
-  //   if ( !csb0_reg && web0_reg && VERBOSE ) 
-  //     $display($time," Reading %m addr0=%x dout0=%b",addr0_reg,mem[addr0_reg]);
-  //   if ( !csb0_reg && !web0_reg && VERBOSE )
-  //     $display($time," Writing %m addr0=%x din0=%b wmask0=%b",addr0_reg,din0_reg,wmask0_reg);
-  end
-
-  reg  csb1_reg;
-  reg [ADDR_WIDTH-1:0]  addr1_reg;
-  reg [DATA_WIDTH-1:0]  dout1;
-
-  // All inputs are registers
-  always @(posedge clk1)
-  begin
-    csb1_reg <= csb1;
-    addr1_reg <= addr1;
-  end
-
-
-
-  // Memory Write Block Port 0
-  // Write Operation : When web0 = 0, csb0 = 0
-  always @ (negedge clk0)
-  begin : MEM_WRITE0
-    if ( !csb0_reg && !web0_reg ) begin
-        if (wmask0_reg[0])
-                mem[addr0_reg][7:0] <= din0_reg[7:0];
-        if (wmask0_reg[1])
-                mem[addr0_reg][15:8] <= din0_reg[15:8];
-        if (wmask0_reg[2])
-                mem[addr0_reg][23:16] <= din0_reg[23:16];
-        if (wmask0_reg[3])
-                mem[addr0_reg][31:24] <= din0_reg[31:24];
-    end
-  end
-
-  // Memory Read Block Port 0
-  // Read Operation : When web0 = 1, csb0 = 0
-  always @ (negedge clk0)
-  begin : MEM_READ0
-    if (!csb0_reg && web0_reg)
-       dout0 <= #(DELAY) mem[addr0_reg];
-  end
-
-  // Memory Read Block Port 1
-  // Read Operation : When web1 = 1, csb1 = 0
-  always @ (negedge clk1)
-  begin : MEM_READ1
-    if (!csb1_reg)
-       dout1 <= #(DELAY) mem[addr1_reg];
-  end
-/* verilator lint_on UNUSED */
-endmodule
-
diff --git a/verilog/rtl_sram_out_cache/hehe/src/macros/verilog/sky130_sram_1rw1r_64x256_8.v b/verilog/rtl_sram_out_cache/hehe/src/macros/verilog/sky130_sram_1rw1r_64x256_8.v
deleted file mode 100755
index 072e129..0000000
--- a/verilog/rtl_sram_out_cache/hehe/src/macros/verilog/sky130_sram_1rw1r_64x256_8.v
+++ /dev/null
@@ -1,119 +0,0 @@
-// OpenRAM SRAM model
-// Words: 256
-// Word size: 64
-// Write size: 8
-
-/* verilator lint_off MULTIDRIVEN */
-/* verilator lint_off UNUSED */
-module sky130_sram_1rw1r_64x256_8(
-// Port 0: RW
-    clk0,csb0,web0,wmask0,addr0,din0,dout0,
-// Port 1: R
-    clk1,csb1,addr1,dout1
-  );
-
-  parameter NUM_WMASKS = 8 ;
-  parameter DATA_WIDTH = 64 ;
-  parameter ADDR_WIDTH = 8 ;
-  parameter RAM_DEPTH = 1 << ADDR_WIDTH;
-  // FIXME: This delay is arbitrary.
-  parameter DELAY = 3 ;
-  parameter T_HOLD = 1 ; //Delay to hold dout value after posedge. Value is arbitrary
-  input  clk0; // clock
-  input  csb0; // active low chip select
-  input  web0; // active low write control
-  input [NUM_WMASKS-1:0]   wmask0; // write mask
-  input [ADDR_WIDTH-1:0]  addr0;
-  input [DATA_WIDTH-1:0]  din0;
-  output [DATA_WIDTH-1:0] dout0;
-  input  clk1; // clock
-  input   csb1; // active low chip select
-  input [ADDR_WIDTH-1:0]  addr1;
-  output [DATA_WIDTH-1:0] dout1;
-
-  reg  csb0_reg;
-  reg  web0_reg;
-  reg [NUM_WMASKS-1:0]  wmask0_reg;
-  reg [ADDR_WIDTH-1:0]  addr0_reg;
-  reg [DATA_WIDTH-1:0]  din0_reg;
-  reg [DATA_WIDTH-1:0]  dout0;
-  reg [DATA_WIDTH-1:0]    mem [0:RAM_DEPTH-1];
-  // All inputs are registers
-  always @(posedge clk0)
-  begin
-    csb0_reg <= csb0;
-    web0_reg <= web0;
-    wmask0_reg <= wmask0;
-    addr0_reg <= addr0;
-    din0_reg <= din0;
-    /*verilator lint_off STMTDLY*/
-    //#(T_HOLD) dout0 <= 64'bx;
-    // if ( !csb0_reg && web0_reg ) 
-    //   $display($time," Reading %m addr0=%b dout0=%b",addr0_reg,mem[addr0_reg]);
-    // if ( !csb0_reg && !web0_reg )
-    //   $display($time," Writing %m addr0=%b din0=%b wmask0=%b",addr0_reg,din0_reg,wmask0_reg);
-    /*verilator lint_on STMTDLY*/
-  end
-
-  reg  csb1_reg;
-  reg [ADDR_WIDTH-1:0]  addr1_reg;
-  reg [DATA_WIDTH-1:0]  dout1;
-
-  // All inputs are registers
-  always @(posedge clk1)
-  begin
-    csb1_reg <= csb1;
-    addr1_reg <= addr1;
-//     if (!csb0 && !web0 && !csb1 && (addr0 == addr1))
-//          $display($time," WARNING: Writing and reading addr0=%b and addr1=%b simultaneously!",addr0,addr1);
- //   dout1 <= 64'bx;
-//     if ( !csb1_reg ) 
-//       $display($time," Reading %m addr1=%b dout1=%b",addr1_reg,mem[addr1_reg]);
-  end
-
-
-
-  // Memory Write Block Port 0
-  // Write Operation : When web0 = 0, csb0 = 0
-  always @ (negedge clk0)
-  begin : MEM_WRITE0
-    if ( !csb0_reg && !web0_reg ) begin
-        if (wmask0_reg[0])
-                mem[addr0_reg][7:0] <= din0_reg[7:0];
-        if (wmask0_reg[1])
-                mem[addr0_reg][15:8] <= din0_reg[15:8];
-        if (wmask0_reg[2])
-                mem[addr0_reg][23:16] <= din0_reg[23:16];
-        if (wmask0_reg[3])
-                mem[addr0_reg][31:24] <= din0_reg[31:24];
-        if (wmask0_reg[4])
-                mem[addr0_reg][39:32] <= din0_reg[39:32];
-        if (wmask0_reg[5])
-                mem[addr0_reg][47:40] <= din0_reg[47:40];
-        if (wmask0_reg[6])
-                mem[addr0_reg][55:48] <= din0_reg[55:48];
-        if (wmask0_reg[7])
-                mem[addr0_reg][63:56] <= din0_reg[63:56];
-    end
-  end
-
-  // Memory Read Block Port 0
-  // Read Operation : When web0 = 1, csb0 = 0
-  always @ (negedge clk0)
-  begin : MEM_READ0
-    if (!csb0_reg && web0_reg)
-    /*verilator lint_off ASSIGNDLY*/
-       dout0 <= #(DELAY) mem[addr0_reg];
-    
-  end
-
-  // Memory Read Block Port 1
-  // Read Operation : When web1 = 1, csb1 = 0
-  always @ (negedge clk1)
-  begin : MEM_READ1
-    if (!csb1_reg)
-       dout1 <= #(DELAY) mem[addr1_reg];
-  end
-
-endmodule
-    /*verilator lint_on ASSIGNDLY*/
diff --git a/verilog/rtl_sram_out_cache/hehe/src/params.vh b/verilog/rtl_sram_out_cache/hehe/src/params.vh
index b8deb41..99cb6d2 100755
--- a/verilog/rtl_sram_out_cache/hehe/src/params.vh
+++ b/verilog/rtl_sram_out_cache/hehe/src/params.vh
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 PARAMS_VH
 `define PARAMS_VH
 // MACROS
diff --git a/verilog/rtl_sram_out_cache/latch_map.v b/verilog/rtl_sram_out_cache/latch_map.v
index 03f3ca0..56813ec 100644
--- a/verilog/rtl_sram_out_cache/latch_map.v
+++ b/verilog/rtl_sram_out_cache/latch_map.v
@@ -1,3 +1,18 @@
+// SPDX-FileCopyrightText: 2022 RIOSLab
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// 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 \$_DLATCH_P_ (input E, input D, output Q);
   gf180mcu_fd_sc_mcu7t5v0__latq_1 _TECHMAP_DLATCH_P (
     //# {{data|Data Signals}}
diff --git a/verilog/rtl_sram_out_cache/top.v b/verilog/rtl_sram_out_cache/top.v
index e5d0afe..53a36cd 100755
--- a/verilog/rtl_sram_out_cache/top.v
+++ b/verilog/rtl_sram_out_cache/top.v
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: 2020 Efabless Corporation
+// SPDX-FileCopyrightText: 2022 RIOS Lab
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.