summaryrefslogtreecommitdiff
path: root/rtl/perf/perf_monitor.sv
diff options
context:
space:
mode:
Diffstat (limited to '')
-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