Corrected some things from the initial pass of removing unused GPIO
signals and analog signals, and converting from EFS8A to sky130A.
Close to being able to simulate, with some hand-editing of the
standard cell library files.
diff --git a/verilog/rtl/caravel.v b/verilog/rtl/caravel.v
index 7cba9d4..16d7d7d 100644
--- a/verilog/rtl/caravel.v
+++ b/verilog/rtl/caravel.v
@@ -15,6 +15,7 @@
 `define USE_OPENRAM
 `define USE_PG_PIN
 `define functional
+`define UNIT_DELAY #1
 
 `define MPRJ_IO_PADS 32
 
@@ -30,9 +31,11 @@
 // `include "/home/tim/projects/efabless/tech/SW/sky130A/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v"
 // `include "/home/tim/projects/efabless/tech/SW/sky130A/libs.ref/sky130_fd_io/verilog/power_pads_lib.v"
 `include "/home/tim/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/verilog/s8iom0s8.v"
-`include "/home/tim/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/verilog/power_pads_lib.v"
-`include "/home/tim/projects/efabless/tech/SW/sky130A/libs.ref/verilog/sky130_fd_sc_hd/sky130_fd_sc_hd.v"
-`include "/home/tim/projects/efabless/tech/SW/sky130A/libs.ref/verilog/sky130_fd_sc_hd/sky130_fd_sc_hvl.v"
+// `include "/home/tim/projects/efabless/tech/SW/EFS8A/libs.ref/s8iom0s8/verilog/power_pads_lib.v"
+`include "/home/tim/projects/efabless/tech/SW/sky130A/libs.ref/sky130_fd_sc_hd/verilog/primitives.v"
+`include "/home/tim/projects/efabless/tech/SW/sky130A/libs.ref/sky130_fd_sc_hd/verilog/sky130_fd_sc_hd.v"
+`include "/home/tim/projects/efabless/tech/SW/sky130A/libs.ref/sky130_fd_sc_hvl/verilog/primitives.v"
+`include "/home/tim/projects/efabless/tech/SW/sky130A/libs.ref/sky130_fd_sc_hvl/verilog/sky130_fd_sc_hvl.v"
 
 `include "mgmt_soc.v"
 `include "striVe_spi.v"
@@ -218,7 +221,6 @@
 		.gpio_mode1_pad(gpio_mode1_core),
 		.gpio_outenb_pad(gpio_outenb_core),
 		.gpio_inenb_pad(gpio_inenb_core),
-		.spi_sck(SCK_core),
 		.spi_ro_config(spi_ro_config_core),
 		.ser_tx(ser_tx_core),
 		.ser_rx(ser_rx_core),
@@ -292,7 +294,7 @@
 	sky130_fd_sc_hd__ebufn_8 la_buf[127:0](
 		.Z(la_data_in_mprj),
 		.A(la_output_core),
-		.TEB(la_oen)
+		.TE_B(la_oen)
 	);
 	
 	mega_project mprj ( 
@@ -316,7 +318,7 @@
 		.io_in (mprj_io_in)
 	);
 
-    sky130_fd_sc_hvl__lsbufhv2lv (
+    sky130_fd_sc_hvl__lsbufhv2lv levelshift (
 	`ifdef LVS
 		.vpwr(vdd3v3),
 		.vpb(vdd3v3),
diff --git a/verilog/rtl/chip_io.v b/verilog/rtl/chip_io.v
index df0ca62..f3bba5e 100644
--- a/verilog/rtl/chip_io.v
+++ b/verilog/rtl/chip_io.v
@@ -165,7 +165,7 @@
 
     	// GPIO pads
 	`INOUT_PAD_V(
-		gpio, gpio_in_core, gpio_out_core, 16,
+		gpio, gpio_in_core, gpio_out_core, 2,
 		gpio_inenb_core, gpio_outenb_core, dm_all);
 	
 	// Flash pads
diff --git a/verilog/rtl/digital_pll.v b/verilog/rtl/digital_pll.v
index 0efe7bb..0f22108 100644
--- a/verilog/rtl/digital_pll.v
+++ b/verilog/rtl/digital_pll.v
@@ -77,31 +77,31 @@
     .CLK(clockp[1]),
     .D(clockd[0]),
     .Q(nint[0]),
-    .QN(clockd[0]),
-    .RESETB(resetb)
+    .Q_N(clockd[0]),
+    .RESET_B(resetb)
     );
 
     sky130_fd_sc_hd__dfrbp_1 idiv4 (
     .CLK(clockd[0]),
     .D(clockd[1]),
     .Q(nint[1]),
-    .QN(clockd[1]),
-    .RESETB(resetb)
+    .Q_N(clockd[1]),
+    .RESET_B(resetb)
     );
 
     sky130_fd_sc_hd__dfrbp_1 idiv8 (
     .CLK(clockd[1]),
     .D(clockd[2]),
     .Q(nint[2]),
-    .QN(clockd[2]),
-    .RESETB(resetb)
+    .Q_N(clockd[2]),
+    .RESET_B(resetb)
     );
 
     sky130_fd_sc_hd__dfrbp_1 idiv16 (
     .CLK(clockd[2]),
     .D(clockd[3]),
     .Q(nint[3]),
-    .QN(clockd[3]),
-    .RESETB(resetb)
+    .Q_N(clockd[3]),
+    .RESET_B(resetb)
     );
 endmodule
diff --git a/verilog/rtl/gpio_wb.v b/verilog/rtl/gpio_wb.v
index 5f014ce..9c55047 100644
--- a/verilog/rtl/gpio_wb.v
+++ b/verilog/rtl/gpio_wb.v
@@ -18,11 +18,11 @@
     output [31:0] wb_dat_o,
     output wb_ack_o,
 
-    input [15:0] gpio_in_pad,
-    output [15:0] gpio,
-    output [15:0] gpio_oeb,
-    output [15:0] gpio_pu,
-    output [15:0] gpio_pd
+    input [1:0] gpio_in_pad,
+    output [1:0] gpio,
+    output [1:0] gpio_oeb,
+    output [1:0] gpio_pu,
+    output [1:0] gpio_pd
 );
 
     wire resetn;
@@ -73,7 +73,7 @@
     input clk,
     input resetn,
 
-    input [15:0] gpio_in_pad,
+    input [1:0] gpio_in_pad,
 
     input [31:0] iomem_addr,
     input iomem_valid,
@@ -82,16 +82,16 @@
     output reg [31:0] iomem_rdata,
     output reg iomem_ready,
 
-    output [15:0] gpio,
-    output [15:0] gpio_oeb,
-    output [15:0] gpio_pu,
-    output [15:0] gpio_pd
+    output [1:0] gpio,
+    output [1:0] gpio_oeb,
+    output [1:0] gpio_pu,
+    output [1:0] gpio_pd
 );
 
-    reg [15:0] gpio;		// GPIO output data
-    reg [15:0] gpio_pu;		// GPIO pull-up enable
-    reg [15:0] gpio_pd;		// GPIO pull-down enable
-    reg [15:0] gpio_oeb;    // GPIO output enable (sense negative)
+    reg [1:0] gpio;		// GPIO output data
+    reg [1:0] gpio_pu;		// GPIO pull-up enable
+    reg [1:0] gpio_pd;		// GPIO pull-down enable
+    reg [1:0] gpio_oeb;    // GPIO output enable (sense negative)
     
     wire gpio_sel;
     wire gpio_oeb_sel;
@@ -115,28 +115,24 @@
                 iomem_ready <= 1'b 1;
                 
                 if (gpio_sel) begin
-                    iomem_rdata <= {gpio, gpio_in_pad};
+                    iomem_rdata <= {14'd0, gpio, 14'd0, gpio_in_pad};
 
-                    if (iomem_wstrb[0]) gpio[ 7: 0] <= iomem_wdata[ 7: 0];
-                    if (iomem_wstrb[1]) gpio[15: 8] <= iomem_wdata[15: 8];
+                    if (iomem_wstrb[0]) gpio[ 1: 0] <= iomem_wdata[ 1: 0];
 
                 end else if (gpio_oeb_sel) begin
-                    iomem_rdata <= {16'd0, gpio_oeb};
+                    iomem_rdata <= {30'd0, gpio_oeb};
 
-                    if (iomem_wstrb[0]) gpio_oeb[ 7: 0] <= iomem_wdata[ 7: 0];
-                    if (iomem_wstrb[1]) gpio_oeb[15: 8] <= iomem_wdata[15: 8];
+                    if (iomem_wstrb[0]) gpio_oeb[ 1: 0] <= iomem_wdata[ 1: 0];
 
                 end else if (gpio_pu_sel) begin
-                    iomem_rdata <= {16'd0, gpio_pu};
+                    iomem_rdata <= {30'd0, gpio_pu};
 
-                    if (iomem_wstrb[0]) gpio_pu[ 7: 0] <= iomem_wdata[ 7: 0];
-                    if (iomem_wstrb[1]) gpio_pu[15: 8] <= iomem_wdata[15: 8];
+                    if (iomem_wstrb[0]) gpio_pu[ 1: 0] <= iomem_wdata[ 1: 0];
 
                 end else if (gpio_pd_sel) begin
-                    iomem_rdata <= {16'd0, gpio_pd};          
+                    iomem_rdata <= {30'd0, gpio_pd};          
 
-                    if (iomem_wstrb[0]) gpio_pd[ 7: 0] <= iomem_wdata[ 7: 0];
-                    if (iomem_wstrb[1]) gpio_pd[15: 8] <= iomem_wdata[15: 8];
+                    if (iomem_wstrb[0]) gpio_pd[ 1: 0] <= iomem_wdata[ 1: 0];
 
                 end
 
@@ -144,4 +140,4 @@
         end
     end
 
-endmodule
\ No newline at end of file
+endmodule
diff --git a/verilog/rtl/mgmt_core.v b/verilog/rtl/mgmt_core.v
index b959155..ed0c79d 100644
--- a/verilog/rtl/mgmt_core.v
+++ b/verilog/rtl/mgmt_core.v
@@ -5,12 +5,12 @@
 	inout vss,
 `endif
 	input ext_clk,
-	output[ 15:0] gpio_out_pad,		// Connect to out on gpio pad
-	input  [15:0] gpio_in_pad,		// Connect to in on gpio pad
-	output [15:0] gpio_mode0_pad,		// Connect to dm[0] on gpio pad
-	output [15:0] gpio_mode1_pad,		// Connect to dm[2] on gpio pad
-	output [15:0] gpio_outenb_pad,		// Connect to oe_n on gpio pad
-	output [15:0] gpio_inenb_pad,		// Connect to inp_dis on gpio pad
+	output[ 1:0] gpio_out_pad,		// Connect to out on gpio pad
+	input  [1:0] gpio_in_pad,		// Connect to in on gpio pad
+	output [1:0] gpio_mode0_pad,		// Connect to dm[0] on gpio pad
+	output [1:0] gpio_mode1_pad,		// Connect to dm[2] on gpio pad
+	output [1:0] gpio_outenb_pad,		// Connect to oe_n on gpio pad
+	output [1:0] gpio_inenb_pad,		// Connect to inp_dis on gpio pad
 	input [7:0]   spi_ro_config,
 	output ser_tx,
 	input  ser_rx,
@@ -227,7 +227,7 @@
 	wire [3:0] mask_rev;
     	wire [3:0] no_connect;
 
-    	scs8hd_conb_1 mask_rev_value [3:0] (
+    	sky130_fd_sc_hd__conb_1 mask_rev_value [3:0] (
 	    `ifdef LVS
         	.vpwr(vdd1v8),
         	.vpb(vdd1v8),
diff --git a/verilog/rtl/ring_osc2x13.v b/verilog/rtl/ring_osc2x13.v
index 4363c00..c0531bd 100644
--- a/verilog/rtl/ring_osc2x13.v
+++ b/verilog/rtl/ring_osc2x13.v
@@ -28,7 +28,7 @@
 
     sky130_fd_sc_hd__einvn_4 delayenb1 (
 	.A(ts),
-	.TEB(trim[1]),
+	.TE_B(trim[1]),
 	.Z(d1)
     );
 
@@ -45,7 +45,7 @@
 
     sky130_fd_sc_hd__einvn_8 delayenb0 (
 	.A(ts),
-	.TEB(trim[0]),
+	.TE_B(trim[0]),
 	.Z(out)
     );
 
@@ -72,7 +72,7 @@
 
     sky130_fd_sc_hd__einvn_4 delayenb1 (
 	.A(in),
-	.TEB(trim[1]),
+	.TE_B(trim[1]),
 	.Z(d1)
     );
 
@@ -89,7 +89,7 @@
 
     sky130_fd_sc_hd__einvn_8 delayenb0 (
 	.A(in),
-	.TEB(ctrl0),
+	.TE_B(ctrl0),
 	.Z(out)
     );
 
diff --git a/verilog/rtl/sysctrl.v b/verilog/rtl/sysctrl.v
index 05861cd..9d66e66 100644
--- a/verilog/rtl/sysctrl.v
+++ b/verilog/rtl/sysctrl.v
@@ -92,7 +92,6 @@
 
     assign pll_out_sel  = (iomem_addr[7:0] == PLL_OUT);
     assign trap_out_sel = (iomem_addr[7:0] == TRAP_OUT);
-    assign xtal_out_sel = (iomem_addr[7:0] == XTAL_OUT);
 
     assign irq7_sel  = (iomem_addr[7:0] == IRQ7_SRC);
     assign irq8_sel  = (iomem_addr[7:0] == IRQ8_SRC);