Integrated Clock Gating Cell | ICG Cell in VLSI | Clock Gating Cell | Low Power Techniques in VLSI

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 พ.ย. 2024

ความคิดเห็น • 33

  • @dkirankumar425
    @dkirankumar425 2 ปีที่แล้ว +3

    It may be useful for you guys, I am just posting
    After clock tree synthesis(CTS), many timing paths that end at clock gate/ICG enable
    pins appear. Why didn't these paths get fixed in placement, and how can I handle them?
    After clock tree synthesis, clock gates becoming critical because, by default, at placement level, they
    have the same latency applied to their clock pin arrival times as do the register
    clock pins. Once a clock tree is constructed, the clock gates will be in the
    of the clock tree, not at the leaf. Therefore, the clock arrival
    times are seen to be earlier than that at the clock leaf pins, and timing is impacted.
    The following shows a simple example:
    * Pre-CTS, the register pins and clock pins of clock gates see a clock latency
    of 0ns which models the same arrival time for both.
    * Post-CTS, the clock gates are now halfway through the tree and see a latency
    of 800ps. However, all registers see a 1.5ns arrival time for their clock pins
    since they are at the leaf level of the tree.
    * Any paths from a register to a clock gate now see the difference in clock
    arrival times, and the pre-CTS slack is degraded by 700ps(1.5ns - 800ps).
    Since the clock gate is supposed to be at the intermediate point to allow
    the shut-down portions of the clock tree, it is not correct to assume the
    clock pins of clock gates should be balanced with the registers.
    These paths can be addressed in the following ways:
    First, examine how far down these ICGs lie in the clock tree for post-CTS.
    Whether they are near the root of the clock tree or the clock pins of the
    flops can influence how you handle them.
    * If the clock gates are roughly halfway down the clock tree, you might get
    the benefit by splitting (replicating) the clock gate. Splitting the clock
    gate creates parallel copies of the original driver, resulting more clock gate
    drivers with fewer loads per driver. If the splitting is done for pre-CTS,
    then we effectively push the clock gate further down the clock tree, increasing
    power but improving enable timing. See the split_clock_net command.
    * If the clock gates are either at or near the bottom of the tree, splitting
    clock gates will unlikely offer any improvement. In this case, you
    should add a pre-CTS clock latency value to the ICG clock pin so that
    you model the pre-CTS latency correctly. Using the above example, you
    would apply a -700ps latency to the clock pin of the clock gate during
    place_opt but before clock tree synthesis. Applying a latency allows
    you to correctly model the slack before the actual clock gate clock
    arrival time is known.
    * If the ICG is a single "top-level clock gate", which is fed by a relatively
    small cone of logic, you might apply a float pin constraint to the
    flip-flops feeding the enable signal logic to get their clocks earlier
    (useful skew). Sometimes this technique is the best solution for top-level
    clock gates because it does not impact power; splitting top-level clock
    gates can have a very large power impact.

  • @jagruthgowda3006
    @jagruthgowda3006 3 ปีที่แล้ว +2

    Flipflop is made up of two latches , hence by using FF instead of latches leads to increase in area and power consumption of ICG.
    By far the most important: Now the enable input is captured on the falling edge of the clock in the previous cycle. Therefore, whatever logic is generating it has to do so within half a clock cycle. Using a FF, the logic was able to take the whole clock cycle (minus the setup time) to calculate the enable (because “next cycle’s enable” is allowed to change all the way up to the rising clock edge), but now it’s only got half a clock cycle.

  • @kshitij8810
    @kshitij8810 2 ปีที่แล้ว +1

    Are ICG cells part of the netlist? And during which stage do we add ICG cells? Can we add additional ICG cells during placement stage?

    • @TeamVLSI
      @TeamVLSI  2 ปีที่แล้ว

      Hi Kshitij,
      Yes ICG cells are part of netlist. We add ICG cells in RTL as well as synthesis stage.

  • @habibakhatunnesaragi6259
    @habibakhatunnesaragi6259 3 ปีที่แล้ว +1

    Good one...sir would you give some TCL scripting videos taking some examples based on timing reports.

    • @TeamVLSI
      @TeamVLSI  3 ปีที่แล้ว

      Yes, sure Habiba.

  • @radhaa6564
    @radhaa6564 3 ปีที่แล้ว +1

    Sir when will you post ir drop prevention techniques, I am waiting for that sir

    • @TeamVLSI
      @TeamVLSI  3 ปีที่แล้ว

      I need some time pls.

    • @radhaa6564
      @radhaa6564 3 ปีที่แล้ว

      @@TeamVLSI ok sir thank you for posting these videos it's very helpful for all sir thank you so much

  • @tamilselvanselvaraj1798
    @tamilselvanselvaraj1798 2 ปีที่แล้ว

    Thank u sir

  • @radhaa6564
    @radhaa6564 3 ปีที่แล้ว +2

    Clock gating violations are observed in which stage, why in that stage

  • @chethalaramakrishna3959
    @chethalaramakrishna3959 2 ปีที่แล้ว +1

    Hii sir
    What is different between
    Clock gating and icg

  • @radhaa6564
    @radhaa6564 3 ปีที่แล้ว +2

    Sir can you post CRPR

    • @TeamVLSI
      @TeamVLSI  3 ปีที่แล้ว

      Hi Radha,
      Sure, that will be done soon.

    • @radhaa6564
      @radhaa6564 3 ปีที่แล้ว

      @@TeamVLSI thank you sir

  • @IMMahantesh
    @IMMahantesh 3 ปีที่แล้ว +2

    ICG timing is characterized in Library and used as an IP just like any std.cell. Hence instead of using latch and an AND gate, ICG is used directly. Similar Eg. BUFFER. Please correct me if my ans. needs correction.

    • @IMMahantesh
      @IMMahantesh 3 ปีที่แล้ว +2

      Second question Answer: ICG should be placed near the source.

    • @IMMahantesh
      @IMMahantesh 3 ปีที่แล้ว +2

      Third question Answer: No sir, by using flop, we have chances of glitch after AND gate. Hence we use -ve Latch with an AND.

    • @TeamVLSI
      @TeamVLSI  3 ปีที่แล้ว +1

      Hi Mahantesh,
      ICG placement near source is good for power saving point of view but it has some issue too. And placing ICG near the sink has its own benefit. so people use both options. Kindly try to list out pros and cons in both the cases

    • @TeamVLSI
      @TeamVLSI  3 ปีที่แล้ว +2

      Yes that's right but why we can't use latch + and?

    • @IMMahantesh
      @IMMahantesh 3 ปีที่แล้ว +2

      @@TeamVLSI Sir, by placing ICG near source point, if the ICG has no two branch which switch ON and OFF differently then it works good. But if there are two or more branches which need not switch ON or OFF at same time, then placing one each ICG cell near destination domain will be feasible.

  • @radhaa6564
    @radhaa6564 3 ปีที่แล้ว +1

    Sir can you tcl relates videos also sir

    • @radhaa6564
      @radhaa6564 3 ปีที่แล้ว +1

      Like scripting in tcl

    • @TeamVLSI
      @TeamVLSI  3 ปีที่แล้ว

      Sure. Will do soon.

    • @radhaa6564
      @radhaa6564 3 ปีที่แล้ว

      @@TeamVLSI thank you sir

  • @rameshpothabathula8103
    @rameshpothabathula8103 3 ปีที่แล้ว +1

    I guess near the sink pin..