data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v
1: b'%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:35: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET0 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  1 - 1 : PARAM_COUNT * GPIO_WIDTH *  0];\n                                   ^\n                ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message.\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:36: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET1 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  2 - 1 : PARAM_COUNT * GPIO_WIDTH *  1];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:37: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET2 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  3 - 1 : PARAM_COUNT * GPIO_WIDTH *  2];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:38: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET3 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  4 - 1 : PARAM_COUNT * GPIO_WIDTH *  3];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:39: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET4 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  5 - 1 : PARAM_COUNT * GPIO_WIDTH *  4];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:40: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET5 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  6 - 1 : PARAM_COUNT * GPIO_WIDTH *  5];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:41: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET6 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  7 - 1 : PARAM_COUNT * GPIO_WIDTH *  6];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:42: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET7 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  8 - 1 : PARAM_COUNT * GPIO_WIDTH *  7];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:43: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET8 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  9 - 1 : PARAM_COUNT * GPIO_WIDTH *  8];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:44: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET9 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 10 - 1 : PARAM_COUNT * GPIO_WIDTH *  9];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:45: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET10: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 11 - 1 : PARAM_COUNT * GPIO_WIDTH * 10];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:46: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET11: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 12 - 1 : PARAM_COUNT * GPIO_WIDTH * 11];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:47: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET12: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 13 - 1 : PARAM_COUNT * GPIO_WIDTH * 12];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:48: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET13: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 14 - 1 : PARAM_COUNT * GPIO_WIDTH * 13];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:49: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET14: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 15 - 1 : PARAM_COUNT * GPIO_WIDTH * 14];\n                                   ^\n%Warning-SELRANGE: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:50: Selection index out of range: 8191:7680 outside 7936:0\n                                                                                                                : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET15: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 16 - 1 : PARAM_COUNT * GPIO_WIDTH * 15];\n                                                ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:50: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    GP_OUT_PARAM_SET15: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 16 - 1 : PARAM_COUNT * GPIO_WIDTH * 15];\n                                   ^\n%Warning-WIDTH: data/full_repos/permissive/503053625/fpga_projects/new_spgd/src/GPIO/GPIO_PARAMS_WRAPPER.v:51: Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS\'s SEL generates 512 bits.\n                                                                                                             : ... In instance GPIO_PARAMS_WRAPPER\n    default    : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  1 - 1 : PARAM_COUNT * GPIO_WIDTH *  0];\n                            ^\n%Error: Exiting due to 18 warning(s)\n'
module GPIO_PARAMS_WRAPPER #(
	parameter GPIO_WIDTH = 32,
	parameter PARAM_COUNT = 16,
	parameter PARAM_SETS = 16
)(
	input [PARAM_COUNT*(GPIO_WIDTH - 1)*PARAM_SETS: 0] PARAMS_DATA,
	input [3:0] SET,
	output [GPIO_WIDTH - 1 : 0] GP_OUT
);

	reg [GPIO_WIDTH - 1 : 0] GP_OUT_SET = {GPIO_WIDTH{1'b0}};
	assign GP_OUT = GP_OUT_SET; 

	localparam [3:0]
		GP_OUT_PARAM_SET0 = 4'h0,
		GP_OUT_PARAM_SET1 = 4'h1,
		GP_OUT_PARAM_SET2 = 4'h2,
		GP_OUT_PARAM_SET3 = 4'h3,
		GP_OUT_PARAM_SET4 = 4'h4,
		GP_OUT_PARAM_SET5 = 4'h5,
		GP_OUT_PARAM_SET6 = 4'h6,
		GP_OUT_PARAM_SET7 = 4'h7,
		GP_OUT_PARAM_SET8 = 4'h8,
		GP_OUT_PARAM_SET9 = 4'h9,
		GP_OUT_PARAM_SET10 = 4'hA,
		GP_OUT_PARAM_SET11 = 4'hB,
		GP_OUT_PARAM_SET12 = 4'hC,
		GP_OUT_PARAM_SET13 = 4'hD,
		GP_OUT_PARAM_SET14 = 4'hE,
		GP_OUT_PARAM_SET15 = 4'hF;

	always @(PARAMS_DATA or SET)
		begin
			case(SET)
				GP_OUT_PARAM_SET0 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  1 - 1 : PARAM_COUNT * GPIO_WIDTH *  0];
				GP_OUT_PARAM_SET1 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  2 - 1 : PARAM_COUNT * GPIO_WIDTH *  1];
				GP_OUT_PARAM_SET2 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  3 - 1 : PARAM_COUNT * GPIO_WIDTH *  2];
				GP_OUT_PARAM_SET3 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  4 - 1 : PARAM_COUNT * GPIO_WIDTH *  3];
				GP_OUT_PARAM_SET4 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  5 - 1 : PARAM_COUNT * GPIO_WIDTH *  4];
				GP_OUT_PARAM_SET5 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  6 - 1 : PARAM_COUNT * GPIO_WIDTH *  5];
				GP_OUT_PARAM_SET6 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  7 - 1 : PARAM_COUNT * GPIO_WIDTH *  6];
				GP_OUT_PARAM_SET7 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  8 - 1 : PARAM_COUNT * GPIO_WIDTH *  7];
				GP_OUT_PARAM_SET8 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  9 - 1 : PARAM_COUNT * GPIO_WIDTH *  8];
				GP_OUT_PARAM_SET9 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 10 - 1 : PARAM_COUNT * GPIO_WIDTH *  9];
				GP_OUT_PARAM_SET10: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 11 - 1 : PARAM_COUNT * GPIO_WIDTH * 10];
				GP_OUT_PARAM_SET11: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 12 - 1 : PARAM_COUNT * GPIO_WIDTH * 11];
				GP_OUT_PARAM_SET12: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 13 - 1 : PARAM_COUNT * GPIO_WIDTH * 12];
				GP_OUT_PARAM_SET13: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 14 - 1 : PARAM_COUNT * GPIO_WIDTH * 13];
				GP_OUT_PARAM_SET14: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 15 - 1 : PARAM_COUNT * GPIO_WIDTH * 14];
				GP_OUT_PARAM_SET15: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 16 - 1 : PARAM_COUNT * GPIO_WIDTH * 15];
				default		  : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  1 - 1 : PARAM_COUNT * GPIO_WIDTH *  0];
			endcase
		end
endmodule
module GPIO_PARAMS_WRAPPER #(
	parameter GPIO_WIDTH = 32,
	parameter PARAM_COUNT = 16,
	parameter PARAM_SETS = 16
)(
	input [PARAM_COUNT*(GPIO_WIDTH - 1)*PARAM_SETS: 0] PARAMS_DATA,
	input [3:0] SET,
	output [GPIO_WIDTH - 1 : 0] GP_OUT
);


	reg [GPIO_WIDTH - 1 : 0] GP_OUT_SET = {GPIO_WIDTH{1'b0}};
	assign GP_OUT = GP_OUT_SET; 

	localparam [3:0]
		GP_OUT_PARAM_SET0 = 4'h0,
		GP_OUT_PARAM_SET1 = 4'h1,
		GP_OUT_PARAM_SET2 = 4'h2,
		GP_OUT_PARAM_SET3 = 4'h3,
		GP_OUT_PARAM_SET4 = 4'h4,
		GP_OUT_PARAM_SET5 = 4'h5,
		GP_OUT_PARAM_SET6 = 4'h6,
		GP_OUT_PARAM_SET7 = 4'h7,
		GP_OUT_PARAM_SET8 = 4'h8,
		GP_OUT_PARAM_SET9 = 4'h9,
		GP_OUT_PARAM_SET10 = 4'hA,
		GP_OUT_PARAM_SET11 = 4'hB,
		GP_OUT_PARAM_SET12 = 4'hC,
		GP_OUT_PARAM_SET13 = 4'hD,
		GP_OUT_PARAM_SET14 = 4'hE,
		GP_OUT_PARAM_SET15 = 4'hF;

	always @(PARAMS_DATA or SET)
		begin
			case(SET)
				GP_OUT_PARAM_SET0 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  1 - 1 : PARAM_COUNT * GPIO_WIDTH *  0];
				GP_OUT_PARAM_SET1 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  2 - 1 : PARAM_COUNT * GPIO_WIDTH *  1];
				GP_OUT_PARAM_SET2 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  3 - 1 : PARAM_COUNT * GPIO_WIDTH *  2];
				GP_OUT_PARAM_SET3 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  4 - 1 : PARAM_COUNT * GPIO_WIDTH *  3];
				GP_OUT_PARAM_SET4 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  5 - 1 : PARAM_COUNT * GPIO_WIDTH *  4];
				GP_OUT_PARAM_SET5 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  6 - 1 : PARAM_COUNT * GPIO_WIDTH *  5];
				GP_OUT_PARAM_SET6 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  7 - 1 : PARAM_COUNT * GPIO_WIDTH *  6];
				GP_OUT_PARAM_SET7 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  8 - 1 : PARAM_COUNT * GPIO_WIDTH *  7];
				GP_OUT_PARAM_SET8 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  9 - 1 : PARAM_COUNT * GPIO_WIDTH *  8];
				GP_OUT_PARAM_SET9 : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 10 - 1 : PARAM_COUNT * GPIO_WIDTH *  9];
				GP_OUT_PARAM_SET10: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 11 - 1 : PARAM_COUNT * GPIO_WIDTH * 10];
				GP_OUT_PARAM_SET11: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 12 - 1 : PARAM_COUNT * GPIO_WIDTH * 11];
				GP_OUT_PARAM_SET12: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 13 - 1 : PARAM_COUNT * GPIO_WIDTH * 12];
				GP_OUT_PARAM_SET13: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 14 - 1 : PARAM_COUNT * GPIO_WIDTH * 13];
				GP_OUT_PARAM_SET14: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 15 - 1 : PARAM_COUNT * GPIO_WIDTH * 14];
				GP_OUT_PARAM_SET15: GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH * 16 - 1 : PARAM_COUNT * GPIO_WIDTH * 15];
				default		  : GP_OUT_SET = PARAMS_DATA[PARAM_COUNT * GPIO_WIDTH *  1 - 1 : PARAM_COUNT * GPIO_WIDTH *  0];
			endcase
		end
endmodule