From 892c14430b296ff44f423d0a2149148923511915 Mon Sep 17 00:00:00 2001 From: Abe Date: Fri, 18 Jun 2021 11:46:25 -0400 Subject: [PATCH 1/3] Updated directory coremark_bare's wally-config file to define PMP_ENTRIES --- wally-pipelined/config/coremark_bare/wally-config.vh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wally-pipelined/config/coremark_bare/wally-config.vh b/wally-pipelined/config/coremark_bare/wally-config.vh index 5b62a23e0..828dd084a 100644 --- a/wally-pipelined/config/coremark_bare/wally-config.vh +++ b/wally-pipelined/config/coremark_bare/wally-config.vh @@ -52,6 +52,9 @@ `define ITLB_ENTRY_BITS 5 `define DTLB_ENTRY_BITS 5 +// Legal number of PMP entries are 0, 16, or 64 +`define PMP_ENTRIES 16 + // Address space `define RESET_VECTOR 64'h0000000080000000 @@ -101,7 +104,7 @@ `define PLIC_GPIO_ID 3 `define PLIC_UART_ID 4 -/`define TWO_BIT_PRELOAD "../config/coremark_bare/twoBitPredictor.txt" +`define TWO_BIT_PRELOAD "../config/coremark_bare/twoBitPredictor.txt" `define BTB_PRELOAD "../config/coremark_bare/BTBPredictor.txt" `define BPRED_ENABLED 1 `define BPTYPE "BPGSHARE"//comments From 958f60c7049a67b51650ca058f4e63b979326fb1 Mon Sep 17 00:00:00 2001 From: bbracker Date: Fri, 18 Jun 2021 11:58:16 -0400 Subject: [PATCH 2/3] restore graphical buildroot sim --- wally-pipelined/testbench/testbench-linux.sv | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/wally-pipelined/testbench/testbench-linux.sv b/wally-pipelined/testbench/testbench-linux.sv index 9f80a33d4..f9d2415e1 100644 --- a/wally-pipelined/testbench/testbench-linux.sv +++ b/wally-pipelined/testbench/testbench-linux.sv @@ -474,18 +474,18 @@ module testbench(); end string PCtextD,PCtextE,PCtextM,PCtext2; - always_ff @(posedge clk, posedge reset) - if (reset) begin - PCtextE <= #1 "(reset)"; - PCtextM <= #1 "(reset)"; - end else begin - if (~dut.hart.StallE) - if (dut.hart.FlushE) PCtextE <= #1 "(flushed)"; - else PCtextE <= #1 PCtextD; - if (~dut.hart.StallM) - if (dut.hart.FlushM) PCtextM <= #1 "(flushed)"; - else PCtextM <= #1 PCtextE; - end + //always_ff @(posedge clk, posedge reset) + // if (reset) begin + // PCtextE <= #1 "(reset)"; + // PCtextM <= #1 "(reset)"; + // end else begin + // if (~dut.hart.StallE) + // if (dut.hart.FlushE) PCtextE <= #1 "(flushed)"; + // else PCtextE <= #1 PCtextD; + // if (~dut.hart.StallM) + // if (dut.hart.FlushM) PCtextM <= #1 "(flushed)"; + // else PCtextM <= #1 PCtextE; + // end initial begin From 43bc17350be57d64e41cf6bb2397227b58f55be8 Mon Sep 17 00:00:00 2001 From: David Harris Date: Fri, 18 Jun 2021 12:36:25 -0400 Subject: [PATCH 3/3] Restored wally-busybear testbench now that graphical sim is working --- wally-pipelined/regression/wally-busybear.do | 2 +- wally-pipelined/testbench/testbench-linux.sv | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/wally-pipelined/regression/wally-busybear.do b/wally-pipelined/regression/wally-busybear.do index 0be7fcdd9..11876dded 100644 --- a/wally-pipelined/regression/wally-busybear.do +++ b/wally-pipelined/regression/wally-busybear.do @@ -35,7 +35,7 @@ vopt +acc work.testbench -o workopt vsim workopt -suppress 8852,12070 -#do ./wave-dos/linux-waves.do +do ./wave-dos/linux-waves.do #-- Run the Simulation diff --git a/wally-pipelined/testbench/testbench-linux.sv b/wally-pipelined/testbench/testbench-linux.sv index f9d2415e1..b3552cb1a 100644 --- a/wally-pipelined/testbench/testbench-linux.sv +++ b/wally-pipelined/testbench/testbench-linux.sv @@ -498,10 +498,8 @@ module testbench(); always @(dut.hart.ifu.PCD or dut.hart.ifu.InstrRawD or reset or negedge dut.hart.ifu.StallE) begin if(~HWRITE) begin #2; - $display("test point"); if (~reset && dut.hart.ifu.InstrRawD[15:0] !== {16{1'bx}} && dut.hart.ifu.PCD !== 64'h0 && ~dut.hart.ifu.StallE) begin if (dut.hart.ifu.PCD !== lastPCD) begin - $display("tp2"); lastCheckInstrD = CheckInstrD; lastPC <= dut.hart.ifu.PCD; lastPC2 <= lastPC; @@ -528,22 +526,16 @@ module testbench(); end end else begin - $display("tp4"); if($feof(data_file_PC)) begin $display("no more PC data to read"); `ERROR end scan_file_PC = $fscanf(data_file_PC, "%s\n", PCtextD); PCtext2 = ""; - $display("tp5 PCtextD = %s PCtext2 = %s\n", PCtextD, PCtext2); while (PCtext2 != "***") begin - $display("tp6 PCtextD = %s PCtext2 = %s\n", PCtextD, PCtext2); PCtextD = {PCtextD, " ", PCtext2}; - $display("tp8"); scan_file_PC = $fscanf(data_file_PC, "%s\n", PCtext2); - $display("tp9"); end - $display("tp7 PCtextD = %s PCtext2 = %s\n", PCtextD, PCtext2); scan_file_PC = $fscanf(data_file_PC, "%x\n", CheckInstrD); if(dut.hart.ifu.PCD === pcExpected) begin if((dut.hart.ifu.InstrRawD[6:0] == 7'b1010011) || // for now, NOP out any float instrs