Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17254 Discussions

Best power reduction approach when idle

Altera_Forum
Honored Contributor II
1,597 Views

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.
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
807 Views

 

--- 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.
0 Kudos
Altera_Forum
Honored Contributor II
807 Views

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.
0 Kudos
Altera_Forum
Honored Contributor II
807 Views

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. :)
0 Kudos
Altera_Forum
Honored Contributor II
807 Views

 

--- 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.
0 Kudos
Altera_Forum
Honored Contributor II
807 Views

 

--- 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
0 Kudos
Altera_Forum
Honored Contributor II
807 Views

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

 

what would you consider a lesser evil?
0 Kudos
Reply