deleted:    gds/macro_10.gds.gz
	deleted:    gds/macro_15.gds.gz
	deleted:    gds/macro_7.gds.gz
	deleted:    gds/macro_decap_12.gds.gz
	deleted:    gds/macro_decap_3.gds.gz
	deleted:    gds/macro_golden.gds.gz
	deleted:    gds/macro_nodecap.gds.gz
	deleted:    gds/macro_nofill.gds.gz
	deleted:    gds/user_proj_example.gds.gz
	new file:   gds/user_project_wrapper.gds
	deleted:    gds/user_project_wrapper.gds.gz
	modified:   mag/user_project_wrapper.mag
	modified:   maglef/user_project_wrapper.mag
	modified:   sdc/user_project_wrapper.sdc
	modified:   sdf/multicorner/max/user_project_wrapper.ff.sdf
	modified:   sdf/multicorner/max/user_project_wrapper.ss.sdf
	modified:   sdf/multicorner/max/user_project_wrapper.tt.sdf
	modified:   sdf/multicorner/min/user_project_wrapper.ff.sdf
	modified:   sdf/multicorner/min/user_project_wrapper.ss.sdf
	modified:   sdf/multicorner/min/user_project_wrapper.tt.sdf
	modified:   sdf/multicorner/nom/user_project_wrapper.ff.sdf
	modified:   sdf/multicorner/nom/user_project_wrapper.ss.sdf
	modified:   sdf/multicorner/nom/user_project_wrapper.tt.sdf
	modified:   sdf/user_project_wrapper.sdf
	modified:   signoff/user_project_wrapper/metrics.csv
	modified:   verilog/gl/user_project_wrapper.v
	modified:   verilog/rtl/user_project_wrapper.v
diff --git a/gds/macro_10.gds.gz b/gds/macro_10.gds.gz
deleted file mode 100644
index 63702e5..0000000
--- a/gds/macro_10.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/macro_15.gds.gz b/gds/macro_15.gds.gz
deleted file mode 100644
index facd899..0000000
--- a/gds/macro_15.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/macro_7.gds.gz b/gds/macro_7.gds.gz
deleted file mode 100644
index f83d68a..0000000
--- a/gds/macro_7.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/macro_decap_12.gds.gz b/gds/macro_decap_12.gds.gz
deleted file mode 100644
index aa78fc6..0000000
--- a/gds/macro_decap_12.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/macro_decap_3.gds.gz b/gds/macro_decap_3.gds.gz
deleted file mode 100644
index 9c80271..0000000
--- a/gds/macro_decap_3.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/macro_golden.gds.gz b/gds/macro_golden.gds.gz
deleted file mode 100644
index b3ef045..0000000
--- a/gds/macro_golden.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/macro_nodecap.gds.gz b/gds/macro_nodecap.gds.gz
deleted file mode 100644
index 5f47103..0000000
--- a/gds/macro_nodecap.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/macro_nofill.gds.gz b/gds/macro_nofill.gds.gz
deleted file mode 100644
index 9973329..0000000
--- a/gds/macro_nofill.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/user_proj_example.gds.gz b/gds/user_proj_example.gds.gz
deleted file mode 100644
index c14b010..0000000
--- a/gds/user_proj_example.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/user_project_wrapper.gds b/gds/user_project_wrapper.gds
new file mode 100644
index 0000000..c0554a4
--- /dev/null
+++ b/gds/user_project_wrapper.gds
Binary files differ
diff --git a/gds/user_project_wrapper.gds.gz b/gds/user_project_wrapper.gds.gz
deleted file mode 100644
index b630057..0000000
--- a/gds/user_project_wrapper.gds.gz
+++ /dev/null
Binary files differ
diff --git a/mag/user_project_wrapper.mag b/mag/user_project_wrapper.mag
index d971501..078101c 100644
--- a/mag/user_project_wrapper.mag
+++ b/mag/user_project_wrapper.mag
@@ -1,7 +1,7 @@
 magic
 tech sky130A
 magscale 1 2
-timestamp 1672278875
+timestamp 1672290021
 << metal1 >>
 rect 348786 700612 348792 700664
 rect 348844 700652 348850 700664
diff --git a/maglef/user_project_wrapper.mag b/maglef/user_project_wrapper.mag
index bcec7cd..18f7c16 100644
--- a/maglef/user_project_wrapper.mag
+++ b/maglef/user_project_wrapper.mag
@@ -1,7 +1,7 @@
 magic
 tech sky130A
 magscale 1 2
-timestamp 1672278948
+timestamp 1672290065
 << obsli1 >>
 rect 61104 82159 418880 517681
 << obsm1 >>
@@ -3750,7 +3750,7 @@
 string LEFclass BLOCK
 string LEFview TRUE
 string GDS_END 23036000
-string GDS_FILE /opt/caravel_mpw8/openlane/user_project_wrapper/runs/22_12_28_20_48/results/signoff/user_project_wrapper.magic.gds
+string GDS_FILE /opt/caravel_mpw8/openlane/user_project_wrapper/runs/22_12_28_23_56/results/signoff/user_project_wrapper.magic.gds
 string GDS_START 13739858
 << end >>
 
diff --git a/sdc/user_project_wrapper.sdc b/sdc/user_project_wrapper.sdc
index b09403f..dd3b022 100644
--- a/sdc/user_project_wrapper.sdc
+++ b/sdc/user_project_wrapper.sdc
@@ -1,6 +1,6 @@
 ###############################################################################
 # Created by write_sdc
-# Thu Dec 29 01:48:53 2022
+# Thu Dec 29 04:56:12 2022
 ###############################################################################
 current_design user_project_wrapper
 ###############################################################################
diff --git a/sdf/multicorner/max/user_project_wrapper.ff.sdf b/sdf/multicorner/max/user_project_wrapper.ff.sdf
index 60a6ba0..34156e0 100644
--- a/sdf/multicorner/max/user_project_wrapper.ff.sdf
+++ b/sdf/multicorner/max/user_project_wrapper.ff.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:53:59 2022")
+ (DATE "Thu Dec 29 04:59:55 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/multicorner/max/user_project_wrapper.ss.sdf b/sdf/multicorner/max/user_project_wrapper.ss.sdf
index 6380495..e5339b3 100644
--- a/sdf/multicorner/max/user_project_wrapper.ss.sdf
+++ b/sdf/multicorner/max/user_project_wrapper.ss.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:53:59 2022")
+ (DATE "Thu Dec 29 04:59:55 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/multicorner/max/user_project_wrapper.tt.sdf b/sdf/multicorner/max/user_project_wrapper.tt.sdf
index 2e8812a..3727678 100644
--- a/sdf/multicorner/max/user_project_wrapper.tt.sdf
+++ b/sdf/multicorner/max/user_project_wrapper.tt.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:53:59 2022")
+ (DATE "Thu Dec 29 04:59:55 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/multicorner/min/user_project_wrapper.ff.sdf b/sdf/multicorner/min/user_project_wrapper.ff.sdf
index fb0d9cc..533a8c2 100644
--- a/sdf/multicorner/min/user_project_wrapper.ff.sdf
+++ b/sdf/multicorner/min/user_project_wrapper.ff.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:53:37 2022")
+ (DATE "Thu Dec 29 04:59:41 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/multicorner/min/user_project_wrapper.ss.sdf b/sdf/multicorner/min/user_project_wrapper.ss.sdf
index ca1c2f0..6ad5de4 100644
--- a/sdf/multicorner/min/user_project_wrapper.ss.sdf
+++ b/sdf/multicorner/min/user_project_wrapper.ss.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:53:37 2022")
+ (DATE "Thu Dec 29 04:59:41 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/multicorner/min/user_project_wrapper.tt.sdf b/sdf/multicorner/min/user_project_wrapper.tt.sdf
index 8c624c9..e0f1797 100644
--- a/sdf/multicorner/min/user_project_wrapper.tt.sdf
+++ b/sdf/multicorner/min/user_project_wrapper.tt.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:53:37 2022")
+ (DATE "Thu Dec 29 04:59:41 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/multicorner/nom/user_project_wrapper.ff.sdf b/sdf/multicorner/nom/user_project_wrapper.ff.sdf
index 50810d8..2854649 100644
--- a/sdf/multicorner/nom/user_project_wrapper.ff.sdf
+++ b/sdf/multicorner/nom/user_project_wrapper.ff.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:54:15 2022")
+ (DATE "Thu Dec 29 05:00:08 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/multicorner/nom/user_project_wrapper.ss.sdf b/sdf/multicorner/nom/user_project_wrapper.ss.sdf
index 115184a..f7dcc30 100644
--- a/sdf/multicorner/nom/user_project_wrapper.ss.sdf
+++ b/sdf/multicorner/nom/user_project_wrapper.ss.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:54:15 2022")
+ (DATE "Thu Dec 29 05:00:08 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/multicorner/nom/user_project_wrapper.tt.sdf b/sdf/multicorner/nom/user_project_wrapper.tt.sdf
index b4e6e6f..f1c5bf5 100644
--- a/sdf/multicorner/nom/user_project_wrapper.tt.sdf
+++ b/sdf/multicorner/nom/user_project_wrapper.tt.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:54:15 2022")
+ (DATE "Thu Dec 29 05:00:08 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/sdf/user_project_wrapper.sdf b/sdf/user_project_wrapper.sdf
index 05408cd..b6bc02e 100644
--- a/sdf/user_project_wrapper.sdf
+++ b/sdf/user_project_wrapper.sdf
@@ -1,7 +1,7 @@
 (DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "user_project_wrapper")
- (DATE "Thu Dec 29 01:54:26 2022")
+ (DATE "Thu Dec 29 05:00:15 2022")
  (VENDOR "Parallax")
  (PROGRAM "STA")
  (VERSION "2.3.2")
diff --git a/signoff/user_project_wrapper/metrics.csv b/signoff/user_project_wrapper/metrics.csv
index 9f33fb1..4ab2cf6 100644
--- a/signoff/user_project_wrapper/metrics.csv
+++ b/signoff/user_project_wrapper/metrics.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,CoreArea_um^2,power_slowest_internal_uW,power_slowest_switching_uW,power_slowest_leakage_uW,power_typical_internal_uW,power_typical_switching_uW,power_typical_leakage_uW,power_fastest_internal_uW,power_fastest_switching_uW,power_fastest_leakage_uW,critical_path_ns,suggested_clock_period,suggested_clock_frequency,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GRT_ADJUSTMENT,STD_CELL_LIBRARY,DIODE_INSERTION_STRATEGY

-/opt/caravel_mpw8/openlane/user_project_wrapper,user_project_wrapper,22_12_28_20_48,flow completed,0h13m37s0ms,0h4m37s0ms,-2.0,-1,-1,-1,886.83,8,0,0,0,0,0,0,0,-1,0,-1,-1,4353365,23705,0.0,-1,-1,0.0,0.0,0.0,-1,-1,0.0,0.0,-1,0.0,6.52,14.42,4.59,11.23,-1,29,957,29,957,0,0,0,8,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,10173980.1536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10.0,100.0,10,AREA 0,10,50,1,180,180,0.55,0.3,sky130_fd_sc_hd,0

+/opt/caravel_mpw8/openlane/user_project_wrapper,user_project_wrapper,22_12_28_23_56,flow completed,0h9m34s0ms,0h3m23s0ms,-2.0,-1,-1,-1,873.77,8,0,0,0,0,0,0,0,-1,0,-1,-1,4353365,23705,0.0,-1,-1,0.0,0.0,0.0,-1,-1,0.0,0.0,-1,0.0,6.52,14.42,4.59,11.23,-1,29,957,29,957,0,0,0,8,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,10173980.1536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10.0,100.0,10,AREA 0,10,50,1,180,180,0.55,0.3,sky130_fd_sc_hd,0

diff --git a/verilog/gl/user_project_wrapper.v b/verilog/gl/user_project_wrapper.v
index d0fc3e9..1dfb355 100644
--- a/verilog/gl/user_project_wrapper.v
+++ b/verilog/gl/user_project_wrapper.v
@@ -53,7 +53,7 @@
  output [31:0] wbs_dat_o;
  input [3:0] wbs_sel_i;
 
-/*
+
  macro_10 u_macro_10 (.io_active(la_data_in[3]),
     .vccd1(vccd1),
     .vssd1(vssd1),
@@ -660,10 +660,6 @@
     wbs_sel_i[2],
     wbs_sel_i[1],
     wbs_sel_i[0]}));
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
  macro_15 u_macro_15 (.io_active(la_data_in[4]),
     .vccd1(vccd1),
     .vssd1(vssd1),
@@ -1270,10 +1266,6 @@
     wbs_sel_i[2],
     wbs_sel_i[1],
     wbs_sel_i[0]}));
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
  macro_7 u_macro_7 (.io_active(la_data_in[2]),
     .vccd1(vccd1),
     .vssd1(vssd1),
@@ -1880,9 +1872,6 @@
     wbs_sel_i[2],
     wbs_sel_i[1],
     wbs_sel_i[0]}));
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
  macro_decap_12 u_macro_decap_12 (.io_active(la_data_in[6]),
     .vccd1(vccd1),
     .vssd1(vssd1),
@@ -2489,10 +2478,6 @@
     wbs_sel_i[2],
     wbs_sel_i[1],
     wbs_sel_i[0]}));
-
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
  macro_decap_3 u_macro_decap_3 (.io_active(la_data_in[5]),
     .vccd1(vccd1),
     .vssd1(vssd1),
@@ -3099,10 +3084,6 @@
     wbs_sel_i[2],
     wbs_sel_i[1],
     wbs_sel_i[0]}));
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-*/
  macro_golden u_macro_golden (.io_active(la_data_in[1]),
     .vccd1(vccd1),
     .vssd1(vssd1),
@@ -3709,9 +3690,6 @@
     wbs_sel_i[2],
     wbs_sel_i[1],
     wbs_sel_i[0]}));
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-/*
  macro_nodecap u_macro_nodecap (.io_active(la_data_in[7]),
     .vccd1(vccd1),
     .vssd1(vssd1),
@@ -4318,10 +4296,6 @@
     wbs_sel_i[2],
     wbs_sel_i[1],
     wbs_sel_i[0]}));
-
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
  macro_nofill u_macro_nofill (.io_active(la_data_in[8]),
     .vccd1(vccd1),
     .vssd1(vssd1),
@@ -4928,5 +4902,4 @@
     wbs_sel_i[2],
     wbs_sel_i[1],
     wbs_sel_i[0]}));
-*/
 endmodule
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 1450111..7eff199 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -1,69 +1,85 @@
 // SPDX-FileCopyrightText: 2020 Efabless Corporation
-// //
-// // Licensed under the Apache License, Version 2.0 (the "License");
-// // you may not use this file except in compliance with the License.
-// // You may obtain a copy of the License at
-// //
-// //      http://www.apache.org/licenses/LICENSE-2.0
-// //
-// // Unless required by applicable law or agreed to in writing, software
-// // distributed under the License is distributed on an "AS IS" BASIS,
-// // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// // See the License for the specific language governing permissions and
-// // limitations under the License.
-// // SPDX-License-Identifier: Apache-2.0
-
-
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
 
 `default_nettype none
+/*
+ *-------------------------------------------------------------
+ *
+ * user_project_wrapper
+ *
+ * This wrapper enumerates all of the pins available to the
+ * user for the user project.
+ *
+ * An example user project is provided in this wrapper.  The
+ * example should be removed and replaced with the actual
+ * user project.
+ *
+ * THIS FILE HAS BEEN GENERATED USING multi_tools_project CODEGEN
+ * IF YOU NEED TO MAKE EDITS TO IT, EDIT codegen/caravel_iface_header.txt
+ *
+ *-------------------------------------------------------------
+ */
 
-`ifndef MPRJ_IO_PADS
-	`define MPRJ_IO_PADS 38
+module user_project_wrapper #(
+    parameter BITS = 32
+)(
+`ifdef USE_POWER_PINS
+    inout vdda1,       // User area 1 3.3V supply
+    inout vdda2,       // User area 2 3.3V supply
+    inout vssa1,       // User area 1 analog ground
+    inout vssa2,       // User area 2 analog ground
+    inout vccd1,       // User area 1 1.8V supply
+    inout vccd2,       // User area 2 1.8v supply
+    inout vssd1,       // User area 1 digital ground
+    inout vssd2,       // User area 2 digital ground
 `endif
 
-module user_project_wrapper (
-	`ifdef USE_POWER_PINS
-		inout vdda1,	// User area 1 3.3V supply
-		inout vdda2,	// User area 2 3.3V supply
-		inout vssa1,	// User area 1 analog ground
-		inout vssa2,	// User area 2 analog ground
-		inout vccd1,	// User area 1 1.8V supply
-		inout vccd2,	// User area 2 1.8v supply
-		inout vssd1,	// User area 1 digital ground
-		inout vssd2,	// User area 2 digital ground
-	`endif
+    // Wishbone Slave ports (WB MI A)
+    input wb_clk_i,
+    input wb_rst_i,
+    input wbs_stb_i,
+    input wbs_cyc_i,
+    input wbs_we_i,
+    input [3:0] wbs_sel_i,
+    input [31:0] wbs_dat_i,
+    input [31:0] wbs_adr_i,
+    output wbs_ack_o,
+    output [31:0] wbs_dat_o,
 
-// Wishbone Slave ports (WB MI A)
- input wb_clk_i,
- input wb_rst_i,
- input wbs_stb_i,
- input wbs_cyc_i,
- input wbs_we_i,
- input [3:0] wbs_sel_i,
- input [31:0] wbs_dat_i,
- input [31:0] wbs_adr_i,
+    // Logic Analyzer Signals
+    input  [127:0] la_data_in,
+    output [127:0] la_data_out,
+    input  [127:0] la_oenb,
 
- output wbs_ack_o,
- output [31:0] wbs_dat_o,
+    // IOs
+    input  [`MPRJ_IO_PADS-1:0] io_in,
+    output [`MPRJ_IO_PADS-1:0] io_out,
+    output [`MPRJ_IO_PADS-1:0] io_oeb,
 
-// Logic Analyzer Signals
- input  [127:0] la_data_in,
- output [127:0] la_data_out,
- input  [127:0] la_oenb,
+    // Analog (direct connection to GPIO pad---use with caution)
+    // Note that analog I/O is not available on the 7 lowest-numbered
+    // GPIO pads, and so the analog_io indexing is offset from the
+    // GPIO indexing by 7 (also upper 2 GPIOs do not have analog_io).
+    inout [`MPRJ_IO_PADS-10:0] analog_io,
 
-// IOs
- input  [`MPRJ_IO_PADS-1:0] io_in,
- output [`MPRJ_IO_PADS-1:0] io_out,
- output [`MPRJ_IO_PADS-1:0] io_oeb,
+    // Independent clock (on independent integer divider)
+    input   user_clock2,
 
- inout [`MPRJ_IO_PADS-10:0] analog_io,
-
-// Independent clock (on independent integer divider)
- input   user_clock2,
-
-// User maskable interrupt signals
- output [2:0] user_irq
- );
+    // User maskable interrupt signals
+    output [2:0] user_irq
+);
 
  /*--------------------------------------*/
  /* User project is instantiated  here   */