diff --git a/verilog/dv/prga/bcd2bin.v b/verilog/dv/prga/bcd2bin.v
new file mode 100644
index 0000000..70d7e91
--- /dev/null
+++ b/verilog/dv/prga/bcd2bin.v
@@ -0,0 +1,83 @@
+module bcd2bin (
+    input wire clk,
+    input wire reset,
+    input wire start,
+    input wire [3:0] bcd1,
+    input wire [3:0] bcd0,
+    output reg ready,
+    output reg done_tick,
+    output wire [6:0] bin
+    );
+
+    // symbolic state declaration
+    localparam [1:0] idle = 2'b00,
+                     op   = 2'b01,
+                     done = 2'b10;
+
+    // signal declaration
+    reg [1:0] state_reg, state_next;
+    reg [6:0] bin_reg, bin_next;
+    reg [3:0] n_reg, n_next;
+    reg [3:0] bcd1_reg, bcd0_reg;
+    reg [3:0] bcd1_next, bcd0_next;
+
+    // FSMD state & data registers
+    always @(posedge clk)
+        if (reset)
+        begin
+            state_reg <= idle;
+            bin_reg <= 0;
+            n_reg <= 0;
+            bcd1_reg <= 0;
+            bcd0_reg <= 0;
+        end else begin
+            state_reg <= state_next;
+            bin_reg <= bin_next;
+            n_reg <= n_next;
+            bcd1_reg <= bcd1_next;
+            bcd0_reg <= bcd0_next;
+        end
+
+    // FSMD next-state logic
+    always @*
+    begin
+        // defaults
+        state_next = state_reg;
+        ready = 1'b0;
+        done_tick = 1'b0;
+        bin_next = bin_reg;
+        bcd0_next = bcd0;   // route in bcd1 input
+        bcd1_next = bcd1;   // route in bcd0 input
+        n_next = n_reg;
+
+        case (state_reg)
+            idle: begin
+                ready = 1'b1;
+                if (start) begin
+                    state_next = op;
+                    n_next = 4'b0111; // iterate 7 times
+                end
+            end
+            op: begin
+                bin_next = {bcd0_reg[0], bin_reg[6:1]}; // right shift in lowest bit from bcd0_reg
+                bcd1_next = {1'b0, bcd1_reg[3:1]}; // right shift in 0 to bcd1
+                // right shift in bcd1[0] into bcd0, if bcd0 > 4, subtract 3
+                bcd0_next = ({bcd1_reg[0], bcd0_reg[3:1]} > 4) ? ({bcd1_reg[0], bcd0_reg[3:1]} - 4'b0011) : {bcd1_reg[0], bcd0_reg[3:1]};   
+
+                n_next = n_reg - 1; // decrement n
+                if (n_next==0)
+                    state_next = done; 
+            end
+            done: begin
+                done_tick = 1'b1;   
+                state_next = idle;  
+            end
+            default:
+                state_next = idle;
+        endcase
+    end  
+
+    // assign output
+    assign bin = bin_reg;
+
+endmodule
diff --git a/verilog/dv/prga/bcd2bin_test_basic.v b/verilog/dv/prga/bcd2bin_test_basic.v
new file mode 100644
index 0000000..065ef82
--- /dev/null
+++ b/verilog/dv/prga/bcd2bin_test_basic.v
@@ -0,0 +1,83 @@
+module basic (
+    input wire tb_clk,
+    input wire tb_rst,
+    output reg tb_pass,
+    output reg tb_fail,
+    input wire tb_prog_done,
+    input wire [31:0] tb_verbosity,
+    input wire [31:0] tb_cycle_cnt,
+
+    output wire clk,
+    output reg reset,
+    output reg start,
+    output reg [3:0] bcd0,
+    output reg [3:0] bcd1,
+    input wire ready,
+    input wire done_tick,
+    input wire [6:0] bin
+    );
+
+    assign clk = tb_clk;
+
+    reg [7:0] reset_buf;
+    always @(posedge tb_clk) begin
+        if (tb_rst || ~tb_prog_done) begin
+            {reset, reset_buf} <= 9'h03f;
+        end else begin
+            {reset, reset_buf} <= {reset_buf, 1'b0};
+        end
+    end
+    
+    reg [3:0] test_counter;
+    reg [7:0] source [0:15];
+    reg [6:0] sink [0:15];
+
+    // set up test source & sink
+    initial begin
+        source[0] = {4'd0, 4'd0}; sink[0] = 7'h00;
+        source[1] = {4'd9, 4'd9}; sink[1] = 7'h63;
+        source[2] = {4'd5, 4'd5}; sink[2] = 7'h37;
+        source[3] = {4'd0, 4'd9}; sink[3] = 7'h09;
+        source[4] = {4'd9, 4'd0}; sink[4] = 7'h5a;
+
+        reset = 1'b0;
+        reset_buf = 8'h0;
+        start = 1'b0;
+        test_counter = 0;
+        tb_pass = 1'b0;
+        tb_fail = 1'b0;
+        {bcd1, bcd0} = 0;
+    end
+
+    always @(posedge tb_clk) begin
+        if (tb_rst || ~tb_prog_done) begin
+            start           <=  1'b0;
+            test_counter    <=  0;
+            tb_pass     <=  1'b0;
+            tb_fail        <=  1'b0;
+            {bcd1, bcd0}    <=  0;
+        end else if (tb_prog_done) begin
+            if (~start || done_tick) begin
+                if (done_tick) begin
+                    if (bin == sink[test_counter - 1]) begin
+                        $display("[Cycle %04d] bcd2bin: %d => 0x%h",
+                            tb_cycle_cnt, bcd1 * 10 + bcd0, bin);
+                    end else begin
+                        $display("[Cycle %04d] bcd2bin: %d => 0x%h (0x%h expected), fail",
+                            tb_cycle_cnt, bcd1 * 10 + bcd0, bin, sink[test_counter - 1]);
+                        tb_fail    <=  1'b1;
+                    end
+                end
+
+                if (source[test_counter] === 8'hx) begin
+                    tb_pass     <=  1'b1;
+                end else begin
+                    {bcd1, bcd0}    <=  source[test_counter];
+                    test_counter    <=  test_counter + 1;
+                    start           <=  1'b1;
+                end
+            end
+        end
+    end
+
+endmodule
diff --git a/verilog/dv/prga/prga.c b/verilog/dv/prga/prga.c
index c316f0d..7557343 100644
--- a/verilog/dv/prga/prga.c
+++ b/verilog/dv/prga/prga.c
@@ -57,47 +57,64 @@
 	// so that the CSB line is not left floating.  This allows
 	// all of the GPIO pins to be used for user functions.
 
+    // Use GPIO as the signal that the mgmt core is ready
+    reg_gpio_mode1 = 1;
+    reg_gpio_mode0 = 1;
+    reg_gpio_ien = 1;
+    reg_gpio_oe = 1;
+
+    reg_gpio_out = 0;
+    reg_gpio_out = 0;
+
 	// Configure lower 8-IOs as user output
 	// Observe counter value in the testbench
-	//reg_mprj_io_0 =  GPIO_MODE_USER_STD_OUTPUT;
-	//reg_mprj_io_1 =  GPIO_MODE_USER_STD_OUTPUT;
-	//reg_mprj_io_2 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_3 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_4 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_5 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_6 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_7 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_8 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_9 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_10 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_11 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_12 =  GPIO_MODE_USER_STD_OUTPUT;        
-	reg_mprj_io_13 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_14 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_15 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_16 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_17 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_18 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_19 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_20 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_21 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_22 =  GPIO_MODE_USER_STD_OUTPUT;        
-	reg_mprj_io_23 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_24 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_25 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_26 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_27 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_28 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_29 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_30 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_31 =  GPIO_MODE_USER_STD_OUTPUT;
-	reg_mprj_io_32 =  GPIO_MODE_USER_STD_OUTPUT;        
-	reg_mprj_io_33 =  GPIO_MODE_USER_STD_OUTPUT;
-
-
+    reg_mprj_io_0 =  GPIO_MODE_USER_STD_OUTPUT;     // prog_we_o
+    reg_mprj_io_1 =  GPIO_MODE_USER_STD_OUTPUT;     // prog_dout
+    reg_mprj_io_2 =  GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_3 =  GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_4 =  GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_5 =  GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_6 =  GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_7 =  GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_8 =  GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_9 =  GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_10 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_11 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_12 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_13 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_14 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_15 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_16 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_17 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_18 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_19 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_20 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_21 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_22 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_23 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_24 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_25 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_26 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_27 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_28 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_29 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_30 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_31 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_32 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_33 = GPIO_MODE_USER_STD_BIDIRECTIONAL;
+    reg_mprj_io_32 = GPIO_MODE_USER_STD_INPUT_PULLDOWN; // prog_we
+    reg_mprj_io_33 = GPIO_MODE_USER_STD_INPUT_PULLDOWN; // prog_rst
+    reg_mprj_io_34 = GPIO_MODE_USER_STD_INPUT_PULLDOWN; // prog_done
+    reg_mprj_io_35 = GPIO_MODE_USER_STD_INPUT_NOPULL;   // prog_din
+    reg_mprj_io_36 = GPIO_MODE_USER_STD_INPUT_NOPULL;   // clk
+    reg_mprj_io_37 = GPIO_MODE_USER_STD_INPUT_NOPULL;   // prog_clk
         
 	/* Apply configuration */
 	reg_mprj_xfer = 1;
 	while (reg_mprj_xfer == 1);
+
+    // set GPIO to 1 to signal the external bitstream loader
+    reg_gpio_out = 1;
+    reg_gpio_out = 1;
 }
 
diff --git a/verilog/dv/prga/prga_tb.v b/verilog/dv/prga/prga_tb.v
index ca03e76..9f7e95d 100644
--- a/verilog/dv/prga/prga_tb.v
+++ b/verilog/dv/prga/prga_tb.v
@@ -26,13 +26,8 @@
 
 	wire gpio;
 	wire [37:0] mprj_io;
-	wire [7:0] mprj_io_0;
-
-	assign mprj_io_0 = mprj_io[7:0];
-	// assign mprj_io_0 = {mprj_io[8:4],mprj_io[2:0]};
 
 	assign mprj_io[3] = (CSB == 1'b1) ? 1'b1 : 1'bz;
-	// assign mprj_io[3] = 1'b1;
 
 	// External clock is used by default.  Make this artificially fast for the
 	// simulation.  Normally this would be a slow clock and the digital PLL
@@ -49,10 +44,11 @@
 		$dumpvars(0, prga_tb);
 
 		// Repeat cycles of 1000 clock edges as needed to complete testbench
-		repeat (25) begin
+		repeat (100) begin
 			repeat (1000) @(posedge clock);
 			// $display("+1000 cycles");
 		end
+
 		$display("%c[1;31m",27);
 		`ifdef GL
 			$display ("Monitor: Timeout, Test Mega-Project IO Ports (GL) Failed");
@@ -64,54 +60,27 @@
 	end
 
 	initial begin
-	    // Observe Output pins [7:0]
-		wait(mprj_io_0 == 8'h01);
-		wait(mprj_io_0 == 8'h02);
-		wait(mprj_io_0 == 8'h03);
-		wait(mprj_io_0 == 8'h04);
-		wait(mprj_io_0 == 8'h05);
-		wait(mprj_io_0 == 8'h06);
-		wait(mprj_io_0 == 8'h07);
-		wait(mprj_io_0 == 8'h08);
-		wait(mprj_io_0 == 8'h09);
-		wait(mprj_io_0 == 8'h0A);   
-		wait(mprj_io_0 == 8'hFF);
-		wait(mprj_io_0 == 8'h00);
-		
-		`ifdef GL
-	    	$display("Monitor: Test 1 Mega-Project IO (GL) Passed");
-		`else
-		    $display("Monitor: Test 1 Mega-Project IO (RTL) Passed");
-		`endif
-	    $finish;
-	end
-
-	initial begin
-		RSTB <= 1'b0;
-		CSB  <= 1'b1;		// Force CSB high
+		RSTB = 1'b0;
+		CSB  = 1'b1;		// Force CSB high
 		#2000;
-		RSTB <= 1'b1;	    	// Release reset
+		RSTB = 1'b1;	    	// Release reset
 		#300000;
 		CSB = 1'b0;		// CSB can be released
 	end
 
 	initial begin		// Power-up sequence
-		power1 <= 1'b0;
-		power2 <= 1'b0;
-		power3 <= 1'b0;
-		power4 <= 1'b0;
+		power1 = 1'b0;
+		power2 = 1'b0;
+		power3 = 1'b0;
+		power4 = 1'b0;
 		#100;
-		power1 <= 1'b1;
+		power1 = 1'b1;
 		#100;
-		power2 <= 1'b1;
+		power2 = 1'b1;
 		#100;
-		power3 <= 1'b1;
+		power3 = 1'b1;
 		#100;
-		power4 <= 1'b1;
-	end
-
-	always @(mprj_io) begin
-		#1 $display("MPRJ-IO state = %b ", mprj_io[7:0]);
+		power4 = 1'b1;
 	end
 
 	wire flash_csb;
@@ -167,5 +136,101 @@
 		.io3()			// not used
 	);
 
+    // -----------------------------------------------------------------------
+    // -- PRGA Testing -------------------------------------------------------
+    // -----------------------------------------------------------------------
+    wire f_tb_rst;
+    assign f_tb_rst = CSB || !gpio;
+
+    wire w_tb_pass, w_tb_fail, w_tb_prog_done;
+    assign w_tb_prog_done = 1'b1;
+
+    // Logging
+    wire [31:0] f_tb_verbosity;
+    reg [31:0] f_tb_cycle_cnt;
+
+    assign f_tb_verbosity = 1;
+
+    always @(posedge clock) begin
+        if (f_tb_rst) begin
+            f_tb_cycle_cnt <= 0;
+        end else begin
+            f_tb_cycle_cnt <= f_tb_cycle_cnt + 1;
+
+            if (w_tb_fail) begin
+                $display();
+                $display("[INFO] ++=========================++");
+                $display("[INFO] ||       TEST FAILED       ||");
+                $display("[INFO] ++=========================++");
+                $display();
+                $finish;
+            end else if (w_tb_pass) begin
+                $display();
+                $display("[INFO] ++=========================++");
+                $display("[INFO] ||       TEST PASSED       ||");
+                $display("[INFO] ++=========================++");
+                $display();
+                $finish;
+            end
+        end
+    end
+
+    // -- Test ---------------------------------------------------------------
+    // Signals
+    wire w_test_clk;
+    wire w_test_reset;
+    wire w_test_start;
+    wire [3:0] w_test_bcd1;
+    wire [3:0] w_test_bcd0;
+    wire w_test_ready;
+    wire w_test_done_tick;
+    wire [6:0] w_test_bin;
+
+    // Tester
+    basic i_tester (
+        .tb_clk(clock)
+        ,.tb_rst(f_tb_rst)
+        ,.tb_pass(w_tb_pass)
+        ,.tb_fail(w_tb_fail)
+        ,.tb_prog_done(w_tb_prog_done)
+        ,.tb_verbosity(f_tb_verbosity)
+        ,.tb_cycle_cnt(f_tb_cycle_cnt)
+        ,.clk(w_test_clk)
+        ,.reset(w_test_reset)
+        ,.start(w_test_start)
+        ,.bcd1(w_test_bcd1)
+        ,.bcd0(w_test_bcd0)
+        ,.ready(w_test_ready)
+        ,.done_tick(w_test_done_tick)
+        ,.bin(w_test_bin)
+        );
+
+    // -- Behavioral Model ---------------------------------------------------
+    // Signals
+    wire w_behav_ready;
+    wire w_behav_done_tick;
+    wire [6:0] w_behav_bin;
+
+    // DUT
+    bcd2bin i_behav (
+        .clk(w_test_clk)
+        ,.reset(w_test_reset)
+        ,.start(w_test_start)
+        ,.bcd1(w_test_bcd1)
+        ,.bcd0(w_test_bcd0)
+        ,.ready(w_behav_ready)
+        ,.done_tick(w_behav_done_tick)
+        ,.bin(w_behav_bin)
+        );
+
+    // -- Bitstream Loading --------------------------------------------------
+
+    // -----------------------------------------------------------------------
+    // -- Wiring -------------------------------------------------------------
+    // -----------------------------------------------------------------------
+    assign w_test_ready = w_behav_ready;
+    assign w_test_done_tick = w_behav_done_tick;
+    assign w_test_bin = w_behav_bin;
+
 endmodule
 `default_nettype wire
diff --git a/verilog/gl/user_project_wrapper.v b/verilog/gl/user_project_wrapper.v
index 017a499..057647f 100644
--- a/verilog/gl/user_project_wrapper.v
+++ b/verilog/gl/user_project_wrapper.v
@@ -58,15 +58,13 @@
  wire prog_we_o;
  wire prog_dout;
 
- top dut (.ipin_x0y1_0(user_clock2),
-    .ipin_x0y1_1(io_in[33]),
-    .ipin_x0y2_0(io_in[32]),
-    .ipin_x0y2_1(io_in[31]),
-    .ipin_x0y3_0(io_in[30]),
-    .ipin_x0y4_0(io_in[29]),
-    .ipin_x0y5_0(io_in[28]),
-    .ipin_x0y6_0(io_in[27]),
-    .ipin_x0y6_1(io_in[26]),
+ top dut (.ipin_x0y1_0(io_in[36]),
+    .ipin_x0y1_1(io_in[31]),
+    .ipin_x0y2_0(io_in[30]),
+    .ipin_x0y3_0(io_in[29]),
+    .ipin_x0y4_0(io_in[28]),
+    .ipin_x0y5_0(io_in[27]),
+    .ipin_x0y6_0(io_in[26]),
     .ipin_x0y7_0(io_in[25]),
     .ipin_x0y8_0(io_in[24]),
     .ipin_x1y9_0(io_in[23]),
@@ -77,27 +75,26 @@
     .ipin_x5y9_0(io_in[18]),
     .ipin_x6y9_0(io_in[17]),
     .ipin_x7y9_0(io_in[16]),
-    .ipin_x7y9_1(io_in[15]),
-    .ipin_x8y9_1(io_in[14]),
-    .ipin_x9y1_0(io_in[3]),
+    .ipin_x8y9_1(io_in[15]),
+    .ipin_x9y1_0(io_in[2]),
+    .ipin_x9y1_1(io_in[3]),
     .ipin_x9y2_0(io_in[4]),
     .ipin_x9y2_1(io_in[5]),
     .ipin_x9y3_0(io_in[6]),
-    .ipin_x9y4_0(io_in[7]),
-    .ipin_x9y5_0(io_in[8]),
-    .ipin_x9y5_1(io_in[9]),
-    .ipin_x9y6_0(io_in[10]),
-    .ipin_x9y7_0(io_in[11]),
-    .ipin_x9y7_1(io_in[12]),
-    .ipin_x9y8_0(io_in[13]),
-    .oe_x0y1_1(io_oeb[33]),
-    .oe_x0y2_0(io_oeb[32]),
-    .oe_x0y2_1(io_oeb[31]),
-    .oe_x0y3_0(io_oeb[30]),
-    .oe_x0y4_0(io_oeb[29]),
-    .oe_x0y5_0(io_oeb[28]),
-    .oe_x0y6_0(io_oeb[27]),
-    .oe_x0y6_1(io_oeb[26]),
+    .ipin_x9y3_1(io_in[7]),
+    .ipin_x9y4_0(io_in[8]),
+    .ipin_x9y5_0(io_in[9]),
+    .ipin_x9y5_1(io_in[10]),
+    .ipin_x9y6_0(io_in[11]),
+    .ipin_x9y7_0(io_in[12]),
+    .ipin_x9y7_1(io_in[13]),
+    .ipin_x9y8_0(io_in[14]),
+    .oe_x0y1_1(io_oeb[31]),
+    .oe_x0y2_0(io_oeb[30]),
+    .oe_x0y3_0(io_oeb[29]),
+    .oe_x0y4_0(io_oeb[28]),
+    .oe_x0y5_0(io_oeb[27]),
+    .oe_x0y6_0(io_oeb[26]),
     .oe_x0y7_0(io_oeb[25]),
     .oe_x0y8_0(io_oeb[24]),
     .oe_x1y9_0(io_oeb[23]),
@@ -108,27 +105,26 @@
     .oe_x5y9_0(io_oeb[18]),
     .oe_x6y9_0(io_oeb[17]),
     .oe_x7y9_0(io_oeb[16]),
-    .oe_x7y9_1(io_oeb[15]),
-    .oe_x8y9_1(io_oeb[14]),
-    .oe_x9y1_0(io_oeb[3]),
+    .oe_x8y9_1(io_oeb[15]),
+    .oe_x9y1_0(io_oeb[2]),
+    .oe_x9y1_1(io_oeb[3]),
     .oe_x9y2_0(io_oeb[4]),
     .oe_x9y2_1(io_oeb[5]),
     .oe_x9y3_0(io_oeb[6]),
-    .oe_x9y4_0(io_oeb[7]),
-    .oe_x9y5_0(io_oeb[8]),
-    .oe_x9y5_1(io_oeb[9]),
-    .oe_x9y6_0(io_oeb[10]),
-    .oe_x9y7_0(io_oeb[11]),
-    .oe_x9y7_1(io_oeb[12]),
-    .oe_x9y8_0(io_oeb[13]),
-    .opin_x0y1_1(io_out[33]),
-    .opin_x0y2_0(io_out[32]),
-    .opin_x0y2_1(io_out[31]),
-    .opin_x0y3_0(io_out[30]),
-    .opin_x0y4_0(io_out[29]),
-    .opin_x0y5_0(io_out[28]),
-    .opin_x0y6_0(io_out[27]),
-    .opin_x0y6_1(io_out[26]),
+    .oe_x9y3_1(io_oeb[7]),
+    .oe_x9y4_0(io_oeb[8]),
+    .oe_x9y5_0(io_oeb[9]),
+    .oe_x9y5_1(io_oeb[10]),
+    .oe_x9y6_0(io_oeb[11]),
+    .oe_x9y7_0(io_oeb[12]),
+    .oe_x9y7_1(io_oeb[13]),
+    .oe_x9y8_0(io_oeb[14]),
+    .opin_x0y1_1(io_out[31]),
+    .opin_x0y2_0(io_out[30]),
+    .opin_x0y3_0(io_out[29]),
+    .opin_x0y4_0(io_out[28]),
+    .opin_x0y5_0(io_out[27]),
+    .opin_x0y6_0(io_out[26]),
     .opin_x0y7_0(io_out[25]),
     .opin_x0y8_0(io_out[24]),
     .opin_x1y9_0(io_out[23]),
@@ -139,36 +135,41 @@
     .opin_x5y9_0(io_out[18]),
     .opin_x6y9_0(io_out[17]),
     .opin_x7y9_0(io_out[16]),
-    .opin_x7y9_1(io_out[15]),
-    .opin_x8y9_1(io_out[14]),
-    .opin_x9y1_0(io_out[3]),
+    .opin_x8y9_1(io_out[15]),
+    .opin_x9y1_0(io_out[2]),
+    .opin_x9y1_1(io_out[3]),
     .opin_x9y2_0(io_out[4]),
     .opin_x9y2_1(io_out[5]),
     .opin_x9y3_0(io_out[6]),
-    .opin_x9y4_0(io_out[7]),
-    .opin_x9y5_0(io_out[8]),
-    .opin_x9y5_1(io_out[9]),
-    .opin_x9y6_0(io_out[10]),
-    .opin_x9y7_0(io_out[11]),
-    .opin_x9y7_1(io_out[12]),
-    .opin_x9y8_0(io_out[13]),
-    .prog_clk(user_clock2),
-    .prog_din(io_in[37]),
-    .prog_done(io_in[36]),
+    .opin_x9y3_1(io_out[7]),
+    .opin_x9y4_0(io_out[8]),
+    .opin_x9y5_0(io_out[9]),
+    .opin_x9y5_1(io_out[10]),
+    .opin_x9y6_0(io_out[11]),
+    .opin_x9y7_0(io_out[12]),
+    .opin_x9y7_1(io_out[13]),
+    .opin_x9y8_0(io_out[14]),
+    .prog_clk(io_in[37]),
+    .prog_din(io_in[35]),
+    .prog_done(io_in[34]),
     .prog_dout(prog_dout),
-    .prog_rst(io_in[35]),
-    .prog_we(io_in[34]),
+    .prog_rst(io_in[33]),
+    .prog_we(io_in[32]),
     .prog_we_o(prog_we_o),
     .vccd1(vccd1),
     .vssd1(vssd1));
  assign io_oeb[0] = one_;
  assign io_oeb[1] = one_;
+ assign io_oeb[32] = zero_;
+ assign io_oeb[33] = zero_;
  assign io_oeb[34] = zero_;
  assign io_oeb[35] = zero_;
  assign io_oeb[36] = zero_;
  assign io_oeb[37] = zero_;
  assign io_out[0] = prog_we_o;
  assign io_out[1] = prog_dout;
+ assign io_out[32] = zero_;
+ assign io_out[33] = zero_;
  assign io_out[34] = zero_;
  assign io_out[35] = zero_;
  assign io_out[36] = zero_;
