Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
14 years ago

Best power reduction approach when idle

Hi

lets say I have a relatively large block of logic (> 1K LE) that is can be idle part of the time, because the outputs are ignored.

what is the best way the reduce the power consumed by this block?

a few options I thought about are:

reset: is there a difference between synchronous and asynchronous reset?

clock enable:not sure if stopping the clock enable signal will save any power :confused: the clock itself is still running...

settings the inputs to a constant, the same as clock enable...

clock: if I stop the clock using a simple AND gate, will it affect timing? must I use a clock control block? (the entire design uses a single clock)

will it use another global clock network?

your insights are welcomed.

6 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    reset: is there a difference between synchronous and asynchronous reset?

    --- Quote End ---

    From your point of view they both keep the logic in a reset state. You may see a difference at the time of reset removal: with async reset you must be aware that not all involved registers will come out of reset at the same clock cycle and this could be a problem. So a sync reset is usually preferable.

    --- Quote Start ---

    clock enable:not sure if stopping the clock enable signal will save any power :confused: the clock itself is still running...

    settings the inputs to a constant, the same as clock enable...

    --- Quote End ---

    Any switching signal will consume power, so if you limit switching by stopping clocks you definitely spare power. Ideal CMOS-type logic draws no power when it stands still.

    Remind that a major power consuption derives from output buffers driving external pins, so, if possibile, you can tristate them. Input signals are usually not a great concern, since power is borrowed from an external device.

    --- Quote Start ---

    clock: if I stop the clock using a simple AND gate, will it affect timing? must I use a clock control block? (the entire design uses a single clock)

    will it use another global clock network?

    --- Quote End ---

    Gating a clock is a bad practice and it is never recommended.

    You'd better disable the PLL which generates it.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The safest option will be a clock enable. As Cris says, its switching logic that consumes power, so preventing a registers from changing will save some power.

    Just one note to add to what cris said about resets: In Altera devices the registers do not have a sync reset input - when you infer registers from HDL if there is a sync reset, it actually muxes the input to the register with the reset and non-reset option. So if you want a true reset, you are best using an async reset template, with the async reset synchronised to the clock.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Cris, thanks for the detailed response.

    as I wrote, my entire design uses a single clock , so stopping the PLL is not an option (other logic is still active)

    Tricky, from what I understand from you, sync reset will takes extra LEs? linearly proportional to the number of signals with a reset value?

    your recommendation, if I get you correctly, is an async reset, driven by an synced source(i.e. dff). this will solve the getting out of reset problem Cris wrote about.

    I believe we reached the same conclusion in a different thread... for slightly different reasons. :)
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Tricky, from what I understand from you, sync reset will takes extra LEs? linearly proportional to the number of signals with a reset value?

    --- Quote End ---

    Yes an no. Most LEs wont have the all 4 (or 6 for newer devices) inputs used, so the sreset will just become another input to the LUT.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    as I wrote, my entire design uses a single clock , so stopping the PLL is not an option (other logic is still active)

    --- Quote End ---

    If you have a spare PLL, I suggest you replicate the clock net which needs to be disabled.

    I think the active clock would lead to a reasonable power consuption even if you disable the related logic with reset or deasserting clock enable.

    Infact, the clock network would still drive a lot of gates (although disabled), then a a big capacitance. This usually means a lot of current: roughly I = fCV
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Cris, lets assume for portability and scalability sakes that I don't have a spare PLL.

    what would you consider a lesser evil?