Finalized the voltage clamp arrangement and the total number of pads.
diff --git a/verilog/rtl/chip_io.v b/verilog/rtl/chip_io.v
index ebe0234..5238bef 100644
--- a/verilog/rtl/chip_io.v
+++ b/verilog/rtl/chip_io.v
@@ -73,97 +73,62 @@
 	// 12 pads:  vddio, vssio, vdda, vssa, vccd, vssd
 	// One each HV and LV clamp.
 
-    	s8iom0_vddio_hvc_pad mgmt_vddio_hvclamp_pad (
+	// HV clamps connect between one HV power rail and one ground
+	// LV clamps have two clamps connecting between any two LV power
+	// rails and grounds, and one back-to-back diode which connects
+	// between the first LV clamp ground and any other ground.
+
+    	s8iom0_vddio_hvc_pad mgmt_vddio_hvclamp_pad [1:0] (
 		`MGMT_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
-    	s8iom0_vddio_lvc_pad mgmt_vddio_lvclamp_pad (
-		`MGMT_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`HVCLAMP_PINS(vddio, vssio)
     	);
 
     	s8iom0_vdda_hvc_pad mgmt_vdda_hvclamp_pad (
 		`MGMT_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
-    	s8iom0_vdda_lvc_pad mgmt_vdda_lvclamp_pad (
-		`MGMT_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`HVCLAMP_PINS(vdda, vssa)
     	);
 
-    	s8iom0_vccd_hvc_pad mgmt_vccd_hvclamp_pad (
-		`MGMT_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
     	s8iom0_vccd_lvc_pad mgmt_vccd_lvclamp_pad (
 		`MGMT_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`LVCLAMP_PINS(vccd, vssio, vccd, vssd, vssa)
     	);
 
-    	s8iom0_vssio_hvc_pad mgmt_vssio_hvclamp_pad (
+    	s8iom0_vssio_hvc_pad mgmt_vssio_hvclamp_pad [1:0] (
 		`MGMT_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
-    	s8iom0_vssio_lvc_pad mgmt_vssio_lvclamp_pad (
-		`MGMT_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`HVCLAMP_PINS(vddio, vssio)
     	);
 
     	s8iom0_vssa_hvc_pad mgmt_vssa_hvclamp_pad (
 		`MGMT_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
-    	s8iom0_vssa_lvc_pad mgmt_vssa_lvclamp_pad (
-		`MGMT_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`HVCLAMP_PINS(vdda, vssa)
     	);
 
-    	s8iom0_vssd_hvc_pad mgmt_vssd_hvclamp_pad (
-		`MGMT_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
     	s8iom0_vssd_lvc_pad mgmt_vssd_lvclmap_pad (
 		`MGMT_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`LVCLAMP_PINS(vccd, vssio, vccd, vssd, vssa)
     	);
 
 	// Instantiate power and ground pads for user 1 domain
 	// 8 pads:  vdda, vssa, vccd, vssd;  One each HV and LV clamp.
 
-    	s8iom0_vdda_hvc_pad user1_vdda_hvclamp_pad (
+    	s8iom0_vdda_hvc_pad user1_vdda_hvclamp_pad [1:0] (
 		`USER1_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
-    	s8iom0_vdda_lvc_pad user1_vdda_lvclamp_pad (
-		`USER1_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`HVCLAMP_PINS(vdda1, vssa1)
     	);
 
-    	s8iom0_vccd_hvc_pad user1_vccd_hvclamp_pad (
-		`USER1_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
     	s8iom0_vccd_lvc_pad user1_vccd_lvclamp_pad (
 		`USER1_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`LVCLAMP_PINS(vccd1, vssd1, vccd1, vssd, vssio)
     	);
 
-    	s8iom0_vssa_hvc_pad user1_vssa_hvclamp_pad (
+    	s8iom0_vssa_hvc_pad user1_vssa_hvclamp_pad [1:0] (
 		`USER1_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
-    	s8iom0_vssa_lvc_pad user1_vssa_lvclamp_pad (
-		`USER1_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`HVCLAMP_PINS(vdda1, vssa1)
     	);
 
-    	s8iom0_vssd_hvc_pad user1_vssd_hvclamp_pad (
-		`USER1_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
     	s8iom0_vssd_lvc_pad user1_vssd_lvclmap_pad (
 		`USER1_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`LVCLAMP_PINS(vccd1, vssd1, vccd1, vssd, vssio)
     	);
 
 	// Instantiate power and ground pads for user 2 domain
@@ -171,38 +136,22 @@
 
     	s8iom0_vdda_hvc_pad user2_vdda_hvclamp_pad (
 		`USER2_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
-    	s8iom0_vdda_lvc_pad user2_vdda_lvclamp_pad (
-		`USER2_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`HVCLAMP_PINS(vdda2, vssa2)
     	);
 
-    	s8iom0_vccd_hvc_pad user2_vccd_hvclamp_pad (
-		`USER2_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
     	s8iom0_vccd_lvc_pad user2_vccd_lvclamp_pad (
 		`USER2_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`LVCLAMP_PINS(vccd2, vssd2, vccd2, vssd, vssio)
     	);
 
     	s8iom0_vssa_hvc_pad user2_vssa_hvclamp_pad (
 		`USER2_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
-    	s8iom0_vssa_lvc_pad user2_vssa_lvclamp_pad (
-		`USER2_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`HVCLAMP_PINS(vdda2, vssa2)
     	);
 
-    	s8iom0_vssd_hvc_pad user2_vssd_hvclamp_pad (
-		`USER2_ABUTMENT_PINS
-		`HVCLAMP_PINS
-    	);
     	s8iom0_vssd_lvc_pad user2_vssd_lvclmap_pad (
 		`USER2_ABUTMENT_PINS
-		`LVCLAMP_PINS
+		`LVCLAMP_PINS(vccd2, vssd2, vccd2, vssd, vssio)
     	);
 
 	wire [2:0] dm_all =
diff --git a/verilog/rtl/pads.v b/verilog/rtl/pads.v
index b17bf1d..1c3a4bf 100644
--- a/verilog/rtl/pads.v
+++ b/verilog/rtl/pads.v
@@ -46,16 +46,16 @@
 	`define MGMT_ABUTMENT_PINS 
 `endif
 
-`define HVCLAMP_PINS \
-	.drn_hvc(), \
-	.src_bdy_hvc()
+`define HVCLAMP_PINS(H,L) \
+	.drn_hvc(H), \
+	.src_bdy_hvc(L)
 
-`define LVCLAMP_PINS \
-	.bdy2_b2b(), \
-	.drn_lvc1(), \
-	.drn_lvc2(), \
-	.src_bdy_lvc1(), \
-	.src_bdy_lvc2()
+`define LVCLAMP_PINS(H1,L1,H2,L2,L3) \
+	.bdy2_b2b(L3), \
+	.drn_lvc1(H1), \
+	.drn_lvc2(H2), \
+	.src_bdy_lvc1(L1), \
+	.src_bdy_lvc2(L2)
 
 `define INPUT_PAD(X,Y) \
 	wire loop_``X; \