From e65178ab2dfdd5da7e33d1e56fe759d15dec1fc0 Mon Sep 17 00:00:00 2001 From: Neeraj Upasani Date: Tue, 2 Apr 2024 10:33:25 -0700 Subject: [PATCH] [gpio] Removed unnecessary cdc synchornizer on strap_en_i signal Both sender (pwrmgr) and receiver (gpio controller) are on the same clock domain (io_div4) CDC synchonizer is not required Signed-off-by: Neeraj Upasani --- hw/ip/gpio/rtl/gpio.sv | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/hw/ip/gpio/rtl/gpio.sv b/hw/ip/gpio/rtl/gpio.sv index 3809c652cd96a..8af320247d01f 100644 --- a/hw/ip/gpio/rtl/gpio.sv +++ b/hw/ip/gpio/rtl/gpio.sv @@ -69,14 +69,13 @@ module gpio if (GpioAsHwStrapsEn) begin : gen_strap_sample // sample at gpio inputs at strap_en_i signal pulse. logic strap_en; - prim_flop_2sync #( - .Width(1) - ) u_prim_flop_2sync ( - .clk_i, - .rst_ni, - .d_i(strap_en_i), - .q_o(strap_en) - ); + + // The strap_en_i is a single cycle pulse generated by the pwrmgr + // Both sender (pwrmgr) and receiver (gpio controller) are in the same clock domain (io_div4) + // A cdc synchronizer is not required + // + assign strap_en = strap_en_i; + // we guarantee here by design that this will always be done exactly once per reset cycle. logic sample_trigger; assign sample_trigger = strap_en && !reg2hw.hw_straps_data_in_valid.q;