From e324db71b4bce8eebd267a454c16c367a61333dd Mon Sep 17 00:00:00 2001 From: DTowersM Date: Tue, 7 Jun 2022 23:27:54 +0000 Subject: [PATCH] cleaned up the code, now works for code bases larger than 0x10000000 --- pipelined/testbench/testbench.sv | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pipelined/testbench/testbench.sv b/pipelined/testbench/testbench.sv index 0e1ec7d7..a997a248 100644 --- a/pipelined/testbench/testbench.sv +++ b/pipelined/testbench/testbench.sv @@ -220,15 +220,13 @@ logic [3:0] dummy; ProgramAddrMap = $fopen(ProgramAddrMapFile, "r"); if (ProgramLabelMap & ProgramAddrMap) begin // check we found both files while (!$feof(ProgramLabelMap)) begin - string addr, label; + string label; integer returncode; returncode = $fgets(label, ProgramLabelMap); - returncode = $fgets(addr, ProgramAddrMap); + returncode = $fgets(adrstr, ProgramAddrMap); if (label == "begin_signature\n") begin - adrstr = addr[1:7]; - if (adrstr=="0000000") // if running on rv64 we get the address at a later - adrstr = addr[9:15]; if (DEBUG) $display("%s begin_signature adrstr: %s", TEST, adrstr); + break; end end end @@ -238,8 +236,8 @@ logic [3:0] dummy; $fclose(ProgramLabelMap); $fclose(ProgramAddrMap); - testadr = (`RAM_BASE+adrstr.atohex())/(`XLEN/8); - testadrNoBase = (adrstr.atohex())/(`XLEN/8); + testadr = ($unsigned(adrstr.atohex()))/(`XLEN/8); + testadrNoBase = (adrstr.atohex() - `RAM_BASE)/(`XLEN/8); #600; // give time for instructions in pipeline to finish if (TEST == "embench") begin // Writes contents of begin_signature to .sim.output file