diff --git a/rtl/hwpe_subsystem.sv b/rtl/hwpe_subsystem.sv index 8f5f6a16..9c5cb717 100644 --- a/rtl/hwpe_subsystem.sv +++ b/rtl/hwpe_subsystem.sv @@ -26,6 +26,7 @@ module hwpe_subsystem input logic clk, input logic rst_n, input logic test_mode, + input logic hwpe_en_i, hci_core_intf.master hwpe_xbar_master, XBAR_PERIPH_BUS.Slave hwpe_cfg_slave, @@ -34,10 +35,19 @@ module hwpe_subsystem output logic busy_o ); + logic hwpe_clk; + + tc_clk_gating i_hwpe_clock_gate ( + .clk_i ( clk ), + .en_i ( hwpe_en_i ), + .test_en_i ( test_mode ), + .clk_o ( hwpe_clk ) + ); + hwpe_ctrl_intf_periph #( .ID_WIDTH ( ID_WIDTH ) ) periph ( - .clk ( clk ) + .clk ( hwpe_clk ) ); redmule_top #( @@ -45,7 +55,7 @@ module hwpe_subsystem .N_CORES ( N_CORES ), .DW ( N_MASTER_PORT*32 ) ) i_redmule ( - .clk_i ( clk ), + .clk_i ( hwpe_clk ), .rst_ni ( rst_n ), .test_mode_i ( test_mode ), .busy_o ( busy_o ), diff --git a/rtl/pulp_cluster.sv b/rtl/pulp_cluster.sv index cbde3f0e..751f5e13 100644 --- a/rtl/pulp_cluster.sv +++ b/rtl/pulp_cluster.sv @@ -1167,6 +1167,7 @@ generate .clk ( clk_i ), .rst_n ( rst_ni ), .test_mode ( test_mode_i ), + .hwpe_en_i ( s_hwpe_en ), .hwpe_xbar_master ( s_hci_hwpe [0] ), .hwpe_cfg_slave ( s_hwpe_cfg_bus ), .evt_o ( s_hwpe_evt ),