[warning] some minor source RTL changes for vcs compatibility
diff --git a/verilog/rtl/caravel.v b/verilog/rtl/caravel.v
index fa85ee2..12a597e 100644
--- a/verilog/rtl/caravel.v
+++ b/verilog/rtl/caravel.v
@@ -117,8 +117,8 @@
 
     output flash_csb,
     output flash_clk,
-    output flash_io0,
-    output flash_io1
+    inout flash_io0,
+    inout flash_io1
 );
 
     //------------------------------------------------------------
diff --git a/verilog/rtl/mgmt_core.v b/verilog/rtl/mgmt_core.v
index dff9c0f..8241d99 100644
--- a/verilog/rtl/mgmt_core.v
+++ b/verilog/rtl/mgmt_core.v
@@ -125,7 +125,7 @@
 	assign sdo_out = (sdo_oenb_state == 1'b0) ? mgmt_out_data[1] : sdo_out_pre;
 	assign jtag_out = (jtag_oenb_state == 1'b0) ? mgmt_out_data[0] : jtag_out_pre;
 
-	caravel_clocking clocking(
+	caravel_clocking clocking_inst (
 	`ifdef USE_POWER_PINS
 		.vdd1v8(VPWR),
 		.vss(VGND),
diff --git a/verilog/rtl/mgmt_protect_hv.v b/verilog/rtl/mgmt_protect_hv.v
index 23d9cf6..cb11a7a 100644
--- a/verilog/rtl/mgmt_protect_hv.v
+++ b/verilog/rtl/mgmt_protect_hv.v
@@ -45,8 +45,10 @@
 `ifdef USE_POWER_PINS
     // This is to emulate the substrate shorting grounds together for LVS
     // purposes
-    assign vssa2 = vssa1;
-    assign vssa1 = vssd;
+    //assign vssa2 = vssa1;
+    //assign vssa1 = vssd;
+    tran(vssa2, vssa1);
+    tran(vssa1, vssd);
 `endif
 
     // Logic high in the VDDA (3.3V) domains
diff --git a/verilog/rtl/mgmt_soc.v b/verilog/rtl/mgmt_soc.v
index 17a73f4..d55e8db 100644
--- a/verilog/rtl/mgmt_soc.v
+++ b/verilog/rtl/mgmt_soc.v
@@ -479,6 +479,8 @@
         .ser_rx(mgmt_in_data[5])
     );
 
+    wire [`MPRJ_IO_PADS-1:0] mgmt_out_pre;
+
     // Wishbone SPI master
     wire spi_master_stb_i;
     wire spi_master_ack_o;
@@ -503,6 +505,7 @@
         .wb_ack_o(spi_master_ack_o),
         .wb_dat_o(spi_master_dat_o),
 
+
 	.hk_connect(hk_connect),
         .csb(mgmt_out_pre[3]),
         .sck(mgmt_out_pre[4]),
@@ -693,7 +696,6 @@
     wire mprj_ctrl_stb_i;
     wire mprj_ctrl_ack_o;
     wire [31:0] mprj_ctrl_dat_o;
-    wire [`MPRJ_IO_PADS-1:0] mgmt_out_pre;
 
     // Bits assigned to specific functions as outputs prevent the
     // mprj GPIO-as-output from applying data when that function
diff --git a/verilog/rtl/wb_intercon.v b/verilog/rtl/wb_intercon.v
index 7ebce83..2013eb8 100644
--- a/verilog/rtl/wb_intercon.v
+++ b/verilog/rtl/wb_intercon.v
@@ -17,7 +17,23 @@
 module wb_intercon #(
     parameter DW = 32,          // Data Width
     parameter AW = 32,          // Address Width
-    parameter NS = 6           // Number of Slaves
+    parameter NS = 6,           // Number of Slaves
+    parameter [NS*AW-1:0] ADR_MASK = {      // Page & Sub-page bits
+        {8'hFF, {24{1'b0}} },
+        {8'hFF, {24{1'b0}} },
+        {8'hFF, {24{1'b0}} },
+        {8'hFF, {24{1'b0}} },
+        {8'hFF, {24{1'b0}} },
+        {8'hFF, {24{1'b0}} }
+    },
+    parameter [NS*AW-1:0] SLAVE_ADR = {
+        { 32'h2800_0000 },    // Flash Configuration Register
+        { 32'h2200_0000 },    // System Control
+        { 32'h2100_0000 },    // GPIOs
+        { 32'h2000_0000 },    // UART 
+        { 32'h1000_0000 },    // Flash 
+        { 32'h0000_0000 }     // RAM
+    }
 ) (
     // Master Interface
     input [AW-1:0] wbm_adr_i,
@@ -31,23 +47,7 @@
     input [NS-1:0] wbs_ack_i,
     output [NS-1:0] wbs_stb_o
 );
-    parameter [NS*AW-1:0] ADR_MASK = {      // Page & Sub-page bits
-        {8'hFF, {24{1'b0}} },
-        {8'hFF, {24{1'b0}} },
-        {8'hFF, {24{1'b0}} },
-        {8'hFF, {24{1'b0}} },
-        {8'hFF, {24{1'b0}} },
-        {8'hFF, {24{1'b0}} }
-    };
-    parameter [NS*AW-1:0] SLAVE_ADR = {
-        { 32'h2800_0000 },    // Flash Configuration Register
-        { 32'h2200_0000 },    // System Control
-        { 32'h2100_0000 },    // GPIOs
-        { 32'h2000_0000 },    // UART 
-        { 32'h1000_0000 },    // Flash 
-        { 32'h0000_0000 }     // RAM
-    };
-    
+
     wire [NS-1: 0] slave_sel;
 
     // Address decoder