diff --git a/testbench/testbench.sv b/testbench/testbench.sv index 29b5207a0..b169cece9 100644 --- a/testbench/testbench.sv +++ b/testbench/testbench.sv @@ -519,6 +519,7 @@ module testbench; localparam SIGNATURESIZE = 5000000; integer i; logic [31:0] sig32[0:SIGNATURESIZE]; + logic [31:0] parsed; logic [P.XLEN-1:0] signature[0:SIGNATURESIZE]; string signame; logic [P.XLEN-1:0] testadr, testadrNoBase; @@ -535,17 +536,25 @@ module testbench; else begin while (!$feof(fd)) begin code = $fgets(line, fd); - if (!code) begin + if (code != 0) begin int errno; string errstr; errno = $ferror(fd, errstr); - if (errno) $display("Error %d (code %d) reading line %d of %s: %s", errno, code, siglines, signame, errstr); - end else if (line.len() > 1) begin // skip blank lines - if ($sscanf(line, "%x", sig32[siglines])) siglines = siglines + 1; // increment if line is not blank + if (errno != 0) $display("Error %d (code %d) reading line %d of %s: %s", errno, code, siglines, signame, errstr); + if (line.len() > 1) begin // skip blank lines +// if ($sscanf(line, "%x", sig32[siglines])) siglines = siglines + 1; // increment if line is not blank + if ($sscanf(line, "%x", parsed) != 0) begin + sig32[siglines] = parsed; +// $display("line = %s len = %d sig32[%d] = %x", line, line.len(), siglines, sig32[siglines]); + siglines = siglines + 1; // increment if line is not blank + end + end end end $fclose(fd); end +// for(i=0; i