data/full_repos/permissive/493514142/verilog/rtl/FPU/Dec_gpr_ctl.v
1: b'%Error: data/full_repos/permissive/493514142/verilog/rtl/FPU/Dec_gpr_ctl.v:37: Cannot find file containing module: \'rvdffe\'\n      rvdffe #(32) gprff (.*, .en(gpr_wr_en[j]), .din(gpr_in[j][XLEN-1:0]), .dout(gpr_out[j][XLEN-1:0]));\n      ^~~~~~\n        ... Looked in:\n             data/full_repos/permissive/493514142/verilog/rtl/FPU,data/full_repos/permissive/493514142/rvdffe\n             data/full_repos/permissive/493514142/verilog/rtl/FPU,data/full_repos/permissive/493514142/rvdffe.v\n             data/full_repos/permissive/493514142/verilog/rtl/FPU,data/full_repos/permissive/493514142/rvdffe.sv\n             rvdffe\n             rvdffe.v\n             rvdffe.sv\n             obj_dir/rvdffe\n             obj_dir/rvdffe.v\n             obj_dir/rvdffe.sv\n%Warning-WIDTH: data/full_repos/permissive/493514142/verilog/rtl/FPU/Dec_gpr_ctl.v:56: Operator EQ expects 32 bits on the LHS, but LHS\'s SEL generates 5 bits.\n                                                                                     : ... In instance dec_gpr_ctl\n             w0v[p]     = wen0  & (waddr0[4:0] == p );\n                                               ^~\n                ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message.\n%Error: Exiting due to 1 error(s), 1 warning(s)\n'
module dec_gpr_ctl
#(
  parameter XLEN = 32
 )  (
 
    input rden0,
    input rden1,
    
    input  [4:0]  raddr0,
    input  [4:0]  raddr1,

    input         wen0,
    input  [4:0]  waddr0,
    input  [XLEN-1:0] wd0,

    input         clk,
    input         rst_l,

    output  [XLEN-1:0] rd0,
    output  [XLEN-1:0] rd1,

    input          scan_mode
);

   wire [XLEN-1:0] gpr_out [31:1];
   reg  [XLEN-1:0] gpr_in  [31:1];
   reg  [31:1] w0v;
   wire [31:1] gpr_wr_en;



   assign gpr_wr_en[31:1] = (rst_l == 1'b0) ? {31{1'b1}} : (w0v[31:1]);
   
genvar j;   
generate   
   for (j=1; j<32; j=j+1)
      rvdffe #(32) gprff (.*, .en(gpr_wr_en[j]), .din(gpr_in[j][XLEN-1:0]), .dout(gpr_out[j][XLEN-1:0]));
endgenerate



      assign rd0 = (rst_l  == 1'b0) ? {XLEN{1'b0}} : ((rden0 == 1'b1) & (raddr0 != 5'b00000)) ? gpr_out[raddr0][XLEN-1:0] : {XLEN{1'b0}};
      assign rd1 = (rst_l  == 1'b0) ? {XLEN{1'b0}} : ((rden1 == 1'b1) & (raddr1 != 5'b00000)) ? gpr_out[raddr1][XLEN-1:0] : {XLEN{1'b0}};
   

integer p;
   always @(*) begin
       if(rst_l == 1'b0) begin
          w0v = 31'h00000000;
          for(p=1; p<32; p=p+1) begin
             gpr_in[p] = {XLEN{1'b0}};
          end
       end
      else begin 
          for (p=1; p<32; p=p+1)  begin
             w0v[p]     = wen0  & (waddr0[4:0] == p );
             gpr_in[p]  =    ({XLEN{w0v[p]}} & wd0[XLEN-1:0]);
    	  end
      end
   end 

endmodule
module dec_gpr_ctl
#(
  parameter XLEN = 32
 )  (
 
    input rden0,
    input rden1,
    
    input  [4:0]  raddr0,
    input  [4:0]  raddr1,

    input         wen0,
    input  [4:0]  waddr0,
    input  [XLEN-1:0] wd0,

    input         clk,
    input         rst_l,

    output  [XLEN-1:0] rd0,
    output  [XLEN-1:0] rd1,

    input          scan_mode
);


   wire [XLEN-1:0] gpr_out [31:1];
   reg  [XLEN-1:0] gpr_in  [31:1];
   reg  [31:1] w0v;
   wire [31:1] gpr_wr_en;



   assign gpr_wr_en[31:1] = (rst_l == 1'b0) ? {31{1'b1}} : (w0v[31:1]);
   
genvar j;   
generate   
   for (j=1; j<32; j=j+1)
      rvdffe #(32) gprff (.*, .en(gpr_wr_en[j]), .din(gpr_in[j][XLEN-1:0]), .dout(gpr_out[j][XLEN-1:0]));
endgenerate



      assign rd0 = (rst_l  == 1'b0) ? {XLEN{1'b0}} : ((rden0 == 1'b1) & (raddr0 != 5'b00000)) ? gpr_out[raddr0][XLEN-1:0] : {XLEN{1'b0}};
      assign rd1 = (rst_l  == 1'b0) ? {XLEN{1'b0}} : ((rden1 == 1'b1) & (raddr1 != 5'b00000)) ? gpr_out[raddr1][XLEN-1:0] : {XLEN{1'b0}};
   

integer p;
   always @(*) begin
       if(rst_l == 1'b0) begin
          w0v = 31'h00000000;
          for(p=1; p<32; p=p+1) begin
             gpr_in[p] = {XLEN{1'b0}};
          end
       end
      else begin 
          for (p=1; p<32; p=p+1)  begin
             w0v[p]     = wen0  & (waddr0[4:0] == p );
             gpr_in[p]  =    ({XLEN{w0v[p]}} & wd0[XLEN-1:0]);
    	  end
      end
   end 

endmodule