📌 𝐈𝐂𝐆: STA가 EN을 검사하는 이유
Latch-based ICG pulse integrity and enable clock-gating checks; ASIC versus FPGA clock-enable methodology

gclk = clk & en만으로 clock을 끊으면, en이 CLK high 구간에 바뀔 때 짧은 펄스나 의도치 않은 edge가 생길 수 있습니다. 이건 downstream flop의 clock으로 쓰기엔 위험합니다.
Positive-edge 도메인의 일반적인 latch-based ICG는 CLK가 low인 동안 열리는 latch로 EN을 받아 둡니다. CLK가 rising edge에 도달하면 latch가 닫혀 EN을 고정하고, 그 값으로 AND gate를 제어합니다. 따라서 EN=1이면 다음 high 구간을 통째로 통과시키고, EN=0이면 그 pulse를 막습니다. 그림처럼 raw AND는 high 중간에 EN이 바뀌면 pulse가 잘릴 수 있지만, ICG는 그 구간에 EN을 고정합니다.
그렇다고 ICG의 EN을 timing 예외로 취급하면 안 됩니다. 셀 Liberty에는 clock-gating enable의 setup/hold arc가 모델링되고, STA는 source clock과 ICG enable 사이의 clock-gating check를 평가합니다. 실제 체크 edge와 margin은 사용 중인 ICG cell 및 STA 설정으로 확인하세요. 고정된 숫자를 복사하기보다, report에서 endpoint가 ICG enable pin인지와 check가 의도한 clock edge에 걸렸는지를 보는 게 핵심입니다.
실무에서 함께 볼 것:
• EN이 비활성 clock phase에서 안정적으로 준비되는가?
• clock-gating setup/hold check가 리포트에 살아 있는가?
• asynchronous request라면 ICG 전에 목적 clock domain에서 동기화/handshake 했는가?
• scan/test enable이 ICG의 test pin 및 DFT mode에서 의도대로 동작하는가?
• clock gate 삽입 전후 clock-gating efficiency와 실제 clock-tree 부하가 개선됐는가?
FPGA는 같은 처방을 그대로 가져오면 안 됩니다. AMD의 2026.1 방법론은 fine-grained gated clock을 RTL clock path에 직접 넣기보다 clock enable을 권합니다. ASIC ICG 셀과 FPGA 전용 clock resource/CE를 구분하세요.
요약: ICG latch는 enable 변화를 안전한 clock phase로 제한해 pulse integrity를 지킵니다. STA의 gating check는 그 경계에서 enable이 제때 안정되는지 확인합니다. CDC 동기화, DFT test path, 구현된 clock network까지 함께 닫아야 합니다.
출처:
• Synopsys, A Unified Solution for End-to-End Low Power Verification (2024): https://www.synopsys.com/content/dam/synopsys/verification/white-papers/verification-e2e-low-power-wp.pdf
• Synopsys, Clock Gating Verification with VC Formal: https://www.synopsys.com/webinars/clock-gating-vc-formal-part-2.html
• Synopsys STA: https://www.synopsys.com/glossary/what-is-static-timing-analysis.html
• AMD UG949 2026.1, Using Gated Clocks: https://docs.amd.com/r/en-US/ug949-vivado-design-methodology/Using-Gated-Clocks
• Liberty R-2020.09 reference: https://zao111222333.github.io/liberty-db/2020.09/reference_manual.html