summaryrefslogtreecommitdiff
path: root/rtl/perf/perf_monitor.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-02-12 22:33:47 -0600
committerAlejandro Soto <alejandro@34project.org>2024-02-20 11:11:18 -0600
commit31006bd10962e72c56f34158b893313e233cd161 (patch)
tree42d25fdb315b80c57c87462576f0d9ff0d172704 /rtl/perf/perf_monitor.sv
parent6c175d5dc428f630e3bd4caf707db4b77b0b87e7 (diff)
rtl/perf: add a flag for enabling or disabling the perf module
Diffstat (limited to 'rtl/perf/perf_monitor.sv')
-rw-r--r--rtl/perf/perf_monitor.sv63
1 files changed, 34 insertions, 29 deletions
diff --git a/rtl/perf/perf_monitor.sv b/rtl/perf/perf_monitor.sv
index 2f38d94..b7bc6ba 100644
--- a/rtl/perf/perf_monitor.sv
+++ b/rtl/perf/perf_monitor.sv
@@ -1,4 +1,5 @@
`include "cache/defs.sv"
+`include "config.sv"
module perf_monitor
(
@@ -252,35 +253,39 @@ module perf_monitor
.*
);
- assign address = perf_address[3:0];
-
- always_comb begin
- clear_0 = 0;
- clear_1 = 0;
- clear_2 = 0;
- clear_3 = 0;
-
- unique case (perf_address[5:4])
- 2'b00: begin
- clear_0 = perf_write;
- perf_readdata = readdata_0;
- end
-
- 2'b01: begin
- clear_1 = perf_write;
- perf_readdata = readdata_1;
- end
-
- 2'b10: begin
- clear_2 = perf_write;
- perf_readdata = readdata_2;
- end
-
- 2'b11: begin
- clear_3 = perf_write;
- perf_readdata = readdata_3;
+ generate
+ if (`CONFIG_PERF_MONITOR) begin: enable
+ assign address = perf_address[3:0];
+
+ always_comb begin
+ clear_0 = 0;
+ clear_1 = 0;
+ clear_2 = 0;
+ clear_3 = 0;
+
+ unique case (perf_address[5:4])
+ 2'b00: begin
+ clear_0 = perf_write;
+ perf_readdata = readdata_0;
+ end
+
+ 2'b01: begin
+ clear_1 = perf_write;
+ perf_readdata = readdata_1;
+ end
+
+ 2'b10: begin
+ clear_2 = perf_write;
+ perf_readdata = readdata_2;
+ end
+
+ 2'b11: begin
+ clear_3 = perf_write;
+ perf_readdata = readdata_3;
+ end
+ endcase
end
- endcase
- end
+ end
+ endgenerate
endmodule