diff --git a/gds/sram_32_256_sky130A.gds b/gds/sram_32_256_sky130A.gds
new file mode 100644
index 0000000..17f5412
--- /dev/null
+++ b/gds/sram_32_256_sky130A.gds
Binary files differ
diff --git a/lef/sram_32_256_sky130A.lef b/lef/sram_32_256_sky130A.lef
new file mode 100644
index 0000000..d829f87
--- /dev/null
+++ b/lef/sram_32_256_sky130A.lef
@@ -0,0 +1,697 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO sram_32_256_sky130A
+  CLASS BLOCK ;
+  FOREIGN sram_32_256_sky130A ;
+  ORIGIN 0.000 0.000 ;
+  SIZE 578.380 BY 355.340 ;
+  PIN csb0
+    DIRECTION INPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 0.000 20.400 16.020 20.780 ;
+    END
+  END csb0
+  PIN web0
+    DIRECTION INPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 0.000 22.440 15.220 22.820 ;
+    END
+  END web0
+  PIN clk0
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 38.080 0.000 38.460 18.390 ;
+    END
+  END clk0
+  PIN din0[0]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 131.240 0.000 131.620 14.990 ;
+    END
+  END din0[0]
+  PIN din0[1]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 143.480 0.000 143.860 14.990 ;
+    END
+  END din0[1]
+  PIN din0[2]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 157.760 0.000 158.140 14.990 ;
+    END
+  END din0[2]
+  PIN din0[3]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 170.000 0.000 170.380 14.990 ;
+    END
+  END din0[3]
+  PIN din0[4]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 182.920 0.000 183.300 14.990 ;
+    END
+  END din0[4]
+  PIN din0[5]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 196.520 0.000 196.900 14.990 ;
+    END
+  END din0[5]
+  PIN din0[6]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 209.440 0.000 209.820 14.990 ;
+    END
+  END din0[6]
+  PIN din0[7]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 222.360 0.000 222.740 14.990 ;
+    END
+  END din0[7]
+  PIN din0[8]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 235.960 0.000 236.340 14.990 ;
+    END
+  END din0[8]
+  PIN din0[9]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 249.560 0.000 249.940 14.990 ;
+    END
+  END din0[9]
+  PIN din0[10]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 262.480 0.000 262.860 14.990 ;
+    END
+  END din0[10]
+  PIN din0[11]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 275.400 0.000 275.780 14.990 ;
+    END
+  END din0[11]
+  PIN din0[12]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 288.320 0.000 288.700 14.990 ;
+    END
+  END din0[12]
+  PIN din0[13]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 301.240 0.000 301.620 14.990 ;
+    END
+  END din0[13]
+  PIN din0[14]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 314.840 0.000 315.220 14.990 ;
+    END
+  END din0[14]
+  PIN din0[15]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 328.440 0.000 328.820 14.990 ;
+    END
+  END din0[15]
+  PIN din0[16]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 340.680 0.000 341.060 14.990 ;
+    END
+  END din0[16]
+  PIN din0[17]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 354.280 0.000 354.660 14.990 ;
+    END
+  END din0[17]
+  PIN din0[18]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 367.200 0.000 367.580 14.990 ;
+    END
+  END din0[18]
+  PIN din0[19]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 380.800 0.000 381.180 14.990 ;
+    END
+  END din0[19]
+  PIN din0[20]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 393.040 0.000 393.420 14.990 ;
+    END
+  END din0[20]
+  PIN din0[21]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 406.640 0.000 407.020 14.990 ;
+    END
+  END din0[21]
+  PIN din0[22]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 420.240 0.000 420.620 14.990 ;
+    END
+  END din0[22]
+  PIN din0[23]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 433.160 0.000 433.540 14.990 ;
+    END
+  END din0[23]
+  PIN din0[24]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 445.400 0.000 445.780 14.990 ;
+    END
+  END din0[24]
+  PIN din0[25]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 459.000 0.000 459.380 14.990 ;
+    END
+  END din0[25]
+  PIN din0[26]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 471.920 0.000 472.300 14.990 ;
+    END
+  END din0[26]
+  PIN din0[27]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 484.840 0.000 485.220 14.990 ;
+    END
+  END din0[27]
+  PIN din0[28]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 499.120 0.000 499.500 14.990 ;
+    END
+  END din0[28]
+  PIN din0[29]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 512.040 0.000 512.420 14.990 ;
+    END
+  END din0[29]
+  PIN din0[30]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 524.280 0.000 524.660 14.990 ;
+    END
+  END din0[30]
+  PIN din0[31]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 537.880 0.000 538.260 14.990 ;
+    END
+  END din0[31]
+  PIN dout0[0]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 140.760 0.000 141.140 32.670 ;
+    END
+  END dout0[0]
+  PIN dout0[1]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 153.680 0.000 154.060 32.670 ;
+    END
+  END dout0[1]
+  PIN dout0[2]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 166.600 0.000 166.980 32.670 ;
+    END
+  END dout0[2]
+  PIN dout0[3]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 179.520 0.000 179.900 32.670 ;
+    END
+  END dout0[3]
+  PIN dout0[4]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 193.120 0.000 193.500 32.670 ;
+    END
+  END dout0[4]
+  PIN dout0[5]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 206.040 0.000 206.420 32.670 ;
+    END
+  END dout0[5]
+  PIN dout0[6]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 218.960 0.000 219.340 32.670 ;
+    END
+  END dout0[6]
+  PIN dout0[7]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 232.560 0.000 232.940 32.670 ;
+    END
+  END dout0[7]
+  PIN dout0[8]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 245.480 0.000 245.860 32.670 ;
+    END
+  END dout0[8]
+  PIN dout0[9]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 258.400 0.000 258.780 32.670 ;
+    END
+  END dout0[9]
+  PIN dout0[10]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 272.000 0.000 272.380 32.670 ;
+    END
+  END dout0[10]
+  PIN dout0[11]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 284.920 0.000 285.300 32.670 ;
+    END
+  END dout0[11]
+  PIN dout0[12]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 297.840 0.000 298.220 32.670 ;
+    END
+  END dout0[12]
+  PIN dout0[13]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 311.440 0.000 311.820 32.670 ;
+    END
+  END dout0[13]
+  PIN dout0[14]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 324.360 0.000 324.740 32.670 ;
+    END
+  END dout0[14]
+  PIN dout0[15]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 337.280 0.000 337.660 32.670 ;
+    END
+  END dout0[15]
+  PIN dout0[16]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 350.880 0.000 351.260 32.670 ;
+    END
+  END dout0[16]
+  PIN dout0[17]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 363.800 0.000 364.180 32.670 ;
+    END
+  END dout0[17]
+  PIN dout0[18]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 377.400 0.000 377.780 32.670 ;
+    END
+  END dout0[18]
+  PIN dout0[19]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 391.000 0.000 391.380 32.670 ;
+    END
+  END dout0[19]
+  PIN dout0[20]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 403.240 0.000 403.620 32.670 ;
+    END
+  END dout0[20]
+  PIN dout0[21]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 417.520 0.000 417.900 32.670 ;
+    END
+  END dout0[21]
+  PIN dout0[22]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 430.440 0.000 430.820 32.670 ;
+    END
+  END dout0[22]
+  PIN dout0[23]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 443.360 0.000 443.740 32.670 ;
+    END
+  END dout0[23]
+  PIN dout0[24]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 456.280 0.000 456.660 32.670 ;
+    END
+  END dout0[24]
+  PIN dout0[25]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 469.200 0.000 469.580 32.670 ;
+    END
+  END dout0[25]
+  PIN dout0[26]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 482.800 0.000 483.180 32.670 ;
+    END
+  END dout0[26]
+  PIN dout0[27]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 495.720 0.000 496.100 32.670 ;
+    END
+  END dout0[27]
+  PIN dout0[28]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 509.320 0.000 509.700 32.670 ;
+    END
+  END dout0[28]
+  PIN dout0[29]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 522.240 0.000 522.620 32.670 ;
+    END
+  END dout0[29]
+  PIN dout0[30]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 535.160 0.000 535.540 32.670 ;
+    END
+  END dout0[30]
+  PIN dout0[31]
+    DIRECTION OUTPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 549.260 33.320 578.380 33.700 ;
+    END
+  END dout0[31]
+  PIN addr0[0]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 104.720 0.000 105.100 14.990 ;
+    END
+  END addr0[0]
+  PIN addr0[1]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met4 ;
+        RECT 117.640 0.000 118.020 14.990 ;
+    END
+  END addr0[1]
+  PIN addr0[2]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 0.000 132.600 78.430 132.980 ;
+    END
+  END addr0[2]
+  PIN addr0[3]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 0.000 135.320 78.430 135.700 ;
+    END
+  END addr0[3]
+  PIN addr0[4]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 0.000 141.440 78.430 141.820 ;
+    END
+  END addr0[4]
+  PIN addr0[5]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 0.000 143.480 79.260 143.860 ;
+    END
+  END addr0[5]
+  PIN addr0[6]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 0.000 150.280 79.260 150.660 ;
+    END
+  END addr0[6]
+  PIN addr0[7]
+    DIRECTION INPUT ;
+    PORT
+      LAYER met3 ;
+        RECT 0.000 151.640 9.900 152.020 ;
+    END
+  END addr0[7]
+  PIN vccd1
+    DIRECTION INOUT ;
+    USE POWER ; 
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met4 ;
+        RECT 4.760 4.760 6.500 351.940 ;
+      LAYER met3 ;
+        RECT 4.760 4.760 573.620 6.500 ;
+      LAYER met3 ;
+        RECT 4.760 350.200 573.620 351.940 ;
+      LAYER met4 ;
+        RECT 571.880 4.760 573.620 351.940 ;
+    END
+  END vccd1
+  PIN vssd1
+    DIRECTION INOUT ;
+    USE GROUND ; 
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met4 ;
+        RECT 575.280 1.360 577.020 355.340 ;
+      LAYER met3 ;
+        RECT 1.360 353.600 577.020 355.340 ;
+      LAYER met3 ;
+        RECT 1.360 1.360 577.020 3.100 ;
+      LAYER met4 ;
+        RECT 1.360 1.360 3.100 355.340 ;
+    END
+  END vssd1
+  OBS
+      LAYER li1 ;
+        RECT 8.575 8.445 569.385 347.845 ;
+      LAYER met1 ;
+        RECT 8.100 8.050 569.860 348.240 ;
+      LAYER met2 ;
+        RECT 8.100 8.050 569.860 348.240 ;
+      LAYER met3 ;
+        RECT 2.720 152.420 575.660 348.540 ;
+        RECT 10.300 151.240 575.660 152.420 ;
+        RECT 2.720 151.060 575.660 151.240 ;
+        RECT 79.660 149.880 575.660 151.060 ;
+        RECT 2.720 144.260 575.660 149.880 ;
+        RECT 79.660 143.080 575.660 144.260 ;
+        RECT 2.720 142.220 575.660 143.080 ;
+        RECT 78.830 141.040 575.660 142.220 ;
+        RECT 2.720 136.100 575.660 141.040 ;
+        RECT 78.830 134.920 575.660 136.100 ;
+        RECT 2.720 133.380 575.660 134.920 ;
+        RECT 78.830 132.200 575.660 133.380 ;
+        RECT 2.720 34.100 575.660 132.200 ;
+        RECT 2.720 32.920 548.860 34.100 ;
+        RECT 2.720 23.220 575.660 32.920 ;
+        RECT 15.620 22.040 575.660 23.220 ;
+        RECT 2.720 21.180 575.660 22.040 ;
+        RECT 16.420 20.000 575.660 21.180 ;
+        RECT 2.720 8.160 575.660 20.000 ;
+      LAYER met4 ;
+        RECT 9.520 33.070 568.860 350.580 ;
+        RECT 9.520 18.790 140.360 33.070 ;
+        RECT 9.520 2.720 37.680 18.790 ;
+        RECT 38.860 15.390 140.360 18.790 ;
+        RECT 38.860 2.720 104.320 15.390 ;
+        RECT 105.500 2.720 117.240 15.390 ;
+        RECT 118.420 2.720 130.840 15.390 ;
+        RECT 132.020 2.720 140.360 15.390 ;
+        RECT 141.540 15.390 153.280 33.070 ;
+        RECT 141.540 2.720 143.080 15.390 ;
+        RECT 144.260 2.720 153.280 15.390 ;
+        RECT 154.460 15.390 166.200 33.070 ;
+        RECT 154.460 2.720 157.360 15.390 ;
+        RECT 158.540 2.720 166.200 15.390 ;
+        RECT 167.380 15.390 179.120 33.070 ;
+        RECT 167.380 2.720 169.600 15.390 ;
+        RECT 170.780 2.720 179.120 15.390 ;
+        RECT 180.300 15.390 192.720 33.070 ;
+        RECT 180.300 2.720 182.520 15.390 ;
+        RECT 183.700 2.720 192.720 15.390 ;
+        RECT 193.900 15.390 205.640 33.070 ;
+        RECT 193.900 2.720 196.120 15.390 ;
+        RECT 197.300 2.720 205.640 15.390 ;
+        RECT 206.820 15.390 218.560 33.070 ;
+        RECT 206.820 2.720 209.040 15.390 ;
+        RECT 210.220 2.720 218.560 15.390 ;
+        RECT 219.740 15.390 232.160 33.070 ;
+        RECT 219.740 2.720 221.960 15.390 ;
+        RECT 223.140 2.720 232.160 15.390 ;
+        RECT 233.340 15.390 245.080 33.070 ;
+        RECT 233.340 2.720 235.560 15.390 ;
+        RECT 236.740 2.720 245.080 15.390 ;
+        RECT 246.260 15.390 258.000 33.070 ;
+        RECT 246.260 2.720 249.160 15.390 ;
+        RECT 250.340 2.720 258.000 15.390 ;
+        RECT 259.180 15.390 271.600 33.070 ;
+        RECT 259.180 2.720 262.080 15.390 ;
+        RECT 263.260 2.720 271.600 15.390 ;
+        RECT 272.780 15.390 284.520 33.070 ;
+        RECT 272.780 2.720 275.000 15.390 ;
+        RECT 276.180 2.720 284.520 15.390 ;
+        RECT 285.700 15.390 297.440 33.070 ;
+        RECT 285.700 2.720 287.920 15.390 ;
+        RECT 289.100 2.720 297.440 15.390 ;
+        RECT 298.620 15.390 311.040 33.070 ;
+        RECT 298.620 2.720 300.840 15.390 ;
+        RECT 302.020 2.720 311.040 15.390 ;
+        RECT 312.220 15.390 323.960 33.070 ;
+        RECT 312.220 2.720 314.440 15.390 ;
+        RECT 315.620 2.720 323.960 15.390 ;
+        RECT 325.140 15.390 336.880 33.070 ;
+        RECT 325.140 2.720 328.040 15.390 ;
+        RECT 329.220 2.720 336.880 15.390 ;
+        RECT 338.060 15.390 350.480 33.070 ;
+        RECT 338.060 2.720 340.280 15.390 ;
+        RECT 341.460 2.720 350.480 15.390 ;
+        RECT 351.660 15.390 363.400 33.070 ;
+        RECT 351.660 2.720 353.880 15.390 ;
+        RECT 355.060 2.720 363.400 15.390 ;
+        RECT 364.580 15.390 377.000 33.070 ;
+        RECT 364.580 2.720 366.800 15.390 ;
+        RECT 367.980 2.720 377.000 15.390 ;
+        RECT 378.180 15.390 390.600 33.070 ;
+        RECT 378.180 2.720 380.400 15.390 ;
+        RECT 381.580 2.720 390.600 15.390 ;
+        RECT 391.780 15.390 402.840 33.070 ;
+        RECT 391.780 2.720 392.640 15.390 ;
+        RECT 393.820 2.720 402.840 15.390 ;
+        RECT 404.020 15.390 417.120 33.070 ;
+        RECT 404.020 2.720 406.240 15.390 ;
+        RECT 407.420 2.720 417.120 15.390 ;
+        RECT 418.300 15.390 430.040 33.070 ;
+        RECT 418.300 2.720 419.840 15.390 ;
+        RECT 421.020 2.720 430.040 15.390 ;
+        RECT 431.220 15.390 442.960 33.070 ;
+        RECT 431.220 2.720 432.760 15.390 ;
+        RECT 433.940 2.720 442.960 15.390 ;
+        RECT 444.140 15.390 455.880 33.070 ;
+        RECT 444.140 2.720 445.000 15.390 ;
+        RECT 446.180 2.720 455.880 15.390 ;
+        RECT 457.060 15.390 468.800 33.070 ;
+        RECT 457.060 2.720 458.600 15.390 ;
+        RECT 459.780 2.720 468.800 15.390 ;
+        RECT 469.980 15.390 482.400 33.070 ;
+        RECT 469.980 2.720 471.520 15.390 ;
+        RECT 472.700 2.720 482.400 15.390 ;
+        RECT 483.580 15.390 495.320 33.070 ;
+        RECT 483.580 2.720 484.440 15.390 ;
+        RECT 485.620 2.720 495.320 15.390 ;
+        RECT 496.500 15.390 508.920 33.070 ;
+        RECT 496.500 2.720 498.720 15.390 ;
+        RECT 499.900 2.720 508.920 15.390 ;
+        RECT 510.100 15.390 521.840 33.070 ;
+        RECT 510.100 2.720 511.640 15.390 ;
+        RECT 512.820 2.720 521.840 15.390 ;
+        RECT 523.020 15.390 534.760 33.070 ;
+        RECT 523.020 2.720 523.880 15.390 ;
+        RECT 525.060 2.720 534.760 15.390 ;
+        RECT 535.940 15.390 568.860 33.070 ;
+        RECT 535.940 2.720 537.480 15.390 ;
+        RECT 538.660 2.720 568.860 15.390 ;
+  END
+END sram_32_256_sky130A
+END LIBRARY
+
diff --git a/openlane/user_proj_example/config.tcl b/openlane/user_proj_example/config.tcl
index 94af8ba..71545ce 100755
--- a/openlane/user_proj_example/config.tcl
+++ b/openlane/user_proj_example/config.tcl
@@ -22,21 +22,29 @@
 
 set ::env(VERILOG_FILES) "\
 	$::env(CARAVEL_ROOT)/verilog/rtl/defines.v \
-	$script_dir/../../verilog/rtl/user_proj_example.v"
+	$script_dir/../../verilog/rtl/user_proj_example.v \
+	$script_dir/../../verilog/rtl/clk_gate.v \
+	$script_dir/../../verilog/rtl/rvmyth.v"
+set ::env(VERILOG_INCLUDE_DIRS) "\
+	$script_dir/../../verilog/include"
 
 set ::env(DESIGN_IS_CORE) 0
 
-set ::env(CLOCK_PORT) "wb_clk_i"
-set ::env(CLOCK_NET) "counter.clk"
-set ::env(CLOCK_PERIOD) "10"
+set ::env(CLOCK_PORT) "CLK"
+set ::env(CLOCK_NET) "CLK"
+set ::env(CLOCK_PERIOD) "50"
 
 set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) "0 0 900 600"
+set ::env(DIE_AREA) "0 0 1500 1500"
 
-set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
+set ::env(PL_TARGET_DENSITY) 0.2
 
-set ::env(PL_BASIC_PLACEMENT) 1
-set ::env(PL_TARGET_DENSITY) 0.05
+# You can draw more power domains if you need to 
+set ::env(VDD_NETS) [list {vccd1}]
+set ::env(GND_NETS) [list {vssd1}]
+
+set ::env(PL_RESIZER_HOLD_SLACK_MARGIN) 0.8
+set ::env(GLB_RESIZER_HOLD_SLACK_MARGIN) 0.8
 
 # Maximum layer used for routing is metal 4.
 # This is because this macro will be inserted in a top level (user_project_wrapper) 
@@ -44,10 +52,7 @@
 # in this macro and the top level metal 5 stripes, we have to restrict routes to metal4.  
 set ::env(GLB_RT_MAXLAYER) 5
 
-# You can draw more power domains if you need to 
-set ::env(VDD_NETS) [list {vccd1}]
-set ::env(GND_NETS) [list {vssd1}]
-
 set ::env(DIODE_INSERTION_STRATEGY) 4 
+
 # If you're going to use multiple power domains, then disable cvc run.
-set ::env(RUN_CVC) 1
+set ::env(RUN_CVC) 1
\ No newline at end of file
diff --git a/openlane/user_project_wrapper/config.tcl b/openlane/user_project_wrapper/config.tcl
index 5006ced..7d2b8a4 100755
--- a/openlane/user_project_wrapper/config.tcl
+++ b/openlane/user_project_wrapper/config.tcl
@@ -38,10 +38,10 @@
 	$script_dir/../../verilog/rtl/user_project_wrapper.v"
 
 ## Clock configurations
-set ::env(CLOCK_PORT) "user_clock2"
-set ::env(CLOCK_NET) "mprj.clk"
+set ::env(CLOCK_PORT) "wb_clk_i"
+set ::env(CLOCK_NET) "wb_clk_i"
 
-set ::env(CLOCK_PERIOD) "10"
+set ::env(CLOCK_PERIOD) "50"
 
 ## Internal Macros
 ### Macro PDN Connections
@@ -54,13 +54,16 @@
 ### Black-box verilog and views
 set ::env(VERILOG_FILES_BLACKBOX) "\
 	$::env(CARAVEL_ROOT)/verilog/rtl/defines.v \
-	$script_dir/../../verilog/rtl/user_proj_example.v"
+	$script_dir/../../verilog/rtl/user_proj_example.v \
+	$script_dir/../../verilog/rtl/sram_32_256_sky130A.v"
 
 set ::env(EXTRA_LEFS) "\
-	$script_dir/../../lef/user_proj_example.lef"
+	$script_dir/../../lef/user_proj_example.lef \
+	$script_dir/../../lef/sram_32_256_sky130A.lef"
 
 set ::env(EXTRA_GDS_FILES) "\
-	$script_dir/../../gds/user_proj_example.gds"
+	$script_dir/../../gds/user_proj_example.gds \
+	$script_dir/../../gds/sram_32_256_sky130A.gds"
 
 set ::env(GLB_RT_MAXLAYER) 5
 
@@ -82,4 +85,4 @@
 set ::env(DIODE_INSERTION_STRATEGY) 0
 set ::env(FILL_INSERTION) 0
 set ::env(TAP_DECAP_INSERTION) 0
-set ::env(CLOCK_TREE_SYNTH) 0
+set ::env(CLOCK_TREE_SYNTH) 0
\ No newline at end of file
diff --git a/verilog/gl/clk_gate.v b/verilog/gl/clk_gate.v
new file mode 100644
index 0000000..6df5b7d
--- /dev/null
+++ b/verilog/gl/clk_gate.v
@@ -0,0 +1,36 @@
+/*
+Copyright (c) 2015, Steven F. Hoover
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * The name of Steven F. Hoover
+      may not be used to endorse or promote products derived from this software
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+`include "sp_verilog.vh"
+
+
+// Clock gate module used by SandPiper default project.
+
+module clk_gate (output gated_clk, input free_clk, func_en, pwr_en, gating_override);
+
+   assign gated_clk = free_clk;
+endmodule
diff --git a/verilog/gl/rvmyth.v b/verilog/gl/rvmyth.v
new file mode 100644
index 0000000..9e96890
--- /dev/null
+++ b/verilog/gl/rvmyth.v
@@ -0,0 +1,269 @@
+//_\TLV_version 1d: tl-x.org, generated by SandPiper(TM) 1.11-2021/01/28-beta
+`include "sp_verilog.vh" //_\SV
+   // Included URL: "https://raw.githubusercontent.com/shivanishah269/risc-v-core/master/FPGA_Implementation/riscv_shell_lib.tlv"// Included URL: "https://raw.githubusercontent.com/stevehoover/warp-v_includes/2d6d36baa4d2bc62321f982f78c8fe1456641a43/risc-v_defs.tlv"
+
+   module rvmyth (
+      output reg [9:0] OUT,
+      input CLK,
+      input reset,
+      
+      output [7:0] imem_addr,
+      input [31:0] imem_data
+   );
+
+   wire clk = CLK;
+   
+`include "rvmyth_gen.v"
+generate //_\TLV
+   //_|cpu
+      //_@0
+         assign CPU_reset_a0 = reset;
+      
+      //Fetch
+         // Next PC
+         assign CPU_pc_a0[31:0] = (CPU_reset_a1) ? 32'd0 : 
+                     (CPU_valid_taken_br_a3) ? CPU_br_tgt_pc_a3 : 
+                     (CPU_valid_load_a3) ? CPU_inc_pc_a3 : 
+                     (CPU_valid_jump_a3 && CPU_is_jal_a3) ? CPU_br_tgt_pc_a3 :
+                     (CPU_valid_jump_a3 && CPU_is_jalr_a3) ? CPU_jalr_tgt_pc_a3 : CPU_inc_pc_a1;
+         
+      //_@1
+         assign imem_addr = CPU_pc_a0[9:2];
+         assign CPU_instr_a1[31:0] = imem_data;
+         assign CPU_inc_pc_a1[31:0] = CPU_pc_a1 + 32'd4;
+                   
+      // Decode   
+         assign CPU_is_i_instr_a1 = CPU_instr_a1[6:2] == 5'b00000 ||
+                     CPU_instr_a1[6:2] == 5'b00001 ||
+                     CPU_instr_a1[6:2] == 5'b00100 ||
+                     CPU_instr_a1[6:2] == 5'b00110 ||
+                     CPU_instr_a1[6:2] == 5'b11001;
+         assign CPU_is_r_instr_a1 = CPU_instr_a1[6:2] == 5'b01011 ||
+                     CPU_instr_a1[6:2] == 5'b10100 ||
+                     CPU_instr_a1[6:2] == 5'b01100 ||
+                     CPU_instr_a1[6:2] == 5'b01101;                       
+         assign CPU_is_b_instr_a1 = CPU_instr_a1[6:2] == 5'b11000;
+         assign CPU_is_u_instr_a1 = CPU_instr_a1[6:2] == 5'b00101 ||
+                     CPU_instr_a1[6:2] == 5'b01101;
+         assign CPU_is_s_instr_a1 = CPU_instr_a1[6:2] == 5'b01000 ||
+                     CPU_instr_a1[6:2] == 5'b01001;
+         assign CPU_is_j_instr_a1 = CPU_instr_a1[6:2] == 5'b11011;
+         
+         assign CPU_imm_a1[31:0] = CPU_is_i_instr_a1 ? { {21{CPU_instr_a1[31]}} , CPU_instr_a1[30:20] } :
+                     CPU_is_s_instr_a1 ? { {21{CPU_instr_a1[31]}} , CPU_instr_a1[30:25] , CPU_instr_a1[11:8] , CPU_instr_a1[7] } :
+                     CPU_is_b_instr_a1 ? { {20{CPU_instr_a1[31]}} , CPU_instr_a1[7] , CPU_instr_a1[30:25] , CPU_instr_a1[11:8] , 1'b0} :
+                     CPU_is_u_instr_a1 ? { CPU_instr_a1[31:12] , 12'b0} : 
+                     CPU_is_j_instr_a1 ? { {12{CPU_instr_a1[31]}} , CPU_instr_a1[19:12] , CPU_instr_a1[20] , CPU_instr_a1[30:21] , 1'b0} : 32'b0;
+         
+         assign CPU_rs2_valid_a1 = CPU_is_r_instr_a1 || CPU_is_s_instr_a1 || CPU_is_b_instr_a1;
+         assign CPU_rs1_valid_a1 = CPU_is_r_instr_a1 || CPU_is_s_instr_a1 || CPU_is_b_instr_a1 || CPU_is_i_instr_a1;
+         assign CPU_rd_valid_a1 = CPU_is_r_instr_a1 || CPU_is_i_instr_a1 || CPU_is_u_instr_a1 || CPU_is_j_instr_a1;
+         assign CPU_funct3_valid_a1 = CPU_is_r_instr_a1 || CPU_is_s_instr_a1 || CPU_is_b_instr_a1 || CPU_is_i_instr_a1;
+         assign CPU_funct7_valid_a1 = CPU_is_r_instr_a1;
+         
+         //_?$rs2_valid
+            assign CPU_rs2_a1[4:0] = CPU_instr_a1[24:20];
+         //_?$rs1_valid
+            assign CPU_rs1_a1[4:0] = CPU_instr_a1[19:15];
+         //_?$rd_valid
+            assign CPU_rd_a1[4:0] = CPU_instr_a1[11:7];
+         //_?$funct3_valid
+            assign CPU_funct3_a1[2:0] = CPU_instr_a1[14:12];
+         //_?$funct7_valid
+            assign CPU_funct7_a1[6:0] = CPU_instr_a1[31:25];
+               
+         assign CPU_opcode_a1[6:0] = CPU_instr_a1[6:0];
+         
+         assign CPU_dec_bits_a1[10:0] = {CPU_funct7_a1[5],CPU_funct3_a1,CPU_opcode_a1};
+         
+         // Branch Instruction
+         assign CPU_is_beq_a1 = CPU_dec_bits_a1[9:0] == 10'b000_1100011;
+         assign CPU_is_bne_a1 = CPU_dec_bits_a1[9:0] == 10'b001_1100011;
+         assign CPU_is_blt_a1 = CPU_dec_bits_a1[9:0] == 10'b100_1100011;
+         assign CPU_is_bge_a1 = CPU_dec_bits_a1[9:0] == 10'b101_1100011;
+         assign CPU_is_bltu_a1 = CPU_dec_bits_a1[9:0] == 10'b110_1100011;
+         assign CPU_is_bgeu_a1 = CPU_dec_bits_a1[9:0] == 10'b111_1100011;
+         
+         // Arithmetic Instruction
+         assign CPU_is_add_a1 = CPU_dec_bits_a1 == 11'b0_000_0110011;
+         assign CPU_is_addi_a1 = CPU_dec_bits_a1[9:0] == 10'b000_0010011;
+         assign CPU_is_or_a1 = CPU_dec_bits_a1 == 11'b0_110_0110011;
+         assign CPU_is_ori_a1 = CPU_dec_bits_a1[9:0] == 10'b110_0010011;
+         assign CPU_is_xor_a1 = CPU_dec_bits_a1 == 11'b0_100_0110011;
+         assign CPU_is_xori_a1 = CPU_dec_bits_a1[9:0] == 10'b100_0010011;
+         assign CPU_is_and_a1 = CPU_dec_bits_a1 == 11'b0_111_0110011;
+         assign CPU_is_andi_a1 = CPU_dec_bits_a1[9:0] == 10'b111_0010011;
+         assign CPU_is_sub_a1 = CPU_dec_bits_a1 == 11'b1_000_0110011;
+         assign CPU_is_slti_a1 = CPU_dec_bits_a1[9:0] == 10'b010_0010011;
+         assign CPU_is_sltiu_a1 = CPU_dec_bits_a1[9:0] == 10'b011_0010011;
+         assign CPU_is_slli_a1 = CPU_dec_bits_a1 == 11'b0_001_0010011;
+         assign CPU_is_srli_a1 = CPU_dec_bits_a1 == 11'b0_101_0010011;
+         assign CPU_is_srai_a1 = CPU_dec_bits_a1 == 11'b1_101_0010011;
+         assign CPU_is_sll_a1 = CPU_dec_bits_a1 == 11'b0_001_0110011;
+         assign CPU_is_slt_a1 = CPU_dec_bits_a1 == 11'b0_010_0110011;
+         assign CPU_is_sltu_a1 = CPU_dec_bits_a1 == 11'b0_011_0110011;
+         assign CPU_is_srl_a1 = CPU_dec_bits_a1 == 11'b0_101_0110011;
+         assign CPU_is_sra_a1 = CPU_dec_bits_a1 == 11'b1_101_0110011;
+         
+         // Load Instruction
+         assign CPU_is_load_a1 = CPU_dec_bits_a1[6:0] == 7'b0000011;
+         
+         // Store Instruction
+         assign CPU_is_sb_a1 = CPU_dec_bits_a1[9:0] == 10'b000_0100011;
+         assign CPU_is_sh_a1 = CPU_dec_bits_a1[9:0] == 10'b001_0100011;
+         assign CPU_is_sw_a1 = CPU_dec_bits_a1[9:0] == 10'b010_0100011;
+         
+         // Jump Instruction
+         assign CPU_is_lui_a1 = CPU_dec_bits_a1[6:0] == 7'b0110111;
+         assign CPU_is_auipc_a1 = CPU_dec_bits_a1[6:0] == 7'b0010111;
+         assign CPU_is_jal_a1 = CPU_dec_bits_a1[6:0] == 7'b1101111;
+         assign CPU_is_jalr_a1 = CPU_dec_bits_a1[9:0] == 10'b000_1100111;
+         
+         assign CPU_is_jump_a1 = CPU_is_jal_a1 || CPU_is_jalr_a1;
+         
+      //_@2   
+      // Register File Read
+         assign CPU_rf_rd_en1_a2 = CPU_rs1_valid_a2;
+         //_?$rf_rd_en1
+            assign CPU_rf_rd_index1_a2[4:0] = CPU_rs1_a2[4:0];
+         
+         assign CPU_rf_rd_en2_a2 = CPU_rs2_valid_a2;
+         //_?$rf_rd_en2
+            assign CPU_rf_rd_index2_a2[4:0] = CPU_rs2_a2[4:0];
+               
+      // Branch Target PC       
+         assign CPU_br_tgt_pc_a2[31:0] = CPU_pc_a2 + CPU_imm_a2;
+      
+      // Jump Target PC
+         assign CPU_jalr_tgt_pc_a2[31:0] = CPU_src1_value_a2 + CPU_imm_a2;
+         
+      // Input signals to ALU
+         assign CPU_src1_value_a2[31:0] = ((CPU_rd_a3 == CPU_rs1_a2) && CPU_rf_wr_en_a3) ? CPU_result_a3 : CPU_rf_rd_data1_a2[31:0];
+         assign CPU_src2_value_a2[31:0] = ((CPU_rd_a3 == CPU_rs2_a2) && CPU_rf_wr_en_a3) ? CPU_result_a3 : CPU_rf_rd_data2_a2[31:0];
+         
+      //_@3   
+         
+      // ALU
+         assign CPU_sltu_result_a3 = CPU_src1_value_a3 < CPU_src2_value_a3 ;
+         assign CPU_sltiu_result_a3 = CPU_src1_value_a3 < CPU_imm_a3 ;
+         
+         assign CPU_result_a3[31:0] = CPU_is_addi_a3 ? CPU_src1_value_a3 + CPU_imm_a3 :
+                           CPU_is_add_a3 ? CPU_src1_value_a3 + CPU_src2_value_a3 : 
+                           CPU_is_or_a3 ? CPU_src1_value_a3 | CPU_src2_value_a3 : 
+                           CPU_is_ori_a3 ? CPU_src1_value_a3 | CPU_imm_a3 :
+                           CPU_is_xor_a3 ? CPU_src1_value_a3 ^ CPU_src2_value_a3 :
+                           CPU_is_xori_a3 ? CPU_src1_value_a3 ^ CPU_imm_a3 :
+                           CPU_is_and_a3 ? CPU_src1_value_a3 & CPU_src2_value_a3 :
+                           CPU_is_andi_a3 ? CPU_src1_value_a3 & CPU_imm_a3 :
+                           CPU_is_sub_a3 ? CPU_src1_value_a3 - CPU_src2_value_a3 :
+                           CPU_is_slti_a3 ? ((CPU_src1_value_a3[31] == CPU_imm_a3[31]) ? CPU_sltiu_result_a3 : {31'b0,CPU_src1_value_a3[31]}) :
+                           CPU_is_sltiu_a3 ? CPU_sltiu_result_a3 :
+                           CPU_is_slli_a3 ? CPU_src1_value_a3 << CPU_imm_a3[5:0] :
+                           CPU_is_srli_a3 ? CPU_src1_value_a3 >> CPU_imm_a3[5:0] :
+                           CPU_is_srai_a3 ? ({{32{CPU_src1_value_a3[31]}}, CPU_src1_value_a3} >> CPU_imm_a3[4:0]) :
+                           CPU_is_sll_a3 ? CPU_src1_value_a3 << CPU_src2_value_a3[4:0] :
+                           CPU_is_slt_a3 ? ((CPU_src1_value_a3[31] == CPU_src2_value_a3[31]) ? CPU_sltu_result_a3 : {31'b0,CPU_src1_value_a3[31]}) :
+                           CPU_is_sltu_a3 ? CPU_sltu_result_a3 :
+                           CPU_is_srl_a3 ? CPU_src1_value_a3 >> CPU_src2_value_a3[5:0] :
+                           CPU_is_sra_a3 ? ({{32{CPU_src1_value_a3[31]}}, CPU_src1_value_a3} >> CPU_src2_value_a3[4:0]) :
+                           CPU_is_lui_a3 ? ({CPU_imm_a3[31:12], 12'b0}) :
+                           CPU_is_auipc_a3 ? CPU_pc_a3 + CPU_imm_a3 :
+                           CPU_is_jal_a3 ? CPU_pc_a3 + 4 :
+                           CPU_is_jalr_a3 ? CPU_pc_a3 + 4 : 
+                           (CPU_is_load_a3 || CPU_is_s_instr_a3) ? CPU_src1_value_a3 + CPU_imm_a3 : 32'bx;
+                           
+      // Register File Write
+         assign CPU_rf_wr_en_a3 = (CPU_rd_valid_a3 && CPU_valid_a3 && CPU_rd_a3 != 5'b0) || CPU_valid_load_a5;
+         //_?$rf_wr_en
+            assign CPU_rf_wr_index_a3[4:0] = !CPU_valid_a3 ? CPU_rd_a5[4:0] : CPU_rd_a3[4:0];
+      
+         assign CPU_rf_wr_data_a3[31:0] = !CPU_valid_a3 ? CPU_ld_data_a5[31:0] : CPU_result_a3[31:0];
+      
+      // Branch
+         assign CPU_taken_br_a3 = CPU_is_beq_a3 ? (CPU_src1_value_a3 == CPU_src2_value_a3) :
+                     CPU_is_bne_a3 ? (CPU_src1_value_a3 != CPU_src2_value_a3) :
+                     CPU_is_blt_a3 ? ((CPU_src1_value_a3 < CPU_src2_value_a3) ^ (CPU_src1_value_a3[31] != CPU_src2_value_a3[31])) :
+                     CPU_is_bge_a3 ? ((CPU_src1_value_a3 >= CPU_src2_value_a3) ^ (CPU_src1_value_a3[31] != CPU_src2_value_a3[31])) :
+                     CPU_is_bltu_a3 ? (CPU_src1_value_a3 < CPU_src2_value_a3) :
+                     CPU_is_bgeu_a3 ? (CPU_src1_value_a3 >= CPU_src2_value_a3) : 1'b0;
+                     
+         assign CPU_valid_taken_br_a3 = CPU_valid_a3 && CPU_taken_br_a3;
+         
+      // Load
+         assign CPU_valid_load_a3 = CPU_valid_a3 && CPU_is_load_a3;
+         assign CPU_valid_a3 = !(CPU_valid_taken_br_a4 || CPU_valid_taken_br_a5 || CPU_valid_load_a4 || CPU_valid_load_a5 || CPU_valid_jump_a4 || CPU_valid_jump_a5);
+      
+      // Jump
+         assign CPU_valid_jump_a3 = CPU_valid_a3 && CPU_is_jump_a3;
+                  
+      //_@4
+         assign CPU_dmem_rd_en_a4 = CPU_valid_load_a4;
+         assign CPU_dmem_wr_en_a4 = CPU_valid_a4 && CPU_is_s_instr_a4;
+         assign CPU_dmem_addr_a4[3:0] = CPU_result_a4[5:2];
+         assign CPU_dmem_wr_data_a4[31:0] = CPU_src2_value_a4[31:0];
+         
+      //_@5   
+         assign CPU_ld_data_a5[31:0] = CPU_dmem_rd_data_a5[31:0];
+         
+      // Note: Because of the magic we are using for visualisation, if visualisation is enabled below,
+      //       be sure to avoid having unassigned signals (which you might be using for random inputs)
+      //       other than those specifically expected in the labs. You'll get strange errors for these.
+
+         `BOGUS_USE(CPU_is_beq_a5 CPU_is_bne_a5 CPU_is_blt_a5 CPU_is_bge_a5 CPU_is_bltu_a5 CPU_is_bgeu_a5)
+         `BOGUS_USE(CPU_is_sb_a5 CPU_is_sh_a5 CPU_is_sw_a5)
+   // Assert these to end simulation (before Makerchip cycle limit).
+   /*SV_plus*/
+      always @ (posedge CLK) begin
+         OUT = CPU_Xreg_value_a5[17];                
+      end
+   
+   // Macro instantiations for:
+   //  o instruction memory
+   //  o register file
+   //  o data memory
+   //  o CPU visualization
+   //_|cpu
+      // m4+imem(@1)    // Args: (read stage)
+      //_\source /raw.githubusercontent.com/shivanishah269/riscvcore/master/FPGAImplementation/riscvshelllib.tlv 31   // Instantiated from rvmyth.tlv, 226 as: m4+rf(@2, @3)
+         // Reg File
+         //_@3
+            for (xreg = 0; xreg <= 31; xreg=xreg+1) begin : L1_CPU_Xreg //_/xreg
+
+               // For $wr.
+               wire L1_wr_a3;
+
+               assign L1_wr_a3 = CPU_rf_wr_en_a3 && (CPU_rf_wr_index_a3 != 5'b0) && (CPU_rf_wr_index_a3 == xreg);
+               assign CPU_Xreg_value_a3[xreg][31:0] = CPU_reset_a3 ?   xreg           :
+                              L1_wr_a3        ?   CPU_rf_wr_data_a3 :
+                                             CPU_Xreg_value_a4[xreg][31:0];
+            end
+         //_@2
+            //_?$rf_rd_en1
+               assign CPU_rf_rd_data1_a2[31:0] = CPU_Xreg_value_a4[CPU_rf_rd_index1_a2];
+            //_?$rf_rd_en2
+               assign CPU_rf_rd_data2_a2[31:0] = CPU_Xreg_value_a4[CPU_rf_rd_index2_a2];
+            `BOGUS_USE(CPU_rf_rd_data1_a2 CPU_rf_rd_data2_a2) 
+      //_\end_source  // Args: (read stage, write stage) - if equal, no register bypass is required
+      //_\source /raw.githubusercontent.com/shivanishah269/riscvcore/master/FPGAImplementation/riscvshelllib.tlv 48   // Instantiated from rvmyth.tlv, 227 as: m4+dmem(@4)
+         // Data Memory
+         //_@4
+            for (dmem = 0; dmem <= 15; dmem=dmem+1) begin : L1_CPU_Dmem //_/dmem
+
+               // For $wr.
+               wire L1_wr_a4;
+
+               assign L1_wr_a4 = CPU_dmem_wr_en_a4 && (CPU_dmem_addr_a4 == dmem);
+               assign CPU_Dmem_value_a4[dmem][31:0] = CPU_reset_a4 ?   dmem :
+                              L1_wr_a4        ?   CPU_dmem_wr_data_a4 :
+                                             CPU_Dmem_value_a5[dmem][31:0];
+                                        
+            end
+            //_?$dmem_rd_en
+               assign CPU_dmem_rd_data_a4[31:0] = CPU_Dmem_value_a5[CPU_dmem_addr_a4];
+            //`BOGUS_USE($dmem_rd_data)
+      //_\end_source    // Args: (read/write stage)
+endgenerate
+
+//_\SV
+   
+   endmodule
diff --git a/verilog/gl/sram_32_256_sky130A.v b/verilog/gl/sram_32_256_sky130A.v
new file mode 100644
index 0000000..d45d17e
--- /dev/null
+++ b/verilog/gl/sram_32_256_sky130A.v
@@ -0,0 +1,72 @@
+// OpenRAM SRAM model
+// Words: 256
+// Word size: 32
+
+module sram_32_256_sky130A(
+`ifdef USE_POWER_PINS
+    vccd1,
+    vssd1,
+`endif
+// Port 0: RW
+    clk0,csb0,web0,addr0,din0,dout0
+  );
+
+  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 [ADDR_WIDTH-1:0]  addr0;
+  input [DATA_WIDTH-1:0]  din0;
+  output [DATA_WIDTH-1:0] dout0;
+
+  reg  csb0_reg;
+  reg  web0_reg;
+  reg [ADDR_WIDTH-1:0]  addr0_reg;
+  reg [DATA_WIDTH-1:0]  din0_reg;
+  reg [DATA_WIDTH-1:0]  dout0;
+
+  // All inputs are registers
+  always @(posedge clk0)
+  begin
+    csb0_reg = csb0;
+    web0_reg = web0;
+    addr0_reg = addr0;
+    din0_reg = din0;
+    #(T_HOLD) dout0 = 32'bx;
+    if ( !csb0_reg && web0_reg && VERBOSE ) 
+      $display($time," Reading %m addr0=%b dout0=%b",addr0_reg,mem[addr0_reg]);
+    if ( !csb0_reg && !web0_reg && VERBOSE )
+      $display($time," Writing %m addr0=%b din0=%b",addr0_reg,din0_reg);
+  end
+
+reg [DATA_WIDTH-1:0]    mem [0:RAM_DEPTH-1];
+
+  // Memory Write Block Port 0
+  // Write Operation : When web0 = 0, csb0 = 0
+  always @ (negedge clk0)
+  begin : MEM_WRITE0
+    if ( !csb0_reg && !web0_reg ) begin
+        mem[addr0_reg][31:0] = din0_reg[31:0];
+    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
+
+endmodule
diff --git a/verilog/include/rvmyth_gen.v b/verilog/include/rvmyth_gen.v
new file mode 100644
index 0000000..0a70a27
--- /dev/null
+++ b/verilog/include/rvmyth_gen.v
@@ -0,0 +1,706 @@
+// Generated by SandPiper(TM) 1.11-2021/01/28-beta from Redwood EDA.
+// Redwood EDA does not claim intellectual property rights to this file and provides no warranty regarding its correctness or quality.
+
+
+`include "sandpiper_gen.vh"
+
+
+genvar dmem, xreg;
+
+
+//
+// Signals declared top-level.
+//
+
+// For |cpu$br_tgt_pc.
+wire [31:0] CPU_br_tgt_pc_a2;
+reg  [31:0] CPU_br_tgt_pc_a3;
+
+// For |cpu$dec_bits.
+wire [10:0] CPU_dec_bits_a1;
+
+// For |cpu$dmem_addr.
+wire [3:0] CPU_dmem_addr_a4;
+
+// For |cpu$dmem_rd_data.
+wire [31:0] CPU_dmem_rd_data_a4;
+reg  [31:0] CPU_dmem_rd_data_a5;
+
+// For |cpu$dmem_rd_en.
+wire CPU_dmem_rd_en_a4;
+
+// For |cpu$dmem_wr_data.
+wire [31:0] CPU_dmem_wr_data_a4;
+
+// For |cpu$dmem_wr_en.
+wire CPU_dmem_wr_en_a4;
+
+// For |cpu$funct3.
+wire [2:0] CPU_funct3_a1;
+
+// For |cpu$funct3_valid.
+wire CPU_funct3_valid_a1;
+
+// For |cpu$funct7.
+wire [6:0] CPU_funct7_a1;
+
+// For |cpu$funct7_valid.
+wire CPU_funct7_valid_a1;
+
+// For |cpu$imm.
+wire [31:0] CPU_imm_a1;
+reg  [31:0] CPU_imm_a2,
+            CPU_imm_a3;
+
+// For |cpu$inc_pc.
+wire [31:0] CPU_inc_pc_a1;
+reg  [31:0] CPU_inc_pc_a2,
+            CPU_inc_pc_a3;
+
+// For |cpu$instr.
+wire [31:0] CPU_instr_a1;
+
+// For |cpu$is_add.
+wire CPU_is_add_a1;
+reg  CPU_is_add_a2,
+     CPU_is_add_a3;
+
+// For |cpu$is_addi.
+wire CPU_is_addi_a1;
+reg  CPU_is_addi_a2,
+     CPU_is_addi_a3;
+
+// For |cpu$is_and.
+wire CPU_is_and_a1;
+reg  CPU_is_and_a2,
+     CPU_is_and_a3;
+
+// For |cpu$is_andi.
+wire CPU_is_andi_a1;
+reg  CPU_is_andi_a2,
+     CPU_is_andi_a3;
+
+// For |cpu$is_auipc.
+wire CPU_is_auipc_a1;
+reg  CPU_is_auipc_a2,
+     CPU_is_auipc_a3;
+
+// For |cpu$is_b_instr.
+wire CPU_is_b_instr_a1;
+
+// For |cpu$is_beq.
+wire CPU_is_beq_a1;
+reg  CPU_is_beq_a2,
+     CPU_is_beq_a3,
+     CPU_is_beq_a4,
+     CPU_is_beq_a5;
+
+// For |cpu$is_bge.
+wire CPU_is_bge_a1;
+reg  CPU_is_bge_a2,
+     CPU_is_bge_a3,
+     CPU_is_bge_a4,
+     CPU_is_bge_a5;
+
+// For |cpu$is_bgeu.
+wire CPU_is_bgeu_a1;
+reg  CPU_is_bgeu_a2,
+     CPU_is_bgeu_a3,
+     CPU_is_bgeu_a4,
+     CPU_is_bgeu_a5;
+
+// For |cpu$is_blt.
+wire CPU_is_blt_a1;
+reg  CPU_is_blt_a2,
+     CPU_is_blt_a3,
+     CPU_is_blt_a4,
+     CPU_is_blt_a5;
+
+// For |cpu$is_bltu.
+wire CPU_is_bltu_a1;
+reg  CPU_is_bltu_a2,
+     CPU_is_bltu_a3,
+     CPU_is_bltu_a4,
+     CPU_is_bltu_a5;
+
+// For |cpu$is_bne.
+wire CPU_is_bne_a1;
+reg  CPU_is_bne_a2,
+     CPU_is_bne_a3,
+     CPU_is_bne_a4,
+     CPU_is_bne_a5;
+
+// For |cpu$is_i_instr.
+wire CPU_is_i_instr_a1;
+
+// For |cpu$is_j_instr.
+wire CPU_is_j_instr_a1;
+
+// For |cpu$is_jal.
+wire CPU_is_jal_a1;
+reg  CPU_is_jal_a2,
+     CPU_is_jal_a3;
+
+// For |cpu$is_jalr.
+wire CPU_is_jalr_a1;
+reg  CPU_is_jalr_a2,
+     CPU_is_jalr_a3;
+
+// For |cpu$is_jump.
+wire CPU_is_jump_a1;
+reg  CPU_is_jump_a2,
+     CPU_is_jump_a3;
+
+// For |cpu$is_load.
+wire CPU_is_load_a1;
+reg  CPU_is_load_a2,
+     CPU_is_load_a3;
+
+// For |cpu$is_lui.
+wire CPU_is_lui_a1;
+reg  CPU_is_lui_a2,
+     CPU_is_lui_a3;
+
+// For |cpu$is_or.
+wire CPU_is_or_a1;
+reg  CPU_is_or_a2,
+     CPU_is_or_a3;
+
+// For |cpu$is_ori.
+wire CPU_is_ori_a1;
+reg  CPU_is_ori_a2,
+     CPU_is_ori_a3;
+
+// For |cpu$is_r_instr.
+wire CPU_is_r_instr_a1;
+
+// For |cpu$is_s_instr.
+wire CPU_is_s_instr_a1;
+reg  CPU_is_s_instr_a2,
+     CPU_is_s_instr_a3,
+     CPU_is_s_instr_a4;
+
+// For |cpu$is_sb.
+wire CPU_is_sb_a1;
+reg  CPU_is_sb_a2,
+     CPU_is_sb_a3,
+     CPU_is_sb_a4,
+     CPU_is_sb_a5;
+
+// For |cpu$is_sh.
+wire CPU_is_sh_a1;
+reg  CPU_is_sh_a2,
+     CPU_is_sh_a3,
+     CPU_is_sh_a4,
+     CPU_is_sh_a5;
+
+// For |cpu$is_sll.
+wire CPU_is_sll_a1;
+reg  CPU_is_sll_a2,
+     CPU_is_sll_a3;
+
+// For |cpu$is_slli.
+wire CPU_is_slli_a1;
+reg  CPU_is_slli_a2,
+     CPU_is_slli_a3;
+
+// For |cpu$is_slt.
+wire CPU_is_slt_a1;
+reg  CPU_is_slt_a2,
+     CPU_is_slt_a3;
+
+// For |cpu$is_slti.
+wire CPU_is_slti_a1;
+reg  CPU_is_slti_a2,
+     CPU_is_slti_a3;
+
+// For |cpu$is_sltiu.
+wire CPU_is_sltiu_a1;
+reg  CPU_is_sltiu_a2,
+     CPU_is_sltiu_a3;
+
+// For |cpu$is_sltu.
+wire CPU_is_sltu_a1;
+reg  CPU_is_sltu_a2,
+     CPU_is_sltu_a3;
+
+// For |cpu$is_sra.
+wire CPU_is_sra_a1;
+reg  CPU_is_sra_a2,
+     CPU_is_sra_a3;
+
+// For |cpu$is_srai.
+wire CPU_is_srai_a1;
+reg  CPU_is_srai_a2,
+     CPU_is_srai_a3;
+
+// For |cpu$is_srl.
+wire CPU_is_srl_a1;
+reg  CPU_is_srl_a2,
+     CPU_is_srl_a3;
+
+// For |cpu$is_srli.
+wire CPU_is_srli_a1;
+reg  CPU_is_srli_a2,
+     CPU_is_srli_a3;
+
+// For |cpu$is_sub.
+wire CPU_is_sub_a1;
+reg  CPU_is_sub_a2,
+     CPU_is_sub_a3;
+
+// For |cpu$is_sw.
+wire CPU_is_sw_a1;
+reg  CPU_is_sw_a2,
+     CPU_is_sw_a3,
+     CPU_is_sw_a4,
+     CPU_is_sw_a5;
+
+// For |cpu$is_u_instr.
+wire CPU_is_u_instr_a1;
+
+// For |cpu$is_xor.
+wire CPU_is_xor_a1;
+reg  CPU_is_xor_a2,
+     CPU_is_xor_a3;
+
+// For |cpu$is_xori.
+wire CPU_is_xori_a1;
+reg  CPU_is_xori_a2,
+     CPU_is_xori_a3;
+
+// For |cpu$jalr_tgt_pc.
+wire [31:0] CPU_jalr_tgt_pc_a2;
+reg  [31:0] CPU_jalr_tgt_pc_a3;
+
+// For |cpu$ld_data.
+wire [31:0] CPU_ld_data_a5;
+
+// For |cpu$opcode.
+wire [6:0] CPU_opcode_a1;
+
+// For |cpu$pc.
+wire [31:0] CPU_pc_a0;
+reg  [31:0] CPU_pc_a1,
+            CPU_pc_a2,
+            CPU_pc_a3;
+
+// For |cpu$rd.
+wire [4:0] CPU_rd_a1;
+reg  [4:0] CPU_rd_a2,
+           CPU_rd_a3,
+           CPU_rd_a4,
+           CPU_rd_a5;
+
+// For |cpu$rd_valid.
+wire CPU_rd_valid_a1;
+reg  CPU_rd_valid_a2,
+     CPU_rd_valid_a3,
+     CPU_rd_valid_a4;
+
+// For |cpu$reset.
+wire CPU_reset_a0;
+reg  CPU_reset_a1,
+     CPU_reset_a2,
+     CPU_reset_a3,
+     CPU_reset_a4;
+
+// For |cpu$result.
+wire [31:0] CPU_result_a3;
+reg  [5:2] CPU_result_a4;
+
+// For |cpu$rf_rd_data1.
+wire [31:0] CPU_rf_rd_data1_a2;
+
+// For |cpu$rf_rd_data2.
+wire [31:0] CPU_rf_rd_data2_a2;
+
+// For |cpu$rf_rd_en1.
+wire CPU_rf_rd_en1_a2;
+
+// For |cpu$rf_rd_en2.
+wire CPU_rf_rd_en2_a2;
+
+// For |cpu$rf_rd_index1.
+wire [4:0] CPU_rf_rd_index1_a2;
+
+// For |cpu$rf_rd_index2.
+wire [4:0] CPU_rf_rd_index2_a2;
+
+// For |cpu$rf_wr_data.
+wire [31:0] CPU_rf_wr_data_a3;
+
+// For |cpu$rf_wr_en.
+wire CPU_rf_wr_en_a3;
+
+// For |cpu$rf_wr_index.
+wire [4:0] CPU_rf_wr_index_a3;
+
+// For |cpu$rs1.
+wire [4:0] CPU_rs1_a1;
+reg  [4:0] CPU_rs1_a2;
+
+// For |cpu$rs1_valid.
+wire CPU_rs1_valid_a1;
+reg  CPU_rs1_valid_a2;
+
+// For |cpu$rs2.
+wire [4:0] CPU_rs2_a1;
+reg  [4:0] CPU_rs2_a2;
+
+// For |cpu$rs2_valid.
+wire CPU_rs2_valid_a1;
+reg  CPU_rs2_valid_a2;
+
+// For |cpu$sltiu_result.
+wire CPU_sltiu_result_a3;
+
+// For |cpu$sltu_result.
+wire CPU_sltu_result_a3;
+
+// For |cpu$src1_value.
+wire [31:0] CPU_src1_value_a2;
+reg  [31:0] CPU_src1_value_a3;
+
+// For |cpu$src2_value.
+wire [31:0] CPU_src2_value_a2;
+reg  [31:0] CPU_src2_value_a3,
+            CPU_src2_value_a4;
+
+// For |cpu$taken_br.
+wire CPU_taken_br_a3;
+
+// For |cpu$valid.
+wire CPU_valid_a3;
+reg  CPU_valid_a4;
+
+// For |cpu$valid_jump.
+wire CPU_valid_jump_a3;
+reg  CPU_valid_jump_a4,
+     CPU_valid_jump_a5;
+
+// For |cpu$valid_load.
+wire CPU_valid_load_a3;
+reg  CPU_valid_load_a4,
+     CPU_valid_load_a5;
+
+// For |cpu$valid_taken_br.
+wire CPU_valid_taken_br_a3;
+reg  CPU_valid_taken_br_a4,
+     CPU_valid_taken_br_a5;
+
+// For |cpu/dmem$value.
+wire [31:0] CPU_Dmem_value_a4 [15:0];
+reg  [31:0] CPU_Dmem_value_a5 [15:0];
+
+// For |cpu/xreg$value.
+wire [31:0] CPU_Xreg_value_a3 [31:0];
+reg  [31:0] CPU_Xreg_value_a4 [31:0],
+            CPU_Xreg_value_a5 [31:0];
+
+
+//
+// Scope: |cpu
+//
+
+// Clock signals.
+wire clkP_CPU_dmem_rd_en_a5 ;
+wire clkP_CPU_rd_valid_a2 ;
+wire clkP_CPU_rd_valid_a3 ;
+wire clkP_CPU_rd_valid_a4 ;
+wire clkP_CPU_rd_valid_a5 ;
+wire clkP_CPU_rs1_valid_a2 ;
+wire clkP_CPU_rs2_valid_a2 ;
+
+
+generate
+
+
+   //
+   // Scope: |cpu
+   //
+
+      // For $br_tgt_pc.
+      always @(posedge clk) CPU_br_tgt_pc_a3[31:0] <= CPU_br_tgt_pc_a2[31:0];
+
+      // For $dmem_rd_data.
+      always @(posedge clkP_CPU_dmem_rd_en_a5) CPU_dmem_rd_data_a5[31:0] <= CPU_dmem_rd_data_a4[31:0];
+
+      // For $imm.
+      always @(posedge clk) CPU_imm_a2[31:0] <= CPU_imm_a1[31:0];
+      always @(posedge clk) CPU_imm_a3[31:0] <= CPU_imm_a2[31:0];
+
+      // For $inc_pc.
+      always @(posedge clk) CPU_inc_pc_a2[31:0] <= CPU_inc_pc_a1[31:0];
+      always @(posedge clk) CPU_inc_pc_a3[31:0] <= CPU_inc_pc_a2[31:0];
+
+      // For $is_add.
+      always @(posedge clk) CPU_is_add_a2 <= CPU_is_add_a1;
+      always @(posedge clk) CPU_is_add_a3 <= CPU_is_add_a2;
+
+      // For $is_addi.
+      always @(posedge clk) CPU_is_addi_a2 <= CPU_is_addi_a1;
+      always @(posedge clk) CPU_is_addi_a3 <= CPU_is_addi_a2;
+
+      // For $is_and.
+      always @(posedge clk) CPU_is_and_a2 <= CPU_is_and_a1;
+      always @(posedge clk) CPU_is_and_a3 <= CPU_is_and_a2;
+
+      // For $is_andi.
+      always @(posedge clk) CPU_is_andi_a2 <= CPU_is_andi_a1;
+      always @(posedge clk) CPU_is_andi_a3 <= CPU_is_andi_a2;
+
+      // For $is_auipc.
+      always @(posedge clk) CPU_is_auipc_a2 <= CPU_is_auipc_a1;
+      always @(posedge clk) CPU_is_auipc_a3 <= CPU_is_auipc_a2;
+
+      // For $is_beq.
+      always @(posedge clk) CPU_is_beq_a2 <= CPU_is_beq_a1;
+      always @(posedge clk) CPU_is_beq_a3 <= CPU_is_beq_a2;
+      always @(posedge clk) CPU_is_beq_a4 <= CPU_is_beq_a3;
+      always @(posedge clk) CPU_is_beq_a5 <= CPU_is_beq_a4;
+
+      // For $is_bge.
+      always @(posedge clk) CPU_is_bge_a2 <= CPU_is_bge_a1;
+      always @(posedge clk) CPU_is_bge_a3 <= CPU_is_bge_a2;
+      always @(posedge clk) CPU_is_bge_a4 <= CPU_is_bge_a3;
+      always @(posedge clk) CPU_is_bge_a5 <= CPU_is_bge_a4;
+
+      // For $is_bgeu.
+      always @(posedge clk) CPU_is_bgeu_a2 <= CPU_is_bgeu_a1;
+      always @(posedge clk) CPU_is_bgeu_a3 <= CPU_is_bgeu_a2;
+      always @(posedge clk) CPU_is_bgeu_a4 <= CPU_is_bgeu_a3;
+      always @(posedge clk) CPU_is_bgeu_a5 <= CPU_is_bgeu_a4;
+
+      // For $is_blt.
+      always @(posedge clk) CPU_is_blt_a2 <= CPU_is_blt_a1;
+      always @(posedge clk) CPU_is_blt_a3 <= CPU_is_blt_a2;
+      always @(posedge clk) CPU_is_blt_a4 <= CPU_is_blt_a3;
+      always @(posedge clk) CPU_is_blt_a5 <= CPU_is_blt_a4;
+
+      // For $is_bltu.
+      always @(posedge clk) CPU_is_bltu_a2 <= CPU_is_bltu_a1;
+      always @(posedge clk) CPU_is_bltu_a3 <= CPU_is_bltu_a2;
+      always @(posedge clk) CPU_is_bltu_a4 <= CPU_is_bltu_a3;
+      always @(posedge clk) CPU_is_bltu_a5 <= CPU_is_bltu_a4;
+
+      // For $is_bne.
+      always @(posedge clk) CPU_is_bne_a2 <= CPU_is_bne_a1;
+      always @(posedge clk) CPU_is_bne_a3 <= CPU_is_bne_a2;
+      always @(posedge clk) CPU_is_bne_a4 <= CPU_is_bne_a3;
+      always @(posedge clk) CPU_is_bne_a5 <= CPU_is_bne_a4;
+
+      // For $is_jal.
+      always @(posedge clk) CPU_is_jal_a2 <= CPU_is_jal_a1;
+      always @(posedge clk) CPU_is_jal_a3 <= CPU_is_jal_a2;
+
+      // For $is_jalr.
+      always @(posedge clk) CPU_is_jalr_a2 <= CPU_is_jalr_a1;
+      always @(posedge clk) CPU_is_jalr_a3 <= CPU_is_jalr_a2;
+
+      // For $is_jump.
+      always @(posedge clk) CPU_is_jump_a2 <= CPU_is_jump_a1;
+      always @(posedge clk) CPU_is_jump_a3 <= CPU_is_jump_a2;
+
+      // For $is_load.
+      always @(posedge clk) CPU_is_load_a2 <= CPU_is_load_a1;
+      always @(posedge clk) CPU_is_load_a3 <= CPU_is_load_a2;
+
+      // For $is_lui.
+      always @(posedge clk) CPU_is_lui_a2 <= CPU_is_lui_a1;
+      always @(posedge clk) CPU_is_lui_a3 <= CPU_is_lui_a2;
+
+      // For $is_or.
+      always @(posedge clk) CPU_is_or_a2 <= CPU_is_or_a1;
+      always @(posedge clk) CPU_is_or_a3 <= CPU_is_or_a2;
+
+      // For $is_ori.
+      always @(posedge clk) CPU_is_ori_a2 <= CPU_is_ori_a1;
+      always @(posedge clk) CPU_is_ori_a3 <= CPU_is_ori_a2;
+
+      // For $is_s_instr.
+      always @(posedge clk) CPU_is_s_instr_a2 <= CPU_is_s_instr_a1;
+      always @(posedge clk) CPU_is_s_instr_a3 <= CPU_is_s_instr_a2;
+      always @(posedge clk) CPU_is_s_instr_a4 <= CPU_is_s_instr_a3;
+
+      // For $is_sb.
+      always @(posedge clk) CPU_is_sb_a2 <= CPU_is_sb_a1;
+      always @(posedge clk) CPU_is_sb_a3 <= CPU_is_sb_a2;
+      always @(posedge clk) CPU_is_sb_a4 <= CPU_is_sb_a3;
+      always @(posedge clk) CPU_is_sb_a5 <= CPU_is_sb_a4;
+
+      // For $is_sh.
+      always @(posedge clk) CPU_is_sh_a2 <= CPU_is_sh_a1;
+      always @(posedge clk) CPU_is_sh_a3 <= CPU_is_sh_a2;
+      always @(posedge clk) CPU_is_sh_a4 <= CPU_is_sh_a3;
+      always @(posedge clk) CPU_is_sh_a5 <= CPU_is_sh_a4;
+
+      // For $is_sll.
+      always @(posedge clk) CPU_is_sll_a2 <= CPU_is_sll_a1;
+      always @(posedge clk) CPU_is_sll_a3 <= CPU_is_sll_a2;
+
+      // For $is_slli.
+      always @(posedge clk) CPU_is_slli_a2 <= CPU_is_slli_a1;
+      always @(posedge clk) CPU_is_slli_a3 <= CPU_is_slli_a2;
+
+      // For $is_slt.
+      always @(posedge clk) CPU_is_slt_a2 <= CPU_is_slt_a1;
+      always @(posedge clk) CPU_is_slt_a3 <= CPU_is_slt_a2;
+
+      // For $is_slti.
+      always @(posedge clk) CPU_is_slti_a2 <= CPU_is_slti_a1;
+      always @(posedge clk) CPU_is_slti_a3 <= CPU_is_slti_a2;
+
+      // For $is_sltiu.
+      always @(posedge clk) CPU_is_sltiu_a2 <= CPU_is_sltiu_a1;
+      always @(posedge clk) CPU_is_sltiu_a3 <= CPU_is_sltiu_a2;
+
+      // For $is_sltu.
+      always @(posedge clk) CPU_is_sltu_a2 <= CPU_is_sltu_a1;
+      always @(posedge clk) CPU_is_sltu_a3 <= CPU_is_sltu_a2;
+
+      // For $is_sra.
+      always @(posedge clk) CPU_is_sra_a2 <= CPU_is_sra_a1;
+      always @(posedge clk) CPU_is_sra_a3 <= CPU_is_sra_a2;
+
+      // For $is_srai.
+      always @(posedge clk) CPU_is_srai_a2 <= CPU_is_srai_a1;
+      always @(posedge clk) CPU_is_srai_a3 <= CPU_is_srai_a2;
+
+      // For $is_srl.
+      always @(posedge clk) CPU_is_srl_a2 <= CPU_is_srl_a1;
+      always @(posedge clk) CPU_is_srl_a3 <= CPU_is_srl_a2;
+
+      // For $is_srli.
+      always @(posedge clk) CPU_is_srli_a2 <= CPU_is_srli_a1;
+      always @(posedge clk) CPU_is_srli_a3 <= CPU_is_srli_a2;
+
+      // For $is_sub.
+      always @(posedge clk) CPU_is_sub_a2 <= CPU_is_sub_a1;
+      always @(posedge clk) CPU_is_sub_a3 <= CPU_is_sub_a2;
+
+      // For $is_sw.
+      always @(posedge clk) CPU_is_sw_a2 <= CPU_is_sw_a1;
+      always @(posedge clk) CPU_is_sw_a3 <= CPU_is_sw_a2;
+      always @(posedge clk) CPU_is_sw_a4 <= CPU_is_sw_a3;
+      always @(posedge clk) CPU_is_sw_a5 <= CPU_is_sw_a4;
+
+      // For $is_xor.
+      always @(posedge clk) CPU_is_xor_a2 <= CPU_is_xor_a1;
+      always @(posedge clk) CPU_is_xor_a3 <= CPU_is_xor_a2;
+
+      // For $is_xori.
+      always @(posedge clk) CPU_is_xori_a2 <= CPU_is_xori_a1;
+      always @(posedge clk) CPU_is_xori_a3 <= CPU_is_xori_a2;
+
+      // For $jalr_tgt_pc.
+      always @(posedge clk) CPU_jalr_tgt_pc_a3[31:0] <= CPU_jalr_tgt_pc_a2[31:0];
+
+      // For $pc.
+      always @(posedge clk) CPU_pc_a1[31:0] <= CPU_pc_a0[31:0];
+      always @(posedge clk) CPU_pc_a2[31:0] <= CPU_pc_a1[31:0];
+      always @(posedge clk) CPU_pc_a3[31:0] <= CPU_pc_a2[31:0];
+
+      // For $rd.
+      always @(posedge clkP_CPU_rd_valid_a2) CPU_rd_a2[4:0] <= CPU_rd_a1[4:0];
+      always @(posedge clkP_CPU_rd_valid_a3) CPU_rd_a3[4:0] <= CPU_rd_a2[4:0];
+      always @(posedge clkP_CPU_rd_valid_a4) CPU_rd_a4[4:0] <= CPU_rd_a3[4:0];
+      always @(posedge clkP_CPU_rd_valid_a5) CPU_rd_a5[4:0] <= CPU_rd_a4[4:0];
+
+      // For $rd_valid.
+      always @(posedge clk) CPU_rd_valid_a2 <= CPU_rd_valid_a1;
+      always @(posedge clk) CPU_rd_valid_a3 <= CPU_rd_valid_a2;
+      always @(posedge clk) CPU_rd_valid_a4 <= CPU_rd_valid_a3;
+
+      // For $reset.
+      always @(posedge clk) CPU_reset_a1 <= CPU_reset_a0;
+      always @(posedge clk) CPU_reset_a2 <= CPU_reset_a1;
+      always @(posedge clk) CPU_reset_a3 <= CPU_reset_a2;
+      always @(posedge clk) CPU_reset_a4 <= CPU_reset_a3;
+
+      // For $result.
+      always @(posedge clk) CPU_result_a4[5:2] <= CPU_result_a3[5:2];
+
+      // For $rs1.
+      always @(posedge clkP_CPU_rs1_valid_a2) CPU_rs1_a2[4:0] <= CPU_rs1_a1[4:0];
+
+      // For $rs1_valid.
+      always @(posedge clk) CPU_rs1_valid_a2 <= CPU_rs1_valid_a1;
+
+      // For $rs2.
+      always @(posedge clkP_CPU_rs2_valid_a2) CPU_rs2_a2[4:0] <= CPU_rs2_a1[4:0];
+
+      // For $rs2_valid.
+      always @(posedge clk) CPU_rs2_valid_a2 <= CPU_rs2_valid_a1;
+
+      // For $src1_value.
+      always @(posedge clk) CPU_src1_value_a3[31:0] <= CPU_src1_value_a2[31:0];
+
+      // For $src2_value.
+      always @(posedge clk) CPU_src2_value_a3[31:0] <= CPU_src2_value_a2[31:0];
+      always @(posedge clk) CPU_src2_value_a4[31:0] <= CPU_src2_value_a3[31:0];
+
+      // For $valid.
+      always @(posedge clk) CPU_valid_a4 <= CPU_valid_a3;
+
+      // For $valid_jump.
+      always @(posedge clk) CPU_valid_jump_a4 <= CPU_valid_jump_a3;
+      always @(posedge clk) CPU_valid_jump_a5 <= CPU_valid_jump_a4;
+
+      // For $valid_load.
+      always @(posedge clk) CPU_valid_load_a4 <= CPU_valid_load_a3;
+      always @(posedge clk) CPU_valid_load_a5 <= CPU_valid_load_a4;
+
+      // For $valid_taken_br.
+      always @(posedge clk) CPU_valid_taken_br_a4 <= CPU_valid_taken_br_a3;
+      always @(posedge clk) CPU_valid_taken_br_a5 <= CPU_valid_taken_br_a4;
+
+
+      //
+      // Scope: /dmem[15:0]
+      //
+      for (dmem = 0; dmem <= 15; dmem=dmem+1) begin : L1gen_CPU_Dmem
+         // For $value.
+         always @(posedge clk) CPU_Dmem_value_a5[dmem][31:0] <= CPU_Dmem_value_a4[dmem][31:0];
+
+      end
+
+      //
+      // Scope: /xreg[31:0]
+      //
+      for (xreg = 0; xreg <= 31; xreg=xreg+1) begin : L1gen_CPU_Xreg
+         // For $value.
+         always @(posedge clk) CPU_Xreg_value_a4[xreg][31:0] <= CPU_Xreg_value_a3[xreg][31:0];
+         always @(posedge clk) CPU_Xreg_value_a5[xreg][31:0] <= CPU_Xreg_value_a4[xreg][31:0];
+
+      end
+
+
+
+endgenerate
+
+
+
+//
+// Gated clocks.
+//
+
+generate
+
+
+
+   //
+   // Scope: |cpu
+   //
+
+      clk_gate gen_clkP_CPU_dmem_rd_en_a5(clkP_CPU_dmem_rd_en_a5, clk, 1'b1, CPU_dmem_rd_en_a4, 1'b0);
+      clk_gate gen_clkP_CPU_rd_valid_a2(clkP_CPU_rd_valid_a2, clk, 1'b1, CPU_rd_valid_a1, 1'b0);
+      clk_gate gen_clkP_CPU_rd_valid_a3(clkP_CPU_rd_valid_a3, clk, 1'b1, CPU_rd_valid_a2, 1'b0);
+      clk_gate gen_clkP_CPU_rd_valid_a4(clkP_CPU_rd_valid_a4, clk, 1'b1, CPU_rd_valid_a3, 1'b0);
+      clk_gate gen_clkP_CPU_rd_valid_a5(clkP_CPU_rd_valid_a5, clk, 1'b1, CPU_rd_valid_a4, 1'b0);
+      clk_gate gen_clkP_CPU_rs1_valid_a2(clkP_CPU_rs1_valid_a2, clk, 1'b1, CPU_rs1_valid_a1, 1'b0);
+      clk_gate gen_clkP_CPU_rs2_valid_a2(clkP_CPU_rs2_valid_a2, clk, 1'b1, CPU_rs2_valid_a1, 1'b0);
+
+
+
+endgenerate
diff --git a/verilog/include/sandpiper.vh b/verilog/include/sandpiper.vh
new file mode 100644
index 0000000..26d3f19
--- /dev/null
+++ b/verilog/include/sandpiper.vh
@@ -0,0 +1,71 @@
+/*
+Copyright (c) 2015, Steven F. Hoover
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * The name of Steven F. Hoover
+      may not be used to endorse or promote products derived from this software
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+// Project-independent SandPiper header file.
+
+`ifndef SANDPIPER_VH
+`define SANDPIPER_VH
+
+
+// Note, these have no SP prefix, so collisions are possible.
+     
+
+`ifdef WHEN
+   // Make sure user definition does not collide.
+   !!!ERROR: WHEN macro already defined
+`else
+   `ifdef SP_PHYS
+      // Phys compilation disabled X-injection.
+      `define WHEN(valid_sig)
+   `else
+      // Inject X.
+      `define WHEN(valid_sig) !valid_sig ? 'x :
+   `endif
+`endif
+
+
+// SandPiper does not generate set/reset flops.  Reset is implemented as combinational
+// logic, and it is up to synthesis to infer set/reset flops when possible.
+//`ifdef RESET
+//   // Make sure user definition does not collide.
+//   !!!ERROR: RESET macro already defined
+//`else
+//   `define RESET(i, reset) ((reset) ? '0 : i)
+//`endif
+//
+//`ifdef SET
+//   // Make sure user definition does not collide.
+//   !!!ERROR: SET macro already defined
+//`else
+//   `define SET(i, set) ((set) ? '1 : i)
+//`endif
+
+// Since SandPiper required use of all signals, this is useful to create a
+// bogus use and keep SandPiper happy when a signal, by intent, has no uses.
+`define BOGUS_USE(ignore)
+
+`endif  // SANDPIPER_VH
diff --git a/verilog/include/sandpiper_gen.vh b/verilog/include/sandpiper_gen.vh
new file mode 100644
index 0000000..d063661
--- /dev/null
+++ b/verilog/include/sandpiper_gen.vh
@@ -0,0 +1,4 @@
+// This just verifies that sandpiper.vh has been included.
+`ifndef SANDPIPER_VH
+  !!!ERROR: SandPiper project's sp_<proj>.vh file must include sandpiper.vh.
+`endif
diff --git a/verilog/include/sp_default.vh b/verilog/include/sp_default.vh
new file mode 100644
index 0000000..a733969
--- /dev/null
+++ b/verilog/include/sp_default.vh
@@ -0,0 +1,8 @@
+`ifndef SP_DEFAULT
+`define SP_DEFAULT
+
+// File included by SandPiper-generated code for the default project configuration.
+`include "sandpiper.vh"
+
+
+`endif  // SP_DEFAULT
diff --git a/verilog/include/sp_verilog.vh b/verilog/include/sp_verilog.vh
new file mode 100644
index 0000000..0c28412
--- /dev/null
+++ b/verilog/include/sp_verilog.vh
@@ -0,0 +1,65 @@
+`ifndef SP_DEFAULT
+`define SP_DEFAULT
+/*
+Copyright (c) 2015, Steven F. Hoover
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * The name of Steven F. Hoover
+      may not be used to endorse or promote products derived from this software
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+// File included by SandPiper-generated code for the default project configuration.
+`include "sandpiper.vh"
+
+
+// Latch macros.  Inject 'x in simulation for clk === 'x.
+
+// A-phase latch.
+`ifdef SP_PHYS
+`define TLV_LATCH(in, out, clk) \
+always @ (in, clk) begin        \
+  if (clk === 1'b1)             \
+    out <= in;                  \
+  else if (clk === 1'bx)        \
+    out <= 'x;                  \
+end
+`else
+`define TLV_LATCH(in, out, clk) always @ (in, clk) if (clk == 1'b1) out <= in;
+`endif  // SP_PHYS
+
+// B-phase latch.
+`ifdef SP_PHYS
+`define TLV_BLATCH(out, in, clk) \
+always @ (in, clk) begin         \
+  if (!clk === 1'b1)             \
+    out <= in;                   \
+  else if (!clk === 1'bx)        \
+    out <= 'x;                   \
+end
+`else
+`define TLV_BLATCH(out, in, clk) always @ (in, clk) if (!clk == 1'b1) out <= in;
+`endif  // SP_PHYS
+
+
+	   
+`endif  // SP_DEFAULT
diff --git a/verilog/rtl/clk_gate.v b/verilog/rtl/clk_gate.v
new file mode 100644
index 0000000..6df5b7d
--- /dev/null
+++ b/verilog/rtl/clk_gate.v
@@ -0,0 +1,36 @@
+/*
+Copyright (c) 2015, Steven F. Hoover
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * The name of Steven F. Hoover
+      may not be used to endorse or promote products derived from this software
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+`include "sp_verilog.vh"
+
+
+// Clock gate module used by SandPiper default project.
+
+module clk_gate (output gated_clk, input free_clk, func_en, pwr_en, gating_override);
+
+   assign gated_clk = free_clk;
+endmodule
diff --git a/verilog/rtl/rvmyth.v b/verilog/rtl/rvmyth.v
new file mode 100644
index 0000000..9e96890
--- /dev/null
+++ b/verilog/rtl/rvmyth.v
@@ -0,0 +1,269 @@
+//_\TLV_version 1d: tl-x.org, generated by SandPiper(TM) 1.11-2021/01/28-beta
+`include "sp_verilog.vh" //_\SV
+   // Included URL: "https://raw.githubusercontent.com/shivanishah269/risc-v-core/master/FPGA_Implementation/riscv_shell_lib.tlv"// Included URL: "https://raw.githubusercontent.com/stevehoover/warp-v_includes/2d6d36baa4d2bc62321f982f78c8fe1456641a43/risc-v_defs.tlv"
+
+   module rvmyth (
+      output reg [9:0] OUT,
+      input CLK,
+      input reset,
+      
+      output [7:0] imem_addr,
+      input [31:0] imem_data
+   );
+
+   wire clk = CLK;
+   
+`include "rvmyth_gen.v"
+generate //_\TLV
+   //_|cpu
+      //_@0
+         assign CPU_reset_a0 = reset;
+      
+      //Fetch
+         // Next PC
+         assign CPU_pc_a0[31:0] = (CPU_reset_a1) ? 32'd0 : 
+                     (CPU_valid_taken_br_a3) ? CPU_br_tgt_pc_a3 : 
+                     (CPU_valid_load_a3) ? CPU_inc_pc_a3 : 
+                     (CPU_valid_jump_a3 && CPU_is_jal_a3) ? CPU_br_tgt_pc_a3 :
+                     (CPU_valid_jump_a3 && CPU_is_jalr_a3) ? CPU_jalr_tgt_pc_a3 : CPU_inc_pc_a1;
+         
+      //_@1
+         assign imem_addr = CPU_pc_a0[9:2];
+         assign CPU_instr_a1[31:0] = imem_data;
+         assign CPU_inc_pc_a1[31:0] = CPU_pc_a1 + 32'd4;
+                   
+      // Decode   
+         assign CPU_is_i_instr_a1 = CPU_instr_a1[6:2] == 5'b00000 ||
+                     CPU_instr_a1[6:2] == 5'b00001 ||
+                     CPU_instr_a1[6:2] == 5'b00100 ||
+                     CPU_instr_a1[6:2] == 5'b00110 ||
+                     CPU_instr_a1[6:2] == 5'b11001;
+         assign CPU_is_r_instr_a1 = CPU_instr_a1[6:2] == 5'b01011 ||
+                     CPU_instr_a1[6:2] == 5'b10100 ||
+                     CPU_instr_a1[6:2] == 5'b01100 ||
+                     CPU_instr_a1[6:2] == 5'b01101;                       
+         assign CPU_is_b_instr_a1 = CPU_instr_a1[6:2] == 5'b11000;
+         assign CPU_is_u_instr_a1 = CPU_instr_a1[6:2] == 5'b00101 ||
+                     CPU_instr_a1[6:2] == 5'b01101;
+         assign CPU_is_s_instr_a1 = CPU_instr_a1[6:2] == 5'b01000 ||
+                     CPU_instr_a1[6:2] == 5'b01001;
+         assign CPU_is_j_instr_a1 = CPU_instr_a1[6:2] == 5'b11011;
+         
+         assign CPU_imm_a1[31:0] = CPU_is_i_instr_a1 ? { {21{CPU_instr_a1[31]}} , CPU_instr_a1[30:20] } :
+                     CPU_is_s_instr_a1 ? { {21{CPU_instr_a1[31]}} , CPU_instr_a1[30:25] , CPU_instr_a1[11:8] , CPU_instr_a1[7] } :
+                     CPU_is_b_instr_a1 ? { {20{CPU_instr_a1[31]}} , CPU_instr_a1[7] , CPU_instr_a1[30:25] , CPU_instr_a1[11:8] , 1'b0} :
+                     CPU_is_u_instr_a1 ? { CPU_instr_a1[31:12] , 12'b0} : 
+                     CPU_is_j_instr_a1 ? { {12{CPU_instr_a1[31]}} , CPU_instr_a1[19:12] , CPU_instr_a1[20] , CPU_instr_a1[30:21] , 1'b0} : 32'b0;
+         
+         assign CPU_rs2_valid_a1 = CPU_is_r_instr_a1 || CPU_is_s_instr_a1 || CPU_is_b_instr_a1;
+         assign CPU_rs1_valid_a1 = CPU_is_r_instr_a1 || CPU_is_s_instr_a1 || CPU_is_b_instr_a1 || CPU_is_i_instr_a1;
+         assign CPU_rd_valid_a1 = CPU_is_r_instr_a1 || CPU_is_i_instr_a1 || CPU_is_u_instr_a1 || CPU_is_j_instr_a1;
+         assign CPU_funct3_valid_a1 = CPU_is_r_instr_a1 || CPU_is_s_instr_a1 || CPU_is_b_instr_a1 || CPU_is_i_instr_a1;
+         assign CPU_funct7_valid_a1 = CPU_is_r_instr_a1;
+         
+         //_?$rs2_valid
+            assign CPU_rs2_a1[4:0] = CPU_instr_a1[24:20];
+         //_?$rs1_valid
+            assign CPU_rs1_a1[4:0] = CPU_instr_a1[19:15];
+         //_?$rd_valid
+            assign CPU_rd_a1[4:0] = CPU_instr_a1[11:7];
+         //_?$funct3_valid
+            assign CPU_funct3_a1[2:0] = CPU_instr_a1[14:12];
+         //_?$funct7_valid
+            assign CPU_funct7_a1[6:0] = CPU_instr_a1[31:25];
+               
+         assign CPU_opcode_a1[6:0] = CPU_instr_a1[6:0];
+         
+         assign CPU_dec_bits_a1[10:0] = {CPU_funct7_a1[5],CPU_funct3_a1,CPU_opcode_a1};
+         
+         // Branch Instruction
+         assign CPU_is_beq_a1 = CPU_dec_bits_a1[9:0] == 10'b000_1100011;
+         assign CPU_is_bne_a1 = CPU_dec_bits_a1[9:0] == 10'b001_1100011;
+         assign CPU_is_blt_a1 = CPU_dec_bits_a1[9:0] == 10'b100_1100011;
+         assign CPU_is_bge_a1 = CPU_dec_bits_a1[9:0] == 10'b101_1100011;
+         assign CPU_is_bltu_a1 = CPU_dec_bits_a1[9:0] == 10'b110_1100011;
+         assign CPU_is_bgeu_a1 = CPU_dec_bits_a1[9:0] == 10'b111_1100011;
+         
+         // Arithmetic Instruction
+         assign CPU_is_add_a1 = CPU_dec_bits_a1 == 11'b0_000_0110011;
+         assign CPU_is_addi_a1 = CPU_dec_bits_a1[9:0] == 10'b000_0010011;
+         assign CPU_is_or_a1 = CPU_dec_bits_a1 == 11'b0_110_0110011;
+         assign CPU_is_ori_a1 = CPU_dec_bits_a1[9:0] == 10'b110_0010011;
+         assign CPU_is_xor_a1 = CPU_dec_bits_a1 == 11'b0_100_0110011;
+         assign CPU_is_xori_a1 = CPU_dec_bits_a1[9:0] == 10'b100_0010011;
+         assign CPU_is_and_a1 = CPU_dec_bits_a1 == 11'b0_111_0110011;
+         assign CPU_is_andi_a1 = CPU_dec_bits_a1[9:0] == 10'b111_0010011;
+         assign CPU_is_sub_a1 = CPU_dec_bits_a1 == 11'b1_000_0110011;
+         assign CPU_is_slti_a1 = CPU_dec_bits_a1[9:0] == 10'b010_0010011;
+         assign CPU_is_sltiu_a1 = CPU_dec_bits_a1[9:0] == 10'b011_0010011;
+         assign CPU_is_slli_a1 = CPU_dec_bits_a1 == 11'b0_001_0010011;
+         assign CPU_is_srli_a1 = CPU_dec_bits_a1 == 11'b0_101_0010011;
+         assign CPU_is_srai_a1 = CPU_dec_bits_a1 == 11'b1_101_0010011;
+         assign CPU_is_sll_a1 = CPU_dec_bits_a1 == 11'b0_001_0110011;
+         assign CPU_is_slt_a1 = CPU_dec_bits_a1 == 11'b0_010_0110011;
+         assign CPU_is_sltu_a1 = CPU_dec_bits_a1 == 11'b0_011_0110011;
+         assign CPU_is_srl_a1 = CPU_dec_bits_a1 == 11'b0_101_0110011;
+         assign CPU_is_sra_a1 = CPU_dec_bits_a1 == 11'b1_101_0110011;
+         
+         // Load Instruction
+         assign CPU_is_load_a1 = CPU_dec_bits_a1[6:0] == 7'b0000011;
+         
+         // Store Instruction
+         assign CPU_is_sb_a1 = CPU_dec_bits_a1[9:0] == 10'b000_0100011;
+         assign CPU_is_sh_a1 = CPU_dec_bits_a1[9:0] == 10'b001_0100011;
+         assign CPU_is_sw_a1 = CPU_dec_bits_a1[9:0] == 10'b010_0100011;
+         
+         // Jump Instruction
+         assign CPU_is_lui_a1 = CPU_dec_bits_a1[6:0] == 7'b0110111;
+         assign CPU_is_auipc_a1 = CPU_dec_bits_a1[6:0] == 7'b0010111;
+         assign CPU_is_jal_a1 = CPU_dec_bits_a1[6:0] == 7'b1101111;
+         assign CPU_is_jalr_a1 = CPU_dec_bits_a1[9:0] == 10'b000_1100111;
+         
+         assign CPU_is_jump_a1 = CPU_is_jal_a1 || CPU_is_jalr_a1;
+         
+      //_@2   
+      // Register File Read
+         assign CPU_rf_rd_en1_a2 = CPU_rs1_valid_a2;
+         //_?$rf_rd_en1
+            assign CPU_rf_rd_index1_a2[4:0] = CPU_rs1_a2[4:0];
+         
+         assign CPU_rf_rd_en2_a2 = CPU_rs2_valid_a2;
+         //_?$rf_rd_en2
+            assign CPU_rf_rd_index2_a2[4:0] = CPU_rs2_a2[4:0];
+               
+      // Branch Target PC       
+         assign CPU_br_tgt_pc_a2[31:0] = CPU_pc_a2 + CPU_imm_a2;
+      
+      // Jump Target PC
+         assign CPU_jalr_tgt_pc_a2[31:0] = CPU_src1_value_a2 + CPU_imm_a2;
+         
+      // Input signals to ALU
+         assign CPU_src1_value_a2[31:0] = ((CPU_rd_a3 == CPU_rs1_a2) && CPU_rf_wr_en_a3) ? CPU_result_a3 : CPU_rf_rd_data1_a2[31:0];
+         assign CPU_src2_value_a2[31:0] = ((CPU_rd_a3 == CPU_rs2_a2) && CPU_rf_wr_en_a3) ? CPU_result_a3 : CPU_rf_rd_data2_a2[31:0];
+         
+      //_@3   
+         
+      // ALU
+         assign CPU_sltu_result_a3 = CPU_src1_value_a3 < CPU_src2_value_a3 ;
+         assign CPU_sltiu_result_a3 = CPU_src1_value_a3 < CPU_imm_a3 ;
+         
+         assign CPU_result_a3[31:0] = CPU_is_addi_a3 ? CPU_src1_value_a3 + CPU_imm_a3 :
+                           CPU_is_add_a3 ? CPU_src1_value_a3 + CPU_src2_value_a3 : 
+                           CPU_is_or_a3 ? CPU_src1_value_a3 | CPU_src2_value_a3 : 
+                           CPU_is_ori_a3 ? CPU_src1_value_a3 | CPU_imm_a3 :
+                           CPU_is_xor_a3 ? CPU_src1_value_a3 ^ CPU_src2_value_a3 :
+                           CPU_is_xori_a3 ? CPU_src1_value_a3 ^ CPU_imm_a3 :
+                           CPU_is_and_a3 ? CPU_src1_value_a3 & CPU_src2_value_a3 :
+                           CPU_is_andi_a3 ? CPU_src1_value_a3 & CPU_imm_a3 :
+                           CPU_is_sub_a3 ? CPU_src1_value_a3 - CPU_src2_value_a3 :
+                           CPU_is_slti_a3 ? ((CPU_src1_value_a3[31] == CPU_imm_a3[31]) ? CPU_sltiu_result_a3 : {31'b0,CPU_src1_value_a3[31]}) :
+                           CPU_is_sltiu_a3 ? CPU_sltiu_result_a3 :
+                           CPU_is_slli_a3 ? CPU_src1_value_a3 << CPU_imm_a3[5:0] :
+                           CPU_is_srli_a3 ? CPU_src1_value_a3 >> CPU_imm_a3[5:0] :
+                           CPU_is_srai_a3 ? ({{32{CPU_src1_value_a3[31]}}, CPU_src1_value_a3} >> CPU_imm_a3[4:0]) :
+                           CPU_is_sll_a3 ? CPU_src1_value_a3 << CPU_src2_value_a3[4:0] :
+                           CPU_is_slt_a3 ? ((CPU_src1_value_a3[31] == CPU_src2_value_a3[31]) ? CPU_sltu_result_a3 : {31'b0,CPU_src1_value_a3[31]}) :
+                           CPU_is_sltu_a3 ? CPU_sltu_result_a3 :
+                           CPU_is_srl_a3 ? CPU_src1_value_a3 >> CPU_src2_value_a3[5:0] :
+                           CPU_is_sra_a3 ? ({{32{CPU_src1_value_a3[31]}}, CPU_src1_value_a3} >> CPU_src2_value_a3[4:0]) :
+                           CPU_is_lui_a3 ? ({CPU_imm_a3[31:12], 12'b0}) :
+                           CPU_is_auipc_a3 ? CPU_pc_a3 + CPU_imm_a3 :
+                           CPU_is_jal_a3 ? CPU_pc_a3 + 4 :
+                           CPU_is_jalr_a3 ? CPU_pc_a3 + 4 : 
+                           (CPU_is_load_a3 || CPU_is_s_instr_a3) ? CPU_src1_value_a3 + CPU_imm_a3 : 32'bx;
+                           
+      // Register File Write
+         assign CPU_rf_wr_en_a3 = (CPU_rd_valid_a3 && CPU_valid_a3 && CPU_rd_a3 != 5'b0) || CPU_valid_load_a5;
+         //_?$rf_wr_en
+            assign CPU_rf_wr_index_a3[4:0] = !CPU_valid_a3 ? CPU_rd_a5[4:0] : CPU_rd_a3[4:0];
+      
+         assign CPU_rf_wr_data_a3[31:0] = !CPU_valid_a3 ? CPU_ld_data_a5[31:0] : CPU_result_a3[31:0];
+      
+      // Branch
+         assign CPU_taken_br_a3 = CPU_is_beq_a3 ? (CPU_src1_value_a3 == CPU_src2_value_a3) :
+                     CPU_is_bne_a3 ? (CPU_src1_value_a3 != CPU_src2_value_a3) :
+                     CPU_is_blt_a3 ? ((CPU_src1_value_a3 < CPU_src2_value_a3) ^ (CPU_src1_value_a3[31] != CPU_src2_value_a3[31])) :
+                     CPU_is_bge_a3 ? ((CPU_src1_value_a3 >= CPU_src2_value_a3) ^ (CPU_src1_value_a3[31] != CPU_src2_value_a3[31])) :
+                     CPU_is_bltu_a3 ? (CPU_src1_value_a3 < CPU_src2_value_a3) :
+                     CPU_is_bgeu_a3 ? (CPU_src1_value_a3 >= CPU_src2_value_a3) : 1'b0;
+                     
+         assign CPU_valid_taken_br_a3 = CPU_valid_a3 && CPU_taken_br_a3;
+         
+      // Load
+         assign CPU_valid_load_a3 = CPU_valid_a3 && CPU_is_load_a3;
+         assign CPU_valid_a3 = !(CPU_valid_taken_br_a4 || CPU_valid_taken_br_a5 || CPU_valid_load_a4 || CPU_valid_load_a5 || CPU_valid_jump_a4 || CPU_valid_jump_a5);
+      
+      // Jump
+         assign CPU_valid_jump_a3 = CPU_valid_a3 && CPU_is_jump_a3;
+                  
+      //_@4
+         assign CPU_dmem_rd_en_a4 = CPU_valid_load_a4;
+         assign CPU_dmem_wr_en_a4 = CPU_valid_a4 && CPU_is_s_instr_a4;
+         assign CPU_dmem_addr_a4[3:0] = CPU_result_a4[5:2];
+         assign CPU_dmem_wr_data_a4[31:0] = CPU_src2_value_a4[31:0];
+         
+      //_@5   
+         assign CPU_ld_data_a5[31:0] = CPU_dmem_rd_data_a5[31:0];
+         
+      // Note: Because of the magic we are using for visualisation, if visualisation is enabled below,
+      //       be sure to avoid having unassigned signals (which you might be using for random inputs)
+      //       other than those specifically expected in the labs. You'll get strange errors for these.
+
+         `BOGUS_USE(CPU_is_beq_a5 CPU_is_bne_a5 CPU_is_blt_a5 CPU_is_bge_a5 CPU_is_bltu_a5 CPU_is_bgeu_a5)
+         `BOGUS_USE(CPU_is_sb_a5 CPU_is_sh_a5 CPU_is_sw_a5)
+   // Assert these to end simulation (before Makerchip cycle limit).
+   /*SV_plus*/
+      always @ (posedge CLK) begin
+         OUT = CPU_Xreg_value_a5[17];                
+      end
+   
+   // Macro instantiations for:
+   //  o instruction memory
+   //  o register file
+   //  o data memory
+   //  o CPU visualization
+   //_|cpu
+      // m4+imem(@1)    // Args: (read stage)
+      //_\source /raw.githubusercontent.com/shivanishah269/riscvcore/master/FPGAImplementation/riscvshelllib.tlv 31   // Instantiated from rvmyth.tlv, 226 as: m4+rf(@2, @3)
+         // Reg File
+         //_@3
+            for (xreg = 0; xreg <= 31; xreg=xreg+1) begin : L1_CPU_Xreg //_/xreg
+
+               // For $wr.
+               wire L1_wr_a3;
+
+               assign L1_wr_a3 = CPU_rf_wr_en_a3 && (CPU_rf_wr_index_a3 != 5'b0) && (CPU_rf_wr_index_a3 == xreg);
+               assign CPU_Xreg_value_a3[xreg][31:0] = CPU_reset_a3 ?   xreg           :
+                              L1_wr_a3        ?   CPU_rf_wr_data_a3 :
+                                             CPU_Xreg_value_a4[xreg][31:0];
+            end
+         //_@2
+            //_?$rf_rd_en1
+               assign CPU_rf_rd_data1_a2[31:0] = CPU_Xreg_value_a4[CPU_rf_rd_index1_a2];
+            //_?$rf_rd_en2
+               assign CPU_rf_rd_data2_a2[31:0] = CPU_Xreg_value_a4[CPU_rf_rd_index2_a2];
+            `BOGUS_USE(CPU_rf_rd_data1_a2 CPU_rf_rd_data2_a2) 
+      //_\end_source  // Args: (read stage, write stage) - if equal, no register bypass is required
+      //_\source /raw.githubusercontent.com/shivanishah269/riscvcore/master/FPGAImplementation/riscvshelllib.tlv 48   // Instantiated from rvmyth.tlv, 227 as: m4+dmem(@4)
+         // Data Memory
+         //_@4
+            for (dmem = 0; dmem <= 15; dmem=dmem+1) begin : L1_CPU_Dmem //_/dmem
+
+               // For $wr.
+               wire L1_wr_a4;
+
+               assign L1_wr_a4 = CPU_dmem_wr_en_a4 && (CPU_dmem_addr_a4 == dmem);
+               assign CPU_Dmem_value_a4[dmem][31:0] = CPU_reset_a4 ?   dmem :
+                              L1_wr_a4        ?   CPU_dmem_wr_data_a4 :
+                                             CPU_Dmem_value_a5[dmem][31:0];
+                                        
+            end
+            //_?$dmem_rd_en
+               assign CPU_dmem_rd_data_a4[31:0] = CPU_Dmem_value_a5[CPU_dmem_addr_a4];
+            //`BOGUS_USE($dmem_rd_data)
+      //_\end_source    // Args: (read/write stage)
+endgenerate
+
+//_\SV
+   
+   endmodule
diff --git a/verilog/rtl/sram_32_256_sky130A.v b/verilog/rtl/sram_32_256_sky130A.v
new file mode 100644
index 0000000..d45d17e
--- /dev/null
+++ b/verilog/rtl/sram_32_256_sky130A.v
@@ -0,0 +1,72 @@
+// OpenRAM SRAM model
+// Words: 256
+// Word size: 32
+
+module sram_32_256_sky130A(
+`ifdef USE_POWER_PINS
+    vccd1,
+    vssd1,
+`endif
+// Port 0: RW
+    clk0,csb0,web0,addr0,din0,dout0
+  );
+
+  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 [ADDR_WIDTH-1:0]  addr0;
+  input [DATA_WIDTH-1:0]  din0;
+  output [DATA_WIDTH-1:0] dout0;
+
+  reg  csb0_reg;
+  reg  web0_reg;
+  reg [ADDR_WIDTH-1:0]  addr0_reg;
+  reg [DATA_WIDTH-1:0]  din0_reg;
+  reg [DATA_WIDTH-1:0]  dout0;
+
+  // All inputs are registers
+  always @(posedge clk0)
+  begin
+    csb0_reg = csb0;
+    web0_reg = web0;
+    addr0_reg = addr0;
+    din0_reg = din0;
+    #(T_HOLD) dout0 = 32'bx;
+    if ( !csb0_reg && web0_reg && VERBOSE ) 
+      $display($time," Reading %m addr0=%b dout0=%b",addr0_reg,mem[addr0_reg]);
+    if ( !csb0_reg && !web0_reg && VERBOSE )
+      $display($time," Writing %m addr0=%b din0=%b",addr0_reg,din0_reg);
+  end
+
+reg [DATA_WIDTH-1:0]    mem [0:RAM_DEPTH-1];
+
+  // Memory Write Block Port 0
+  // Write Operation : When web0 = 0, csb0 = 0
+  always @ (negedge clk0)
+  begin : MEM_WRITE0
+    if ( !csb0_reg && !web0_reg ) begin
+        mem[addr0_reg][31:0] = din0_reg[31:0];
+    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
+
+endmodule
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v
index 26081e9..a1dd5b8 100644
--- a/verilog/rtl/user_proj_example.v
+++ b/verilog/rtl/user_proj_example.v
@@ -14,152 +14,37 @@
 // SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
-/*
- *-------------------------------------------------------------
- *
- * user_proj_example
- *
- * This is an example of a (trivially simple) user project,
- * showing how the user project can connect to the logic
- * analyzer, the wishbone bus, and the I/O pads.
- *
- * This project generates an integer count, which is output
- * on the user area GPIO pads (digital output only).  The
- * wishbone connection allows the project to be controlled
- * (start and stop) from the management SoC program.
- *
- * See the testbenches in directory "mprj_counter" for the
- * example programs that drive this user project.  The three
- * testbenches are "io_ports", "la_test1", and "la_test2".
- *
- *-------------------------------------------------------------
- */
 
-module user_proj_example #(
-    parameter BITS = 32
-)(
+module user_proj_example (
 `ifdef USE_POWER_PINS
     inout vccd1,	// User area 1 1.8V supply
     inout vssd1,	// User area 1 digital ground
 `endif
+    output [9:0] OUT,
+    input CLK,
+    input reset,
 
-    // Wishbone Slave ports (WB MI A)
-    input wb_clk_i,
-    input wb_rst_i,
-    input wbs_stb_i,
-    input wbs_cyc_i,
-    input wbs_we_i,
-    input [3:0] wbs_sel_i,
-    input [31:0] wbs_dat_i,
-    input [31:0] wbs_adr_i,
-    output wbs_ack_o,
-    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,
-
-    // IOs
-    input  [`MPRJ_IO_PADS-1:0] io_in,
-    output [`MPRJ_IO_PADS-1:0] io_out,
-    output [`MPRJ_IO_PADS-1:0] io_oeb,
-
-    // IRQ
-    output [2:0] irq
+    output mem_wr,
+    output [7:0] mem_addr,
+    input init_en,
+    input [7:0] init_addr,
+    input [31:0] imem_data
 );
-    wire clk;
-    wire rst;
 
-    wire [`MPRJ_IO_PADS-1:0] io_in;
-    wire [`MPRJ_IO_PADS-1:0] io_out;
-    wire [`MPRJ_IO_PADS-1:0] io_oeb;
+    wire [7:0]  imem_addr;
 
-    wire [31:0] rdata; 
-    wire [31:0] wdata;
-    wire [BITS-1:0] count;
+    assign mem_wr   = init_en ? 1'b0 : 1'b1;
+    assign mem_addr = init_en ? init_addr : imem_addr;
 
-    wire valid;
-    wire [3:0] wstrb;
-    wire [31:0] la_write;
+    rvmyth core (
+        .OUT(OUT),
+        .CLK(CLK),
+        .reset(reset),
 
-    // WB MI A
-    assign valid = wbs_cyc_i && wbs_stb_i; 
-    assign wstrb = wbs_sel_i & {4{wbs_we_i}};
-    assign wbs_dat_o = rdata;
-    assign wdata = wbs_dat_i;
-
-    // IO
-    assign io_out = count;
-    assign io_oeb = {(`MPRJ_IO_PADS-1){rst}};
-
-    // IRQ
-    assign irq = 3'b000;	// Unused
-
-    // LA
-    assign la_data_out = {{(127-BITS){1'b0}}, count};
-    // Assuming LA probes [63:32] are for controlling the count register  
-    assign la_write = ~la_oenb[63:32] & ~{BITS{valid}};
-    // Assuming LA probes [65:64] are for controlling the count clk & reset  
-    assign clk = (~la_oenb[64]) ? la_data_in[64]: wb_clk_i;
-    assign rst = (~la_oenb[65]) ? la_data_in[65]: wb_rst_i;
-
-    counter #(
-        .BITS(BITS)
-    ) counter(
-        .clk(clk),
-        .reset(rst),
-        .ready(wbs_ack_o),
-        .valid(valid),
-        .rdata(rdata),
-        .wdata(wbs_dat_i),
-        .wstrb(wstrb),
-        .la_write(la_write),
-        .la_input(la_data_in[63:32]),
-        .count(count)
+        .imem_addr(imem_addr),
+        .imem_data(imem_data)
     );
 
 endmodule
 
-module counter #(
-    parameter BITS = 32
-)(
-    input clk,
-    input reset,
-    input valid,
-    input [3:0] wstrb,
-    input [BITS-1:0] wdata,
-    input [BITS-1:0] la_write,
-    input [BITS-1:0] la_input,
-    output ready,
-    output [BITS-1:0] rdata,
-    output [BITS-1:0] count
-);
-    reg ready;
-    reg [BITS-1:0] count;
-    reg [BITS-1:0] rdata;
-
-    always @(posedge clk) begin
-        if (reset) begin
-            count <= 0;
-            ready <= 0;
-        end else begin
-            ready <= 1'b0;
-            if (~|la_write) begin
-                count <= count + 1;
-            end
-            if (valid && !ready) begin
-                ready <= 1'b1;
-                rdata <= count;
-                if (wstrb[0]) count[7:0]   <= wdata[7:0];
-                if (wstrb[1]) count[15:8]  <= wdata[15:8];
-                if (wstrb[2]) count[23:16] <= wdata[23:16];
-                if (wstrb[3]) count[31:24] <= wdata[31:24];
-            end else if (|la_write) begin
-                count <= la_write & la_input;
-            end
-        end
-    end
-
-endmodule
-`default_nettype wire
+`default_nettype wire
\ No newline at end of file
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 5ee1cee..c08f62d 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -22,10 +22,6 @@
  * This wrapper enumerates all of the pins available to the
  * user for the user project.
  *
- * An example user project is provided in this wrapper.  The
- * example should be removed and replaced with the actual
- * user project.
- *
  *-------------------------------------------------------------
  */
 
@@ -81,43 +77,40 @@
 /*--------------------------------------*/
 /* User project is instantiated  here   */
 /*--------------------------------------*/
+    wire        mem_wr;
+    wire [7:0]  mem_addr;
+    
+    wire [31:0] imem_data;
 
-user_proj_example mprj (
+    user_proj_example mprj (
 `ifdef USE_POWER_PINS
-	.vccd1(vccd1),	// User area 1 1.8V power
-	.vssd1(vssd1),	// User area 1 digital ground
+        .vccd1(vccd1),	// User area 1 1.8V supply
+        .vssd1(vssd1),	// User area 1 digital ground
 `endif
+        .OUT(wbs_dat_o[9:0]),
+        .CLK(wb_clk_i),
+        .reset(wb_rst_i),
 
-    .wb_clk_i(wb_clk_i),
-    .wb_rst_i(wb_rst_i),
+        .mem_wr(mem_wr),
+        .mem_addr(mem_addr),
+        .init_en(wbs_sel_i[0]),
+        .init_addr(wbs_adr_i[7:0]),
+        .imem_data(imem_data)
+    );
 
-    // MGMT SoC Wishbone Slave
-
-    .wbs_cyc_i(wbs_cyc_i),
-    .wbs_stb_i(wbs_stb_i),
-    .wbs_we_i(wbs_we_i),
-    .wbs_sel_i(wbs_sel_i),
-    .wbs_adr_i(wbs_adr_i),
-    .wbs_dat_i(wbs_dat_i),
-    .wbs_ack_o(wbs_ack_o),
-    .wbs_dat_o(wbs_dat_o),
-
-    // Logic Analyzer
-
-    .la_data_in(la_data_in),
-    .la_data_out(la_data_out),
-    .la_oenb (la_oenb),
-
-    // IO Pads
-
-    .io_in (io_in),
-    .io_out(io_out),
-    .io_oeb(io_oeb),
-
-    // IRQ
-    .irq(user_irq)
-);
+    sram_32_256_sky130A mem (
+`ifdef USE_POWER_PINS
+        .vccd1(vccd1),	// User area 1 1.8V supply
+        .vssd1(vssd1),	// User area 1 digital ground
+`endif
+        .clk0(wb_clk_i),
+        .csb0(1'b0),
+        .web0(mem_wr),
+        .addr0(mem_addr),
+        .din0(wbs_dat_i),
+        .dout0(imem_data)
+    );
 
 endmodule	// user_project_wrapper
 
-`default_nettype wire
+`default_nettype wire
\ No newline at end of file
