syntacore rtl changes to improve timing closure from 25Mhz to 50Mhz
diff --git a/checks/erase_box_user_project_wrapper.gds.log b/checks/erase_box_user_project_wrapper.gds.log
index e833e84..2464ece 100644
--- a/checks/erase_box_user_project_wrapper.gds.log
+++ b/checks/erase_box_user_project_wrapper.gds.log
@@ -16,47 +16,48 @@
 Warning: Calma reading is not undoable!  I hope that's OK.
 Library written using GDS-II Release 3.0
 Library name: user_project_wrapper
-Reading "sky130_fd_sc_hd__decap_3".
-Reading "sky130_fd_sc_hd__decap_8".
-Reading "sky130_fd_sc_hd__decap_6".
-Reading "sky130_fd_sc_hd__decap_12".
-Reading "sky130_fd_sc_hd__tapvpwrvgnd_1".
-Reading "sky130_fd_sc_hd__fill_1".
-Reading "sky130_fd_sc_hd__o22a_4".
-Reading "sky130_fd_sc_hd__decap_4".
-Reading "sky130_fd_sc_hd__and2_4".
-Reading "sky130_fd_sc_hd__clkbuf_1".
-Reading "sky130_fd_sc_hd__dfxtp_4".
-Reading "sky130_fd_sc_hd__or2_4".
-Reading "sky130_fd_sc_hd__fill_2".
-Reading "sky130_fd_sc_hd__o21a_4".
-Reading "sky130_fd_sc_hd__buf_2".
-Reading "sky130_fd_sc_hd__and3_4".
-Reading "sky130_fd_sc_hd__a2bb2o_4".
-Reading "sky130_fd_sc_hd__conb_1".
-Reading "sky130_fd_sc_hd__inv_2".
-Reading "sky130_fd_sc_hd__a32o_4".
-Reading "sky130_fd_sc_hd__diode_2".
-Reading "sky130_fd_sc_hd__dfrtp_4".
+Reading "sky130_fd_sc_hd__clkbuf_16".
+Reading "sky130_fd_sc_hd__buf_4".
 Reading "sky130_fd_sc_hd__a21o_4".
-Reading "sky130_fd_sc_hd__a211o_4".
+Reading "sky130_fd_sc_hd__clkbuf_1".
+Reading "sky130_fd_sc_hd__dfstp_4".
+Reading "sky130_fd_sc_hd__or3_4".
 Reading "sky130_fd_sc_hd__a21boi_4".
 Reading "sky130_fd_sc_hd__or4_4".
-Reading "sky130_fd_sc_hd__a21oi_4".
-Reading "sky130_fd_sc_hd__or3_4".
-Reading "sky130_fd_sc_hd__nor2_4".
-Reading "sky130_fd_sc_hd__and4_4".
-Reading "sky130_fd_sc_hd__nand2_4".
-Reading "sky130_fd_sc_hd__clkbuf_16".
-Reading "sky130_fd_sc_hd__buf_8".
 Reading "sky130_fd_sc_hd__a22oi_4".
-Reading "sky130_fd_sc_hd__dfstp_4".
+Reading "sky130_fd_sc_hd__and3_4".
 Reading "sky130_fd_sc_hd__o21ai_4".
-Reading "sky130_fd_sc_hd__buf_4".
-Reading "sky130_fd_sc_hd__a2111o_4".
 Reading "sky130_fd_sc_hd__o32a_4".
+Reading "sky130_fd_sc_hd__and2_4".
+Reading "sky130_fd_sc_hd__and4_4".
+Reading "sky130_fd_sc_hd__dfxtp_4".
+Reading "sky130_fd_sc_hd__or2_4".
+Reading "sky130_fd_sc_hd__diode_2".
+Reading "sky130_fd_sc_hd__o22a_4".
+Reading "sky130_fd_sc_hd__nor2_4".
+Reading "sky130_fd_sc_hd__o21a_4".
+Reading "sky130_fd_sc_hd__a32o_4".
+Reading "sky130_fd_sc_hd__buf_2".
+Reading "sky130_fd_sc_hd__a21oi_4".
+Reading "sky130_fd_sc_hd__nand2_4".
+Reading "sky130_fd_sc_hd__inv_2".
+Reading "sky130_fd_sc_hd__dfrtp_4".
+Reading "sky130_fd_sc_hd__decap_4".
+Reading "sky130_fd_sc_hd__a211o_4".
+Reading "sky130_fd_sc_hd__fill_2".
+Reading "sky130_fd_sc_hd__decap_8".
+Reading "sky130_fd_sc_hd__a2bb2o_4".
+Reading "sky130_fd_sc_hd__tapvpwrvgnd_1".
+Reading "sky130_fd_sc_hd__decap_12".
+Reading "sky130_fd_sc_hd__conb_1".
+Reading "sky130_fd_sc_hd__decap_6".
+Reading "sky130_fd_sc_hd__fill_1".
+Reading "sky130_fd_sc_hd__decap_3".
+Reading "sky130_fd_sc_hd__a2111o_4".
 Reading "sky130_fd_sc_hd__a21bo_4".
-Reading "scr1_top_wb".
+Reading "sky130_fd_sc_hd__o41a_4".
+Reading "sky130_fd_sc_hd__buf_8".
+Reading "scr1_core_top".
     100 uses
     200 uses
     300 uses
@@ -1275,556 +1276,6 @@
     121600 uses
     121700 uses
     121800 uses
-    121900 uses
-    122000 uses
-    122100 uses
-    122200 uses
-    122300 uses
-    122400 uses
-    122500 uses
-    122600 uses
-    122700 uses
-    122800 uses
-    122900 uses
-    123000 uses
-    123100 uses
-    123200 uses
-    123300 uses
-    123400 uses
-    123500 uses
-    123600 uses
-    123700 uses
-    123800 uses
-    123900 uses
-    124000 uses
-    124100 uses
-    124200 uses
-    124300 uses
-    124400 uses
-    124500 uses
-    124600 uses
-    124700 uses
-    124800 uses
-    124900 uses
-    125000 uses
-    125100 uses
-    125200 uses
-    125300 uses
-    125400 uses
-    125500 uses
-    125600 uses
-    125700 uses
-    125800 uses
-    125900 uses
-    126000 uses
-    126100 uses
-    126200 uses
-    126300 uses
-    126400 uses
-    126500 uses
-    126600 uses
-    126700 uses
-    126800 uses
-    126900 uses
-    127000 uses
-    127100 uses
-    127200 uses
-    127300 uses
-    127400 uses
-    127500 uses
-    127600 uses
-    127700 uses
-    127800 uses
-    127900 uses
-    128000 uses
-    128100 uses
-    128200 uses
-    128300 uses
-    128400 uses
-    128500 uses
-    128600 uses
-    128700 uses
-    128800 uses
-    128900 uses
-    129000 uses
-    129100 uses
-    129200 uses
-    129300 uses
-    129400 uses
-    129500 uses
-    129600 uses
-    129700 uses
-    129800 uses
-    129900 uses
-    130000 uses
-    130100 uses
-    130200 uses
-    130300 uses
-    130400 uses
-    130500 uses
-    130600 uses
-    130700 uses
-    130800 uses
-    130900 uses
-    131000 uses
-    131100 uses
-    131200 uses
-    131300 uses
-    131400 uses
-    131500 uses
-    131600 uses
-    131700 uses
-    131800 uses
-    131900 uses
-    132000 uses
-    132100 uses
-    132200 uses
-    132300 uses
-    132400 uses
-    132500 uses
-    132600 uses
-    132700 uses
-    132800 uses
-    132900 uses
-    133000 uses
-    133100 uses
-    133200 uses
-    133300 uses
-    133400 uses
-    133500 uses
-    133600 uses
-    133700 uses
-    133800 uses
-    133900 uses
-    134000 uses
-    134100 uses
-    134200 uses
-    134300 uses
-    134400 uses
-    134500 uses
-    134600 uses
-    134700 uses
-    134800 uses
-    134900 uses
-    135000 uses
-    135100 uses
-    135200 uses
-    135300 uses
-    135400 uses
-    135500 uses
-    135600 uses
-    135700 uses
-    135800 uses
-    135900 uses
-    136000 uses
-    136100 uses
-    136200 uses
-    136300 uses
-    136400 uses
-    136500 uses
-    136600 uses
-    136700 uses
-    136800 uses
-    136900 uses
-    137000 uses
-    137100 uses
-    137200 uses
-    137300 uses
-    137400 uses
-    137500 uses
-    137600 uses
-    137700 uses
-    137800 uses
-    137900 uses
-    138000 uses
-    138100 uses
-    138200 uses
-    138300 uses
-    138400 uses
-    138500 uses
-    138600 uses
-    138700 uses
-    138800 uses
-    138900 uses
-    139000 uses
-    139100 uses
-    139200 uses
-    139300 uses
-    139400 uses
-    139500 uses
-    139600 uses
-    139700 uses
-    139800 uses
-    139900 uses
-    140000 uses
-    140100 uses
-    140200 uses
-    140300 uses
-    140400 uses
-    140500 uses
-    140600 uses
-    140700 uses
-    140800 uses
-    140900 uses
-    141000 uses
-    141100 uses
-    141200 uses
-    141300 uses
-    141400 uses
-    141500 uses
-    141600 uses
-    141700 uses
-    141800 uses
-    141900 uses
-    142000 uses
-    142100 uses
-    142200 uses
-    142300 uses
-    142400 uses
-    142500 uses
-    142600 uses
-    142700 uses
-    142800 uses
-    142900 uses
-    143000 uses
-    143100 uses
-    143200 uses
-    143300 uses
-    143400 uses
-    143500 uses
-    143600 uses
-    143700 uses
-    143800 uses
-    143900 uses
-    144000 uses
-    144100 uses
-    144200 uses
-    144300 uses
-    144400 uses
-    144500 uses
-    144600 uses
-    144700 uses
-    144800 uses
-    144900 uses
-    145000 uses
-    145100 uses
-    145200 uses
-    145300 uses
-    145400 uses
-    145500 uses
-    145600 uses
-    145700 uses
-    145800 uses
-    145900 uses
-    146000 uses
-    146100 uses
-    146200 uses
-    146300 uses
-    146400 uses
-    146500 uses
-    146600 uses
-    146700 uses
-    146800 uses
-    146900 uses
-    147000 uses
-    147100 uses
-    147200 uses
-    147300 uses
-    147400 uses
-    147500 uses
-    147600 uses
-    147700 uses
-    147800 uses
-    147900 uses
-    148000 uses
-    148100 uses
-    148200 uses
-    148300 uses
-    148400 uses
-    148500 uses
-    148600 uses
-    148700 uses
-    148800 uses
-    148900 uses
-    149000 uses
-    149100 uses
-    149200 uses
-    149300 uses
-    149400 uses
-    149500 uses
-    149600 uses
-    149700 uses
-    149800 uses
-    149900 uses
-    150000 uses
-    150100 uses
-    150200 uses
-    150300 uses
-    150400 uses
-    150500 uses
-    150600 uses
-    150700 uses
-    150800 uses
-    150900 uses
-    151000 uses
-    151100 uses
-    151200 uses
-    151300 uses
-    151400 uses
-    151500 uses
-    151600 uses
-    151700 uses
-    151800 uses
-    151900 uses
-    152000 uses
-    152100 uses
-    152200 uses
-    152300 uses
-    152400 uses
-    152500 uses
-    152600 uses
-    152700 uses
-    152800 uses
-    152900 uses
-    153000 uses
-    153100 uses
-    153200 uses
-    153300 uses
-    153400 uses
-    153500 uses
-    153600 uses
-    153700 uses
-    153800 uses
-    153900 uses
-    154000 uses
-    154100 uses
-    154200 uses
-    154300 uses
-    154400 uses
-    154500 uses
-    154600 uses
-    154700 uses
-    154800 uses
-    154900 uses
-    155000 uses
-    155100 uses
-    155200 uses
-    155300 uses
-    155400 uses
-    155500 uses
-    155600 uses
-    155700 uses
-    155800 uses
-    155900 uses
-    156000 uses
-    156100 uses
-    156200 uses
-    156300 uses
-    156400 uses
-    156500 uses
-    156600 uses
-    156700 uses
-    156800 uses
-    156900 uses
-    157000 uses
-    157100 uses
-    157200 uses
-    157300 uses
-    157400 uses
-    157500 uses
-    157600 uses
-    157700 uses
-    157800 uses
-    157900 uses
-    158000 uses
-    158100 uses
-    158200 uses
-    158300 uses
-    158400 uses
-    158500 uses
-    158600 uses
-    158700 uses
-    158800 uses
-    158900 uses
-    159000 uses
-    159100 uses
-    159200 uses
-    159300 uses
-    159400 uses
-    159500 uses
-    159600 uses
-    159700 uses
-    159800 uses
-    159900 uses
-    160000 uses
-    160100 uses
-    160200 uses
-    160300 uses
-    160400 uses
-    160500 uses
-    160600 uses
-    160700 uses
-    160800 uses
-    160900 uses
-    161000 uses
-    161100 uses
-    161200 uses
-    161300 uses
-    161400 uses
-    161500 uses
-    161600 uses
-    161700 uses
-    161800 uses
-    161900 uses
-    162000 uses
-    162100 uses
-    162200 uses
-    162300 uses
-    162400 uses
-    162500 uses
-    162600 uses
-    162700 uses
-    162800 uses
-    162900 uses
-    163000 uses
-    163100 uses
-    163200 uses
-    163300 uses
-    163400 uses
-    163500 uses
-    163600 uses
-    163700 uses
-    163800 uses
-    163900 uses
-    164000 uses
-    164100 uses
-    164200 uses
-    164300 uses
-    164400 uses
-    164500 uses
-    164600 uses
-    164700 uses
-    164800 uses
-    164900 uses
-    165000 uses
-    165100 uses
-    165200 uses
-    165300 uses
-    165400 uses
-    165500 uses
-    165600 uses
-    165700 uses
-    165800 uses
-    165900 uses
-    166000 uses
-    166100 uses
-    166200 uses
-    166300 uses
-    166400 uses
-    166500 uses
-    166600 uses
-    166700 uses
-    166800 uses
-    166900 uses
-    167000 uses
-    167100 uses
-    167200 uses
-    167300 uses
-    167400 uses
-    167500 uses
-    167600 uses
-    167700 uses
-    167800 uses
-    167900 uses
-    168000 uses
-    168100 uses
-    168200 uses
-    168300 uses
-    168400 uses
-    168500 uses
-    168600 uses
-    168700 uses
-    168800 uses
-    168900 uses
-    169000 uses
-    169100 uses
-    169200 uses
-    169300 uses
-    169400 uses
-    169500 uses
-    169600 uses
-    169700 uses
-    169800 uses
-    169900 uses
-    170000 uses
-    170100 uses
-    170200 uses
-    170300 uses
-    170400 uses
-    170500 uses
-    170600 uses
-    170700 uses
-    170800 uses
-    170900 uses
-    171000 uses
-    171100 uses
-    171200 uses
-    171300 uses
-    171400 uses
-    171500 uses
-    171600 uses
-    171700 uses
-    171800 uses
-    171900 uses
-    172000 uses
-    172100 uses
-    172200 uses
-    172300 uses
-    172400 uses
-    172500 uses
-    172600 uses
-    172700 uses
-    172800 uses
-    172900 uses
-    173000 uses
-    173100 uses
-    173200 uses
-    173300 uses
-    173400 uses
-    173500 uses
-    173600 uses
-    173700 uses
-    173800 uses
-    173900 uses
-    174000 uses
-    174100 uses
-    174200 uses
-    174300 uses
-    174400 uses
-    174500 uses
-    174600 uses
-    174700 uses
-    174800 uses
-    174900 uses
-    175000 uses
-    175100 uses
-    175200 uses
-    175300 uses
-    175400 uses
-    175500 uses
-    175600 uses
-    175700 uses
-    175800 uses
-    175900 uses
-    176000 uses
-    176100 uses
-    176200 uses
-    176300 uses
-    176400 uses
-    176500 uses
-    176600 uses
-    176700 uses
-    176800 uses
 Reading "sky130_fd_sc_hd__clkdlybuf4s15_2".
 Reading "sky130_fd_sc_hd__mux2_1".
 Reading "sky130_fd_sc_hd__mux2_4".
@@ -1960,7 +1411,7 @@
     11900 uses
     12000 uses
     12100 uses
-Reading "sdrc_top".
+Reading "scr1_intf".
     100 uses
     200 uses
     300 uses
@@ -2213,105 +1664,6 @@
     25000 uses
     25100 uses
     25200 uses
-    25300 uses
-    25400 uses
-    25500 uses
-    25600 uses
-    25700 uses
-    25800 uses
-    25900 uses
-    26000 uses
-    26100 uses
-    26200 uses
-    26300 uses
-    26400 uses
-    26500 uses
-    26600 uses
-    26700 uses
-    26800 uses
-    26900 uses
-    27000 uses
-    27100 uses
-    27200 uses
-    27300 uses
-    27400 uses
-    27500 uses
-    27600 uses
-    27700 uses
-    27800 uses
-    27900 uses
-    28000 uses
-    28100 uses
-    28200 uses
-    28300 uses
-    28400 uses
-    28500 uses
-    28600 uses
-    28700 uses
-    28800 uses
-    28900 uses
-    29000 uses
-    29100 uses
-    29200 uses
-    29300 uses
-    29400 uses
-    29500 uses
-    29600 uses
-    29700 uses
-    29800 uses
-    29900 uses
-    30000 uses
-    30100 uses
-    30200 uses
-    30300 uses
-    30400 uses
-    30500 uses
-    30600 uses
-    30700 uses
-    30800 uses
-    30900 uses
-    31000 uses
-    31100 uses
-    31200 uses
-    31300 uses
-    31400 uses
-    31500 uses
-    31600 uses
-    31700 uses
-    31800 uses
-    31900 uses
-    32000 uses
-    32100 uses
-    32200 uses
-    32300 uses
-    32400 uses
-    32500 uses
-    32600 uses
-    32700 uses
-    32800 uses
-    32900 uses
-    33000 uses
-    33100 uses
-    33200 uses
-    33300 uses
-    33400 uses
-    33500 uses
-    33600 uses
-    33700 uses
-    33800 uses
-    33900 uses
-    34000 uses
-    34100 uses
-    34200 uses
-    34300 uses
-    34400 uses
-    34500 uses
-    34600 uses
-    34700 uses
-    34800 uses
-    34900 uses
-    35000 uses
-    35100 uses
 Reading "uart_core".
     100 uses
     200 uses
@@ -2717,6 +2069,358 @@
     26400 uses
     26500 uses
     26600 uses
+Reading "sdrc_top".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+    800 uses
+    900 uses
+    1000 uses
+    1100 uses
+    1200 uses
+    1300 uses
+    1400 uses
+    1500 uses
+    1600 uses
+    1700 uses
+    1800 uses
+    1900 uses
+    2000 uses
+    2100 uses
+    2200 uses
+    2300 uses
+    2400 uses
+    2500 uses
+    2600 uses
+    2700 uses
+    2800 uses
+    2900 uses
+    3000 uses
+    3100 uses
+    3200 uses
+    3300 uses
+    3400 uses
+    3500 uses
+    3600 uses
+    3700 uses
+    3800 uses
+    3900 uses
+    4000 uses
+    4100 uses
+    4200 uses
+    4300 uses
+    4400 uses
+    4500 uses
+    4600 uses
+    4700 uses
+    4800 uses
+    4900 uses
+    5000 uses
+    5100 uses
+    5200 uses
+    5300 uses
+    5400 uses
+    5500 uses
+    5600 uses
+    5700 uses
+    5800 uses
+    5900 uses
+    6000 uses
+    6100 uses
+    6200 uses
+    6300 uses
+    6400 uses
+    6500 uses
+    6600 uses
+    6700 uses
+    6800 uses
+    6900 uses
+    7000 uses
+    7100 uses
+    7200 uses
+    7300 uses
+    7400 uses
+    7500 uses
+    7600 uses
+    7700 uses
+    7800 uses
+    7900 uses
+    8000 uses
+    8100 uses
+    8200 uses
+    8300 uses
+    8400 uses
+    8500 uses
+    8600 uses
+    8700 uses
+    8800 uses
+    8900 uses
+    9000 uses
+    9100 uses
+    9200 uses
+    9300 uses
+    9400 uses
+    9500 uses
+    9600 uses
+    9700 uses
+    9800 uses
+    9900 uses
+    10000 uses
+    10100 uses
+    10200 uses
+    10300 uses
+    10400 uses
+    10500 uses
+    10600 uses
+    10700 uses
+    10800 uses
+    10900 uses
+    11000 uses
+    11100 uses
+    11200 uses
+    11300 uses
+    11400 uses
+    11500 uses
+    11600 uses
+    11700 uses
+    11800 uses
+    11900 uses
+    12000 uses
+    12100 uses
+    12200 uses
+    12300 uses
+    12400 uses
+    12500 uses
+    12600 uses
+    12700 uses
+    12800 uses
+    12900 uses
+    13000 uses
+    13100 uses
+    13200 uses
+    13300 uses
+    13400 uses
+    13500 uses
+    13600 uses
+    13700 uses
+    13800 uses
+    13900 uses
+    14000 uses
+    14100 uses
+    14200 uses
+    14300 uses
+    14400 uses
+    14500 uses
+    14600 uses
+    14700 uses
+    14800 uses
+    14900 uses
+    15000 uses
+    15100 uses
+    15200 uses
+    15300 uses
+    15400 uses
+    15500 uses
+    15600 uses
+    15700 uses
+    15800 uses
+    15900 uses
+    16000 uses
+    16100 uses
+    16200 uses
+    16300 uses
+    16400 uses
+    16500 uses
+    16600 uses
+    16700 uses
+    16800 uses
+    16900 uses
+    17000 uses
+    17100 uses
+    17200 uses
+    17300 uses
+    17400 uses
+    17500 uses
+    17600 uses
+    17700 uses
+    17800 uses
+    17900 uses
+    18000 uses
+    18100 uses
+    18200 uses
+    18300 uses
+    18400 uses
+    18500 uses
+    18600 uses
+    18700 uses
+    18800 uses
+    18900 uses
+    19000 uses
+    19100 uses
+    19200 uses
+    19300 uses
+    19400 uses
+    19500 uses
+    19600 uses
+    19700 uses
+    19800 uses
+    19900 uses
+    20000 uses
+    20100 uses
+    20200 uses
+    20300 uses
+    20400 uses
+    20500 uses
+    20600 uses
+    20700 uses
+    20800 uses
+    20900 uses
+    21000 uses
+    21100 uses
+    21200 uses
+    21300 uses
+    21400 uses
+    21500 uses
+    21600 uses
+    21700 uses
+    21800 uses
+    21900 uses
+    22000 uses
+    22100 uses
+    22200 uses
+    22300 uses
+    22400 uses
+    22500 uses
+    22600 uses
+    22700 uses
+    22800 uses
+    22900 uses
+    23000 uses
+    23100 uses
+    23200 uses
+    23300 uses
+    23400 uses
+    23500 uses
+    23600 uses
+    23700 uses
+    23800 uses
+    23900 uses
+    24000 uses
+    24100 uses
+    24200 uses
+    24300 uses
+    24400 uses
+    24500 uses
+    24600 uses
+    24700 uses
+    24800 uses
+    24900 uses
+    25000 uses
+    25100 uses
+    25200 uses
+    25300 uses
+    25400 uses
+    25500 uses
+    25600 uses
+    25700 uses
+    25800 uses
+    25900 uses
+    26000 uses
+    26100 uses
+    26200 uses
+    26300 uses
+    26400 uses
+    26500 uses
+    26600 uses
+    26700 uses
+    26800 uses
+    26900 uses
+    27000 uses
+    27100 uses
+    27200 uses
+    27300 uses
+    27400 uses
+    27500 uses
+    27600 uses
+    27700 uses
+    27800 uses
+    27900 uses
+    28000 uses
+    28100 uses
+    28200 uses
+    28300 uses
+    28400 uses
+    28500 uses
+    28600 uses
+    28700 uses
+    28800 uses
+    28900 uses
+    29000 uses
+    29100 uses
+    29200 uses
+    29300 uses
+    29400 uses
+    29500 uses
+    29600 uses
+    29700 uses
+    29800 uses
+    29900 uses
+    30000 uses
+    30100 uses
+    30200 uses
+    30300 uses
+    30400 uses
+    30500 uses
+    30600 uses
+    30700 uses
+    30800 uses
+    30900 uses
+    31000 uses
+    31100 uses
+    31200 uses
+    31300 uses
+    31400 uses
+    31500 uses
+    31600 uses
+    31700 uses
+    31800 uses
+    31900 uses
+    32000 uses
+    32100 uses
+    32200 uses
+    32300 uses
+    32400 uses
+    32500 uses
+    32600 uses
+    32700 uses
+    32800 uses
+    32900 uses
+    33000 uses
+    33100 uses
+    33200 uses
+    33300 uses
+    33400 uses
+    33500 uses
+    33600 uses
+    33700 uses
+    33800 uses
+    33900 uses
+    34000 uses
+    34100 uses
+    34200 uses
+    34300 uses
+    34400 uses
+    34500 uses
+    34600 uses
+    34700 uses
+    34800 uses
+    34900 uses
+    35000 uses
+    35100 uses
 Reading "glbl_cfg".
     100 uses
     200 uses
@@ -2860,7 +2564,6 @@
     14000 uses
     14100 uses
 Reading "sky130_fd_sc_hd__dlygate4sd3_1".
-Reading "sky130_fd_sc_hd__o41a_4".
 Reading "spim_top".
     100 uses
     200 uses
@@ -3109,6 +2812,32 @@
     24500 uses
     24600 uses
     24700 uses
+    24800 uses
+    24900 uses
+    25000 uses
+    25100 uses
+    25200 uses
+    25300 uses
+    25400 uses
+    25500 uses
+    25600 uses
+    25700 uses
+    25800 uses
+    25900 uses
+    26000 uses
+    26100 uses
+    26200 uses
+    26300 uses
+    26400 uses
+    26500 uses
+    26600 uses
+    26700 uses
+    26800 uses
+    26900 uses
+    27000 uses
+    27100 uses
+    27200 uses
+    27300 uses
 Reading "user_project_wrapper".
 Root cell box:
            width x height  (   llx,  lly  ), (   urx,  ury  )  area (units^2)
diff --git a/checks/full_log.log b/checks/full_log.log
index 6d28b11..6b9756a 100644
--- a/checks/full_log.log
+++ b/checks/full_log.log
@@ -3,8 +3,8 @@
 Step 0 done without fatal errors.
  Executing Step 1 of 8: Project License Check
 {{LICENSE COMPLIANCE PASSED}} Apache-2.0 LICENSE file was found in project root
- SPDX COMPLIANCE Found 971 non-compliant files with the SPDX Standard. Check full log for more information
-SPDX COMPLIANCE: NON-COMPLIANT FILES PREVIEW: ['/home/dinesha/workarea/opencore/git/yifive_r0/README.md', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/user_project_wrapper.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/wb_host.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/sdrc_top.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/wb_interconnect.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/scr1_top_wb.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/glbl_cfg.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/test.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/uart_core.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/clk_skew_adjust.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/clk_buf.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/spim_top.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/default.cvcrc', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/config.tcl', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic_spice.tcl', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/opt.lib', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/trimmed.lib', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/tracks_copy.info', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/sky130_fd_sc_hd__tt_025C_1v80.no_pg.lib', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/synthesis/hierarchy.dot']
+ SPDX COMPLIANCE Found 1110 non-compliant files with the SPDX Standard. Check full log for more information
+SPDX COMPLIANCE: NON-COMPLIANT FILES PREVIEW: ['/home/dinesha/workarea/opencore/git/yifive_r0/README.md', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/user_project_wrapper.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/wb_host.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/sdrc_top.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/wb_interconnect.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/scr1_top_wb.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/glbl_cfg.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/test.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/uart_core.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/clk_skew_adjust.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/clk_buf.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/spef/spim_top.spef', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/default.cvcrc', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/aa', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/config.tcl', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic_spice.tcl', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/opt.lib', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/trimmed.lib', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/tracks_copy.info', '/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/sky130_fd_sc_hd__tt_025C_1v80.no_pg.lib']
  Executing Step 2 of 8: YAML File Check
  YAML file valid!
 Step 2 done without fatal errors.
@@ -21,7 +21,7 @@
 instance caravel found
 instance user_project_wrapper found
 Design is complex and contains: 47 modules
-Design is complex and contains: 18 modules
+Design is complex and contains: 20 modules
 verilog Consistency Checks Passed.
  Basic Hierarchy Checks Passed.
 {PROGRESS} Running Pins and Power Checks...
@@ -37,3 +37,7 @@
 TEST FAILED AT STEP 5
  Executing Step 6 of 8: DRC Violations Checks
  Running Magic DRC Checks...
+Violation Message "All nwells must contain metal-connected N+ taps (nwell.4) "found 1 Times.
+ DRC Checks on GDS Failed, Reason: Total # of DRC violations is 1
+TEST FAILED AT STEP 6
+ SOME Checks FAILED !!!
diff --git a/checks/magic_drc.log b/checks/magic_drc.log
index c1fe571..b91926b 100644
--- a/checks/magic_drc.log
+++ b/checks/magic_drc.log
@@ -13,47 +13,48 @@
 Warning: Calma reading is not undoable!  I hope that's OK.
 Library written using GDS-II Release 3.0
 Library name: user_project_wrapper
-Reading "sky130_fd_sc_hd__decap_3".
-Reading "sky130_fd_sc_hd__decap_8".
-Reading "sky130_fd_sc_hd__decap_6".
-Reading "sky130_fd_sc_hd__decap_12".
-Reading "sky130_fd_sc_hd__tapvpwrvgnd_1".
-Reading "sky130_fd_sc_hd__fill_1".
-Reading "sky130_fd_sc_hd__o22a_4".
-Reading "sky130_fd_sc_hd__decap_4".
-Reading "sky130_fd_sc_hd__and2_4".
-Reading "sky130_fd_sc_hd__clkbuf_1".
-Reading "sky130_fd_sc_hd__dfxtp_4".
-Reading "sky130_fd_sc_hd__or2_4".
-Reading "sky130_fd_sc_hd__fill_2".
-Reading "sky130_fd_sc_hd__o21a_4".
-Reading "sky130_fd_sc_hd__buf_2".
-Reading "sky130_fd_sc_hd__and3_4".
-Reading "sky130_fd_sc_hd__a2bb2o_4".
-Reading "sky130_fd_sc_hd__conb_1".
-Reading "sky130_fd_sc_hd__inv_2".
-Reading "sky130_fd_sc_hd__a32o_4".
-Reading "sky130_fd_sc_hd__diode_2".
-Reading "sky130_fd_sc_hd__dfrtp_4".
+Reading "sky130_fd_sc_hd__clkbuf_16".
+Reading "sky130_fd_sc_hd__buf_4".
 Reading "sky130_fd_sc_hd__a21o_4".
-Reading "sky130_fd_sc_hd__a211o_4".
+Reading "sky130_fd_sc_hd__clkbuf_1".
+Reading "sky130_fd_sc_hd__dfstp_4".
+Reading "sky130_fd_sc_hd__or3_4".
 Reading "sky130_fd_sc_hd__a21boi_4".
 Reading "sky130_fd_sc_hd__or4_4".
-Reading "sky130_fd_sc_hd__a21oi_4".
-Reading "sky130_fd_sc_hd__or3_4".
-Reading "sky130_fd_sc_hd__nor2_4".
-Reading "sky130_fd_sc_hd__and4_4".
-Reading "sky130_fd_sc_hd__nand2_4".
-Reading "sky130_fd_sc_hd__clkbuf_16".
-Reading "sky130_fd_sc_hd__buf_8".
 Reading "sky130_fd_sc_hd__a22oi_4".
-Reading "sky130_fd_sc_hd__dfstp_4".
+Reading "sky130_fd_sc_hd__and3_4".
 Reading "sky130_fd_sc_hd__o21ai_4".
-Reading "sky130_fd_sc_hd__buf_4".
-Reading "sky130_fd_sc_hd__a2111o_4".
 Reading "sky130_fd_sc_hd__o32a_4".
+Reading "sky130_fd_sc_hd__and2_4".
+Reading "sky130_fd_sc_hd__and4_4".
+Reading "sky130_fd_sc_hd__dfxtp_4".
+Reading "sky130_fd_sc_hd__or2_4".
+Reading "sky130_fd_sc_hd__diode_2".
+Reading "sky130_fd_sc_hd__o22a_4".
+Reading "sky130_fd_sc_hd__nor2_4".
+Reading "sky130_fd_sc_hd__o21a_4".
+Reading "sky130_fd_sc_hd__a32o_4".
+Reading "sky130_fd_sc_hd__buf_2".
+Reading "sky130_fd_sc_hd__a21oi_4".
+Reading "sky130_fd_sc_hd__nand2_4".
+Reading "sky130_fd_sc_hd__inv_2".
+Reading "sky130_fd_sc_hd__dfrtp_4".
+Reading "sky130_fd_sc_hd__decap_4".
+Reading "sky130_fd_sc_hd__a211o_4".
+Reading "sky130_fd_sc_hd__fill_2".
+Reading "sky130_fd_sc_hd__decap_8".
+Reading "sky130_fd_sc_hd__a2bb2o_4".
+Reading "sky130_fd_sc_hd__tapvpwrvgnd_1".
+Reading "sky130_fd_sc_hd__decap_12".
+Reading "sky130_fd_sc_hd__conb_1".
+Reading "sky130_fd_sc_hd__decap_6".
+Reading "sky130_fd_sc_hd__fill_1".
+Reading "sky130_fd_sc_hd__decap_3".
+Reading "sky130_fd_sc_hd__a2111o_4".
 Reading "sky130_fd_sc_hd__a21bo_4".
-Reading "scr1_top_wb".
+Reading "sky130_fd_sc_hd__o41a_4".
+Reading "sky130_fd_sc_hd__buf_8".
+Reading "scr1_core_top".
     100 uses
     200 uses
     300 uses
@@ -1272,553 +1273,1575 @@
     121600 uses
     121700 uses
     121800 uses
-    121900 uses
-    122000 uses
-    122100 uses
-    122200 uses
-    122300 uses
-    122400 uses
-    122500 uses
-    122600 uses
-    122700 uses
-    122800 uses
-    122900 uses
-    123000 uses
-    123100 uses
-    123200 uses
-    123300 uses
-    123400 uses
-    123500 uses
-    123600 uses
-    123700 uses
-    123800 uses
-    123900 uses
-    124000 uses
-    124100 uses
-    124200 uses
-    124300 uses
-    124400 uses
-    124500 uses
-    124600 uses
-    124700 uses
-    124800 uses
-    124900 uses
-    125000 uses
-    125100 uses
-    125200 uses
-    125300 uses
-    125400 uses
-    125500 uses
-    125600 uses
-    125700 uses
-    125800 uses
-    125900 uses
-    126000 uses
-    126100 uses
-    126200 uses
-    126300 uses
-    126400 uses
-    126500 uses
-    126600 uses
-    126700 uses
-    126800 uses
-    126900 uses
-    127000 uses
-    127100 uses
-    127200 uses
-    127300 uses
-    127400 uses
-    127500 uses
-    127600 uses
-    127700 uses
-    127800 uses
-    127900 uses
-    128000 uses
-    128100 uses
-    128200 uses
-    128300 uses
-    128400 uses
-    128500 uses
-    128600 uses
-    128700 uses
-    128800 uses
-    128900 uses
-    129000 uses
-    129100 uses
-    129200 uses
-    129300 uses
-    129400 uses
-    129500 uses
-    129600 uses
-    129700 uses
-    129800 uses
-    129900 uses
-    130000 uses
-    130100 uses
-    130200 uses
-    130300 uses
-    130400 uses
-    130500 uses
-    130600 uses
-    130700 uses
-    130800 uses
-    130900 uses
-    131000 uses
-    131100 uses
-    131200 uses
-    131300 uses
-    131400 uses
-    131500 uses
-    131600 uses
-    131700 uses
-    131800 uses
-    131900 uses
-    132000 uses
-    132100 uses
-    132200 uses
-    132300 uses
-    132400 uses
-    132500 uses
-    132600 uses
-    132700 uses
-    132800 uses
-    132900 uses
-    133000 uses
-    133100 uses
-    133200 uses
-    133300 uses
-    133400 uses
-    133500 uses
-    133600 uses
-    133700 uses
-    133800 uses
-    133900 uses
-    134000 uses
-    134100 uses
-    134200 uses
-    134300 uses
-    134400 uses
-    134500 uses
-    134600 uses
-    134700 uses
-    134800 uses
-    134900 uses
-    135000 uses
-    135100 uses
-    135200 uses
-    135300 uses
-    135400 uses
-    135500 uses
-    135600 uses
-    135700 uses
-    135800 uses
-    135900 uses
-    136000 uses
-    136100 uses
-    136200 uses
-    136300 uses
-    136400 uses
-    136500 uses
-    136600 uses
-    136700 uses
-    136800 uses
-    136900 uses
-    137000 uses
-    137100 uses
-    137200 uses
-    137300 uses
-    137400 uses
-    137500 uses
-    137600 uses
-    137700 uses
-    137800 uses
-    137900 uses
-    138000 uses
-    138100 uses
-    138200 uses
-    138300 uses
-    138400 uses
-    138500 uses
-    138600 uses
-    138700 uses
-    138800 uses
-    138900 uses
-    139000 uses
-    139100 uses
-    139200 uses
-    139300 uses
-    139400 uses
-    139500 uses
-    139600 uses
-    139700 uses
-    139800 uses
-    139900 uses
-    140000 uses
-    140100 uses
-    140200 uses
-    140300 uses
-    140400 uses
-    140500 uses
-    140600 uses
-    140700 uses
-    140800 uses
-    140900 uses
-    141000 uses
-    141100 uses
-    141200 uses
-    141300 uses
-    141400 uses
-    141500 uses
-    141600 uses
-    141700 uses
-    141800 uses
-    141900 uses
-    142000 uses
-    142100 uses
-    142200 uses
-    142300 uses
-    142400 uses
-    142500 uses
-    142600 uses
-    142700 uses
-    142800 uses
-    142900 uses
-    143000 uses
-    143100 uses
-    143200 uses
-    143300 uses
-    143400 uses
-    143500 uses
-    143600 uses
-    143700 uses
-    143800 uses
-    143900 uses
-    144000 uses
-    144100 uses
-    144200 uses
-    144300 uses
-    144400 uses
-    144500 uses
-    144600 uses
-    144700 uses
-    144800 uses
-    144900 uses
-    145000 uses
-    145100 uses
-    145200 uses
-    145300 uses
-    145400 uses
-    145500 uses
-    145600 uses
-    145700 uses
-    145800 uses
-    145900 uses
-    146000 uses
-    146100 uses
-    146200 uses
-    146300 uses
-    146400 uses
-    146500 uses
-    146600 uses
-    146700 uses
-    146800 uses
-    146900 uses
-    147000 uses
-    147100 uses
-    147200 uses
-    147300 uses
-    147400 uses
-    147500 uses
-    147600 uses
-    147700 uses
-    147800 uses
-    147900 uses
-    148000 uses
-    148100 uses
-    148200 uses
-    148300 uses
-    148400 uses
-    148500 uses
-    148600 uses
-    148700 uses
-    148800 uses
-    148900 uses
-    149000 uses
-    149100 uses
-    149200 uses
-    149300 uses
-    149400 uses
-    149500 uses
-    149600 uses
-    149700 uses
-    149800 uses
-    149900 uses
-    150000 uses
-    150100 uses
-    150200 uses
-    150300 uses
-    150400 uses
-    150500 uses
-    150600 uses
-    150700 uses
-    150800 uses
-    150900 uses
-    151000 uses
-    151100 uses
-    151200 uses
-    151300 uses
-    151400 uses
-    151500 uses
-    151600 uses
-    151700 uses
-    151800 uses
-    151900 uses
-    152000 uses
-    152100 uses
-    152200 uses
-    152300 uses
-    152400 uses
-    152500 uses
-    152600 uses
-    152700 uses
-    152800 uses
-    152900 uses
-    153000 uses
-    153100 uses
-    153200 uses
-    153300 uses
-    153400 uses
-    153500 uses
-    153600 uses
-    153700 uses
-    153800 uses
-    153900 uses
-    154000 uses
-    154100 uses
-    154200 uses
-    154300 uses
-    154400 uses
-    154500 uses
-    154600 uses
-    154700 uses
-    154800 uses
-    154900 uses
-    155000 uses
-    155100 uses
-    155200 uses
-    155300 uses
-    155400 uses
-    155500 uses
-    155600 uses
-    155700 uses
-    155800 uses
-    155900 uses
-    156000 uses
-    156100 uses
-    156200 uses
-    156300 uses
-    156400 uses
-    156500 uses
-    156600 uses
-    156700 uses
-    156800 uses
-    156900 uses
-    157000 uses
-    157100 uses
-    157200 uses
-    157300 uses
-    157400 uses
-    157500 uses
-    157600 uses
-    157700 uses
-    157800 uses
-    157900 uses
-    158000 uses
-    158100 uses
-    158200 uses
-    158300 uses
-    158400 uses
-    158500 uses
-    158600 uses
-    158700 uses
-    158800 uses
-    158900 uses
-    159000 uses
-    159100 uses
-    159200 uses
-    159300 uses
-    159400 uses
-    159500 uses
-    159600 uses
-    159700 uses
-    159800 uses
-    159900 uses
-    160000 uses
-    160100 uses
-    160200 uses
-    160300 uses
-    160400 uses
-    160500 uses
-    160600 uses
-    160700 uses
-    160800 uses
-    160900 uses
-    161000 uses
-    161100 uses
-    161200 uses
-    161300 uses
-    161400 uses
-    161500 uses
-    161600 uses
-    161700 uses
-    161800 uses
-    161900 uses
-    162000 uses
-    162100 uses
-    162200 uses
-    162300 uses
-    162400 uses
-    162500 uses
-    162600 uses
-    162700 uses
-    162800 uses
-    162900 uses
-    163000 uses
-    163100 uses
-    163200 uses
-    163300 uses
-    163400 uses
-    163500 uses
-    163600 uses
-    163700 uses
-    163800 uses
-    163900 uses
-    164000 uses
-    164100 uses
-    164200 uses
-    164300 uses
-    164400 uses
-    164500 uses
-    164600 uses
-    164700 uses
-    164800 uses
-    164900 uses
-    165000 uses
-    165100 uses
-    165200 uses
-    165300 uses
-    165400 uses
-    165500 uses
-    165600 uses
-    165700 uses
-    165800 uses
-    165900 uses
-    166000 uses
-    166100 uses
-    166200 uses
-    166300 uses
-    166400 uses
-    166500 uses
-    166600 uses
-    166700 uses
-    166800 uses
-    166900 uses
-    167000 uses
-    167100 uses
-    167200 uses
-    167300 uses
-    167400 uses
-    167500 uses
-    167600 uses
-    167700 uses
-    167800 uses
-    167900 uses
-    168000 uses
-    168100 uses
-    168200 uses
-    168300 uses
-    168400 uses
-    168500 uses
-    168600 uses
-    168700 uses
-    168800 uses
-    168900 uses
-    169000 uses
-    169100 uses
-    169200 uses
-    169300 uses
-    169400 uses
-    169500 uses
-    169600 uses
-    169700 uses
-    169800 uses
-    169900 uses
-    170000 uses
-    170100 uses
-    170200 uses
-    170300 uses
-    170400 uses
-    170500 uses
-    170600 uses
-    170700 uses
-    170800 uses
-    170900 uses
-    171000 uses
-    171100 uses
-    171200 uses
-    171300 uses
-    171400 uses
-    171500 uses
-    171600 uses
-    171700 uses
-    171800 uses
-    171900 uses
-    172000 uses
-    172100 uses
-    172200 uses
-    172300 uses
-    172400 uses
-    172500 uses
-    172600 uses
-    172700 uses
-    172800 uses
-    172900 uses
-    173000 uses
-    173100 uses
-    173200 uses
-    173300 uses
-    173400 uses
-    173500 uses
-    173600 uses
-    173700 uses
-    173800 uses
-    173900 uses
-    174000 uses
-    174100 uses
-    174200 uses
-    174300 uses
-    174400 uses
-    174500 uses
-    174600 uses
-    174700 uses
-    174800 uses
-    174900 uses
-    175000 uses
-    175100 uses
-    175200 uses
-    175300 uses
-    175400 uses
-    175500 uses
-    175600 uses
-    175700 uses
-    175800 uses
-    175900 uses
-    176000 uses
-    176100 uses
-    176200 uses
-    176300 uses
-    176400 uses
-    176500 uses
-    176600 uses
-    176700 uses
-    176800 uses
+Reading "sky130_fd_sc_hd__clkdlybuf4s15_2".
+Reading "sky130_fd_sc_hd__mux2_1".
+Reading "sky130_fd_sc_hd__mux2_4".
+Reading "clk_skew_adjust".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+Reading "sky130_ef_sc_hd__fakediode_2".
+Reading "sky130_fd_sc_hd__bufbuf_16".
+Reading "wb_host".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+    800 uses
+    900 uses
+    1000 uses
+    1100 uses
+    1200 uses
+    1300 uses
+    1400 uses
+    1500 uses
+    1600 uses
+    1700 uses
+    1800 uses
+    1900 uses
+    2000 uses
+    2100 uses
+    2200 uses
+    2300 uses
+    2400 uses
+    2500 uses
+    2600 uses
+    2700 uses
+    2800 uses
+    2900 uses
+    3000 uses
+    3100 uses
+    3200 uses
+    3300 uses
+    3400 uses
+    3500 uses
+    3600 uses
+    3700 uses
+    3800 uses
+    3900 uses
+    4000 uses
+    4100 uses
+    4200 uses
+    4300 uses
+    4400 uses
+    4500 uses
+    4600 uses
+    4700 uses
+    4800 uses
+    4900 uses
+    5000 uses
+    5100 uses
+    5200 uses
+    5300 uses
+    5400 uses
+    5500 uses
+    5600 uses
+    5700 uses
+    5800 uses
+    5900 uses
+    6000 uses
+    6100 uses
+    6200 uses
+    6300 uses
+    6400 uses
+    6500 uses
+    6600 uses
+    6700 uses
+    6800 uses
+    6900 uses
+    7000 uses
+    7100 uses
+    7200 uses
+    7300 uses
+    7400 uses
+    7500 uses
+    7600 uses
+    7700 uses
+    7800 uses
+    7900 uses
+    8000 uses
+    8100 uses
+    8200 uses
+    8300 uses
+    8400 uses
+    8500 uses
+    8600 uses
+    8700 uses
+    8800 uses
+    8900 uses
+    9000 uses
+    9100 uses
+    9200 uses
+    9300 uses
+    9400 uses
+    9500 uses
+    9600 uses
+    9700 uses
+    9800 uses
+    9900 uses
+    10000 uses
+    10100 uses
+    10200 uses
+    10300 uses
+    10400 uses
+    10500 uses
+    10600 uses
+    10700 uses
+    10800 uses
+    10900 uses
+    11000 uses
+    11100 uses
+    11200 uses
+    11300 uses
+    11400 uses
+    11500 uses
+    11600 uses
+    11700 uses
+    11800 uses
+    11900 uses
+    12000 uses
+    12100 uses
+Reading "scr1_intf".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+    800 uses
+    900 uses
+    1000 uses
+    1100 uses
+    1200 uses
+    1300 uses
+    1400 uses
+    1500 uses
+    1600 uses
+    1700 uses
+    1800 uses
+    1900 uses
+    2000 uses
+    2100 uses
+    2200 uses
+    2300 uses
+    2400 uses
+    2500 uses
+    2600 uses
+    2700 uses
+    2800 uses
+    2900 uses
+    3000 uses
+    3100 uses
+    3200 uses
+    3300 uses
+    3400 uses
+    3500 uses
+    3600 uses
+    3700 uses
+    3800 uses
+    3900 uses
+    4000 uses
+    4100 uses
+    4200 uses
+    4300 uses
+    4400 uses
+    4500 uses
+    4600 uses
+    4700 uses
+    4800 uses
+    4900 uses
+    5000 uses
+    5100 uses
+    5200 uses
+    5300 uses
+    5400 uses
+    5500 uses
+    5600 uses
+    5700 uses
+    5800 uses
+    5900 uses
+    6000 uses
+    6100 uses
+    6200 uses
+    6300 uses
+    6400 uses
+    6500 uses
+    6600 uses
+    6700 uses
+    6800 uses
+    6900 uses
+    7000 uses
+    7100 uses
+    7200 uses
+    7300 uses
+    7400 uses
+    7500 uses
+    7600 uses
+    7700 uses
+    7800 uses
+    7900 uses
+    8000 uses
+    8100 uses
+    8200 uses
+    8300 uses
+    8400 uses
+    8500 uses
+    8600 uses
+    8700 uses
+    8800 uses
+    8900 uses
+    9000 uses
+    9100 uses
+    9200 uses
+    9300 uses
+    9400 uses
+    9500 uses
+    9600 uses
+    9700 uses
+    9800 uses
+    9900 uses
+    10000 uses
+    10100 uses
+    10200 uses
+    10300 uses
+    10400 uses
+    10500 uses
+    10600 uses
+    10700 uses
+    10800 uses
+    10900 uses
+    11000 uses
+    11100 uses
+    11200 uses
+    11300 uses
+    11400 uses
+    11500 uses
+    11600 uses
+    11700 uses
+    11800 uses
+    11900 uses
+    12000 uses
+    12100 uses
+    12200 uses
+    12300 uses
+    12400 uses
+    12500 uses
+    12600 uses
+    12700 uses
+    12800 uses
+    12900 uses
+    13000 uses
+    13100 uses
+    13200 uses
+    13300 uses
+    13400 uses
+    13500 uses
+    13600 uses
+    13700 uses
+    13800 uses
+    13900 uses
+    14000 uses
+    14100 uses
+    14200 uses
+    14300 uses
+    14400 uses
+    14500 uses
+    14600 uses
+    14700 uses
+    14800 uses
+    14900 uses
+    15000 uses
+    15100 uses
+    15200 uses
+    15300 uses
+    15400 uses
+    15500 uses
+    15600 uses
+    15700 uses
+    15800 uses
+    15900 uses
+    16000 uses
+    16100 uses
+    16200 uses
+    16300 uses
+    16400 uses
+    16500 uses
+    16600 uses
+    16700 uses
+    16800 uses
+    16900 uses
+    17000 uses
+    17100 uses
+    17200 uses
+    17300 uses
+    17400 uses
+    17500 uses
+    17600 uses
+    17700 uses
+    17800 uses
+    17900 uses
+    18000 uses
+    18100 uses
+    18200 uses
+    18300 uses
+    18400 uses
+    18500 uses
+    18600 uses
+    18700 uses
+    18800 uses
+    18900 uses
+    19000 uses
+    19100 uses
+    19200 uses
+    19300 uses
+    19400 uses
+    19500 uses
+    19600 uses
+    19700 uses
+    19800 uses
+    19900 uses
+    20000 uses
+    20100 uses
+    20200 uses
+    20300 uses
+    20400 uses
+    20500 uses
+    20600 uses
+    20700 uses
+    20800 uses
+    20900 uses
+    21000 uses
+    21100 uses
+    21200 uses
+    21300 uses
+    21400 uses
+    21500 uses
+    21600 uses
+    21700 uses
+    21800 uses
+    21900 uses
+    22000 uses
+    22100 uses
+    22200 uses
+    22300 uses
+    22400 uses
+    22500 uses
+    22600 uses
+    22700 uses
+    22800 uses
+    22900 uses
+    23000 uses
+    23100 uses
+    23200 uses
+    23300 uses
+    23400 uses
+    23500 uses
+    23600 uses
+    23700 uses
+    23800 uses
+    23900 uses
+    24000 uses
+    24100 uses
+    24200 uses
+    24300 uses
+    24400 uses
+    24500 uses
+    24600 uses
+    24700 uses
+    24800 uses
+    24900 uses
+    25000 uses
+    25100 uses
+    25200 uses
+Reading "uart_core".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+    800 uses
+    900 uses
+    1000 uses
+    1100 uses
+    1200 uses
+    1300 uses
+    1400 uses
+    1500 uses
+    1600 uses
+    1700 uses
+    1800 uses
+    1900 uses
+    2000 uses
+    2100 uses
+    2200 uses
+    2300 uses
+    2400 uses
+    2500 uses
+    2600 uses
+    2700 uses
+    2800 uses
+    2900 uses
+    3000 uses
+    3100 uses
+    3200 uses
+    3300 uses
+    3400 uses
+    3500 uses
+    3600 uses
+    3700 uses
+    3800 uses
+    3900 uses
+    4000 uses
+    4100 uses
+    4200 uses
+    4300 uses
+    4400 uses
+    4500 uses
+    4600 uses
+    4700 uses
+    4800 uses
+    4900 uses
+    5000 uses
+    5100 uses
+    5200 uses
+    5300 uses
+    5400 uses
+    5500 uses
+    5600 uses
+    5700 uses
+    5800 uses
+    5900 uses
+    6000 uses
+    6100 uses
+    6200 uses
+    6300 uses
+    6400 uses
+    6500 uses
+    6600 uses
+    6700 uses
+    6800 uses
+    6900 uses
+    7000 uses
+    7100 uses
+    7200 uses
+    7300 uses
+    7400 uses
+    7500 uses
+    7600 uses
+    7700 uses
+    7800 uses
+    7900 uses
+    8000 uses
+    8100 uses
+    8200 uses
+    8300 uses
+    8400 uses
+    8500 uses
+    8600 uses
+    8700 uses
+    8800 uses
+    8900 uses
+    9000 uses
+    9100 uses
+    9200 uses
+    9300 uses
+    9400 uses
+    9500 uses
+    9600 uses
+    9700 uses
+    9800 uses
+    9900 uses
+    10000 uses
+    10100 uses
+    10200 uses
+    10300 uses
+    10400 uses
+    10500 uses
+    10600 uses
+    10700 uses
+    10800 uses
+    10900 uses
+    11000 uses
+    11100 uses
+    11200 uses
+    11300 uses
+    11400 uses
+    11500 uses
+    11600 uses
+    11700 uses
+    11800 uses
+    11900 uses
+    12000 uses
+    12100 uses
+    12200 uses
+    12300 uses
+    12400 uses
+    12500 uses
+    12600 uses
+    12700 uses
+    12800 uses
+    12900 uses
+    13000 uses
+    13100 uses
+    13200 uses
+    13300 uses
+    13400 uses
+    13500 uses
+    13600 uses
+    13700 uses
+Reading "wb_interconnect".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+    800 uses
+    900 uses
+    1000 uses
+    1100 uses
+    1200 uses
+    1300 uses
+    1400 uses
+    1500 uses
+    1600 uses
+    1700 uses
+    1800 uses
+    1900 uses
+    2000 uses
+    2100 uses
+    2200 uses
+    2300 uses
+    2400 uses
+    2500 uses
+    2600 uses
+    2700 uses
+    2800 uses
+    2900 uses
+    3000 uses
+    3100 uses
+    3200 uses
+    3300 uses
+    3400 uses
+    3500 uses
+    3600 uses
+    3700 uses
+    3800 uses
+    3900 uses
+    4000 uses
+    4100 uses
+    4200 uses
+    4300 uses
+    4400 uses
+    4500 uses
+    4600 uses
+    4700 uses
+    4800 uses
+    4900 uses
+    5000 uses
+    5100 uses
+    5200 uses
+    5300 uses
+    5400 uses
+    5500 uses
+    5600 uses
+    5700 uses
+    5800 uses
+    5900 uses
+    6000 uses
+    6100 uses
+    6200 uses
+    6300 uses
+    6400 uses
+    6500 uses
+    6600 uses
+    6700 uses
+    6800 uses
+    6900 uses
+    7000 uses
+    7100 uses
+    7200 uses
+    7300 uses
+    7400 uses
+    7500 uses
+    7600 uses
+    7700 uses
+    7800 uses
+    7900 uses
+    8000 uses
+    8100 uses
+    8200 uses
+    8300 uses
+    8400 uses
+    8500 uses
+    8600 uses
+    8700 uses
+    8800 uses
+    8900 uses
+    9000 uses
+    9100 uses
+    9200 uses
+    9300 uses
+    9400 uses
+    9500 uses
+    9600 uses
+    9700 uses
+    9800 uses
+    9900 uses
+    10000 uses
+    10100 uses
+    10200 uses
+    10300 uses
+    10400 uses
+    10500 uses
+    10600 uses
+    10700 uses
+    10800 uses
+    10900 uses
+    11000 uses
+    11100 uses
+    11200 uses
+    11300 uses
+    11400 uses
+    11500 uses
+    11600 uses
+    11700 uses
+    11800 uses
+    11900 uses
+    12000 uses
+    12100 uses
+    12200 uses
+    12300 uses
+    12400 uses
+    12500 uses
+    12600 uses
+    12700 uses
+    12800 uses
+    12900 uses
+    13000 uses
+    13100 uses
+    13200 uses
+    13300 uses
+    13400 uses
+    13500 uses
+    13600 uses
+    13700 uses
+    13800 uses
+    13900 uses
+    14000 uses
+    14100 uses
+    14200 uses
+    14300 uses
+    14400 uses
+    14500 uses
+    14600 uses
+    14700 uses
+    14800 uses
+    14900 uses
+    15000 uses
+    15100 uses
+    15200 uses
+    15300 uses
+    15400 uses
+    15500 uses
+    15600 uses
+    15700 uses
+    15800 uses
+    15900 uses
+    16000 uses
+    16100 uses
+    16200 uses
+    16300 uses
+    16400 uses
+    16500 uses
+    16600 uses
+    16700 uses
+    16800 uses
+    16900 uses
+    17000 uses
+    17100 uses
+    17200 uses
+    17300 uses
+    17400 uses
+    17500 uses
+    17600 uses
+    17700 uses
+    17800 uses
+    17900 uses
+    18000 uses
+    18100 uses
+    18200 uses
+    18300 uses
+    18400 uses
+    18500 uses
+    18600 uses
+    18700 uses
+    18800 uses
+    18900 uses
+    19000 uses
+    19100 uses
+    19200 uses
+    19300 uses
+    19400 uses
+    19500 uses
+    19600 uses
+    19700 uses
+    19800 uses
+    19900 uses
+    20000 uses
+    20100 uses
+    20200 uses
+    20300 uses
+    20400 uses
+    20500 uses
+    20600 uses
+    20700 uses
+    20800 uses
+    20900 uses
+    21000 uses
+    21100 uses
+    21200 uses
+    21300 uses
+    21400 uses
+    21500 uses
+    21600 uses
+    21700 uses
+    21800 uses
+    21900 uses
+    22000 uses
+    22100 uses
+    22200 uses
+    22300 uses
+    22400 uses
+    22500 uses
+    22600 uses
+    22700 uses
+    22800 uses
+    22900 uses
+    23000 uses
+    23100 uses
+    23200 uses
+    23300 uses
+    23400 uses
+    23500 uses
+    23600 uses
+    23700 uses
+    23800 uses
+    23900 uses
+    24000 uses
+    24100 uses
+    24200 uses
+    24300 uses
+    24400 uses
+    24500 uses
+    24600 uses
+    24700 uses
+    24800 uses
+    24900 uses
+    25000 uses
+    25100 uses
+    25200 uses
+    25300 uses
+    25400 uses
+    25500 uses
+    25600 uses
+    25700 uses
+    25800 uses
+    25900 uses
+    26000 uses
+    26100 uses
+    26200 uses
+    26300 uses
+    26400 uses
+    26500 uses
+    26600 uses
+Reading "sdrc_top".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+    800 uses
+    900 uses
+    1000 uses
+    1100 uses
+    1200 uses
+    1300 uses
+    1400 uses
+    1500 uses
+    1600 uses
+    1700 uses
+    1800 uses
+    1900 uses
+    2000 uses
+    2100 uses
+    2200 uses
+    2300 uses
+    2400 uses
+    2500 uses
+    2600 uses
+    2700 uses
+    2800 uses
+    2900 uses
+    3000 uses
+    3100 uses
+    3200 uses
+    3300 uses
+    3400 uses
+    3500 uses
+    3600 uses
+    3700 uses
+    3800 uses
+    3900 uses
+    4000 uses
+    4100 uses
+    4200 uses
+    4300 uses
+    4400 uses
+    4500 uses
+    4600 uses
+    4700 uses
+    4800 uses
+    4900 uses
+    5000 uses
+    5100 uses
+    5200 uses
+    5300 uses
+    5400 uses
+    5500 uses
+    5600 uses
+    5700 uses
+    5800 uses
+    5900 uses
+    6000 uses
+    6100 uses
+    6200 uses
+    6300 uses
+    6400 uses
+    6500 uses
+    6600 uses
+    6700 uses
+    6800 uses
+    6900 uses
+    7000 uses
+    7100 uses
+    7200 uses
+    7300 uses
+    7400 uses
+    7500 uses
+    7600 uses
+    7700 uses
+    7800 uses
+    7900 uses
+    8000 uses
+    8100 uses
+    8200 uses
+    8300 uses
+    8400 uses
+    8500 uses
+    8600 uses
+    8700 uses
+    8800 uses
+    8900 uses
+    9000 uses
+    9100 uses
+    9200 uses
+    9300 uses
+    9400 uses
+    9500 uses
+    9600 uses
+    9700 uses
+    9800 uses
+    9900 uses
+    10000 uses
+    10100 uses
+    10200 uses
+    10300 uses
+    10400 uses
+    10500 uses
+    10600 uses
+    10700 uses
+    10800 uses
+    10900 uses
+    11000 uses
+    11100 uses
+    11200 uses
+    11300 uses
+    11400 uses
+    11500 uses
+    11600 uses
+    11700 uses
+    11800 uses
+    11900 uses
+    12000 uses
+    12100 uses
+    12200 uses
+    12300 uses
+    12400 uses
+    12500 uses
+    12600 uses
+    12700 uses
+    12800 uses
+    12900 uses
+    13000 uses
+    13100 uses
+    13200 uses
+    13300 uses
+    13400 uses
+    13500 uses
+    13600 uses
+    13700 uses
+    13800 uses
+    13900 uses
+    14000 uses
+    14100 uses
+    14200 uses
+    14300 uses
+    14400 uses
+    14500 uses
+    14600 uses
+    14700 uses
+    14800 uses
+    14900 uses
+    15000 uses
+    15100 uses
+    15200 uses
+    15300 uses
+    15400 uses
+    15500 uses
+    15600 uses
+    15700 uses
+    15800 uses
+    15900 uses
+    16000 uses
+    16100 uses
+    16200 uses
+    16300 uses
+    16400 uses
+    16500 uses
+    16600 uses
+    16700 uses
+    16800 uses
+    16900 uses
+    17000 uses
+    17100 uses
+    17200 uses
+    17300 uses
+    17400 uses
+    17500 uses
+    17600 uses
+    17700 uses
+    17800 uses
+    17900 uses
+    18000 uses
+    18100 uses
+    18200 uses
+    18300 uses
+    18400 uses
+    18500 uses
+    18600 uses
+    18700 uses
+    18800 uses
+    18900 uses
+    19000 uses
+    19100 uses
+    19200 uses
+    19300 uses
+    19400 uses
+    19500 uses
+    19600 uses
+    19700 uses
+    19800 uses
+    19900 uses
+    20000 uses
+    20100 uses
+    20200 uses
+    20300 uses
+    20400 uses
+    20500 uses
+    20600 uses
+    20700 uses
+    20800 uses
+    20900 uses
+    21000 uses
+    21100 uses
+    21200 uses
+    21300 uses
+    21400 uses
+    21500 uses
+    21600 uses
+    21700 uses
+    21800 uses
+    21900 uses
+    22000 uses
+    22100 uses
+    22200 uses
+    22300 uses
+    22400 uses
+    22500 uses
+    22600 uses
+    22700 uses
+    22800 uses
+    22900 uses
+    23000 uses
+    23100 uses
+    23200 uses
+    23300 uses
+    23400 uses
+    23500 uses
+    23600 uses
+    23700 uses
+    23800 uses
+    23900 uses
+    24000 uses
+    24100 uses
+    24200 uses
+    24300 uses
+    24400 uses
+    24500 uses
+    24600 uses
+    24700 uses
+    24800 uses
+    24900 uses
+    25000 uses
+    25100 uses
+    25200 uses
+    25300 uses
+    25400 uses
+    25500 uses
+    25600 uses
+    25700 uses
+    25800 uses
+    25900 uses
+    26000 uses
+    26100 uses
+    26200 uses
+    26300 uses
+    26400 uses
+    26500 uses
+    26600 uses
+    26700 uses
+    26800 uses
+    26900 uses
+    27000 uses
+    27100 uses
+    27200 uses
+    27300 uses
+    27400 uses
+    27500 uses
+    27600 uses
+    27700 uses
+    27800 uses
+    27900 uses
+    28000 uses
+    28100 uses
+    28200 uses
+    28300 uses
+    28400 uses
+    28500 uses
+    28600 uses
+    28700 uses
+    28800 uses
+    28900 uses
+    29000 uses
+    29100 uses
+    29200 uses
+    29300 uses
+    29400 uses
+    29500 uses
+    29600 uses
+    29700 uses
+    29800 uses
+    29900 uses
+    30000 uses
+    30100 uses
+    30200 uses
+    30300 uses
+    30400 uses
+    30500 uses
+    30600 uses
+    30700 uses
+    30800 uses
+    30900 uses
+    31000 uses
+    31100 uses
+    31200 uses
+    31300 uses
+    31400 uses
+    31500 uses
+    31600 uses
+    31700 uses
+    31800 uses
+    31900 uses
+    32000 uses
+    32100 uses
+    32200 uses
+    32300 uses
+    32400 uses
+    32500 uses
+    32600 uses
+    32700 uses
+    32800 uses
+    32900 uses
+    33000 uses
+    33100 uses
+    33200 uses
+    33300 uses
+    33400 uses
+    33500 uses
+    33600 uses
+    33700 uses
+    33800 uses
+    33900 uses
+    34000 uses
+    34100 uses
+    34200 uses
+    34300 uses
+    34400 uses
+    34500 uses
+    34600 uses
+    34700 uses
+    34800 uses
+    34900 uses
+    35000 uses
+    35100 uses
+Reading "glbl_cfg".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+    800 uses
+    900 uses
+    1000 uses
+    1100 uses
+    1200 uses
+    1300 uses
+    1400 uses
+    1500 uses
+    1600 uses
+    1700 uses
+    1800 uses
+    1900 uses
+    2000 uses
+    2100 uses
+    2200 uses
+    2300 uses
+    2400 uses
+    2500 uses
+    2600 uses
+    2700 uses
+    2800 uses
+    2900 uses
+    3000 uses
+    3100 uses
+    3200 uses
+    3300 uses
+    3400 uses
+    3500 uses
+    3600 uses
+    3700 uses
+    3800 uses
+    3900 uses
+    4000 uses
+    4100 uses
+    4200 uses
+    4300 uses
+    4400 uses
+    4500 uses
+    4600 uses
+    4700 uses
+    4800 uses
+    4900 uses
+    5000 uses
+    5100 uses
+    5200 uses
+    5300 uses
+    5400 uses
+    5500 uses
+    5600 uses
+    5700 uses
+    5800 uses
+    5900 uses
+    6000 uses
+    6100 uses
+    6200 uses
+    6300 uses
+    6400 uses
+    6500 uses
+    6600 uses
+    6700 uses
+    6800 uses
+    6900 uses
+    7000 uses
+    7100 uses
+    7200 uses
+    7300 uses
+    7400 uses
+    7500 uses
+    7600 uses
+    7700 uses
+    7800 uses
+    7900 uses
+    8000 uses
+    8100 uses
+    8200 uses
+    8300 uses
+    8400 uses
+    8500 uses
+    8600 uses
+    8700 uses
+    8800 uses
+    8900 uses
+    9000 uses
+    9100 uses
+    9200 uses
+    9300 uses
+    9400 uses
+    9500 uses
+    9600 uses
+    9700 uses
+    9800 uses
+    9900 uses
+    10000 uses
+    10100 uses
+    10200 uses
+    10300 uses
+    10400 uses
+    10500 uses
+    10600 uses
+    10700 uses
+    10800 uses
+    10900 uses
+    11000 uses
+    11100 uses
+    11200 uses
+    11300 uses
+    11400 uses
+    11500 uses
+    11600 uses
+    11700 uses
+    11800 uses
+    11900 uses
+    12000 uses
+    12100 uses
+    12200 uses
+    12300 uses
+    12400 uses
+    12500 uses
+    12600 uses
+    12700 uses
+    12800 uses
+    12900 uses
+    13000 uses
+    13100 uses
+    13200 uses
+    13300 uses
+    13400 uses
+    13500 uses
+    13600 uses
+    13700 uses
+    13800 uses
+    13900 uses
+    14000 uses
+    14100 uses
+Reading "sky130_fd_sc_hd__dlygate4sd3_1".
+Reading "spim_top".
+    100 uses
+    200 uses
+    300 uses
+    400 uses
+    500 uses
+    600 uses
+    700 uses
+    800 uses
+    900 uses
+    1000 uses
+    1100 uses
+    1200 uses
+    1300 uses
+    1400 uses
+    1500 uses
+    1600 uses
+    1700 uses
+    1800 uses
+    1900 uses
+    2000 uses
+    2100 uses
+    2200 uses
+    2300 uses
+    2400 uses
+    2500 uses
+    2600 uses
+    2700 uses
+    2800 uses
+    2900 uses
+    3000 uses
+    3100 uses
+    3200 uses
+    3300 uses
+    3400 uses
+    3500 uses
+    3600 uses
+    3700 uses
+    3800 uses
+    3900 uses
+    4000 uses
+    4100 uses
+    4200 uses
+    4300 uses
+    4400 uses
+    4500 uses
+    4600 uses
+    4700 uses
+    4800 uses
+    4900 uses
+    5000 uses
+    5100 uses
+    5200 uses
+    5300 uses
+    5400 uses
+    5500 uses
+    5600 uses
+    5700 uses
+    5800 uses
+    5900 uses
+    6000 uses
+    6100 uses
+    6200 uses
+    6300 uses
+    6400 uses
+    6500 uses
+    6600 uses
+    6700 uses
+    6800 uses
+    6900 uses
+    7000 uses
+    7100 uses
+    7200 uses
+    7300 uses
+    7400 uses
+    7500 uses
+    7600 uses
+    7700 uses
+    7800 uses
+    7900 uses
+    8000 uses
+    8100 uses
+    8200 uses
+    8300 uses
+    8400 uses
+    8500 uses
+    8600 uses
+    8700 uses
+    8800 uses
+    8900 uses
+    9000 uses
+    9100 uses
+    9200 uses
+    9300 uses
+    9400 uses
+    9500 uses
+    9600 uses
+    9700 uses
+    9800 uses
+    9900 uses
+    10000 uses
+    10100 uses
+    10200 uses
+    10300 uses
+    10400 uses
+    10500 uses
+    10600 uses
+    10700 uses
+    10800 uses
+    10900 uses
+    11000 uses
+    11100 uses
+    11200 uses
+    11300 uses
+    11400 uses
+    11500 uses
+    11600 uses
+    11700 uses
+    11800 uses
+    11900 uses
+    12000 uses
+    12100 uses
+    12200 uses
+    12300 uses
+    12400 uses
+    12500 uses
+    12600 uses
+    12700 uses
+    12800 uses
+    12900 uses
+    13000 uses
+    13100 uses
+    13200 uses
+    13300 uses
+    13400 uses
+    13500 uses
+    13600 uses
+    13700 uses
+    13800 uses
+    13900 uses
+    14000 uses
+    14100 uses
+    14200 uses
+    14300 uses
+    14400 uses
+    14500 uses
+    14600 uses
+    14700 uses
+    14800 uses
+    14900 uses
+    15000 uses
+    15100 uses
+    15200 uses
+    15300 uses
+    15400 uses
+    15500 uses
+    15600 uses
+    15700 uses
+    15800 uses
+    15900 uses
+    16000 uses
+    16100 uses
+    16200 uses
+    16300 uses
+    16400 uses
+    16500 uses
+    16600 uses
+    16700 uses
+    16800 uses
+    16900 uses
+    17000 uses
+    17100 uses
+    17200 uses
+    17300 uses
+    17400 uses
+    17500 uses
+    17600 uses
+    17700 uses
+    17800 uses
+    17900 uses
+    18000 uses
+    18100 uses
+    18200 uses
+    18300 uses
+    18400 uses
+    18500 uses
+    18600 uses
+    18700 uses
+    18800 uses
+    18900 uses
+    19000 uses
+    19100 uses
+    19200 uses
+    19300 uses
+    19400 uses
+    19500 uses
+    19600 uses
+    19700 uses
+    19800 uses
+    19900 uses
+    20000 uses
+    20100 uses
+    20200 uses
+    20300 uses
+    20400 uses
+    20500 uses
+    20600 uses
+    20700 uses
+    20800 uses
+    20900 uses
+    21000 uses
+    21100 uses
+    21200 uses
+    21300 uses
+    21400 uses
+    21500 uses
+    21600 uses
+    21700 uses
+    21800 uses
+    21900 uses
+    22000 uses
+    22100 uses
+    22200 uses
+    22300 uses
+    22400 uses
+    22500 uses
+    22600 uses
+    22700 uses
+    22800 uses
+    22900 uses
+    23000 uses
+    23100 uses
+    23200 uses
+    23300 uses
+    23400 uses
+    23500 uses
+    23600 uses
+    23700 uses
+    23800 uses
+    23900 uses
+    24000 uses
+    24100 uses
+    24200 uses
+    24300 uses
+    24400 uses
+    24500 uses
+    24600 uses
+    24700 uses
+    24800 uses
+    24900 uses
+    25000 uses
+    25100 uses
+    25200 uses
+    25300 uses
+    25400 uses
+    25500 uses
+    25600 uses
+    25700 uses
+    25800 uses
+    25900 uses
+    26000 uses
+    26100 uses
+    26200 uses
+    26300 uses
+    26400 uses
+    26500 uses
+    26600 uses
+    26700 uses
+    26800 uses
+    26900 uses
+    27000 uses
+    27100 uses
+    27200 uses
+    27300 uses
+Reading "user_project_wrapper".
+[INFO]: Loading user_project_wrapper
+
+DRC style is now "drc(full)"
+Loading DRC CIF style.
+[INFO]: COUNT: 1
+[INFO]: Should be divided by 3 or 4
+[INFO]: DRC Checking DONE (/home/dinesha/workarea/opencore/git/yifive_r0/checks/user_project_wrapper.magic.drc)
+[INFO]: Saving mag view with DRC errors(/home/dinesha/workarea/opencore/git/yifive_r0/checks/user_project_wrapper.magic.drc.mag)
+[INFO]: Saved
diff --git a/checks/spdx_compliance_report.log b/checks/spdx_compliance_report.log
index 44d9a3b..8cdfdef 100644
--- a/checks/spdx_compliance_report.log
+++ b/checks/spdx_compliance_report.log
@@ -13,90 +13,146 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/spef/clk_buf.spef
 /home/dinesha/workarea/opencore/git/yifive_r0/spef/spim_top.spef
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/default.cvcrc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/aa
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/config.tcl
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic_spice.tcl
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/opt.lib
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/trimmed.lib
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/tracks_copy.info
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/sky130_fd_sc_hd__tt_025C_1v80.no_pg.lib
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/synthesis/hierarchy.dot
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/synthesis/yosys.sdc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/routing/20-fastroute_4.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/routing/24-tritonRoute.param
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/routing/17-fastroute.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/routing/21-fastroute_5.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/routing/24-tritonRoute.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/routing/19-fastroute_3.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/routing/18-fastroute_2.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__inv_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__conb_1.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__nor2_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__and2_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/scr1_core_top.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a21oi_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__fill_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a32o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__or2_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__clkbuf_16.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__decap_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__diode_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__buf_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__buf_8.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__nand2_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a211o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a21o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a21boi_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__buf_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__or3_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__decap_12.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a2bb2o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__and4_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__decap_3.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__o21ai_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a22oi_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__dfrtp_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__dfxtp_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__tapvpwrvgnd_1.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a2111o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__o41a_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__fill_1.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__clkbuf_1.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__o32a_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__decap_6.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__or4_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__a21bo_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__decap_8.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__inv_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__o21a_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__o22a_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__and3_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/magic/sky130_fd_sc_hd__dfstp_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/tmp/lvs/setup_file.lef.lvs
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/runtime_summary_report.rpt.parsable
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/runtime_summary_report.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/manufacturability_report.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/1-yosys_4.chk.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/2-opensta.min_max.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/1-yosys_pre.stat
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/2-opensta_tns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/11-opensta_post_openphysyn.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/11-opensta_post_openphysyn.slew.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/11-opensta_post_openphysyn_tns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/27-opensta_spef_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/1-yosys_dff.stat
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/11-opensta_post_openphysyn.min_max.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/11-opensta_post_openphysyn.timing.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/27-opensta_spef.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/2-opensta_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/27-opensta_spef_tns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/2-opensta.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/27-opensta_spef.timing.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/2-opensta.slew.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/2-opensta.timing.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/11-opensta_post_openphysyn_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/27-opensta_spef.min_max.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/synthesis/1-yosys_4.stat.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/routing/45-antenna.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/floorplan/3-verilog2def.die_area.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/floorplan/3-verilog2def.core_area.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/klayout/37-klayout.xor.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/klayout/39-klayout.xor.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/klayout/43-klayout.magic.lydrc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/placement/9-openphysyn_allchecks.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/placement/9-openphysyn_tns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/placement/9-openphysyn_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/reports/placement/9-openphysyn_violators.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/synthesis/scr1_core_top.synthesis_optimized.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/synthesis/scr1_core_top.synthesis_preroute.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/synthesis/scr1_core_top.synthesis_cts.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/synthesis/scr1_core_top.synthesis.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/routing/scr1_core_top.spef
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/routing/scr1_core_top.def.ref
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/magic/.magicrc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/magic/scr1_core_top.gds.lydrc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/lvs/scr1_core_top.lvs.lef.json
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/lvs/scr1_core_top.lvs.powered.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_core/runs/scr_core/results/klayout/scr1_core_top.lyp
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/unconstraints.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/timing.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/config.tcl
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic_spice.tcl
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/opt.lib
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/trimmed.lib
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/tracks_copy.info
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/sky130_fd_sc_hd__tt_025C_1v80.no_pg.lib
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/synthesis/hierarchy.dot
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/synthesis/yosys.sdc
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/23-tritonRoute.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/25-tritonRoute.guide
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/20-fastroute_4.guide
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/23-tritonRoute.param
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/17-fastroute.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/21-fastroute_5.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/22-fastroute_6.guide
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/19-fastroute_3.guide
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/18-fastroute_2.guide
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__conb_1.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__nor2_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__and2_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a21oi_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__fill_2.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a32o_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__or2_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__clkbuf_16.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__decap_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__diode_2.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__buf_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__buf_8.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__nand2_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a211o_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a21o_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a21boi_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__buf_2.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__or3_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__decap_12.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/scr1_top_wb.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a2bb2o_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__and4_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__decap_3.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__o21ai_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a22oi_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__dfrtp_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__dfxtp_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__tapvpwrvgnd_1.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a2111o_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__fill_1.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__clkbuf_1.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__o32a_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__decap_6.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__or4_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__a21bo_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__decap_8.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__inv_2.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__o21a_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__o22a_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__and3_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/magic/sky130_fd_sc_hd__dfstp_4.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/lvs/setup_file.lef.lvs
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/runtime_summary_report.rpt.parsable
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/runtime_summary_report.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/manufacturability_report.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/26-opensta_spef_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/tmp/routing/25-tritonRoute.param
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/1-yosys_4.chk.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/26-opensta_spef.min_max.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/26-opensta_spef_tns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/2-opensta.min_max.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/1-yosys_pre.stat
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/2-opensta_tns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/11-opensta_post_openphysyn.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/11-opensta_post_openphysyn.slew.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/11-opensta_post_openphysyn_tns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/1-yosys_dff.stat
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/11-opensta_post_openphysyn.min_max.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/11-opensta_post_openphysyn.timing.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/2-opensta_wns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/2-opensta.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/26-opensta_spef.timing.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/2-opensta.slew.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/2-opensta.timing.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/26-opensta_spef.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/11-opensta_post_openphysyn_wns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/synthesis/1-yosys_4.stat.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/routing/44-antenna.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/floorplan/3-verilog2def.die_area.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/floorplan/3-verilog2def.core_area.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/klayout/36-klayout.xor.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/klayout/38-klayout.xor.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/klayout/42-klayout.magic.lydrc
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/placement/9-openphysyn_allchecks.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/placement/9-openphysyn_tns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/reports/placement/9-openphysyn_wns.rpt
@@ -104,13 +160,7 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/synthesis/scr1_top_wb.synthesis.v
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/synthesis/scr1_top_wb.synthesis_cts.v
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/synthesis/scr1_top_wb.synthesis_optimized.v
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/routing/scr1_top_wb.spef
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/routing/scr1_top_wb.def.ref
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/magic/scr1_top_wb.gds.lydrc
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/magic/.magicrc
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/lvs/scr1_top_wb.lvs.powered.v
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/lvs/scr1_top_wb.lvs.lef.json
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/syntacore/runs/syntacore/results/klayout/scr1_top_wb.lyp
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/glbl_cfg/runs/glbl_cfg/config.tcl
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/glbl_cfg/runs/glbl_cfg/tmp/magic_spice.tcl
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/glbl_cfg/runs/glbl_cfg/tmp/opt.lib
@@ -249,6 +299,104 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/clk_skew_adjust/runs/clk_skew_adjust/results/lvs/clk_skew_adjust.lvs.powered.v
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/clk_skew_adjust/runs/clk_skew_adjust/results/lvs/clk_skew_adjust.lvs.lef.json
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/clk_skew_adjust/runs/clk_skew_adjust/results/klayout/clk_skew_adjust.lyp
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/a
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/config.tcl
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic_spice.tcl
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/opt.lib
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/trimmed.lib
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/tracks_copy.info
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/sky130_fd_sc_hd__tt_025C_1v80.no_pg.lib
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/synthesis/hierarchy.dot
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/synthesis/yosys.sdc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/routing/20-fastroute_4.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/routing/24-tritonRoute.param
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/routing/17-fastroute.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/routing/21-fastroute_5.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/routing/24-tritonRoute.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/routing/19-fastroute_3.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/routing/18-fastroute_2.guide
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__conb_1.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__nor2_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__and2_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__a21oi_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__fill_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__a32o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__or2_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__clkbuf_16.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__decap_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__diode_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__buf_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__nand2_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__a211o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__a21o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__a21boi_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__buf_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__or3_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__decap_12.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__a2bb2o_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__and4_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__decap_3.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__o21ai_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__a22oi_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__dfrtp_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__dfxtp_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__tapvpwrvgnd_1.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__fill_1.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__clkbuf_1.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__o32a_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__decap_6.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__or4_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__decap_8.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__inv_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__o21a_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__o22a_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__and3_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/sky130_fd_sc_hd__dfstp_4.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/magic/scr1_intf.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/tmp/lvs/setup_file.lef.lvs
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/runtime_summary_report.rpt.parsable
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/runtime_summary_report.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/manufacturability_report.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/1-yosys_4.chk.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/2-opensta.min_max.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/1-yosys_pre.stat
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/2-opensta_tns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/11-opensta_post_openphysyn.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/11-opensta_post_openphysyn_tns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/27-opensta_spef_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/1-yosys_dff.stat
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/11-opensta_post_openphysyn.min_max.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/11-opensta_post_openphysyn.timing.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/27-opensta_spef.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/2-opensta_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/27-opensta_spef_tns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/2-opensta.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/27-opensta_spef.timing.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/2-opensta.timing.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/11-opensta_post_openphysyn_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/27-opensta_spef.min_max.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/synthesis/1-yosys_4.stat.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/routing/45-antenna.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/floorplan/3-verilog2def.die_area.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/floorplan/3-verilog2def.core_area.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/klayout/37-klayout.xor.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/klayout/39-klayout.xor.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/klayout/43-klayout.magic.lydrc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/placement/9-openphysyn_allchecks.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/placement/9-openphysyn_tns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/placement/9-openphysyn_wns.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/reports/placement/9-openphysyn_violators.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/synthesis/scr1_intf.synthesis_optimized.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/synthesis/scr1_intf.synthesis.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/synthesis/scr1_intf.synthesis_preroute.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/synthesis/scr1_intf.synthesis_cts.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/routing/scr1_intf.def.ref
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/routing/scr1_intf.spef
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/magic/.magicrc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/magic/scr1_intf.gds.lydrc
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/lvs/scr1_intf.lvs.lef.json
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/lvs/scr1_intf.lvs.powered.v
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/scr_intf/runs/scr_intf/results/klayout/scr1_intf.lyp
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/wb_host/runs/wb_host/config.tcl
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/wb_host/runs/wb_host/tmp/magic_spice.tcl
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/wb_host/runs/wb_host/tmp/opt.lib
@@ -635,6 +783,7 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__clkbuf_16.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__decap_4.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__diode_2.ext
+/home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__buf_4.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__nand2_4.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__a211o_4.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__a21o_4.ext
@@ -653,7 +802,6 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__tapvpwrvgnd_1.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__a2111o_4.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__dlygate4sd3_1.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__o41a_4.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__fill_1.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__clkbuf_1.ext
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/spi_master/runs/spi_master/tmp/magic/sky130_fd_sc_hd__o32a_4.ext
@@ -798,7 +946,6 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/gen_pdn.tcl
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/pdn.tcl
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/config.tcl
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic_spice.tcl
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/opt.lib
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/trimmed.lib
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/tracks_copy.info
@@ -809,29 +956,12 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/routing/19-tritonRoute.param
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/routing/17-fastroute.guide
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/routing/19-tritonRoute.guide
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/clk_skew_adjust.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/scr1_top_wb.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/uart_core.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/wb_host.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/spim_top.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/wb_interconnect.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/user_project_wrapper.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/sdrc_top.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/magic/glbl_cfg.ext
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/tmp/lvs/setup_file.lef.lvs
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/runtime_summary_report.rpt.parsable
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/runtime_summary_report.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/manufacturability_report.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/22-opensta_spef_tns.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/22-opensta_spef.timing.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/1-yosys_4.chk.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/22-opensta_spef.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/2-opensta.min_max.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/1-yosys_pre.stat
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/2-opensta_tns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/1-yosys_dff.stat
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/3-yosys_dff.stat
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/22-opensta_spef.min_max.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/12-opensta_post_openphysyn.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/12-opensta_post_openphysyn.timing.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/2-opensta_wns.rpt
@@ -840,28 +970,19 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/3-yosys_4.chk.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/2-opensta.timing.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/3-yosys_pre.stat
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/22-opensta_spef_wns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/12-opensta_post_openphysyn_wns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/12-opensta_post_openphysyn.min_max.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/3-yosys_4.stat.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/synthesis/1-yosys_4.stat.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/routing/39-antenna.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/floorplan/4-verilog2def.die_area.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/floorplan/4-verilog2def.core_area.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/klayout/32-klayout.xor.rpt
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/klayout/34-klayout.xor.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/placement/10-openphysyn_wns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/placement/10-openphysyn_tns.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/reports/placement/10-openphysyn_allchecks.rpt
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/synthesis/user_project_wrapper.synthesis.v
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/synthesis/user_project_wrapper.synthesis_preroute.v
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/synthesis/user_project_wrapper.synthesis_optimized.v
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/routing/user_project_wrapper.spef
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/routing/user_project_wrapper.def.ref
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/magic/.magicrc
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/lvs/user_project_wrapper.lvs.lef.json
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/lvs/user_project_wrapper.lvs.powered.v
-/home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/runs/user_project_wrapper/results/klayout/user_project_wrapper.lyp
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/netlist/uart.v
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/netlist/sdram.v
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/user_project_wrapper/netlist/wb_host.v
@@ -968,6 +1089,24 @@
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/sdram/runs/sdram/results/lvs/sdrc_top.lvs.lef.json
 /home/dinesha/workarea/opencore/git/yifive_r0/openlane/sdram/runs/sdram/results/klayout/sdrc_top.lyp
 /home/dinesha/workarea/opencore/git/yifive_r0/checks/user_project_wrapper.magic.drc.tcl
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/user_spi/user_risc_boot.dump
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/user_spi/user_spi.vvp
 /home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/model/s25fl256s.sv
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/risc_boot/user_uart.dump
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/risc_boot/risc_boot.vvp
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/user_risc_boot/user_risc_boot.dump
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/user_risc_boot/user_risc_boot.vvp
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/user_uart/user_uart.dump
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/user_uart/golden.gtkw
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/user_uart/user_uart.vvp
 /home/dinesha/workarea/opencore/git/yifive_r0/verilog/dv/wb_port/run_verilog
 /home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/README.md
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/src/aa
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/synth/unconstraints.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/synth/timing.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/synth/tmp/trimmed.lib
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/synth/tmp/synthesis/hierarchy.dot
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/synth/reports/yosys_4.chk.rpt
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/synth/reports/yosys_dff.stat
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/synth/reports/yosys_pre.stat
+/home/dinesha/workarea/opencore/git/yifive_r0/verilog/rtl/syntacore/scr1/synth/netlist/scr1_top_wb.gv
diff --git a/checks/user_project_wrapper.magic.drc b/checks/user_project_wrapper.magic.drc
index 46ca7f3..ef51034 100644
--- a/checks/user_project_wrapper.magic.drc
+++ b/checks/user_project_wrapper.magic.drc
@@ -1,5 +1,9 @@
 user_project_wrapper
 ----------------------------------------
-[INFO]: COUNT: 0
+All nwells must contain metal-connected N+ taps (nwell.4)
+----------------------------------------
+ 443.710 1740.610 445.470 1742.215
+----------------------------------------
+[INFO]: COUNT: 1
 [INFO]: Should be divided by 3 or 4
 
diff --git a/checks/xor.log b/checks/xor.log
index caf81f2..833cc24 100644
--- a/checks/xor.log
+++ b/checks/xor.log
@@ -6,14 +6,14 @@
 Reading /home/dinesha/workarea/opencore/git/yifive_r0/checks/user_project_wrapper_erased.gds ..
 --- Running XOR for 69/20 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 "_input" in: xor.drc:38
 Elapsed: 0.010s
 "^" in: xor.drc:38
-Elapsed: 0.010s
+Elapsed: 0.000s
 XOR differences: 0
 "_output" in: xor.drc:41
-Elapsed: 0.000s
+Elapsed: 0.010s
 --- Running XOR for 70/20 ---
 "_input" in: xor.drc:38
 Elapsed: 0.010s
@@ -30,15 +30,15 @@
 "_input" in: xor.drc:38
 Elapsed: 0.000s
 "^" in: xor.drc:38
-Elapsed: 0.000s
+Elapsed: 0.010s
 XOR differences: 358
 "_output" in: xor.drc:41
 Elapsed: 0.010s
 --- Running XOR for 71/44 ---
 "_input" in: xor.drc:38
-Elapsed: 0.010s
-"_input" in: xor.drc:38
 Elapsed: 0.000s
+"_input" in: xor.drc:38
+Elapsed: 0.010s
 "^" in: xor.drc:38
 Elapsed: 0.010s
 XOR differences: 1144
@@ -56,13 +56,13 @@
 Elapsed: 0.010s
 --- Running XOR for 81/14 ---
 "_input" in: xor.drc:38
-Elapsed: 0.000s
-"_input" in: xor.drc:38
 Elapsed: 0.010s
-"^" in: xor.drc:38
+"_input" in: xor.drc:38
 Elapsed: 0.000s
+"^" in: xor.drc:38
+Elapsed: 0.010s
 XOR differences: 2
 "_output" in: xor.drc:41
-Elapsed: 0.010s
+Elapsed: 0.000s
 Writing layout file: /home/dinesha/workarea/opencore/git/yifive_r0/checks/user_project_wrapper.xor.gds ..
-Total run time: 0.170s
+Total run time: 0.160s
diff --git a/openlane/syntacore/base.sdc b/openlane/syntacore/base.sdc
index c200e4b..53a9082 100644
--- a/openlane/syntacore/base.sdc
+++ b/openlane/syntacore/base.sdc
@@ -22,7 +22,7 @@
 set ::env(WB_CLOCK_NAME)      "wb_clk"
 
 #Risc Core Clock
-set ::env(CORE_CLOCK_PERIOD) "40"
+set ::env(CORE_CLOCK_PERIOD) "20"
 set ::env(CORE_CLOCK_PORT)   "core_clk"
 set ::env(CORE_CLOCK_NAME)   "core_clk"
 
@@ -54,8 +54,8 @@
 # WB Clock domain input output
 ######################################
 create_clock [get_ports $::env(WB_CLOCK_PORT)]  -name $::env(WB_CLOCK_NAME)  -period $::env(WB_CLOCK_PERIOD)
-set wb_input_delay_value [expr $::env(WB_CLOCK_PERIOD) * 0.6]
-set wb_output_delay_value [expr $::env(WB_CLOCK_PERIOD) * 0.6]
+set wb_input_delay_value [expr $::env(WB_CLOCK_PERIOD) * 0.45]
+set wb_output_delay_value [expr $::env(WB_CLOCK_PERIOD) * 0.45]
 puts "\[INFO\]: Setting wb output delay to:$wb_output_delay_value"
 puts "\[INFO\]: Setting wb input delay to: $wb_input_delay_value"
 set wb_clk_indx [lsearch [all_inputs] [get_port $::env(WB_CLOCK_NAME)]]
diff --git a/openlane/syntacore/config.tcl b/openlane/syntacore/config.tcl
index 9e01803..3439877 100755
--- a/openlane/syntacore/config.tcl
+++ b/openlane/syntacore/config.tcl
@@ -51,6 +51,8 @@
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv  \
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_csr.sv  \
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv  \
+	$script_dir/../../verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mul.sv  \
+	$script_dir/../../verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_div.sv  \
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv  \
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_hdu.sv  \
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_tdu.sv  \
@@ -62,6 +64,7 @@
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv   \
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv   \
 	$script_dir/../../verilog/rtl/syntacore/scr1/src/top/scr1_imem_wb.sv   \
+	$script_dir/../../verilog/rtl/syntacore/scr1/src/top/scr1_intf.sv   \
 	$script_dir/../../verilog/rtl/lib/async_fifo.sv "
 
 set ::env(VERILOG_INCLUDE_DIRS) [glob $script_dir/../../verilog/rtl/syntacore/scr1/src/includes ]
@@ -83,7 +86,7 @@
 set ::env(FP_PIN_ORDER_CFG) $::env(DESIGN_DIR)/pin_order.cfg
 
 set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) [list 0.0 0.0 1500.0 1200.0]
+set ::env(DIE_AREA) [list 0.0 0.0 1600.0 1200.0]
 
 
 # If you're going to use multiple power domains, then keep this disabled.
@@ -92,7 +95,11 @@
 #set ::env(PDN_CFG) $script_dir/pdn.tcl
 
 
-set ::env(PL_ROUTABILITY_DRIVEN) 1
+set ::env(PL_TIME_DRIVEN) 1
+set ::env(PL_TARGET_DENSITY) "0.45"
+set ::env(GLOBAL_ROUTER) "fastroute"
+set ::env(DETAILED_ROUTER) "tritonroute"
+set ::env(CELL_PAD) "4"
 
 set ::env(FP_IO_VEXTEND) 4
 set ::env(FP_IO_HEXTEND) 4
@@ -100,6 +107,8 @@
 
 set ::env(GLB_RT_MAXLAYER) 5
 set ::env(GLB_RT_MAX_DIODE_INS_ITERS) 10
+set ::env(DIODE_INSERTION_STRATEGY) 4
+
 
 #set ::env(LVS_CONNECT_BY_LABEL) 1
 
diff --git a/openlane/syntacore/pin_order.cfg b/openlane/syntacore/pin_order.cfg
index 1ecdcf1..8bfe160 100644
--- a/openlane/syntacore/pin_order.cfg
+++ b/openlane/syntacore/pin_order.cfg
@@ -1,6 +1,8 @@
 #BUS_SORT
 
+
 #MANUAL_PLACE
+
 #E
 core_clk            0000 0
 rtc_clk             
diff --git a/openlane/syntacore/sta.tcl b/openlane/syntacore/sta.tcl
index 0a63ab5..e1bc690 100644
--- a/openlane/syntacore/sta.tcl
+++ b/openlane/syntacore/sta.tcl
@@ -19,7 +19,7 @@
 set ::env(CURRENT_NETLIST) ../user_project_wrapper/netlist/syntacore.v
 set ::env(DESIGN_NAME) "scr1_top_wb"
 set ::env(CURRENT_SPEF) ../../spef/scr1_top_wb.spef
-set ::env(BASE_SDC_FILE) "/project/openlane/syntacore/base.sdc"
+set ::env(BASE_SDC_FILE) "base.sdc"
 set ::env(SYNTH_DRIVING_CELL) "sky130_fd_sc_hd__inv_8"
 set ::env(SYNTH_DRIVING_CELL_PIN) "Y"
 set ::env(SYNTH_CAP_LOAD) "17.65"
diff --git a/signoff/syntacore/final_summary_report.csv b/signoff/syntacore/final_summary_report.csv
index 96e390e..03d8be4 100644
--- a/signoff/syntacore/final_summary_report.csv
+++ b/signoff/syntacore/final_summary_report.csv
@@ -1,2 +1,2 @@
 ,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/syntacore,scr1_top_wb,syntacore,Flow_completed,0h36m28s,0h16m19s,27778.888888888887,1.8,13889.444444444443,18,1131.94,25001,0,0,0,0,0,0,0,74,3,-1,0,1325964,199950,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1100394978,0.0,14.95,14.15,2.89,0.96,-1,24824,25125,2879,3180,0,0,0,25001,532,68,543,604,2798,755,155,7438,2872,2842,106,866,22836,0,23702,100.0,10.0,10,AREA 0,4,50,1,100,100,0.55,0,sky130_fd_sc_hd,4,3
+0,/project/openlane/syntacore,scr1_top_wb,syntacore,Flow_completed,0h52m12s,0h27m25s,27759.375,1.92,13879.6875,19,1195.43,26649,0,0,0,0,0,0,0,105,1,-1,0,1672470,234282,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1304827840,0.0,18.7,16.26,3.38,0.29,-1,26472,26773,3391,3692,0,0,0,26649,876,68,661,601,2743,980,298,7804,3218,3182,68,866,24574,1,25441,100.0,10.0,10,AREA 0,4,50,1,100,100,0.45,0,sky130_fd_sc_hd,4,3
diff --git a/signoff/user_project_wrapper/final_summary_report.csv b/signoff/user_project_wrapper/final_summary_report.csv
index d82e1f3..152ff0b 100644
--- a/signoff/user_project_wrapper/final_summary_report.csv
+++ b/signoff/user_project_wrapper/final_summary_report.csv
@@ -1,2 +1,2 @@
 ,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/user_project_wrapper,user_project_wrapper,user_project_wrapper,Flow_completed,0h36m12s,0h3m45s,3.3079078455790785,10.2784,1.6539539227895392,0,552.84,17,0,0,0,0,0,0,0,0,1,-1,-1,1189440,3984,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1,0.0,1.27,4.31,0.7,1.74,-1,848,1466,848,1466,0,0,0,17,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,100.0,10.0,10,AREA 0,5,50,1,80,80,0.55,0,sky130_fd_sc_hd,4,0
+0,/project/openlane/user_project_wrapper,user_project_wrapper,user_project_wrapper,Flow_completed,0h47m31s,0h4m45s,3.3079078455790785,10.2784,1.6539539227895392,0,552.5,17,0,0,0,0,0,0,0,0,1,-1,-1,1189752,3991,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1,0.0,1.27,4.33,0.76,1.88,-1,848,1466,848,1466,0,0,0,17,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,100.0,10.0,10,AREA 0,5,50,1,80,80,0.55,0,sky130_fd_sc_hd,4,0
diff --git a/verilog/dv/user_risc_boot/uprj_netlists.v b/verilog/dv/user_risc_boot/uprj_netlists.v
index 29925ab..ea393bf 100644
--- a/verilog/dv/user_risc_boot/uprj_netlists.v
+++ b/verilog/dv/user_risc_boot/uprj_netlists.v
@@ -95,6 +95,8 @@
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mul.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_div.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv"
      `include "syntacore/scr1/src/core/primitives/scr1_reset_cells.sv"
      `include "syntacore/scr1/src/core/primitives/scr1_cg.sv"
@@ -113,6 +115,7 @@
      `include "syntacore/scr1/src/top/scr1_timer.sv"
      `include "syntacore/scr1/src/top/scr1_dmem_wb.sv"
      `include "syntacore/scr1/src/top/scr1_imem_wb.sv"
+     `include "syntacore/scr1/src/top/scr1_intf.sv"
      `include "syntacore/scr1/src/top/scr1_top_wb.sv"
      `include "lib/sync_fifo.sv"
 
diff --git a/verilog/dv/user_risc_boot/user_risc_boot_tb.v b/verilog/dv/user_risc_boot/user_risc_boot_tb.v
index 5abdac9..e11cffd 100644
--- a/verilog/dv/user_risc_boot/user_risc_boot_tb.v
+++ b/verilog/dv/user_risc_boot/user_risc_boot_tb.v
@@ -155,7 +155,7 @@
 
 
 		// Repeat cycles of 1000 clock edges as needed to complete testbench
-		repeat (20) begin
+		repeat (30) begin
 			repeat (1000) @(posedge clock);
 			// $display("+1000 cycles");
 		end
diff --git a/verilog/dv/user_spi/uprj_netlists.v b/verilog/dv/user_spi/uprj_netlists.v
index 29925ab..ea393bf 100644
--- a/verilog/dv/user_spi/uprj_netlists.v
+++ b/verilog/dv/user_spi/uprj_netlists.v
@@ -95,6 +95,8 @@
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mul.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_div.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv"
      `include "syntacore/scr1/src/core/primitives/scr1_reset_cells.sv"
      `include "syntacore/scr1/src/core/primitives/scr1_cg.sv"
@@ -113,6 +115,7 @@
      `include "syntacore/scr1/src/top/scr1_timer.sv"
      `include "syntacore/scr1/src/top/scr1_dmem_wb.sv"
      `include "syntacore/scr1/src/top/scr1_imem_wb.sv"
+     `include "syntacore/scr1/src/top/scr1_intf.sv"
      `include "syntacore/scr1/src/top/scr1_top_wb.sv"
      `include "lib/sync_fifo.sv"
 
diff --git a/verilog/dv/user_uart/uprj_netlists.v b/verilog/dv/user_uart/uprj_netlists.v
index 89364ec..aedc4d8 100644
--- a/verilog/dv/user_uart/uprj_netlists.v
+++ b/verilog/dv/user_uart/uprj_netlists.v
@@ -93,6 +93,8 @@
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mul.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_div.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv"
      `include "syntacore/scr1/src/core/primitives/scr1_reset_cells.sv"
      `include "syntacore/scr1/src/core/primitives/scr1_cg.sv"
@@ -111,6 +113,7 @@
      `include "syntacore/scr1/src/top/scr1_timer.sv"
      `include "syntacore/scr1/src/top/scr1_dmem_wb.sv"
      `include "syntacore/scr1/src/top/scr1_imem_wb.sv"
+     `include "syntacore/scr1/src/top/scr1_intf.sv"
      `include "syntacore/scr1/src/top/scr1_top_wb.sv"
      `include "lib/sync_fifo.sv"
 
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv
index 433ed93..27ae857 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv
@@ -743,7 +743,7 @@
                             | (exu_queue_vd & jb_taken);
 
 // Jump/branch signals
-assign branch_taken = exu_queue.branch_req & ialu_cmp;
+assign branch_taken = exu_queue.branch_req & ialu_cmp & ialu_rdy;
 assign jb_taken     = exu_queue.jump_req | branch_taken;
 assign jb_new_pc    = ialu_addr_res & SCR1_JUMP_MASK;
 
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv
index 922a518..eabaf49 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv
@@ -17,7 +17,10 @@
 // //////////////////////////////////////////////////////////////////////////
 /// @file       <scr1_pipe_ialu.sv>
 /// @brief      Integer Arithmetic Logic Unit (IALU)
-///
+////     Ver 0.1 - 18th July 2021, Dinesh A, project: yifive
+////           A. For Timing Reason, Input and Output are registered
+////              Added SCR1_GOLDEN define to preserve the Previous Logic
+////////////////////////////////////////////////////////////////////////////
 
 //-------------------------------------------------------------------------------
  //
@@ -70,16 +73,10 @@
 //-------------------------------------------------------------------------------
 
 `ifdef SCR1_RVM_EXT
- `ifdef SCR1_FAST_MUL
 localparam SCR1_MUL_WIDTH     = `SCR1_XLEN;
 localparam SCR1_MUL_RES_WIDTH = 2 * `SCR1_XLEN;
 localparam SCR1_MDU_SUM_WIDTH = `SCR1_XLEN + 1;
- `else
-localparam SCR1_MUL_STG_NUM   = 32;
-localparam SCR1_MUL_WIDTH     = 32 / SCR1_MUL_STG_NUM;
-localparam SCR1_MUL_CNT_INIT  = 32'b1 << (`SCR1_XLEN/SCR1_MUL_WIDTH - 2);
-localparam SCR1_MDU_SUM_WIDTH = `SCR1_XLEN + SCR1_MUL_WIDTH;
- `endif // ~SCR1_FAST_MUL
+
 localparam SCR1_DIV_WIDTH     = 1;
 localparam SCR1_DIV_CNT_INIT  = 32'b1 << (`SCR1_XLEN/SCR1_DIV_WIDTH - 2);
 `endif // SCR1_RVM_EXT
@@ -130,31 +127,13 @@
 
 // MUL/DIV signals
 `ifdef SCR1_RVM_EXT
-// MUL/DIV FSM control signals
-logic                                       mdu_cmd_is_iter;    // MDU Command is iterative
-logic                                       mdu_iter_req;       // Request iterative stage
-logic                                       mdu_iter_rdy;       // Iteration is ready
-logic                                       mdu_corr_req;       // DIV/REM(U) correction request
-logic                                       div_corr_req;       // Correction request for DIV operation
-logic                                       rem_corr_req;       // Correction request for REM(U) operations
-
-// MUL/DIV FSM signals
-logic [1:0]                                 mdu_fsm_ff;         // Current FSM state
-logic [1:0]                                 mdu_fsm_next;       // Next FSM state
-logic                                       mdu_fsm_idle;       // MDU FSM is in IDLE state
-`ifdef SCR1_TRGT_SIMULATION
-logic                                       mdu_fsm_iter;       // MDU FSM is in ITER state
-`endif // SCR1_TRGT_SIMULATION
-logic                                       mdu_fsm_corr;       // MDU FSM is in CORR state
 
 // MDU command signals
-logic [1:0]                                 mdu_cmd;            // MDU command: 00 - NONE, 01 - MUL,  10 - DIV
 logic                                       mdu_cmd_mul;        // MDU command is MUL(HSU)
 logic                                       mdu_cmd_div;        // MDU command is DIV(U)/REM(U)
 logic        [1:0]                          mul_cmd;            // MUL command: 00 - MUL,  01 - MULH, 10 - MULHSU, 11 - MULHU
 logic                                       mul_cmd_hi;         // High part of MUL result is requested
 logic        [1:0]                          div_cmd;            // DIV command: 00 - DIV,  01 - DIVU, 10 - REM,    11 - REMU
-logic                                       div_cmd_div;        // DIV command is DIV
 logic                                       div_cmd_rem;        // DIV command is REM(U)
 
 // Multiplier signals
@@ -164,47 +143,96 @@
 logic                                       mul_op2_sgn;        // Second MUL operand is negative
 logic signed [`SCR1_XLEN:0]                 mul_op1;            // MUL operand 1
 logic signed [SCR1_MUL_WIDTH:0]             mul_op2;            // MUL operand 1
- `ifdef SCR1_FAST_MUL
 logic signed [SCR1_MUL_RES_WIDTH-1:0]       mul_res;            // MUL result
- `else // ~SCR1_FAST_MUL
-logic signed [SCR1_MDU_SUM_WIDTH:0]         mul_part_prod;
-logic        [`SCR1_XLEN-1:0]               mul_res_hi;
-logic        [`SCR1_XLEN-1:0]               mul_res_lo;
- `endif // ~SCR1_FAST_MUL
 
 // Divisor signals
+logic signed [`SCR1_XLEN:0]                 div_op1;            // DIV operand 1
+logic signed [SCR1_MUL_WIDTH:0]             div_op2;            // DIV operand 2
 logic                                       div_ops_are_sgn;
 logic                                       div_op1_is_neg;
 logic                                       div_op2_is_neg;
-logic                                       div_res_rem_c;
 logic        [`SCR1_XLEN-1:0]               div_res_rem;
 logic        [`SCR1_XLEN-1:0]               div_res_quo;
-logic                                       div_quo_bit;
-logic                                       div_dvdnd_lo_upd;
-logic        [`SCR1_XLEN-1:0]               div_dvdnd_lo_ff;
-logic        [`SCR1_XLEN-1:0]               div_dvdnd_lo_next;
 
-// MDU adder signals
-logic                                       mdu_sum_sub;        // MDU adder operation: 0 - add, 1 - sub
-logic signed [SCR1_MDU_SUM_WIDTH-1:0]       mdu_sum_op1;        // MDU adder operand 1
-logic signed [SCR1_MDU_SUM_WIDTH-1:0]       mdu_sum_op2;        // MDU adder operand 2
-logic signed [SCR1_MDU_SUM_WIDTH-1:0]       mdu_sum_res;        // MDU adder result
 
-// MDU iteration counter signals
-logic                                       mdu_iter_cnt_en;
-logic        [`SCR1_XLEN-1:0]               mdu_iter_cnt;
-logic        [`SCR1_XLEN-1:0]               mdu_iter_cnt_next;
-
-// Intermediate results registers
-logic                                       mdu_res_upd;
-logic                                       mdu_res_c_ff;
-logic                                       mdu_res_c_next;
-logic        [`SCR1_XLEN-1:0]               mdu_res_hi_ff;
-logic        [`SCR1_XLEN-1:0]               mdu_res_hi_next;
-logic        [`SCR1_XLEN-1:0]               mdu_res_lo_ff;
-logic        [`SCR1_XLEN-1:0]               mdu_res_lo_next;
 `endif // SCR1_RVM_EXT
 
+
+//-------------------------------------------------------
+// Adding Input Register to break Timing Path 
+// ------------------------------------------------------
+logic [`SCR1_XLEN-1:0]          exu2ialu_main_op1_ff;        // main ALU 1st operand
+logic [`SCR1_XLEN-1:0]          exu2ialu_main_op2_ff;        // main ALU 2nd operand
+type_scr1_ialu_cmd_sel_e        exu2ialu_cmd_ff;             // IALU command
+logic                           exu2ialu_rvm_cmd_vd_ff;      // MUL/DIV command valid
+logic [`SCR1_XLEN-1:0]          ialu2exu_main_res_i;        // main ALU result
+logic                           ialu2exu_cmp_res_i;         // IALU comparison result
+logic                           ialu2exu_rvm_res_rdy_i;     // MUL/DIV result ready
+logic                           ialu_rdy        ;           // ialu ready
+logic                           ialu_data_pdone ;           // ialu data process done
+
+
+`ifdef SCR1_GOLDEN
+assign	exu2ialu_main_op1_ff = exu2ialu_main_op1_i;
+assign  exu2ialu_main_op2_ff = exu2ialu_main_op2_i;
+assign  exu2ialu_cmd_ff      = exu2ialu_cmd_i;
+assign	exu2ialu_rvm_cmd_vd_ff = exu2ialu_rvm_cmd_vd_i;
+
+assign	ialu2exu_main_res_o     = ialu2exu_main_res_i;
+assign  ialu2exu_cmp_res_o      = ialu2exu_cmp_res_i;
+assign  ialu2exu_rvm_res_rdy_o  = ialu2exu_rvm_res_rdy_i;
+assign  ialu_rdy                = 1; 
+
+`else
+always_ff @(posedge clk, negedge rst_n) begin
+    if (~rst_n) begin
+	exu2ialu_main_op1_ff <= '0;
+        exu2ialu_main_op2_ff <= '0;
+        exu2ialu_cmd_ff      <= '0;
+	exu2ialu_rvm_cmd_vd_ff <= '0;
+    end else begin
+	exu2ialu_main_op1_ff <= exu2ialu_main_op1_i;
+        exu2ialu_main_op2_ff <= exu2ialu_main_op2_i;
+        exu2ialu_cmd_ff      <= exu2ialu_cmd_i;
+	exu2ialu_rvm_cmd_vd_ff <= exu2ialu_rvm_cmd_vd_i;
+    end
+end
+
+//-------------------------------------------------------
+// Adding Output Register to break Timing Path 
+// ------------------------------------------------------
+
+always_ff @(posedge clk, negedge rst_n) begin
+    if (~rst_n) begin
+	ialu2exu_main_res_o         <= '0;
+        ialu2exu_cmp_res_o          <= '0;
+        ialu2exu_rvm_res_rdy_o      <= '0;
+	ialu_data_pdone             <= '0;
+    end else begin
+	ialu_data_pdone             <= ialu2exu_rvm_res_rdy_o; // generate one cycle delayed process done
+	ialu2exu_main_res_o         <= ialu2exu_main_res_i;
+        ialu2exu_cmp_res_o          <= ialu2exu_cmp_res_i;
+        ialu2exu_rvm_res_rdy_o      <= ialu2exu_rvm_res_rdy_i;
+    end
+end
+
+//-------------------------------------------------------
+// Creating Two cycle Latency to break timing path
+// One Cycle for Register Input + One Cycle Registered Output
+// -----------------------------------------------------
+logic cmd_vd_d;
+always_ff @(posedge clk, negedge rst_n) begin
+    if (~rst_n) begin
+	cmd_vd_d <= '0;
+        ialu_rdy <= '0;
+    end else begin
+	cmd_vd_d <= exu2ialu_rvm_cmd_vd_i & (ialu_rdy ==0);
+        ialu_rdy <= cmd_vd_d & exu2ialu_rvm_cmd_vd_i & (ialu_rdy ==0) ;
+    end
+end
+
+`endif
+
 //-------------------------------------------------------------------------------
 // Main adder
 //-------------------------------------------------------------------------------
@@ -218,15 +246,15 @@
 // Carry out (MSB of main_sum_res) is evaluated correctly because the result
 // width equals to the maximum width of both the right-hand and left-hand side variables
 always_comb begin
-    main_sum_res = (exu2ialu_cmd_i != SCR1_IALU_CMD_ADD)
-                 ? (exu2ialu_main_op1_i - exu2ialu_main_op2_i)   // Subtraction and comparison
-                 : (exu2ialu_main_op1_i + exu2ialu_main_op2_i);  // Addition
+    main_sum_res = (exu2ialu_cmd_ff != SCR1_IALU_CMD_ADD)
+                 ? (exu2ialu_main_op1_ff - exu2ialu_main_op2_ff)   // Subtraction and comparison
+                 : (exu2ialu_main_op1_ff + exu2ialu_main_op2_ff);  // Addition
 
-    main_sum_pos_ovflw = ~exu2ialu_main_op1_i[`SCR1_XLEN-1]
-                       &  exu2ialu_main_op2_i[`SCR1_XLEN-1]
+    main_sum_pos_ovflw = ~exu2ialu_main_op1_ff[`SCR1_XLEN-1]
+                       &  exu2ialu_main_op2_ff[`SCR1_XLEN-1]
                        &  main_sum_res[`SCR1_XLEN-1];
-    main_sum_neg_ovflw =  exu2ialu_main_op1_i[`SCR1_XLEN-1]
-                       & ~exu2ialu_main_op2_i[`SCR1_XLEN-1]
+    main_sum_neg_ovflw =  exu2ialu_main_op1_ff[`SCR1_XLEN-1]
+                       & ~exu2ialu_main_op2_ff[`SCR1_XLEN-1]
                        & ~main_sum_res[`SCR1_XLEN-1];
 
     // FLAGS1 - flags for comparison (result of subtraction)
@@ -260,17 +288,17 @@
  // - Arithmetic right shift  (SRAI/SRA)
 //
 
-assign ialu_cmd_shft = (exu2ialu_cmd_i == SCR1_IALU_CMD_SLL)
-                     | (exu2ialu_cmd_i == SCR1_IALU_CMD_SRL)
-                     | (exu2ialu_cmd_i == SCR1_IALU_CMD_SRA);
+assign ialu_cmd_shft = (exu2ialu_cmd_ff == SCR1_IALU_CMD_SLL)
+                     | (exu2ialu_cmd_ff == SCR1_IALU_CMD_SRL)
+                     | (exu2ialu_cmd_ff == SCR1_IALU_CMD_SRA);
 assign shft_cmd      = ialu_cmd_shft
-                     ? {(exu2ialu_cmd_i != SCR1_IALU_CMD_SLL),
-                        (exu2ialu_cmd_i == SCR1_IALU_CMD_SRA)}
+                     ? {(exu2ialu_cmd_ff != SCR1_IALU_CMD_SLL),
+                        (exu2ialu_cmd_ff == SCR1_IALU_CMD_SRA)}
                      : 2'b00;
 
 always_comb begin
-    shft_op1 = exu2ialu_main_op1_i;
-    shft_op2 = exu2ialu_main_op2_i[4:0];
+    shft_op1 = exu2ialu_main_op1_ff;
+    shft_op2 = exu2ialu_main_op2_ff[4:0];
     case (shft_cmd)
         2'b10   : shft_res = shft_op1  >> shft_op2;
         2'b11   : shft_res = shft_op1 >>> shft_op2;
@@ -297,273 +325,106 @@
 // MUL/DIV FSM Control logic
 //-------------------------------------------------------------------------------
 
-assign mdu_cmd_div = (exu2ialu_cmd_i == SCR1_IALU_CMD_DIV)
-                   | (exu2ialu_cmd_i == SCR1_IALU_CMD_DIVU)
-                   | (exu2ialu_cmd_i == SCR1_IALU_CMD_REM)
-                   | (exu2ialu_cmd_i == SCR1_IALU_CMD_REMU);
-assign mdu_cmd_mul = (exu2ialu_cmd_i == SCR1_IALU_CMD_MUL)
-                   | (exu2ialu_cmd_i == SCR1_IALU_CMD_MULH)
-                   | (exu2ialu_cmd_i == SCR1_IALU_CMD_MULHU)
-                   | (exu2ialu_cmd_i == SCR1_IALU_CMD_MULHSU);
+assign mdu_cmd_div = ((exu2ialu_cmd_ff == SCR1_IALU_CMD_DIV)
+                   | (exu2ialu_cmd_ff == SCR1_IALU_CMD_DIVU)
+                   | (exu2ialu_cmd_ff == SCR1_IALU_CMD_REM)
+                   | (exu2ialu_cmd_ff == SCR1_IALU_CMD_REMU)) & exu2ialu_rvm_cmd_vd_ff;
+assign mdu_cmd_mul = ((exu2ialu_cmd_ff == SCR1_IALU_CMD_MUL)
+                   | (exu2ialu_cmd_ff == SCR1_IALU_CMD_MULH)
+                   | (exu2ialu_cmd_ff == SCR1_IALU_CMD_MULHU)
+                   | (exu2ialu_cmd_ff == SCR1_IALU_CMD_MULHSU)) & exu2ialu_rvm_cmd_vd_ff;
 
-assign mdu_cmd     = mdu_cmd_div ? SCR1_IALU_MDU_DIV
-                   : mdu_cmd_mul ? SCR1_IALU_MDU_MUL
-                                 : SCR1_IALU_MDU_NONE;
 
-assign main_ops_non_zero = |exu2ialu_main_op1_i & |exu2ialu_main_op2_i;
-assign main_ops_diff_sgn = exu2ialu_main_op1_i[`SCR1_XLEN-1]
-                         ^ exu2ialu_main_op2_i[`SCR1_XLEN-1];
+assign main_ops_non_zero = |exu2ialu_main_op1_ff & |exu2ialu_main_op2_ff;
+assign main_ops_diff_sgn = exu2ialu_main_op1_ff[`SCR1_XLEN-1]
+                         ^ exu2ialu_main_op2_ff[`SCR1_XLEN-1];
 
- `ifdef SCR1_FAST_MUL
-    assign mdu_cmd_is_iter = mdu_cmd_div;
- `else // ~SCR1_FAST_MUL
-    assign mdu_cmd_is_iter = mdu_cmd_mul | mdu_cmd_div;
- `endif // ~SCR1_FAST_MUL
 
-assign mdu_iter_req = mdu_cmd_is_iter ? (main_ops_non_zero & mdu_fsm_idle) : 1'b0;
-assign mdu_iter_rdy = mdu_iter_cnt[0];
 
-assign div_cmd_div = (div_cmd == 2'b00);
 assign div_cmd_rem = div_cmd[1];
 
-// Correction request signals
-assign div_corr_req = div_cmd_div & main_ops_diff_sgn;
-assign rem_corr_req = div_cmd_rem & |div_res_rem & (div_op1_is_neg ^ div_res_rem_c);
-assign mdu_corr_req = mdu_cmd_div & (div_corr_req | rem_corr_req);
 
-// MDU iteration counter
-//------------------------------------------------------------------------------
-
-assign mdu_iter_cnt_en = exu2ialu_rvm_cmd_vd_i & ~ialu2exu_rvm_res_rdy_o;
-
-always_ff @(posedge clk) begin
-    if (mdu_iter_cnt_en) begin
-        mdu_iter_cnt <= mdu_iter_cnt_next;
-    end
-end
-
-assign mdu_iter_cnt_next = ~mdu_fsm_idle ? mdu_iter_cnt >> 1
-                         : mdu_cmd_div   ? SCR1_DIV_CNT_INIT
- `ifndef SCR1_FAST_MUL
-                         : mdu_cmd_mul   ? SCR1_MUL_CNT_INIT
- `endif // ~SCR1_FAST_MUL
-                                         : mdu_iter_cnt;
-
-//-------------------------------------------------------------------------------
-// MUL/DIV FSM
-//-------------------------------------------------------------------------------
-
-always_ff @(posedge clk, negedge rst_n) begin
-    if (~rst_n) begin
-        mdu_fsm_ff <= SCR1_IALU_MDU_FSM_IDLE;
-    end else begin
-        mdu_fsm_ff <= mdu_fsm_next;
-    end
-end
-
-always_comb begin
-    mdu_fsm_next = SCR1_IALU_MDU_FSM_IDLE;
-
-    if (exu2ialu_rvm_cmd_vd_i) begin
-        case (mdu_fsm_ff)
-            SCR1_IALU_MDU_FSM_IDLE : begin
-                mdu_fsm_next = mdu_iter_req  ? SCR1_IALU_MDU_FSM_ITER
-                                             : SCR1_IALU_MDU_FSM_IDLE;
-            end
-            SCR1_IALU_MDU_FSM_ITER : begin
-                mdu_fsm_next = ~mdu_iter_rdy ? SCR1_IALU_MDU_FSM_ITER
-                             : mdu_corr_req  ? SCR1_IALU_MDU_FSM_CORR
-                                             : SCR1_IALU_MDU_FSM_IDLE;
-            end
-            SCR1_IALU_MDU_FSM_CORR : begin
-                mdu_fsm_next = SCR1_IALU_MDU_FSM_IDLE;
-            end
-        endcase
-    end
-end
-
-assign mdu_fsm_idle = (mdu_fsm_ff == SCR1_IALU_MDU_FSM_IDLE);
-`ifdef SCR1_TRGT_SIMULATION
-assign mdu_fsm_iter = (mdu_fsm_ff == SCR1_IALU_MDU_FSM_ITER);
-`endif // SCR1_TRGT_SIMULATION
-assign mdu_fsm_corr = (mdu_fsm_ff == SCR1_IALU_MDU_FSM_CORR);
 
 //-------------------------------------------------------------------------------
 // Multiplier logic
 //-------------------------------------------------------------------------------
 //
- // Multiplication has 2 options: fast (1 cycle) and Radix-2 (32 cycles) multiplication.
+ // Multiplication has 2 options: fast (1 cycle) and Radix-2 (8 cycles) multiplication.
  //
  // 1. Fast multiplication uses the straightforward approach when 2 operands are
  // multiplied in one cycle
  //
- // 2. Radix-2 multiplication uses 2 registers (high and low part of multiplication)
+ // 2. Radix-2 multiplication does 4bit multication at time
  //
- // Radix-2 algorithm:
- // 1. Initialize registers
- // 2. Create a partial product by multiplying multiplicand by the LSB of multiplier
- // 3. Add the partial product to the previous (intermediate) value of multiplication
- //    result (stored into high and low parts of multiplication result register)
- // 4. Shift the low part of multiplication result register right
- // 4. Store the addition result into the high part of multiplication result register
- // 6. If iteration is not ready, go to step 2. Otherwise multiplication is done
  //
 //
 
-assign mul_cmd  = {((exu2ialu_cmd_i == SCR1_IALU_CMD_MULHU) | (exu2ialu_cmd_i == SCR1_IALU_CMD_MULHSU)),
-                   ((exu2ialu_cmd_i == SCR1_IALU_CMD_MULHU) | (exu2ialu_cmd_i == SCR1_IALU_CMD_MULH))};
+assign mul_cmd  = {((exu2ialu_cmd_ff == SCR1_IALU_CMD_MULHU) | (exu2ialu_cmd_ff == SCR1_IALU_CMD_MULHSU)),
+                   ((exu2ialu_cmd_ff == SCR1_IALU_CMD_MULHU) | (exu2ialu_cmd_ff == SCR1_IALU_CMD_MULH))};
 
 assign mul_cmd_hi     = |mul_cmd;
 assign mul_op1_is_sgn = ~&mul_cmd;
 assign mul_op2_is_sgn = ~mul_cmd[1];
-assign mul_op1_sgn    = mul_op1_is_sgn & exu2ialu_main_op1_i[`SCR1_XLEN-1];
-assign mul_op2_sgn    = mul_op2_is_sgn & exu2ialu_main_op2_i[`SCR1_XLEN-1];
+assign mul_op1_sgn    = mul_op1_is_sgn & exu2ialu_main_op1_ff[`SCR1_XLEN-1];
+assign mul_op2_sgn    = mul_op2_is_sgn & exu2ialu_main_op2_ff[`SCR1_XLEN-1];
 
 `ifdef SCR1_FAST_MUL
-assign mul_op1 = mdu_cmd_mul ? $signed({mul_op1_sgn, exu2ialu_main_op1_i}) : '0;
-assign mul_op2 = mdu_cmd_mul ? $signed({mul_op2_sgn, exu2ialu_main_op2_i}) : '0;
+assign mul_op1 = mdu_cmd_mul ? $signed({mul_op1_sgn, exu2ialu_main_op1_ff}) : '0;
+assign mul_op2 = mdu_cmd_mul ? $signed({mul_op2_sgn, exu2ialu_main_op2_ff}) : '0;
 assign mul_res = mdu_cmd_mul ? mul_op1 * mul_op2                           : 'sb0;
 `else // ~SCR1_FAST_MUL
-assign mul_op1 = mdu_cmd_mul  ? $signed({mul_op1_sgn, exu2ialu_main_op1_i}) : '0;
-assign mul_op2 = ~mdu_cmd_mul ? '0
-               : mdu_fsm_idle ? $signed({1'b0, exu2ialu_main_op2_i[SCR1_MUL_WIDTH-1:0]})
-                              : $signed({(mdu_iter_cnt[0] & mul_op2_is_sgn & mdu_res_lo_ff[SCR1_MUL_WIDTH-1]),
-                                          mdu_res_lo_ff[SCR1_MUL_WIDTH-1:0]});
 
-assign mul_part_prod            = mdu_cmd_mul  ? mul_op1 * mul_op2 : 'sb0;
-assign {mul_res_hi, mul_res_lo} = ~mdu_cmd_mul ? '0
-                                : mdu_fsm_idle ? ({mdu_sum_res, exu2ialu_main_op2_i[`SCR1_XLEN-1:SCR1_MUL_WIDTH]})
-                                               : ({mdu_sum_res, mdu_res_lo_ff[`SCR1_XLEN-1:SCR1_MUL_WIDTH]});
+assign mul_op1 = mdu_cmd_mul ? $signed({mul_op1_sgn, exu2ialu_main_op1_ff}) : '0;
+assign mul_op2 = mdu_cmd_mul ? $signed({mul_op2_sgn, exu2ialu_main_op2_ff}) : '0;
+
+logic mul_rdy;
+
+scr1_pipe_mul u_mul(
+	.clk          (clk), 
+	.rstn         (rst_n), 
+	.data_valid   (mdu_cmd_mul),   // input valid
+	.Din1         (mul_op1),       // first operand
+	.Din2         (mul_op2),       // second operand
+	.des_hig      (mul_res[SCR1_MUL_RES_WIDTH-1:`SCR1_XLEN]),    // first result
+	.des_low      (mul_res[`SCR1_XLEN-1:0]),    // second result
+	.mul_rdy_o    (mul_rdy),      // Multiply result ready
+	.data_done    (ialu_data_pdone)    // data_process_done
+    );
+
+
 `endif // ~SCR1_FAST_MUL
 
+
+
 //-------------------------------------------------------------------------------
 // Divider logic
 //-------------------------------------------------------------------------------
-//
- // Division uses a non-restoring algorithm. 3 registers are used:
- // - Remainder register
- // - Quotient register
- // - Dividend low part register (for corner case quotient bit calculation)
- //
- // Algorithm:
- // 1. Initialize registers
- // 2. Shift remainder and dividend low part registers left
- // 3. Compare remainder register with the divisor (taking previous quotient bit
- //    and operands signs into account) and calculate quotient bit based on the
- //    comparison results
- // 4. Shift quotient register left, append quotient bit to the quotient register
- // 5. If iteration is not ready, go to step 2. Otherwise go to step 6
- // 6. Do correction if necessary, otherwise division is done
- //
- // Quotient bit calculation has a corner case:
- // When dividend is negative result carry bit check takes into account only
- // the case of remainder register been greater than divisor. To handle
- // equality case we should check if both the comparison result and the
- // lower part of dividend are zero
-//
 
-assign div_cmd  = {((exu2ialu_cmd_i == SCR1_IALU_CMD_REM)   | (exu2ialu_cmd_i == SCR1_IALU_CMD_REMU)),
-                   ((exu2ialu_cmd_i == SCR1_IALU_CMD_REMU)  | (exu2ialu_cmd_i == SCR1_IALU_CMD_DIVU))};
+assign div_cmd  = {((exu2ialu_cmd_ff == SCR1_IALU_CMD_REM)   | (exu2ialu_cmd_ff == SCR1_IALU_CMD_REMU)),
+                   ((exu2ialu_cmd_ff == SCR1_IALU_CMD_REMU)  | (exu2ialu_cmd_ff == SCR1_IALU_CMD_DIVU))};
 
 assign div_ops_are_sgn = ~div_cmd[0];
-assign div_op1_is_neg  = div_ops_are_sgn & exu2ialu_main_op1_i[`SCR1_XLEN-1];
-assign div_op2_is_neg  = div_ops_are_sgn & exu2ialu_main_op2_i[`SCR1_XLEN-1];
+assign div_op1_is_neg  = div_ops_are_sgn & exu2ialu_main_op1_ff[`SCR1_XLEN-1];
+assign div_op2_is_neg  = div_ops_are_sgn & exu2ialu_main_op2_ff[`SCR1_XLEN-1];
 
-always_comb begin
-    div_res_rem_c = '0;
-    div_res_rem   = '0;
-    div_res_quo   = '0;
-    div_quo_bit   = 1'b0;
-    if (mdu_cmd_div & ~mdu_fsm_corr) begin
-        div_res_rem_c = mdu_sum_res[SCR1_MDU_SUM_WIDTH-1];
-        div_res_rem   = mdu_sum_res[SCR1_MDU_SUM_WIDTH-2:0];
-        div_quo_bit   = ~(div_op1_is_neg ^ div_res_rem_c)
-                      | (div_op1_is_neg & ({mdu_sum_res, div_dvdnd_lo_next} == '0));
-        div_res_quo   = mdu_fsm_idle
-                      ? {'0, div_quo_bit}
-                      : {mdu_res_lo_ff[`SCR1_XLEN-2:0], div_quo_bit};
-    end
-end
+assign div_op1 = mdu_cmd_div ? $signed({div_op1_is_neg, exu2ialu_main_op1_ff}) : '0;
+assign div_op2 = mdu_cmd_div ? $signed({div_op2_is_neg, exu2ialu_main_op2_ff}) : '0;
 
-// Dividend low part register
-//------------------------------------------------------------------------------
+logic div_rdy;
 
-assign div_dvdnd_lo_upd = exu2ialu_rvm_cmd_vd_i & ~ialu2exu_rvm_res_rdy_o;
+scr1_pipe_div u_div(
+	.clk          (clk), 
+	.rstn         (rst_n), 
+	.data_valid   (mdu_cmd_div),   // input valid
+	.Din1         (div_op1),       // first operand
+	.Din2         (div_op2),       // second operand
+	.quotient     (div_res_quo),   // Remainder
+	.remainder    (div_res_rem),   // Quotient
+	.div_rdy_o    (div_rdy),       // Divide result ready
+	.data_done    (ialu_data_pdone)     // data_process_done
+    );
 
-always_ff @(posedge clk) begin
-    if (div_dvdnd_lo_upd) begin
-        div_dvdnd_lo_ff <= div_dvdnd_lo_next;
-    end
-end
 
-assign div_dvdnd_lo_next = (~mdu_cmd_div | mdu_fsm_corr) ? '0
-                         : mdu_fsm_idle                  ? exu2ialu_main_op1_i << 1
-                                                         : div_dvdnd_lo_ff     << 1;
-
-//-------------------------------------------------------------------------------
-// MDU adder
-//-------------------------------------------------------------------------------
-logic           sgn;
-logic           inv;
-
-always_comb begin
-    mdu_sum_sub    = 1'b0;
-    mdu_sum_op1    = '0;
-    mdu_sum_op2    = '0;
-    sgn            = '0; // yosys - latch fix
-    inv            = '0; // yosys - latch fix
-    case (mdu_cmd)
-        SCR1_IALU_MDU_DIV : begin
-            sgn         = mdu_fsm_corr ? div_op1_is_neg ^ mdu_res_c_ff
-                        : mdu_fsm_idle ? 1'b0
-                                       : ~mdu_res_lo_ff[0];
-            inv         = div_ops_are_sgn & main_ops_diff_sgn;
-            mdu_sum_sub = ~inv ^ sgn;
-            mdu_sum_op1 = mdu_fsm_corr ? $signed({1'b0, mdu_res_hi_ff})
-                        : mdu_fsm_idle ? $signed({div_op1_is_neg, exu2ialu_main_op1_i[`SCR1_XLEN-1]})
-                                       : $signed({mdu_res_hi_ff, div_dvdnd_lo_ff[`SCR1_XLEN-1]});
-            mdu_sum_op2 = $signed({div_op2_is_neg, exu2ialu_main_op2_i});
-        end
-`ifndef SCR1_FAST_MUL
-        SCR1_IALU_MDU_MUL : begin
-            mdu_sum_op1 = mdu_fsm_idle
-                        ? '0
-                        : $signed({(mul_op1_is_sgn & mdu_res_hi_ff[`SCR1_XLEN-1]), mdu_res_hi_ff});
-            mdu_sum_op2 = mul_part_prod;
-        end
-`endif // SCR1_FAST_MUL
-        default : begin end
-    endcase
-    mdu_sum_res = mdu_sum_sub
-                ? (mdu_sum_op1 - mdu_sum_op2)
-                : (mdu_sum_op1 + mdu_sum_op2);
-end
-
-//-------------------------------------------------------------------------------
-// MUL/DIV intermediate results registers
-//-------------------------------------------------------------------------------
-
-assign mdu_res_upd = exu2ialu_rvm_cmd_vd_i & ~ialu2exu_rvm_res_rdy_o;
-
-always_ff @(posedge clk) begin
-    if (mdu_res_upd) begin
-        mdu_res_c_ff  <= mdu_res_c_next;
-        mdu_res_hi_ff <= mdu_res_hi_next;
-        mdu_res_lo_ff <= mdu_res_lo_next;
-    end
-end
-
-assign mdu_res_c_next  = mdu_cmd_div ? div_res_rem_c : mdu_res_c_ff;
-assign mdu_res_hi_next = mdu_cmd_div ? div_res_rem
- `ifndef SCR1_FAST_MUL
-                       : mdu_cmd_mul ? mul_res_hi
- `endif // SCR1_FAST_MUL
-                                     : mdu_res_hi_ff;
-assign mdu_res_lo_next = mdu_cmd_div ? div_res_quo
- `ifndef SCR1_FAST_MUL
-                       : mdu_cmd_mul ? mul_res_lo
- `endif // SCR1_FAST_MUL
-                                     : mdu_res_lo_ff;
 `endif // SCR1_RVM_EXT
 
 //-------------------------------------------------------------------------------
@@ -571,56 +432,66 @@
 //-------------------------------------------------------------------------------
 
 always_comb begin
-    ialu2exu_main_res_o    = '0;
-    ialu2exu_cmp_res_o     = 1'b0;
-`ifdef SCR1_RVM_EXT
-    ialu2exu_rvm_res_rdy_o = 1'b1;
-`endif // SCR1_RVM_EXT
+    ialu2exu_main_res_i    = '0;
+    ialu2exu_cmp_res_i     = 1'b0;
+    ialu2exu_rvm_res_rdy_i = 1'b0;
 
-    case (exu2ialu_cmd_i)
+    case (exu2ialu_cmd_ff)
         SCR1_IALU_CMD_AND : begin
-            ialu2exu_main_res_o = exu2ialu_main_op1_i & exu2ialu_main_op2_i;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = exu2ialu_main_op1_ff & exu2ialu_main_op2_ff;
         end
         SCR1_IALU_CMD_OR : begin
-            ialu2exu_main_res_o = exu2ialu_main_op1_i | exu2ialu_main_op2_i;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = exu2ialu_main_op1_ff | exu2ialu_main_op2_ff;
         end
         SCR1_IALU_CMD_XOR : begin
-            ialu2exu_main_res_o = exu2ialu_main_op1_i ^ exu2ialu_main_op2_i;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = exu2ialu_main_op1_ff ^ exu2ialu_main_op2_ff;
         end
         SCR1_IALU_CMD_ADD : begin
-            ialu2exu_main_res_o = main_sum_res[`SCR1_XLEN-1:0];
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = main_sum_res[`SCR1_XLEN-1:0];
         end
         SCR1_IALU_CMD_SUB : begin
-            ialu2exu_main_res_o = main_sum_res[`SCR1_XLEN-1:0];
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = main_sum_res[`SCR1_XLEN-1:0];
         end
         SCR1_IALU_CMD_SUB_LT : begin
-            ialu2exu_main_res_o = `SCR1_XLEN'(main_sum_flags.s ^ main_sum_flags.o);
-            ialu2exu_cmp_res_o  = main_sum_flags.s ^ main_sum_flags.o;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = `SCR1_XLEN'(main_sum_flags.s ^ main_sum_flags.o);
+            ialu2exu_cmp_res_i  = main_sum_flags.s ^ main_sum_flags.o;
         end
         SCR1_IALU_CMD_SUB_LTU : begin
-            ialu2exu_main_res_o = `SCR1_XLEN'(main_sum_flags.c);
-            ialu2exu_cmp_res_o  = main_sum_flags.c;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = `SCR1_XLEN'(main_sum_flags.c);
+            ialu2exu_cmp_res_i  = main_sum_flags.c;
         end
         SCR1_IALU_CMD_SUB_EQ : begin
-            ialu2exu_main_res_o = `SCR1_XLEN'(main_sum_flags.z);
-            ialu2exu_cmp_res_o  = main_sum_flags.z;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = `SCR1_XLEN'(main_sum_flags.z);
+            ialu2exu_cmp_res_i  = main_sum_flags.z;
         end
         SCR1_IALU_CMD_SUB_NE : begin
-            ialu2exu_main_res_o = `SCR1_XLEN'(~main_sum_flags.z);
-            ialu2exu_cmp_res_o  = ~main_sum_flags.z;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = `SCR1_XLEN'(~main_sum_flags.z);
+            ialu2exu_cmp_res_i  = ~main_sum_flags.z;
         end
         SCR1_IALU_CMD_SUB_GE : begin
-            ialu2exu_main_res_o = `SCR1_XLEN'(~(main_sum_flags.s ^ main_sum_flags.o));
-            ialu2exu_cmp_res_o  = ~(main_sum_flags.s ^ main_sum_flags.o);
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = `SCR1_XLEN'(~(main_sum_flags.s ^ main_sum_flags.o));
+            ialu2exu_cmp_res_i  = ~(main_sum_flags.s ^ main_sum_flags.o);
         end
         SCR1_IALU_CMD_SUB_GEU : begin
-            ialu2exu_main_res_o = `SCR1_XLEN'(~main_sum_flags.c);
-            ialu2exu_cmp_res_o  = ~main_sum_flags.c;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = `SCR1_XLEN'(~main_sum_flags.c);
+            ialu2exu_cmp_res_i  = ~main_sum_flags.c;
         end
         SCR1_IALU_CMD_SLL,
         SCR1_IALU_CMD_SRL,
         SCR1_IALU_CMD_SRA: begin
-            ialu2exu_main_res_o = shft_res;
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = shft_res;
         end
 `ifdef SCR1_RVM_EXT
         SCR1_IALU_CMD_MUL,
@@ -628,44 +499,23 @@
         SCR1_IALU_CMD_MULHSU,
         SCR1_IALU_CMD_MULH : begin
  `ifdef SCR1_FAST_MUL
-            ialu2exu_main_res_o = mul_cmd_hi
+            ialu2exu_rvm_res_rdy_i = ialu_rdy;
+            ialu2exu_main_res_i = mul_cmd_hi
                                 ? mul_res[SCR1_MUL_RES_WIDTH-1:`SCR1_XLEN]
                                 : mul_res[`SCR1_XLEN-1:0];
  `else // ~SCR1_FAST_MUL
-            case (mdu_fsm_ff)
-                SCR1_IALU_MDU_FSM_IDLE : begin
-                    ialu2exu_main_res_o    = '0;
-                    ialu2exu_rvm_res_rdy_o = ~mdu_iter_req;
-                end
-                SCR1_IALU_MDU_FSM_ITER : begin
-                    ialu2exu_main_res_o    = mul_cmd_hi ? mul_res_hi : mul_res_lo;
-                    ialu2exu_rvm_res_rdy_o = mdu_iter_rdy;
-                end
-            endcase
+            ialu2exu_rvm_res_rdy_i = mul_rdy;
+            ialu2exu_main_res_i = mul_cmd_hi
+                                ? mul_res[SCR1_MUL_RES_WIDTH-1:`SCR1_XLEN]
+                                : mul_res[`SCR1_XLEN-1:0];
  `endif // ~SCR1_FAST_MUL
         end
         SCR1_IALU_CMD_DIV,
         SCR1_IALU_CMD_DIVU,
         SCR1_IALU_CMD_REM,
         SCR1_IALU_CMD_REMU : begin
-            case (mdu_fsm_ff)
-                SCR1_IALU_MDU_FSM_IDLE : begin
-                    ialu2exu_main_res_o    = (|exu2ialu_main_op2_i | div_cmd_rem)
-                                           ? exu2ialu_main_op1_i
-                                           : '1;
-                    ialu2exu_rvm_res_rdy_o = ~mdu_iter_req;
-                end
-                SCR1_IALU_MDU_FSM_ITER : begin
-                    ialu2exu_main_res_o    = div_cmd_rem ? div_res_rem : div_res_quo;
-                    ialu2exu_rvm_res_rdy_o = mdu_iter_rdy & ~mdu_corr_req;
-                end
-                SCR1_IALU_MDU_FSM_CORR : begin
-                    ialu2exu_main_res_o    = div_cmd_rem
-                                           ? mdu_sum_res[`SCR1_XLEN-1:0]
-                                           : -mdu_res_lo_ff[`SCR1_XLEN-1:0];
-                    ialu2exu_rvm_res_rdy_o = 1'b1;
-                end
-            endcase
+            ialu2exu_main_res_i    = div_cmd_rem ? div_res_rem : div_res_quo;
+            ialu2exu_rvm_res_rdy_i = div_rdy;
         end
 `endif // SCR1_RVM_EXT
         default : begin end
@@ -682,55 +532,14 @@
 
 // X checks
 
-SCR1_SVA_IALU_XCHECK : assert property (
-    @(negedge clk) disable iff (~rst_n)
-    !$isunknown({exu2ialu_rvm_cmd_vd_i, mdu_fsm_ff})
-    ) else $error("IALU Error: unknown values");
-
 SCR1_SVA_IALU_XCHECK_QUEUE : assert property (
     @(negedge clk) disable iff (~rst_n)
-    exu2ialu_rvm_cmd_vd_i |->
-    !$isunknown({exu2ialu_main_op1_i, exu2ialu_main_op2_i, exu2ialu_cmd_i})
+    exu2ialu_rvm_cmd_vd_ff |->
+    !$isunknown({exu2ialu_main_op1_ff, exu2ialu_main_op2_ff, exu2ialu_cmd_ff})
     ) else $error("IALU Error: unknown values in queue");
 
 // Behavior checks
 
-SCR1_SVA_IALU_ILL_STATE : assert property (
-    @(negedge clk) disable iff (~rst_n)
-    $onehot0({~exu2ialu_rvm_cmd_vd_i, mdu_fsm_iter, mdu_fsm_corr})
-    ) else $error("IALU Error: illegal state");
-
-`ifndef VERILATOR    
-SCR1_SVA_IALU_JUMP_FROM_IDLE : assert property (
-    @(negedge clk) disable iff (~rst_n)
-    (mdu_fsm_idle & (~exu2ialu_rvm_cmd_vd_i | ~mdu_iter_req)) |=> mdu_fsm_idle
-    ) else $error("EXU Error: illegal jump from IDLE state");
-
-SCR1_SVA_IALU_IDLE_TO_ITER : assert property (
-    @(negedge clk) disable iff (~rst_n)
-    (mdu_fsm_idle & exu2ialu_rvm_cmd_vd_i & mdu_iter_req) |=> mdu_fsm_iter
-    ) else $error("EXU Error: illegal change state form IDLE to ITER");
-
-SCR1_SVA_IALU_JUMP_FROM_ITER : assert property (
-    @(negedge clk) disable iff (~rst_n)
-    (mdu_fsm_iter & ~mdu_iter_rdy) |=> mdu_fsm_iter
-    ) else $error("EXU Error: illegal jump from ITER state");
-
-SCR1_SVA_IALU_ITER_TO_IDLE : assert property (
-    @(negedge clk) disable iff (~rst_n)
-    (mdu_fsm_iter & mdu_iter_rdy & ~mdu_corr_req) |=> mdu_fsm_idle
-    ) else $error("EXU Error: illegal state change ITER to IDLE");
-
-SCR1_SVA_IALU_ITER_TO_CORR : assert property (
-    @(negedge clk) disable iff (~rst_n)
-    (mdu_fsm_iter & mdu_iter_rdy & mdu_corr_req) |=> mdu_fsm_corr
-    ) else $error("EXU Error: illegal state change ITER to CORR");
-
-SCR1_SVA_IALU_CORR_TO_IDLE : assert property (
-    @(negedge clk) disable iff (~rst_n)
-    mdu_fsm_corr |=> mdu_fsm_idle
-    ) else $error("EXU Error: illegal state stay in CORR");
-`endif // VERILATOR
 
 `endif // SCR1_RVM_EXT
 
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv
index ee9164e..3b7f493 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv
@@ -19,7 +19,10 @@
 /// @file       <scr1_pipe_mprf.sv>
 /// @brief      Multi Port Register File (MPRF)
 ///
-
+///   Version 1.0 - Dinesh A - Project: yifive
+///                added additional stage FF to break timing path
+///                additional define SCRC1_MPRF_STAGE added
+//////////////////////////////////////////////////////////////////////////////
 `include "scr1_arch_description.svh"
 `include "scr1_arch_types.svh"
 
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv
index 634069e..467dd10 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv
@@ -618,7 +618,7 @@
  `ifdef SCR1_DBG_EN
     .rst_n                      (dbg_rst_n             ),
  `else
-    .rst_n                      (pipe_rst_n            ), // dinesh-a: Bugfix- reset correction when debug is not enabled
+    .rst_n                      (pipe_rst_n            ),
  `endif // SCR1_DBG_EN
     .clk                        (clk                   ),
     .clk_en                     (1'b1                  ),
diff --git a/verilog/rtl/syntacore/scr1/src/includes/scr1_arch_description.svh b/verilog/rtl/syntacore/scr1/src/includes/scr1_arch_description.svh
index a96c617..71b9928 100644
--- a/verilog/rtl/syntacore/scr1/src/includes/scr1_arch_description.svh
+++ b/verilog/rtl/syntacore/scr1/src/includes/scr1_arch_description.svh
@@ -89,7 +89,7 @@
   `define SCR1_RVC_EXT
   parameter int unsigned SCR1_MTVEC_BASE_WR_BITS = 26;
   `define SCR1_MTVEC_MODE_EN          // enable writable MTVEC.mode field to allow vectored irq mode, otherwise only direct mode is possible
-// `define SCR1_FAST_MUL               // enable fast one-cycle multiplication, otherwise multiplication takes 32 cycles
+//  `define SCR1_FAST_MUL               // enable fast one-cycle multiplication, otherwise multiplication takes 32 cycles
 //`define SCR1_MPRF_RST_EN - yosys fix, two dimensional array init not allowed
   `define SCR1_MCOUNTEN_EN            // enable custom MCOUNTEN CSR for counter control
 //`define SCR1_DBG_EN                 // enable Debug Subsystem (TAPC, DM, SCU, HDU)
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv
index 393a7af..f839edd 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv
@@ -377,17 +377,22 @@
         .rd_data    (resp_fifo_dout          )
       );
 
-
-
 assign resp_fifo_rd = !resp_fifo_empty;
-
-assign dmem_rdata = (resp_fifo_rd) ? scr1_conv_wb2mem_rdata(resp_fifo_dout.hwidth, resp_fifo_dout.haddr, resp_fifo_dout.hrdata) : 'h0;
-
-assign dmem_resp = (resp_fifo_rd)
-                    ? (resp_fifo_dout.hresp == 1'b1)
-                        ? SCR1_MEM_RESP_RDY_OK
-                        : SCR1_MEM_RESP_RDY_ER
-                    : SCR1_MEM_RESP_NOTRDY ;
+  
+// Added FF to improve timing
+always_ff @(posedge core_clk, negedge core_rst_n) begin
+   if(core_rst_n == 0) begin
+      dmem_rdata <= '0;
+      dmem_resp <= '0;
+   end else begin
+      dmem_rdata <= (resp_fifo_rd) ? scr1_conv_wb2mem_rdata(resp_fifo_dout.hwidth, resp_fifo_dout.haddr, resp_fifo_dout.hrdata) : 'h0;
+      dmem_resp  <= (resp_fifo_rd)
+                          ? (resp_fifo_dout.hresp == 1'b1)
+                              ? SCR1_MEM_RESP_RDY_OK
+                              : SCR1_MEM_RESP_RDY_ER
+                          : SCR1_MEM_RESP_NOTRDY ;
+   end
+end
 
 
 
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_timer.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_timer.sv
index 7750789..ae26909 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_timer.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_timer.sv
@@ -17,7 +17,11 @@
 // //////////////////////////////////////////////////////////////////////////
 /// @file       <scr1_timer.sv>
 /// @brief      Memory-mapped Timer
-///
+///    Version 1.0 - 18 - July 2021 - Dinesh A Project: yifive
+///           1.To break the timing path, input and output path are registered
+///           2.Spilt the 64 bit adder into two 32 bit added with taking care of
+///             overflow
+////////////////////////////////////////////////////////////////////////////////
 
 `include "scr1_arch_description.svh"
 `include "scr1_memif.svh"
@@ -119,7 +123,8 @@
 always_comb begin
     mtime_new   = mtime_reg;
     if (time_posedge) begin
-        mtime_new   = mtime_reg + 1'b1;
+        mtime_new[31:0]    = mtime_reg[31:0] + 1'b1;
+        mtime_new[63:32]   = (&mtime_reg[31:0]) ? (mtime_new[63:32] + 1'b1) : mtime_new[63:32];
     end
     if (mtimelo_up) begin
         mtime_new[31:0]     = dmem_wdata;
@@ -225,21 +230,32 @@
 //-------------------------------------------------------------------------------
 // Memory interface
 //-------------------------------------------------------------------------------
-assign dmem_req_valid   =   (dmem_width == SCR1_MEM_WIDTH_WORD) & (~|dmem_addr[1:0]) &
-                            (dmem_addr[SCR1_TIMER_ADDR_WIDTH-1:2] <= SCR1_TIMER_MTIMECMPHI[SCR1_TIMER_ADDR_WIDTH-1:2]);
-
-assign dmem_req_ack     = 1'b1;
+logic                           dmem_cmd_ff;
+logic [SCR1_TIMER_ADDR_WIDTH-1:0]   dmem_addr_ff;
+always_ff @(negedge rst_n, posedge clk) begin
+    if (~rst_n) begin
+       dmem_req_valid <= '0;
+       dmem_req_ack  <= '0;
+       dmem_cmd_ff  <= '0;
+       dmem_addr_ff <= '0;
+    end else begin
+       dmem_req_valid <=  (dmem_req) && (dmem_req_ack == 0) &&  (dmem_width == SCR1_MEM_WIDTH_WORD) & (~|dmem_addr[1:0]) &
+                          (dmem_addr[SCR1_TIMER_ADDR_WIDTH-1:2] <= SCR1_TIMER_MTIMECMPHI[SCR1_TIMER_ADDR_WIDTH-1:2]);
+       dmem_req_ack   <= dmem_req & (dmem_req_ack ==0);
+       dmem_cmd_ff    <= dmem_cmd;
+       dmem_addr_ff   <= dmem_addr[SCR1_TIMER_ADDR_WIDTH-1:0];
+    end
+end
 
 always_ff @(negedge rst_n, posedge clk) begin
     if (~rst_n) begin
         dmem_resp   <= SCR1_MEM_RESP_NOTRDY;
         dmem_rdata  <= '0;
     end else begin
-        if (dmem_req) begin
-            if (dmem_req_valid) begin
+        if (dmem_req_valid) begin
                 dmem_resp   <= SCR1_MEM_RESP_RDY_OK;
-                if (dmem_cmd == SCR1_MEM_CMD_RD) begin
-                    case (dmem_addr[SCR1_TIMER_ADDR_WIDTH-1:0])
+                if (dmem_cmd_ff == SCR1_MEM_CMD_RD) begin
+                    case (dmem_addr_ff)
                         SCR1_TIMER_CONTROL      : dmem_rdata    <= `SCR1_DMEM_DWIDTH'({timer_clksrc_rtc, timer_en});
                         SCR1_TIMER_DIVIDER      : dmem_rdata    <= `SCR1_DMEM_DWIDTH'(timer_div);
                         SCR1_TIMER_MTIMELO      : dmem_rdata    <= mtime_reg[31:0];
@@ -249,9 +265,6 @@
                         default                 : begin end
                     endcase
                 end
-            end else begin
-                dmem_resp   <= SCR1_MEM_RESP_RDY_ER;
-            end
         end else begin
             dmem_resp   <= SCR1_MEM_RESP_NOTRDY;
             dmem_rdata  <= '0;
@@ -266,8 +279,8 @@
     mtimehi_up      = 1'b0;
     mtimecmplo_up   = 1'b0;
     mtimecmphi_up   = 1'b0;
-    if (dmem_req & dmem_req_valid & (dmem_cmd == SCR1_MEM_CMD_WR)) begin
-        case (dmem_addr[SCR1_TIMER_ADDR_WIDTH-1:0])
+    if (dmem_req_valid & (dmem_cmd_ff == SCR1_MEM_CMD_WR)) begin
+        case (dmem_addr_ff)
             SCR1_TIMER_CONTROL      : control_up    = 1'b1;
             SCR1_TIMER_DIVIDER      : divider_up    = 1'b1;
             SCR1_TIMER_MTIMELO      : mtimelo_up    = 1'b1;
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv
index bf6affc..8ddd341 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv
@@ -237,72 +237,87 @@
 
 logic                                               timer_irq;
 logic [63:0]                                        timer_val;
+logic [48:0]                                        core_debug;
 
-
-//---------------------------------------------------------------------------------
-// To avoid core level power hook up, we have brought this signal inside, to
-// avoid any cell at digital core level
-// --------------------------------------------------------------------------------
-assign test_mode = 1'b0;
-assign test_rst_n = 1'b0;
-
-logic [48:0] core_debug;
-assign riscv_debug = {core_imem_req,core_imem_req,core_imem_cmd,core_imem_resp[1:0],
-	              core_dmem_req_ack,core_dmem_req,core_dmem_cmd,core_dmem_resp[1:0],
-		      wb_imem_req,wb_imem_req,wb_imem_cmd,wb_imem_resp[1:0], core_debug };
 //-------------------------------------------------------------------------------
-// Reset logic
+// SCR1 Intf instance
 //-------------------------------------------------------------------------------
-// Power-Up Reset synchronizer
-scr1_reset_sync_cell #(
-    .STAGES_AMOUNT       (SCR1_CLUSTER_TOP_RST_SYNC_STAGES_NUM)
-) i_pwrup_rstn_reset_sync (
-    .rst_n          (pwrup_rst_n     ),
-    .clk            (core_clk        ),
-    .test_rst_n     (test_rst_n      ),
-    .test_mode      (test_mode       ),
-    .rst_n_in       (1'b1            ),
-    .rst_n_out      (pwrup_rst_n_sync)
-);
-
-// Regular Reset synchronizer
-scr1_reset_sync_cell #(
-    .STAGES_AMOUNT       (SCR1_CLUSTER_TOP_RST_SYNC_STAGES_NUM)
-) i_rstn_reset_sync (
-    .rst_n          (pwrup_rst_n     ),
-    .clk            (core_clk        ),
-    .test_rst_n     (test_rst_n      ),
-    .test_mode      (test_mode       ),
-    .rst_n_in       (rst_n           ),
-    .rst_n_out      (rst_n_sync      )
-);
-
-// CPU Reset synchronizer
-scr1_reset_sync_cell #(
-    .STAGES_AMOUNT       (SCR1_CLUSTER_TOP_RST_SYNC_STAGES_NUM)
-) i_cpu_rstn_reset_sync (
-    .rst_n          (pwrup_rst_n     ),
-    .clk            (core_clk        ),
-    .test_rst_n     (test_rst_n      ),
-    .test_mode      (test_mode       ),
-    .rst_n_in       (cpu_rst_n       ),
-    .rst_n_out      (cpu_rst_n_sync  )
-);
+scr1_intf u_intf (
+    // Control
+    .pwrup_rst_n                        (pwrup_rst_n),        // Power-Up Reset
+    .rst_n                              (rst_n),              // Regular Reset signal
+    .cpu_rst_n                          (cpu_rst_n),          // CPU Reset (Core Reset)
+    .core_clk                           (core_clk),           // Core clock
+    .rtc_clk                            (rtc_clk),            // Real-time clock
+    .riscv_debug                        (riscv_debug),
 
 `ifdef SCR1_DBG_EN
-// TAPC Reset
-scr1_reset_and2_cell i_tapc_rstn_and2_cell (
-    .rst_n_in       ({trst_n, pwrup_rst_n}),
-    .test_rst_n     (test_rst_n      ),
-    .test_mode      (test_mode       ),
-    .rst_n_out      (tapc_trst_n     )
-);
+    // -- JTAG I/F
+    .trst_n                             (trst_n),
 `endif // SCR1_DBG_EN
 
+    .wb_rst_n                           (wb_rst_n),           // Wish bone reset
+    .wb_clk                             (wb_clk),             // wish bone clock
+
+    // Instruction Memory Interface
+    .wbd_imem_stb_o                     (wbd_imem_stb_o),     // strobe/request
+    .wbd_imem_adr_o                     (wbd_imem_adr_o),     // address
+    .wbd_imem_we_o                      (wbd_imem_we_o),      // write
+    .wbd_imem_dat_o                     (wbd_imem_dat_o),     // data output
+    .wbd_imem_sel_o                     (wbd_imem_sel_o),     // byte enable
+    .wbd_imem_dat_i                     (wbd_imem_dat_i),     // data input
+    .wbd_imem_ack_i                     (wbd_imem_ack_i),     // acknowlegement
+    .wbd_imem_err_i                     (wbd_imem_err_i),     // error
+
+    // Data Memory Interface
+    .wbd_dmem_stb_o                     (wbd_dmem_stb_o),     // strobe/request
+    .wbd_dmem_adr_o                     (wbd_dmem_adr_o),     // address
+    .wbd_dmem_we_o                      (wbd_dmem_we_o),      // write
+    .wbd_dmem_dat_o                     (wbd_dmem_dat_o),     // data output
+    .wbd_dmem_sel_o                     (wbd_dmem_sel_o),     // byte enable
+    .wbd_dmem_dat_i                     (wbd_dmem_dat_i),     // data input
+    .wbd_dmem_ack_i                     (wbd_dmem_ack_i),     // acknowlegement
+    .wbd_dmem_err_i                     (wbd_dmem_err_i),     // error
+
+    // Common
+    .pwrup_rst_n_sync                   (pwrup_rst_n_sync),   // Power-Up reset
+    .rst_n_sync                         (rst_n_sync),         // Regular reset
+    .cpu_rst_n_sync                     (cpu_rst_n_sync),     // CPU reset
+    .test_mode                          (test_mode),          // DFT Test Mode
+    .test_rst_n                         (test_rst_n),         // DFT Test Reset
+    .core_rst_n_local                   (core_rst_n_local),   // Core reset
+    .core_debug                         (core_debug  ),
+`ifdef SCR1_DBG_EN
+    // Debug Interface
+    .tapc_trst_n                        (tapc_trst_n),        // Test Reset (TRSTn)
+`endif
+    // Memory-mapped external timer
+    .timer_val                          (timer_val),          // Machine timer value
+    // Instruction Memory Interface
+    .core_imem_req_ack                  (core_imem_req_ack),  // IMEM request acknowledge
+    .core_imem_req                      (core_imem_req),      // IMEM request
+    .core_imem_cmd                      (core_imem_cmd),      // IMEM command
+    .core_imem_addr                     (core_imem_addr),     // IMEM address
+    .core_imem_rdata                    (core_imem_rdata),    // IMEM read data
+    .core_imem_resp                     (core_imem_resp),     // IMEM response
+
+    // Data Memory Interface
+    .core_dmem_req_ack                  (core_dmem_req_ack),  // DMEM request acknowledge
+    .core_dmem_req                      (core_dmem_req),      // DMEM request
+    .core_dmem_cmd                      (core_dmem_cmd),      // DMEM command
+    .core_dmem_width                    (core_dmem_width),    // DMEM data width
+    .core_dmem_addr                     (core_dmem_addr),     // DMEM address
+    .core_dmem_wdata                    (core_dmem_wdata),    // DMEM write data
+    .core_dmem_rdata                    (core_dmem_rdata),    // DMEM read data
+    .core_dmem_resp                     (core_dmem_resp)      // DMEM response
+
+);
+
+
 //-------------------------------------------------------------------------------
 // SCR1 core instance
 //-------------------------------------------------------------------------------
-scr1_core_top i_core_top (
+scr1_core_top u_core_top (
     // Common
     .pwrup_rst_n                (pwrup_rst_n_sync ),
     .rst_n                      (rst_n_sync       ),
@@ -366,231 +381,6 @@
 );
 
 
-`ifdef SCR1_TCM_EN
-//-------------------------------------------------------------------------------
-// TCM instance
-//-------------------------------------------------------------------------------
-scr1_tcm #(
-    .SCR1_TCM_SIZE  (`SCR1_DMEM_AWIDTH'(~SCR1_TCM_ADDR_MASK + 1'b1))
-) i_tcm (
-    .clk            (core_clk        ),
-    .rst_n          (core_rst_n_local),
-
-    // Instruction interface to TCM
-    .imem_req_ack   (tcm_imem_req_ack),
-    .imem_req       (tcm_imem_req    ),
-    .imem_addr      (tcm_imem_addr   ),
-    .imem_rdata     (tcm_imem_rdata  ),
-    .imem_resp      (tcm_imem_resp   ),
-
-    // Data interface to TCM
-    .dmem_req_ack   (tcm_dmem_req_ack),
-    .dmem_req       (tcm_dmem_req    ),
-    .dmem_cmd       (tcm_dmem_cmd    ),
-    .dmem_width     (tcm_dmem_width  ),
-    .dmem_addr      (tcm_dmem_addr   ),
-    .dmem_wdata     (tcm_dmem_wdata  ),
-    .dmem_rdata     (tcm_dmem_rdata  ),
-    .dmem_resp      (tcm_dmem_resp   )
-);
-`endif // SCR1_TCM_EN
-
-
-//-------------------------------------------------------------------------------
-// Memory-mapped timer instance
-//-------------------------------------------------------------------------------
-scr1_timer i_timer (
-    // Common
-    .rst_n          (core_rst_n_local  ),
-    .clk            (core_clk          ),
-    .rtc_clk        (rtc_clk           ),
-
-    // Memory interface
-    .dmem_req       (timer_dmem_req    ),
-    .dmem_cmd       (timer_dmem_cmd    ),
-    .dmem_width     (timer_dmem_width  ),
-    .dmem_addr      (timer_dmem_addr   ),
-    .dmem_wdata     (timer_dmem_wdata  ),
-    .dmem_req_ack   (timer_dmem_req_ack),
-    .dmem_rdata     (timer_dmem_rdata  ),
-    .dmem_resp      (timer_dmem_resp   ),
-
-    // Timer interface
-    .timer_val      (timer_val         ),
-    .timer_irq      (timer_irq         )
-);
-
-
-`ifdef SCR1_IMEM_ROUTER_EN
-//-------------------------------------------------------------------------------
-// Instruction memory router
-//-------------------------------------------------------------------------------
-scr1_imem_router #(
- `ifdef SCR1_TCM_EN
-    .SCR1_ADDR_MASK     (SCR1_TCM_ADDR_MASK),
-    .SCR1_ADDR_PATTERN  (SCR1_TCM_ADDR_PATTERN)
- `endif // SCR1_TCM_EN
-) i_imem_router (
-    .rst_n          (core_rst_n_local ),
-    .clk            (core_clk         ),
-    // Interface to core
-    .imem_req_ack   (core_imem_req_ack),
-    .imem_req       (core_imem_req    ),
-    .imem_cmd       (core_imem_cmd    ),
-    .imem_addr      (core_imem_addr   ),
-    .imem_rdata     (core_imem_rdata  ),
-    .imem_resp      (core_imem_resp   ),
-    // Interface to WB bridge
-    .port0_req_ack  (wb_imem_req_ack ),
-    .port0_req      (wb_imem_req     ),
-    .port0_cmd      (wb_imem_cmd     ),
-    .port0_addr     (wb_imem_addr    ),
-    .port0_rdata    (wb_imem_rdata   ),
-    .port0_resp     (wb_imem_resp    ),
- `ifdef SCR1_TCM_EN
-    // Interface to TCM
-    .port1_req_ack  (tcm_imem_req_ack ),
-    .port1_req      (tcm_imem_req     ),
-    .port1_cmd      (tcm_imem_cmd     ),
-    .port1_addr     (tcm_imem_addr    ),
-    .port1_rdata    (tcm_imem_rdata   ),
-    .port1_resp     (tcm_imem_resp    )
- `endif // SCR1_TCM_EN
-);
-
-`else // SCR1_IMEM_ROUTER_EN
-
-assign wb_imem_req         = core_imem_req;
-assign wb_imem_cmd         = core_imem_cmd;
-assign wb_imem_addr        = core_imem_addr;
-assign core_imem_req_ack    = wb_imem_req_ack;
-assign core_imem_resp       = wb_imem_resp;
-assign core_imem_rdata      = wb_imem_rdata;
-
-`endif // SCR1_IMEM_ROUTER_EN
-
-//-------------------------------------------------------------------------------
-// Data memory router
-//-------------------------------------------------------------------------------
-scr1_dmem_router #(
-
-`ifdef SCR1_TCM_EN
-    .SCR1_PORT1_ADDR_MASK       (SCR1_TCM_ADDR_MASK),
-    .SCR1_PORT1_ADDR_PATTERN    (SCR1_TCM_ADDR_PATTERN),
-`else // SCR1_TCM_EN
-    .SCR1_PORT1_ADDR_MASK       (32'h00000000),
-    .SCR1_PORT1_ADDR_PATTERN    (32'hFFFFFFFF),
-`endif // SCR1_TCM_EN
-
-    .SCR1_PORT2_ADDR_MASK       (SCR1_TIMER_ADDR_MASK),
-    .SCR1_PORT2_ADDR_PATTERN    (SCR1_TIMER_ADDR_PATTERN)
-
-) i_dmem_router (
-    .rst_n          (core_rst_n_local    ),
-    .clk            (core_clk            ),
-    // Interface to core
-    .dmem_req_ack   (core_dmem_req_ack   ),
-    .dmem_req       (core_dmem_req       ),
-    .dmem_cmd       (core_dmem_cmd       ),
-    .dmem_width     (core_dmem_width     ),
-    .dmem_addr      (core_dmem_addr      ),
-    .dmem_wdata     (core_dmem_wdata     ),
-    .dmem_rdata     (core_dmem_rdata     ),
-    .dmem_resp      (core_dmem_resp      ),
-`ifdef SCR1_TCM_EN
-    // Interface to TCM
-    .port1_req_ack  (tcm_dmem_req_ack    ),
-    .port1_req      (tcm_dmem_req        ),
-    .port1_cmd      (tcm_dmem_cmd        ),
-    .port1_width    (tcm_dmem_width      ),
-    .port1_addr     (tcm_dmem_addr       ),
-    .port1_wdata    (tcm_dmem_wdata      ),
-    .port1_rdata    (tcm_dmem_rdata      ),
-    .port1_resp     (tcm_dmem_resp       ),
-`else // SCR1_TCM_EN
-    .port1_req_ack  (1'b0),
-    .port1_req      (                    ),
-    .port1_cmd      (                    ),
-    .port1_width    (                    ),
-    .port1_addr     (                    ),
-    .port1_wdata    (                    ),
-    .port1_rdata    (32'h0               ),
-    .port1_resp     (SCR1_MEM_RESP_RDY_ER),
-`endif // SCR1_TCM_EN
-    // Interface to memory-mapped timer
-    .port2_req_ack  (timer_dmem_req_ack  ),
-    .port2_req      (timer_dmem_req      ),
-    .port2_cmd      (timer_dmem_cmd      ),
-    .port2_width    (timer_dmem_width    ),
-    .port2_addr     (timer_dmem_addr     ),
-    .port2_wdata    (timer_dmem_wdata    ),
-    .port2_rdata    (timer_dmem_rdata    ),
-    .port2_resp     (timer_dmem_resp     ),
-    // Interface to WB bridge
-    .port0_req_ack  (wb_dmem_req_ack    ),
-    .port0_req      (wb_dmem_req        ),
-    .port0_cmd      (wb_dmem_cmd        ),
-    .port0_width    (wb_dmem_width      ),
-    .port0_addr     (wb_dmem_addr       ),
-    .port0_wdata    (wb_dmem_wdata      ),
-    .port0_rdata    (wb_dmem_rdata      ),
-    .port0_resp     (wb_dmem_resp       )
-);
-
-
-//-------------------------------------------------------------------------------
-// Instruction memory WB bridge
-//-------------------------------------------------------------------------------
-scr1_imem_wb i_imem_wb (
-    .core_rst_n     (core_rst_n_local   ),
-    .core_clk       (core_clk           ),
-    // Interface to imem router
-    .imem_req_ack   (wb_imem_req_ack   ),
-    .imem_req       (wb_imem_req       ),
-    .imem_addr      (wb_imem_addr      ),
-    .imem_rdata     (wb_imem_rdata     ),
-    .imem_resp      (wb_imem_resp      ),
-    // WB interface
-    .wb_rst_n       (wb_rst_n          ),
-    .wb_clk         (wb_clk            ),
-    .wbd_stb_o      (wbd_imem_stb_o    ), 
-    .wbd_adr_o      (wbd_imem_adr_o    ), 
-    .wbd_we_o       (wbd_imem_we_o     ),  
-    .wbd_dat_o      (wbd_imem_dat_o    ), 
-    .wbd_sel_o      (wbd_imem_sel_o    ), 
-    .wbd_dat_i      (wbd_imem_dat_i    ), 
-    .wbd_ack_i      (wbd_imem_ack_i    ), 
-    .wbd_err_i      (wbd_imem_err_i    )
-);
-
-
-//-------------------------------------------------------------------------------
-// Data memory WB bridge
-//-------------------------------------------------------------------------------
-scr1_dmem_wb i_dmem_wb (
-    .core_rst_n     (core_rst_n_local   ),
-    .core_clk       (core_clk           ),
-    // Interface to dmem router
-    .dmem_req_ack   (wb_dmem_req_ack   ),
-    .dmem_req       (wb_dmem_req       ),
-    .dmem_cmd       (wb_dmem_cmd       ),
-    .dmem_width     (wb_dmem_width     ),
-    .dmem_addr      (wb_dmem_addr      ),
-    .dmem_wdata     (wb_dmem_wdata     ),
-    .dmem_rdata     (wb_dmem_rdata     ),
-    .dmem_resp      (wb_dmem_resp      ),
-    // WB interface
-    .wb_rst_n       (wb_rst_n          ),
-    .wb_clk         (wb_clk            ),
-    .wbd_stb_o      (wbd_dmem_stb_o    ), 
-    .wbd_adr_o      (wbd_dmem_adr_o    ), 
-    .wbd_we_o       (wbd_dmem_we_o     ),  
-    .wbd_dat_o      (wbd_dmem_dat_o    ), 
-    .wbd_sel_o      (wbd_dmem_sel_o    ), 
-    .wbd_dat_i      (wbd_dmem_dat_i    ), 
-    .wbd_ack_i      (wbd_dmem_ack_i    ), 
-    .wbd_err_i      (wbd_dmem_err_i    )
-);
 
 endmodule : scr1_top_wb
 
diff --git a/verilog/rtl/syntacore/scr1/src/wb_top.files b/verilog/rtl/syntacore/scr1/src/wb_top.files
index 25f9f8f..1d67b0c 100644
--- a/verilog/rtl/syntacore/scr1/src/wb_top.files
+++ b/verilog/rtl/syntacore/scr1/src/wb_top.files
@@ -22,4 +22,5 @@
 top/scr1_dmem_wb.sv
 top/scr1_imem_wb.sv
 top/scr1_top_wb.sv
+top/scr1_intf.sv
 ../../../lib/sync_fifo.sv
diff --git a/verilog/rtl/syntacore/scr1/synth/synth.tcl b/verilog/rtl/syntacore/scr1/synth/synth.tcl
index 4375c58..3331be6 100755
--- a/verilog/rtl/syntacore/scr1/synth/synth.tcl
+++ b/verilog/rtl/syntacore/scr1/synth/synth.tcl
@@ -44,6 +44,8 @@
 	../src/core/pipeline/scr1_pipe_mprf.sv  \
 	../src/core/pipeline/scr1_pipe_csr.sv  \
 	../src/core/pipeline/scr1_pipe_ialu.sv  \
+	../src/core/pipeline/scr1_pipe_mul.sv  \
+	../src/core/pipeline/scr1_pipe_div.sv  \
 	../src/core/pipeline/scr1_pipe_lsu.sv  \
 	../src/core/pipeline/scr1_pipe_hdu.sv  \
 	../src/core/pipeline/scr1_pipe_tdu.sv  \
diff --git a/verilog/rtl/uprj_netlists.v b/verilog/rtl/uprj_netlists.v
index 29925ab..ea393bf 100644
--- a/verilog/rtl/uprj_netlists.v
+++ b/verilog/rtl/uprj_netlists.v
@@ -95,6 +95,8 @@
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mul.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_div.sv"
      `include "syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv"
      `include "syntacore/scr1/src/core/primitives/scr1_reset_cells.sv"
      `include "syntacore/scr1/src/core/primitives/scr1_cg.sv"
@@ -113,6 +115,7 @@
      `include "syntacore/scr1/src/top/scr1_timer.sv"
      `include "syntacore/scr1/src/top/scr1_dmem_wb.sv"
      `include "syntacore/scr1/src/top/scr1_imem_wb.sv"
+     `include "syntacore/scr1/src/top/scr1_intf.sv"
      `include "syntacore/scr1/src/top/scr1_top_wb.sv"
      `include "lib/sync_fifo.sv"