Skip to content

Commit bd9ed9d

Browse files
Razer6vogelpi
authored andcommitted
[hw,alert_handler,rtl] Only read unused LPGs when there are more than 1
If there is only 1 LPG, no need to read the unused one. The one LPGs is associated to all alerts. Signed-off-by: Robert Schilling <[email protected]>
1 parent 2ce0a29 commit bd9ed9d

File tree

3 files changed

+45
-36
lines changed

3 files changed

+45
-36
lines changed

hw/ip_templates/alert_handler/rtl/alert_handler_lpg_ctrl.sv.tpl

+15-12
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,21 @@ module ${module_instance_name}_lpg_ctrl import ${module_instance_name}_pkg::*; (
7171
);
7272
end
7373

74-
// explicitly read all unused lpg triggers to avoid lint errors.
75-
logic [NLpg-1:0] lpg_used;
76-
logic unused_lpg_init_trig;
77-
always_comb begin
78-
lpg_used = '0;
79-
unused_lpg_init_trig = 1'b0;
80-
for (int j=0; j < NAlerts; j++) begin
81-
lpg_used[LpgMap[j]] |= 1'b1;
82-
end
83-
for (int k=0; k < NLpg; k++) begin
84-
if (!lpg_used) begin
85-
unused_lpg_init_trig ^= ^lpg_init_trig[k];
74+
if (NLpg > 1) begin : gen_read_unused_lpg
75+
// explicitly read all unused lpg triggers to avoid lint errors.
76+
// Only needed when there are at least two LPGs.
77+
logic [NLpg-1:0] lpg_used;
78+
logic unused_lpg_init_trig;
79+
always_comb begin
80+
lpg_used = '0;
81+
unused_lpg_init_trig = 1'b0;
82+
for (int j=0; j < NAlerts; j++) begin
83+
lpg_used[LpgMap[j]] |= 1'b1;
84+
end
85+
for (int k=0; k < NLpg; k++) begin
86+
if (!lpg_used) begin
87+
unused_lpg_init_trig ^= ^lpg_init_trig[k];
88+
end
8689
end
8790
end
8891
end

hw/top_darjeeling/ip_autogen/alert_handler/rtl/alert_handler_lpg_ctrl.sv

+15-12
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,21 @@ module alert_handler_lpg_ctrl import alert_handler_pkg::*; (
7171
);
7272
end
7373

74-
// explicitly read all unused lpg triggers to avoid lint errors.
75-
logic [NLpg-1:0] lpg_used;
76-
logic unused_lpg_init_trig;
77-
always_comb begin
78-
lpg_used = '0;
79-
unused_lpg_init_trig = 1'b0;
80-
for (int j=0; j < NAlerts; j++) begin
81-
lpg_used[LpgMap[j]] |= 1'b1;
82-
end
83-
for (int k=0; k < NLpg; k++) begin
84-
if (!lpg_used) begin
85-
unused_lpg_init_trig ^= ^lpg_init_trig[k];
74+
if (NLpg > 1) begin : gen_read_unused_lpg
75+
// explicitly read all unused lpg triggers to avoid lint errors.
76+
// Only needed when there are at least two LPGs.
77+
logic [NLpg-1:0] lpg_used;
78+
logic unused_lpg_init_trig;
79+
always_comb begin
80+
lpg_used = '0;
81+
unused_lpg_init_trig = 1'b0;
82+
for (int j=0; j < NAlerts; j++) begin
83+
lpg_used[LpgMap[j]] |= 1'b1;
84+
end
85+
for (int k=0; k < NLpg; k++) begin
86+
if (!lpg_used) begin
87+
unused_lpg_init_trig ^= ^lpg_init_trig[k];
88+
end
8689
end
8790
end
8891
end

hw/top_earlgrey/ip_autogen/alert_handler/rtl/alert_handler_lpg_ctrl.sv

+15-12
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,21 @@ module alert_handler_lpg_ctrl import alert_handler_pkg::*; (
7171
);
7272
end
7373

74-
// explicitly read all unused lpg triggers to avoid lint errors.
75-
logic [NLpg-1:0] lpg_used;
76-
logic unused_lpg_init_trig;
77-
always_comb begin
78-
lpg_used = '0;
79-
unused_lpg_init_trig = 1'b0;
80-
for (int j=0; j < NAlerts; j++) begin
81-
lpg_used[LpgMap[j]] |= 1'b1;
82-
end
83-
for (int k=0; k < NLpg; k++) begin
84-
if (!lpg_used) begin
85-
unused_lpg_init_trig ^= ^lpg_init_trig[k];
74+
if (NLpg > 1) begin : gen_read_unused_lpg
75+
// explicitly read all unused lpg triggers to avoid lint errors.
76+
// Only needed when there are at least two LPGs.
77+
logic [NLpg-1:0] lpg_used;
78+
logic unused_lpg_init_trig;
79+
always_comb begin
80+
lpg_used = '0;
81+
unused_lpg_init_trig = 1'b0;
82+
for (int j=0; j < NAlerts; j++) begin
83+
lpg_used[LpgMap[j]] |= 1'b1;
84+
end
85+
for (int k=0; k < NLpg; k++) begin
86+
if (!lpg_used) begin
87+
unused_lpg_init_trig ^= ^lpg_init_trig[k];
88+
end
8689
end
8790
end
8891
end

0 commit comments

Comments
 (0)