diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/v2html_doc.tgz b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/v2html_doc.tgz
index b5ab1ab266686faa250d12e6b573122af4be7f58..b29fb20346495e7019a55cf841033762f29a84ad 100644
Binary files a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/v2html_doc.tgz and b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/v2html_doc.tgz differ
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_chip.v b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_chip.v
index 7de36974988985bba94c0a35d40813dffd8d4269..1fb254c20f9f0f39e065bece2dc33c57df2ba2a6 100644
--- a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_chip.v
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_chip.v
@@ -38,8 +38,6 @@
 
 `include "cmsdk_mcu_defs.v"
 
-`define SYNTHBOOTROM 1
-
 module cmsdk_mcu_chip #(
   //-----------------------------------------
   // CPU options
@@ -234,17 +232,17 @@ PAD_VDDIO uPAD_VDDIO_1(
    .PAD(VDDIO)
    );
 
-PAD_VDDIO uPAD_VSSIO_1(
+PAD_VSSIO uPAD_VSSIO_1(
    .PAD(VSSIO)
    );
 
 // Core power supplies
 
-PAD_VDDIO uPAD_VDD_1(
+PAD_VDDSOC uPAD_VDD_1(
    .PAD(VDD)
    );
 
-PAD_VDDIO uPAD_VSS_1(
+PAD_VSS uPAD_VSS_1(
    .PAD(VSS)
    );
 `endif
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_defs.v b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_defs.v
index dfb573e84482f04c08a8d1a0185de3ac889bd600..8862c6677f4fd6e2381580298d75276265b2d36a 100644
--- a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_defs.v
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_defs.v
@@ -9,6 +9,11 @@
 // Copyright © 2021, SoC Labs (www.soclabs.org)
 //-----------------------------------------------------------------------------
 
+`define BEHAVIORAL_PADS
+`define POWER_PINS
+`define SYNTHBOOTROM 1
+
+
 //-----------------------------------------------------------------------------
 // The confidential and proprietary information contained in this file may
 // only be used by a person authorised under and to the extent permitted
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/tb_cmsdk_mcu.v b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/tb_cmsdk_mcu.v
index 66051056f2f3883e809dc9b965e2db9da94c2939..2d07dad96a674624790385bede92a87497b40c63 100644
--- a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/tb_cmsdk_mcu.v
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/tb_cmsdk_mcu.v
@@ -47,7 +47,11 @@ module tb_cmsdk_mcu;
   wire [15:0] P0;      // Port 0
   wire [15:0] P1;      // Port 1
 
-
+  wire        VDDIO;
+  wire        VSSIO;
+  wire        VDD;
+  wire        VSS;
+  
   //Debug tester signals
   wire        nTRST;
   wire        TDI;
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/tbench_M0.vc b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/tbench_M0.vc
index f346e8511a864f10fb45d986b3fb2afd7e89c55c..13e0735825a1ff2fb2b0621a461c10b66dcf8eb2 100644
--- a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/tbench_M0.vc
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/tbench_M0.vc
@@ -49,6 +49,7 @@
 ../verilog/tb_cmsdk_mcu.v
 +incdir+../verilog
 
+// =============   GLIB Generic Library path  =============
 ../../../../../GLIB/pads/verilog/GLIB_PADLIB.v
 ../../../../../GLIB/mem/verilog/SROM_Ax32.v
 
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/v2html_M0.vc b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/v2html_M0.vc
index 3c7894ec54ed1bfbfc036b065b3201a580b9754c..cf46c0e74938e4036ca7fad9c4bd71f4515573ed 100644
--- a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/v2html_M0.vc
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/v2html_M0.vc
@@ -54,6 +54,20 @@
 -y ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_debug_tester/verilog
 +incdir+../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_debug_tester/verilog
 
+// =============   GLIB Generic Library path  =============
+../../../../../GLIB/pads/verilog/PAD_INOUT8MA_NOE.v
+../../../../../GLIB/pads/verilog/PAD_VDDIO.v
+../../../../../GLIB/pads/verilog/PAD_VSSIO.v
+../../../../../GLIB/pads/verilog/PAD_VDDSOC.v
+../../../../../GLIB/pads/verilog/PAD_VSS.v
+../../../../../GLIB/mem/verilog/SROM_Ax32.v
+
+// =============   IPLIB soclabs IP Library path  =============
+../../../../../IPLIB/FT1248_streamio_v1_0/ft1248_streamio_v1_0.v
+../../../../../IPLIB/ADPcontrol_v1_0/ADPcontrol_v1_0.v
+../../../../../IPLIB/ADPcontrol_v1_0/ADPmanager.v
+../verilog/cmsdk_apb_uart_streamio.v
+
 // =============    MCU Module search path    =============
 -y ../verilog
 -y ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_timer/verilog
@@ -78,15 +92,15 @@
 +incdir+../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_watchdog/verilog
 +incdir+../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/models/memories/
 
-//// Optional PL230 Micro DMA controller - configure in local ../verilog/pl230_defs.v file
-//-y ../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog
-+incdir+../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog
-../verilog/pl230_defs.v
-../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_ahb_ctrl.v
-../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_apb_regs.v
-../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_dma_data.v
-../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_udma.v
-../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_undefs.v
+//  //// Optional PL230 Micro DMA controller - configure in local ../verilog/pl230_defs.v file
+//  //-y ../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog
+//  +incdir+../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog
+//  ../verilog/pl230_defs.v
+//  ../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_ahb_ctrl.v
+//  ../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_apb_regs.v
+//  ../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_dma_data.v
+//  ../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_udma.v
+//  ../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/verilog/pl230_undefs.v
 
 // ============= Cortex-M0 Module search path =============
 // guts of core not exposed, periphery only
diff --git a/GLIB/pads/verilog/PAD_ANALOG.v b/GLIB/pads/verilog/PAD_ANALOG.v
new file mode 100644
index 0000000000000000000000000000000000000000..06207e9f1a61a899277941b3187144813a6d14ab
--- /dev/null
+++ b/GLIB/pads/verilog/PAD_ANALOG.v
@@ -0,0 +1,25 @@
+// GLIB_PADLIB.v
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from ARM Limited.
+//
+//            (C) COPYRIGHT 2009-2010 ARM Limited.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from ARM Limited.
+//
+//      Revision            : $Revision: $
+//
+//      Release Information : $ $
+//-----------------------------------------------------------------------------
+
+// VDDISOL
+module PAD_ANALOG (
+   PAD
+   );
+   inout PAD;
+endmodule // PAD_ANALOG
diff --git a/GLIB/pads/verilog/PAD_INOUT8MA_NOE.v b/GLIB/pads/verilog/PAD_INOUT8MA_NOE.v
new file mode 100644
index 0000000000000000000000000000000000000000..f6220e56f7cf38b3c2efad989a6ee6506f7facea
--- /dev/null
+++ b/GLIB/pads/verilog/PAD_INOUT8MA_NOE.v
@@ -0,0 +1,46 @@
+// GLIB_PADLIB.v
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from ARM Limited.
+//
+//            (C) COPYRIGHT 2009-2010 ARM Limited.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from ARM Limited.
+//
+//      Revision            : $Revision: $
+//
+//      Release Information : $ $
+//-----------------------------------------------------------------------------
+
+module PAD_INOUT8MA_NOE (
+   // Inouts
+   PAD, 
+   // Outputs
+   O, 
+   // Inputs
+   I,
+   NOE
+   );
+   inout PAD;
+   output I;
+   input O;
+   input NOE;
+
+`ifdef BEHAVIORAL_PADS
+   assign I = PAD;
+   assign PAD = ~NOE ? O : 1'bz; 
+`else
+   bufif1 #2 (PAD, O, ~NOE);
+   buf #1 (I, PAD);
+   always @(PAD)
+     begin
+       if (($countdrivers(PAD) > 1) && (PAD === 1'bx))
+         $display("%t ++BUS CONFLICT++ : %m", $realtime);
+     end
+`endif // ifdef BEHAVIORAL_PADS
+endmodule // PAD_INOUT8MA_NOE
diff --git a/GLIB/pads/verilog/PAD_INOUT8MA_OE.v b/GLIB/pads/verilog/PAD_INOUT8MA_OE.v
new file mode 100644
index 0000000000000000000000000000000000000000..d5d794422e5787feec0fcb64c1c87654e167ff2c
--- /dev/null
+++ b/GLIB/pads/verilog/PAD_INOUT8MA_OE.v
@@ -0,0 +1,46 @@
+// GLIB_PADLIB.v
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from ARM Limited.
+//
+//            (C) COPYRIGHT 2009-2010 ARM Limited.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from ARM Limited.
+//
+//      Revision            : $Revision: $
+//
+//      Release Information : $ $
+//-----------------------------------------------------------------------------
+
+module PAD_INOUT8MA_OE (
+   // Inouts
+   PAD, 
+   // Outputs
+   O, 
+   // Inputs
+   I,
+   OE
+   );
+   inout PAD;
+   output I;
+   input O;
+   input OE;
+`ifdef BEHAVIORAL_PADS
+   assign I = PAD;
+   assign PAD = OE ? O : 1'bz; 
+`else
+   bufif1 #2 (PAD, O, OE);
+   buf #1 (I, PAD);
+
+   always @(PAD)
+     begin
+       if (($countdrivers(PAD) > 1) && (PAD === 1'bx))
+         $display("%t ++BUS CONFLICT++ : %m", $realtime);
+     end
+`endif // ifdef BEHAVIORAL_PADS
+endmodule // PAD_INOUT8MA_OE
diff --git a/GLIB/pads/verilog/PAD_VDDIO.v b/GLIB/pads/verilog/PAD_VDDIO.v
new file mode 100644
index 0000000000000000000000000000000000000000..64581c085f253b36f15d734cd1e8f4ba635b8e59
--- /dev/null
+++ b/GLIB/pads/verilog/PAD_VDDIO.v
@@ -0,0 +1,24 @@
+// GLIB_PADLIB.v
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from ARM Limited.
+//
+//            (C) COPYRIGHT 2009-2010 ARM Limited.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from ARM Limited.
+//
+//      Revision            : $Revision: $
+//
+//      Release Information : $ $
+//-----------------------------------------------------------------------------
+
+module PAD_VDDIO (
+   PAD
+   );
+   inout PAD;
+endmodule // PAD_VDDIO
diff --git a/GLIB/pads/verilog/PAD_VDDSOC.v b/GLIB/pads/verilog/PAD_VDDSOC.v
new file mode 100644
index 0000000000000000000000000000000000000000..bb48fcd3519dd1d24fcc98556bf9d5c61ecd5b76
--- /dev/null
+++ b/GLIB/pads/verilog/PAD_VDDSOC.v
@@ -0,0 +1,25 @@
+// GLIB_PADLIB.v
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from ARM Limited.
+//
+//            (C) COPYRIGHT 2009-2010 ARM Limited.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from ARM Limited.
+//
+//      Revision            : $Revision: $
+//
+//      Release Information : $ $
+//-----------------------------------------------------------------------------
+
+// core logic supply rails (1V0, 0V)
+module PAD_VDDSOC (
+   PAD
+   );
+   inout PAD;
+endmodule // PAD_VDDSOC
diff --git a/GLIB/pads/verilog/PAD_VSS.v b/GLIB/pads/verilog/PAD_VSS.v
new file mode 100644
index 0000000000000000000000000000000000000000..ab407e13b77dc478c5bc29a8daffa2be4da7fbb9
--- /dev/null
+++ b/GLIB/pads/verilog/PAD_VSS.v
@@ -0,0 +1,24 @@
+// GLIB_PADLIB.v
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from ARM Limited.
+//
+//            (C) COPYRIGHT 2009-2010 ARM Limited.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from ARM Limited.
+//
+//      Revision            : $Revision: $
+//
+//      Release Information : $ $
+//-----------------------------------------------------------------------------
+
+module PAD_VSS (
+   PAD
+   );
+   inout PAD;
+endmodule // PAD_VSS
diff --git a/GLIB/pads/verilog/PAD_VSSIO.v b/GLIB/pads/verilog/PAD_VSSIO.v
new file mode 100644
index 0000000000000000000000000000000000000000..e27e9d838bf8bdc3c46ef1dc72c1d39d794c9b00
--- /dev/null
+++ b/GLIB/pads/verilog/PAD_VSSIO.v
@@ -0,0 +1,25 @@
+// GLIB_PADLIB.v
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from ARM Limited.
+//
+//            (C) COPYRIGHT 2009-2010 ARM Limited.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from ARM Limited.
+//
+//      Revision            : $Revision: $
+//
+//      Release Information : $ $
+//-----------------------------------------------------------------------------
+
+module PAD_VSSIO (
+   PAD
+   );
+   inout PAD;
+endmodule // PAD_VSSIO
+