data/full_repos/permissive/428611613/cores/gpio_debouncer_v1_0/gpio_debouncer.v
1: b"%Error: data/full_repos/permissive/428611613/cores/gpio_debouncer_v1_0/gpio_debouncer.v:27: Cannot find file containing module: 'IOBUF'\n      IOBUF gpio_iobuf (.O(int_data_wire[j]), .IO(gpio_data[j]), .I(1'b0), .T(1'b1));\n      ^~~~~\n        ... Looked in:\n             data/full_repos/permissive/428611613/cores/gpio_debouncer_v1_0,data/full_repos/permissive/428611613/IOBUF\n             data/full_repos/permissive/428611613/cores/gpio_debouncer_v1_0,data/full_repos/permissive/428611613/IOBUF.v\n             data/full_repos/permissive/428611613/cores/gpio_debouncer_v1_0,data/full_repos/permissive/428611613/IOBUF.sv\n             IOBUF\n             IOBUF.v\n             IOBUF.sv\n             obj_dir/IOBUF\n             obj_dir/IOBUF.v\n             obj_dir/IOBUF.sv\n%Error: Exiting due to 1 error(s)\n"
module gpio_debouncer #
(
  parameter integer DATA_WIDTH = 8,
  parameter integer CNTR_WIDTH = 22
)
(
  input  wire                  aclk,

  inout  wire [DATA_WIDTH-1:0] gpio_data,

  output wire [DATA_WIDTH-1:0] deb_data,
  output wire [DATA_WIDTH-1:0] raw_data
);

  reg [DATA_WIDTH-1:0] int_data_reg [2:0];
  reg [CNTR_WIDTH-1:0] int_cntr_reg [DATA_WIDTH-1:0];
  wire [DATA_WIDTH-1:0] int_data_wire;

  genvar j;

  generate
    for(j = 0; j < DATA_WIDTH; j = j + 1)
    begin : GPIO
      IOBUF gpio_iobuf (.O(int_data_wire[j]), .IO(gpio_data[j]), .I(1'b0), .T(1'b1));
      always @(posedge aclk)
      begin
        if(int_data_reg[2][j] == int_data_reg[1][j])
        begin
          int_cntr_reg[j] <= {(CNTR_WIDTH){1'b0}};
        end
        else
        begin
          int_cntr_reg[j] <= int_cntr_reg[j] + 1'b1;
          if(&int_cntr_reg[j]) int_data_reg[2][j] <= ~int_data_reg[2][j];
        end
      end
    end
  endgenerate

  always @(posedge aclk)
  begin
    int_data_reg[0] <= int_data_wire;
    int_data_reg[1] <= int_data_reg[0];
  end

  assign deb_data = int_data_reg[2];
  assign raw_data = int_data_reg[1];

endmodule
module gpio_debouncer #
(
  parameter integer DATA_WIDTH = 8,
  parameter integer CNTR_WIDTH = 22
)
(
  input  wire                  aclk,

  inout  wire [DATA_WIDTH-1:0] gpio_data,

  output wire [DATA_WIDTH-1:0] deb_data,
  output wire [DATA_WIDTH-1:0] raw_data
);


  reg [DATA_WIDTH-1:0] int_data_reg [2:0];
  reg [CNTR_WIDTH-1:0] int_cntr_reg [DATA_WIDTH-1:0];
  wire [DATA_WIDTH-1:0] int_data_wire;

  genvar j;

  generate
    for(j = 0; j < DATA_WIDTH; j = j + 1)
    begin : GPIO
      IOBUF gpio_iobuf (.O(int_data_wire[j]), .IO(gpio_data[j]), .I(1'b0), .T(1'b1));
      always @(posedge aclk)
      begin
        if(int_data_reg[2][j] == int_data_reg[1][j])
        begin
          int_cntr_reg[j] <= {(CNTR_WIDTH){1'b0}};
        end
        else
        begin
          int_cntr_reg[j] <= int_cntr_reg[j] + 1'b1;
          if(&int_cntr_reg[j]) int_data_reg[2][j] <= ~int_data_reg[2][j];
        end
      end
    end
  endgenerate

  always @(posedge aclk)
  begin
    int_data_reg[0] <= int_data_wire;
    int_data_reg[1] <= int_data_reg[0];
  end

  assign deb_data = int_data_reg[2];
  assign raw_data = int_data_reg[1];

endmodule