diff --git a/designs/vivado/scalp_firmware/2020.2/src/hdl/scalp_firmware.vhd b/designs/vivado/scalp_firmware/2020.2/src/hdl/scalp_firmware.vhd
index fca63d4bf1a4b8995c5b784cadfb49e42abcae03..ede28d1e651443d916d3d4e1d3c567a6d8bdc90d 100644
--- a/designs/vivado/scalp_firmware/2020.2/src/hdl/scalp_firmware.vhd
+++ b/designs/vivado/scalp_firmware/2020.2/src/hdl/scalp_firmware.vhd
@@ -15,7 +15,7 @@
 -- Tool version: 2020.2
 -- Description: scalp_firmware
 --
--- Last update: 2021-05-18
+-- Last update: 2021-05-19
 --
 ---------------------------------------------------------------------------------
 
@@ -526,10 +526,10 @@ architecture arch of scalp_firmware is
     attribute keep of AuroraClkSlavexC  : signal is "true";
     attribute keep of AuroraClkMasterxC : signal is "true";
     -- Scalp Router
-    -- attribute mark_debug of WestRXM2SxD       : signal is "true";
-    -- attribute keep of WestRXM2SxD             : signal is "true";
-    -- attribute mark_debug of WestRXS2MxD       : signal is "true";
-    -- attribute keep of WestRXS2MxD             : signal is "true";
+    attribute mark_debug of WestRXM2SxD       : signal is "true";
+    attribute keep of WestRXM2SxD             : signal is "true";
+    attribute mark_debug of WestRXS2MxD       : signal is "true";
+    attribute keep of WestRXS2MxD             : signal is "true";
     -- attribute mark_debug of RXAxism2sVectorxD : signal is "true";
     -- attribute keep of RXAxism2sVectorxD       : signal is "true";
     -- attribute mark_debug of RXAxiss2mVectorxD : signal is "true";
@@ -872,7 +872,7 @@ begin
 
             -- type t_write_sp_states is (E_WR_SP_IDLE, E_WR_SP_VALID, E_WR_SP_WAIT);
 
-            type t_write_sp_states is (E_WR_SP_IDLE_0, E_WR_SP_VALID_0, E_WR_SP_WAIT_0, E_WR_SP_IDLE_1, E_WR_LAST_1, E_WR_SP_VALID_1, E_WR_SP_WAIT_1);
+            type t_write_sp_states is (E_WR_SP_IDLE, E_WR_SP_VALID_0, E_WR_SP_UNVALID_0, E_WR_SP_VALID_1, E_WR_SP_WAIT);
 
             signal ScalpRouterResetxRNA : std_ulogic := '0';
             -- Scalp Packets
@@ -891,19 +891,19 @@ begin
                  SpPayloadxD => C_SP_PAYLOAD_0);
             signal ScalpPacketValid12xS                  : std_ulogic                   := '0';
             --
-            signal WrSPStatexDP                          : t_write_sp_states            := E_WR_SP_IDLE_0;
-            signal WrSPStatexDN                          : t_write_sp_states            := E_WR_SP_IDLE_0;
+            signal WrSPStatexDP                          : t_write_sp_states            := E_WR_SP_IDLE;
+            signal WrSPStatexDN                          : t_write_sp_states            := E_WR_SP_IDLE;
             signal VioWrSpValidxS                        : std_ulogic                   := '0';
             --
             signal RXSideLLxDP                           : t_scalp_rx_link_layer_states := E_SCALP_RX_LINK_LAYER_IDLE;
             signal RXSideLLxDN                           : t_scalp_rx_link_layer_states := E_SCALP_RX_LINK_LAYER_IDLE;
             -- Scalp Packet
-            attribute mark_debug of ScalpPacket0xD       : signal is "true";
-            attribute keep of ScalpPacket0xD             : signal is "true";
+            -- attribute mark_debug of ScalpPacket0xD       : signal is "true";
+            -- attribute keep of ScalpPacket0xD             : signal is "true";
             attribute mark_debug of ScalpPacketValid12xS : signal is "true";
             attribute keep of ScalpPacketValid12xS       : signal is "true";
-            attribute mark_debug of ScalpPacketLocalxD   : signal is "true";
-            attribute keep of ScalpPacketLocalxD         : signal is "true";
+            -- attribute mark_debug of ScalpPacketLocalxD   : signal is "true";
+            -- attribute keep of ScalpPacketLocalxD         : signal is "true";
             -- VIO
             -- attribute mark_debug of VioWrSpValidxS       : signal is "true";
             -- attribute keep of VioWrSpValidxS             : signal is "true";
@@ -1127,7 +1127,7 @@ begin
                                        ScalpRouterResetxRNA) is
                 begin  -- process UpdateRegxP
                     if ScalpRouterResetxRNA = '0' then
-                        WrSPStatexDP <= E_WR_SP_IDLE_0;
+                        WrSPStatexDP <= E_WR_SP_IDLE;
                     elsif rising_edge(AuroraClkMasterxC.UserClkxC) then
                         WrSPStatexDP <= WrSPStatexDN;
                     end if;
@@ -1140,35 +1140,47 @@ begin
                     ScalpPacketValid12xS <= '0';
 
                     case WrSPStatexDP is
-                        when E_WR_SP_IDLE_0 =>
+                        when E_WR_SP_IDLE =>
                                 if VioWrSpValidxS = '1' then
                                     ScalpPacketValid12xS <= '1';
                                     WrSPStatexDN         <= E_WR_SP_VALID_0;
                                 end if;
                         when E_WR_SP_VALID_0 =>
                                 ScalpPacketValid12xS <= '0';
-                                WrSPStatexDN         <= E_WR_SP_WAIT_0;
-                        when E_WR_SP_WAIT_0 =>
-                                WrSPStatexDN <= E_WR_SP_IDLE_1;
+                                WrSPStatexDN         <= E_WR_SP_UNVALID_0;
 
-                        when E_WR_SP_IDLE_1 =>
-                                if RXAxism2sVectorxD(C_LOCAL_IF_ID).LastxS = '1' then
-                                    WrSPStatexDN <= E_WR_LAST_1;
-                                end if;
-
-                        when E_WR_LAST_1 =>
-                                if RXAxism2sVectorxD(C_LOCAL_IF_ID).LastxS = '0' then
-                                    ScalpPacketValid12xS <= '1';
-                                    WrSPStatexDN         <= E_WR_SP_VALID_1;
-                                end if;
+                        when E_WR_SP_UNVALID_0 =>
+                                ScalpPacketValid12xS <= '1';
+                                WrSPStatexDN         <= E_WR_SP_VALID_1;
 
                         when E_WR_SP_VALID_1 =>
                                 ScalpPacketValid12xS <= '0';
-                                WrSPStatexDN         <= E_WR_SP_WAIT_1;
-
-                        when E_WR_SP_WAIT_1 =>
+                                WrSPStatexDN         <= E_WR_SP_WAIT;
+                                
+                        -- when E_WR_SP_WAIT_0 =>
+                        --         WrSPStatexDN <= E_WR_SP_IDLE_1;
+
+                        -- when E_WR_SP_IDLE_1 =>
+                        --         if RXAxism2sVectorxD(C_LOCAL_IF_ID).LastxS = '1' then
+                        --             WrSPStatexDN <= E_WR_LAST_1;
+                        --             ScalpPacketValid12xS <= '1';
+                        --         end if;
+
+                        -- when E_WR_LAST_1 =>
+                        --         if RXAxism2sVectorxD(C_LOCAL_IF_ID).LastxS = '0' then
+                        --             -- ScalpPacketValid12xS <= '1';
+                        --             ScalpPacketValid12xS <= '0';
+                        --             -- WrSPStatexDN         <= E_WR_SP_VALID_1;
+                        --             WrSPStatexDN         <= E_WR_SP_WAIT_1;
+                        --         end if;
+
+                        -- -- when E_WR_SP_VALID_1 =>
+                        -- --         ScalpPacketValid12xS <= '0';
+                        -- --         WrSPStatexDN         <= E_WR_SP_WAIT_1;
+
+                        when E_WR_SP_WAIT =>
                                 if VioWrSpValidxS = '0' then
-                                    WrSPStatexDN <= E_WR_SP_IDLE_0;
+                                    WrSPStatexDN <= E_WR_SP_IDLE;
                                 end if;
                         -- if VioWrSpValidxS = '0' then
                         --     WrSPStatexDN <= E_WR_SP_IDLE;
diff --git a/ips/hw/scalp_aurora_phy/src/hdl/scalp_aurora_phy.vhd b/ips/hw/scalp_aurora_phy/src/hdl/scalp_aurora_phy.vhd
index 04fd55cd020cbd4ec8bc64263f1a83a6f577f9d8..064050f5d1fe6e9caa502f61a08e354bb65ba172 100644
--- a/ips/hw/scalp_aurora_phy/src/hdl/scalp_aurora_phy.vhd
+++ b/ips/hw/scalp_aurora_phy/src/hdl/scalp_aurora_phy.vhd
@@ -15,7 +15,7 @@
 -- Tool version: 2020.2
 -- Description: scalp_aurora_phy
 --
--- Last update: 2021-01-11
+-- Last update: 2021-05-19
 --
 ---------------------------------------------------------------------------------
 
@@ -274,8 +274,8 @@ architecture arch of scalp_aurora_phy is
     -- attribute keep of WestTXM2SxD       : signal is "true";
     -- attribute mark_debug of WestTXS2MxD : signal is "true";
     -- attribute keep of WestTXS2MxD       : signal is "true";
-    -- attribute mark_debug of WestRXM2SxD : signal is "true";
-    -- attribute keep of WestRXM2SxD       : signal is "true";
+    attribute mark_debug of WestRXM2SxD : signal is "true";
+    attribute keep of WestRXM2SxD       : signal is "true";
     -- attribute mark_debug of WestTXNFCM2SxD           : signal is "true";
     -- attribute keep of WestTXNFCM2SxD                 : signal is "true";
     -- attribute mark_debug of WestTXNFCS2MxD           : signal is "true";