[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