From 5dde3af22eef4414779f603c892eea8c94d5bb03 Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Wed, 22 Feb 2023 09:11:46 -0600 Subject: [PATCH] Oups. Turns out dc_shell does not like string parameters. Switched gshare to use an integer parameter to select between gshare and global. --- src/ifu/bpred/bpred.sv | 4 ++-- src/ifu/bpred/gshare.sv | 6 +++--- src/ifu/bpred/gsharebasic.sv | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ifu/bpred/bpred.sv b/src/ifu/bpred/bpred.sv index da4070e14..710775968 100644 --- a/src/ifu/bpred/bpred.sv +++ b/src/ifu/bpred/bpred.sv @@ -106,7 +106,7 @@ module bpred ( .PCSrcE); end else if (`BPRED_TYPE == "BP_GLOBAL") begin:Predictor - gshare #(`BPRED_SIZE, "global") DirPredictor(.clk, .reset, .StallF, .StallD, .StallE, .StallM, .StallW, .FlushD, .FlushE, .FlushM, .FlushW, + gshare #(`BPRED_SIZE, 0) DirPredictor(.clk, .reset, .StallF, .StallD, .StallE, .StallM, .StallW, .FlushD, .FlushE, .FlushM, .FlushW, .PCNextF, .PCF, .PCD, .PCE, .PCM, .DirPredictionF, .DirPredictionWrongE, .BranchInstrF(PredInstrClassF[0]), .BranchInstrD(InstrClassD[0]), .BranchInstrE(InstrClassE[0]), .BranchInstrM(InstrClassM[0]), .PCSrcE); @@ -117,7 +117,7 @@ module bpred ( .BranchInstrE(InstrClassE[0]), .BranchInstrM(InstrClassM[0]), .PCSrcE); end else if (`BPRED_TYPE == "BP_GLOBAL_BASIC") begin:Predictor - gsharebasic #(`BPRED_SIZE, "global") DirPredictor(.clk, .reset, .StallF, .StallD, .StallE, .StallM, .StallW, .FlushD, .FlushE, .FlushM, .FlushW, + gsharebasic #(`BPRED_SIZE, 0) DirPredictor(.clk, .reset, .StallF, .StallD, .StallE, .StallM, .StallW, .FlushD, .FlushE, .FlushM, .FlushW, .PCNextF, .PCM, .DirPredictionF, .DirPredictionWrongE, .BranchInstrE(InstrClassE[0]), .BranchInstrM(InstrClassM[0]), .PCSrcE); diff --git a/src/ifu/bpred/gshare.sv b/src/ifu/bpred/gshare.sv index d996b5b62..5332ce5cd 100644 --- a/src/ifu/bpred/gshare.sv +++ b/src/ifu/bpred/gshare.sv @@ -30,7 +30,7 @@ `include "wally-config.vh" module gshare #(parameter k = 10, - parameter string TYPE = "gshare") ( + parameter integer TYPE = 1) ( input logic clk, input logic reset, input logic StallF, StallD, StallE, StallM, StallW, @@ -54,13 +54,13 @@ module gshare #(parameter k = 10, logic [k-1:0] GHRNextM, GHRNextF; logic PCSrcM; - if(TYPE == "gshare") begin + if(TYPE == 1) begin assign IndexNextF = GHRNextF ^ {PCNextF[k+1] ^ PCNextF[1], PCNextF[k:2]}; assign IndexF = GHRF ^ {PCF[k+1] ^ PCF[1], PCF[k:2]}; assign IndexD = GHRD ^ {PCD[k+1] ^ PCD[1], PCD[k:2]}; assign IndexE = GHRE ^ {PCE[k+1] ^ PCE[1], PCE[k:2]}; assign IndexM = GHRM ^ {PCM[k+1] ^ PCM[1], PCM[k:2]}; - end else if(TYPE == "global") begin + end else if(TYPE == 0) begin assign IndexNextF = GHRNextF; assign IndexF = GHRF; assign IndexD = GHRD; diff --git a/src/ifu/bpred/gsharebasic.sv b/src/ifu/bpred/gsharebasic.sv index 6446ecbc3..ccad0e3c2 100644 --- a/src/ifu/bpred/gsharebasic.sv +++ b/src/ifu/bpred/gsharebasic.sv @@ -30,7 +30,7 @@ `include "wally-config.vh" module gsharebasic #(parameter k = 10, - parameter string TYPE = "global") ( + parameter TYPE = 1) ( input logic clk, input logic reset, input logic StallF, StallD, StallE, StallM, StallW, @@ -50,10 +50,10 @@ module gsharebasic #(parameter k = 10, logic [k-1:0] GHRNext; logic PCSrcM; - if(TYPE == "gshare") begin + if(TYPE == 1) begin assign IndexNextF = GHR ^ {PCNextF[k+1] ^ PCNextF[1], PCNextF[k:2]}; assign IndexE = GHRM ^ {PCM[k+1] ^ PCM[1], PCM[k:2]}; - end else if(TYPE == "global") begin + end else if(TYPE == 0) begin assign IndexNextF = GHRNext; assign IndexE = GHRE; end